a dotfile but it's really big

more granularity on wm subcomponents.

karitham.dev 7f70f4ec 3cb9eb76

verified
+50 -18
+19 -8
modules/desktop/home.nix
··· 12 12 inherit (osConfig.desktop or { }) 13 13 enable 14 14 wm 15 + waybar 16 + hyprlock 17 + wallpaper 18 + notification 19 + launcher 15 20 terminal 16 21 audio 17 22 apps ··· 21 26 enable = mkEnableOption "all desktop tools"; 22 27 23 28 wm.enable = mkEnableOption "window manager and interface tools"; 29 + waybar.enable = mkEnableOption "Waybar status bar"; 30 + hyprlock.enable = mkEnableOption "Hyprlock screen locker"; 31 + wallpaper.enable = mkEnableOption "Wallpaper management"; 32 + wallpaper.image = lib.mkOption { 33 + default = pkgs.fetchurl { 34 + url = "https://raw.githubusercontent.com/HoulFloof/wallpapers/f23c1010b93cb97baa7ad7c94fd552f7601496d2/misc/waves_right_colored.png"; 35 + hash = "sha256-NqqE+pGnCIWAitH86sxu1EudVEEaSO82y3NqbhtDh9k="; 36 + }; 37 + type = lib.types.path; 38 + description = "the wallpaper to use"; 39 + }; 40 + notification.enable = mkEnableOption "Notification daemon"; 41 + launcher.enable = mkEnableOption "Application launcher"; 24 42 terminal.enable = mkEnableOption "terminal tools"; 25 43 audio.enable = mkEnableOption "audio tools"; 26 44 apps.enable = mkEnableOption "desktop applications"; ··· 29 47 default = "firefox-devedition.desktop"; 30 48 type = types.str; 31 49 }; 32 - wallpaper = lib.mkOption { 33 - default = pkgs.fetchurl { 34 - url = "https://raw.githubusercontent.com/HoulFloof/wallpapers/f23c1010b93cb97baa7ad7c94fd552f7601496d2/misc/waves_right_colored.png"; 35 - hash = "sha256-NqqE+pGnCIWAitH86sxu1EudVEEaSO82y3NqbhtDh9k="; 36 - }; 37 - type = lib.types.path; 38 - description = "the wallpaper to use"; 39 - }; 50 + 40 51 }; 41 52 imports = [ 42 53 ./wm
+10
modules/desktop/nixos.nix
··· 8 8 enable = mkEnableOption "all desktop tools"; 9 9 10 10 wm.enable = mkEnableOption "window manager and interface tools"; 11 + waybar.enable = mkEnableOption "Waybar status bar"; 12 + hyprlock.enable = mkEnableOption "Hyprlock screen locker"; 13 + wallpaper.enable = mkEnableOption "Wallpaper management"; 14 + notification.enable = mkEnableOption "Notification daemon"; 15 + launcher.enable = mkEnableOption "Application launcher"; 11 16 terminal.enable = mkEnableOption "terminal tools"; 12 17 audio.enable = mkEnableOption "audio tools"; 13 18 apps.enable = mkEnableOption "desktop applications"; ··· 27 32 28 33 config = { 29 34 desktop.wm.enable = mkIf cfg.enable true; 35 + desktop.waybar.enable = mkIf cfg.wm.enable true; 36 + desktop.hyprlock.enable = mkIf cfg.wm.enable true; 37 + desktop.wallpaper.enable = mkIf cfg.wm.enable true; 38 + desktop.notification.enable = mkIf cfg.wm.enable true; 39 + desktop.launcher.enable = mkIf cfg.wm.enable true; 30 40 desktop.terminal.enable = mkIf cfg.enable true; 31 41 desktop.audio.enable = mkIf cfg.enable true; 32 42 desktop.apps.enable = mkIf cfg.enable true;
+1 -1
modules/desktop/wm/dunst.nix
··· 1 1 { config, ... }: 2 2 { 3 - services.dunst.enable = config.desktop.wm.enable; 3 + services.dunst.enable = config.desktop.notification.enable; 4 4 }
+11 -2
modules/desktop/wm/fuzzel.nix
··· 1 - { config, lib, ... }: 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 2 7 { 3 - programs.fuzzel = lib.mkIf config.desktop.wm.enable { 8 + programs.fuzzel = lib.mkIf config.desktop.launcher.enable { 4 9 enable = true; 5 10 settings.main = { 6 11 terminal = "ghostty"; 7 12 }; 13 + }; 14 + 15 + programs.niri.settings.binds = lib.mkIf config.desktop.launcher.enable { 16 + "Mod+R".action.spawn = "${lib.getExe pkgs.fuzzel}"; 8 17 }; 9 18 }
+2 -2
modules/desktop/wm/hyprlock.nix
··· 5 5 ... 6 6 }: 7 7 { 8 - config = lib.mkIf config.desktop.wm.enable { 8 + config = lib.mkIf config.desktop.hyprlock.enable { 9 9 services.hypridle = { 10 10 enable = true; 11 11 settings = { ··· 45 45 46 46 background = { 47 47 monitor = ""; 48 - path = "${config.desktop.wallpaper}"; 48 + path = "${config.desktop.wallpaper.image}"; 49 49 blur_passes = 0; 50 50 color = "$base"; 51 51 };
+1 -2
modules/desktop/wm/niri.nix
··· 48 48 }; 49 49 }; 50 50 51 - spawn-at-startup = [ { command = [ "systemctl --user restart waybar.service" ]; } ]; 51 + spawn-at-startup = [ ]; 52 52 53 53 layout = { 54 54 gaps = 16; ··· 168 168 { 169 169 "Mod+O".action = show-hotkey-overlay; 170 170 "Mod+Q".action.spawn = "${lib.getExe pkgs.ghostty}"; 171 - "Mod+R".action.spawn = "${lib.getExe pkgs.fuzzel}"; 172 171 "Mod+C".action.close-window = [ ]; 173 172 174 173 "Mod+Comma".action = consume-window-into-column;
+2 -2
modules/desktop/wm/wallpaper.nix
··· 5 5 ... 6 6 }: 7 7 { 8 - config = lib.mkIf config.desktop.wm.enable { 8 + config = lib.mkIf config.desktop.wallpaper.enable { 9 9 services.swww = { 10 10 enable = true; 11 11 }; ··· 15 15 command = [ 16 16 (lib.getExe' pkgs.swww "swww") 17 17 "img" 18 - "${config.desktop.wallpaper}" 18 + "${config.desktop.wallpaper.image}" 19 19 ]; 20 20 } 21 21 ];
+4 -1
modules/desktop/wm/waybar.nix
··· 6 6 ... 7 7 }: 8 8 { 9 - config = lib.mkIf config.desktop.wm.enable { 9 + config = lib.mkIf config.desktop.waybar.enable { 10 + programs.niri.settings.spawn-at-startup = [ 11 + { command = [ "systemctl --user restart waybar.service" ]; } 12 + ]; 10 13 programs.waybar = { 11 14 enable = true; 12 15 systemd.enable = true;