enable upower, move noctalia config to niri module, make useNoctalia a module option

This commit is contained in:
2026-06-20 16:48:12 +02:00
parent 16b1894e84
commit a7985e56c9
6 changed files with 326 additions and 126 deletions
+82 -73
View File
@@ -1,83 +1,92 @@
{ pkgs, lib, config, ... }:
let
useNoctalia = true;
in
{
# ── Niri desktop environment ─────────────────────────────────────────────────
xdg.configFile."niri" = {
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos-dotfiles/config/niri";
};
xdg.configFile."foot".source = ./config/foot;
xdg.configFile."waybar" = lib.mkIf (!useNoctalia) { source = ./config/waybar; };
xdg.configFile."fuzzel/fuzzel.ini" = lib.mkIf (!useNoctalia) { source = ./config/fuzzel/fuzzel.ini; };
home.file.".local/bin/wallpaper.sh" = {
source = ./config/niri/wallpaper.sh;
executable = true;
};
home.file.".local/bin/waybar-network.sh" = lib.mkIf (!useNoctalia) {
source = ./config/waybar/network.sh;
executable = true;
};
home.file.".local/bin/waybar-weather.sh" = lib.mkIf (!useNoctalia) {
source = ./config/waybar/weather.sh;
executable = true;
options.niri.useNoctalia = lib.mkOption {
type = lib.types.bool;
default = true;
};
xdg.dataFile."applications/switch-wallpaper.desktop".source = ./config/applications/switch-wallpaper.desktop;
xdg.dataFile."applications/signal.desktop".source = ./config/applications/signal.desktop;
xdg.dataFile."applications/vesktop.desktop".source = ./config/applications/vesktop.desktop;
xdg.dataFile."applications/steam.desktop".source = ./config/applications/steam.desktop;
systemd.user.services.xwayland-satellite = {
Unit = {
Description = "Xwayland for niri";
BindsTo = [ "graphical-session.target" ];
After = [ "graphical-session.target" ];
config = let
useNoctalia = config.niri.useNoctalia;
in {
# ── Niri desktop environment ─────────────────────────────────────────────────
xdg.configFile."niri" = {
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos-dotfiles/config/niri";
};
Service = {
ExecStart = "${pkgs.xwayland-satellite}/bin/xwayland-satellite";
Restart = "on-failure";
xdg.configFile."noctalia" = lib.mkIf useNoctalia {
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos-dotfiles/config/noctalia";
};
Install.WantedBy = [ "graphical-session.target" ];
};
xdg.configFile."foot".source = ./config/foot;
xdg.configFile."waybar" = lib.mkIf (!useNoctalia) { source = ./config/waybar; };
xdg.configFile."fuzzel/fuzzel.ini" = lib.mkIf (!useNoctalia) { source = ./config/fuzzel/fuzzel.ini; };
services.mako = {
enable = true;
settings = {
background-color = "#0a0a0a99";
text-color = "#f3eeea";
border-color = "#cd0a00";
border-radius = 8;
border-size = 1;
default-timeout = 7500;
max-icon-size = 64;
padding = "10,14";
font = "JetBrains Mono 12";
home.file.".local/bin/wallpaper.sh" = {
source = ./config/niri/wallpaper.sh;
executable = true;
};
home.file.".local/bin/waybar-network.sh" = lib.mkIf (!useNoctalia) {
source = ./config/waybar/network.sh;
executable = true;
};
home.file.".local/bin/waybar-weather.sh" = lib.mkIf (!useNoctalia) {
source = ./config/waybar/weather.sh;
executable = true;
};
xdg.dataFile."applications/switch-wallpaper.desktop".source = ./config/applications/switch-wallpaper.desktop;
xdg.dataFile."applications/signal.desktop".source = ./config/applications/signal.desktop;
xdg.dataFile."applications/vesktop.desktop".source = ./config/applications/vesktop.desktop;
xdg.dataFile."applications/steam.desktop".source = ./config/applications/steam.desktop;
systemd.user.services.xwayland-satellite = {
Unit = {
Description = "Xwayland for niri";
BindsTo = [ "graphical-session.target" ];
After = [ "graphical-session.target" ];
};
Service = {
ExecStart = "${pkgs.xwayland-satellite}/bin/xwayland-satellite";
Restart = "on-failure";
};
Install.WantedBy = [ "graphical-session.target" ];
};
services.mako = {
enable = true;
settings = {
background-color = "#0a0a0a99";
text-color = "#f3eeea";
border-color = "#cd0a00";
border-radius = 8;
border-size = 1;
default-timeout = 7500;
max-icon-size = 64;
padding = "10,14";
font = "JetBrains Mono 12";
};
};
home.packages = with pkgs; [
# wayland / desktop
libnotify
wl-clipboard
slurp
grim
satty
wlogout
brightnessctl
awww
lxqt.lxqt-policykit
# messaging
telegram-desktop
signal-desktop
vesktop
karere
] ++ lib.optionals (!useNoctalia) [
fuzzel
waybar
] ++ lib.optionals useNoctalia [
noctalia-shell
];
};
home.packages = with pkgs; [
# wayland / desktop
libnotify
wl-clipboard
slurp
grim
satty
wlogout
brightnessctl
awww
lxqt.lxqt-policykit
# messaging
telegram-desktop
signal-desktop
vesktop
karere
] ++ lib.optionals (!useNoctalia) [
fuzzel
waybar
] ++ lib.optionals useNoctalia [
noctalia-shell
];
}