clean up niri.nix: gate noctalia/non-noctalia config, move desktop files to home.nix

This commit is contained in:
2026-06-20 17:12:40 +02:00
parent 6c9288bf4f
commit 870b1d40d8
2 changed files with 85 additions and 72 deletions
+5
View File
@@ -253,6 +253,11 @@
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos-dotfiles/config/nvim"; source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos-dotfiles/config/nvim";
}; };
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;
# ── Packages ───────────────────────────────────────────────────────────────── # ── Packages ─────────────────────────────────────────────────────────────────
home.packages = with pkgs; [ home.packages = with pkgs; [
# general # general
+80 -72
View File
@@ -7,80 +7,88 @@
config = let config = let
useNoctalia = config.niri.useNoctalia; useNoctalia = config.niri.useNoctalia;
in { in lib.mkMerge [
# ── Niri desktop environment ───────────────────────────────────────────────── # ── Niri (shared) ────────────────────────────────────────────────────────────
xdg.configFile."niri" = { {
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos-dotfiles/config/niri"; xdg.configFile."niri" = {
}; source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos-dotfiles/config/niri";
xdg.configFile."noctalia" = lib.mkIf useNoctalia {
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos-dotfiles/config/noctalia";
};
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;
};
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 = { xdg.configFile."foot".source = ./config/foot;
ExecStart = "${pkgs.xwayland-satellite}/bin/xwayland-satellite";
Restart = "on-failure";
};
Install.WantedBy = [ "graphical-session.target" ];
};
services.mako = { systemd.user.services.xwayland-satellite = {
enable = true; Unit = {
settings = { Description = "Xwayland for niri";
background-color = "#0a0a0a99"; BindsTo = [ "graphical-session.target" ];
text-color = "#f3eeea"; After = [ "graphical-session.target" ];
border-color = "#cd0a00"; };
border-radius = 8; Service = {
border-size = 1; ExecStart = "${pkgs.xwayland-satellite}/bin/xwayland-satellite";
default-timeout = 7500; Restart = "on-failure";
max-icon-size = 64; };
padding = "10,14"; Install.WantedBy = [ "graphical-session.target" ];
font = "JetBrains Mono 12";
}; };
};
home.packages = with pkgs; [ home.packages = with pkgs; [
# wayland / desktop libnotify
libnotify wl-clipboard
wl-clipboard slurp
slurp grim
grim satty
satty brightnessctl
wlogout lxqt.lxqt-policykit
brightnessctl ];
awww }
lxqt.lxqt-policykit
] ++ lib.optionals (!useNoctalia) [ # ── Noctalia ─────────────────────────────────────────────────────────────────
fuzzel (lib.mkIf useNoctalia {
waybar xdg.configFile."noctalia" = {
] ++ lib.optionals useNoctalia [ source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos-dotfiles/config/noctalia";
noctalia-shell };
];
}; home.packages = with pkgs; [
noctalia-shell
];
})
# ── Non-noctalia ─────────────────────────────────────────────────────────────
(lib.mkIf (!useNoctalia) {
xdg.configFile."waybar".source = ./config/waybar;
xdg.configFile."fuzzel/fuzzel.ini".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" = {
source = ./config/waybar/network.sh;
executable = true;
};
home.file.".local/bin/waybar-weather.sh" = {
source = ./config/waybar/weather.sh;
executable = true;
};
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; [
awww
wlogout
fuzzel
waybar
];
})
];
} }