diff --git a/home.nix b/home.nix index 60035c0..f6012e1 100644 --- a/home.nix +++ b/home.nix @@ -253,6 +253,11 @@ 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 ───────────────────────────────────────────────────────────────── home.packages = with pkgs; [ # general diff --git a/niri.nix b/niri.nix index 4b4d156..89c4985 100644 --- a/niri.nix +++ b/niri.nix @@ -7,80 +7,88 @@ 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"; - }; - 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" ]; + in lib.mkMerge [ + # ── Niri (shared) ──────────────────────────────────────────────────────────── + { + 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"; - }; - Install.WantedBy = [ "graphical-session.target" ]; - }; + xdg.configFile."foot".source = ./config/foot; - 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"; + 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" ]; }; - }; - home.packages = with pkgs; [ - # wayland / desktop - libnotify - wl-clipboard - slurp - grim - satty - wlogout - brightnessctl - awww - lxqt.lxqt-policykit - ] ++ lib.optionals (!useNoctalia) [ - fuzzel - waybar - ] ++ lib.optionals useNoctalia [ - noctalia-shell - ]; - }; + home.packages = with pkgs; [ + libnotify + wl-clipboard + slurp + grim + satty + brightnessctl + lxqt.lxqt-policykit + ]; + } + + # ── Noctalia ───────────────────────────────────────────────────────────────── + (lib.mkIf useNoctalia { + xdg.configFile."noctalia" = { + source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos-dotfiles/config/noctalia"; + }; + + 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 + ]; + }) + ]; }