diff --git a/home/modules/default.nix b/home/modules/default.nix index 03abc5e8..7d0b89b8 100644 --- a/home/modules/default.nix +++ b/home/modules/default.nix @@ -1,36 +1,29 @@ {userModules, ...}: { imports = [ - "${userModules}/wm/hyprland" - "${userModules}/wm/utils/hypridle" - "${userModules}/wm/utils/hyprlock" - "${userModules}/wm/utils/hyprpaper" - - "${userModules}/browsers/firefox" "${userModules}/browsers/chromium" - + "${userModules}/browsers/firefox" "${userModules}/comm/discord" - - "${userModules}/gaming/lutris" - "${userModules}/gaming/mangohud" - # "${userModules}/create" "${userModules}/devtools/neovim" "${userModules}/devtools/vscode" - # "${userModules}/media" + "${userModules}/gaming/lutris" + "${userModules}/gaming/mangohud" "${userModules}/terminal/alacritty" "${userModules}/terminal/foot" "${userModules}/terminal/kitty" "${userModules}/terminal/zellij" - "${userModules}/userd/sops" "${userModules}/userd/copyq" "${userModules}/userd/mako" + "${userModules}/userd/sops" "${userModules}/userd/udiskie" - # "${userModules}/userd" "${userModules}/utils/ags" "${userModules}/utils/anyrun" + "${userModules}/utils/misc" "${userModules}/utils/rofi" "${userModules}/utils/waybar" "${userModules}/utils/yazi" - "${userModules}/utils/misc" - # "${userModules}/wm" + "${userModules}/wm/hyprland" + "${userModules}/wm/utils/hypridle" + "${userModules}/wm/utils/hyprlock" + "${userModules}/wm/utils/hyprpaper" ]; } diff --git a/home/modules/wm/hyprland/adam/appearance.nix b/home/modules/wm/hyprland/adam/appearance.nix index 00a86bc3..899dab2c 100644 --- a/home/modules/wm/hyprland/adam/appearance.nix +++ b/home/modules/wm/hyprland/adam/appearance.nix @@ -1,48 +1,60 @@ { - wayland.windowManager.hyprland.settings = { - general = { - gaps_in = 2; - gaps_out = 4; - border_size = 3; - #col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg - #col.inactive_border = rgba(595959aa) - "col.active_border" = "rgb(4c7a5d)"; # rgba(b16286ee) 45deg - "col.inactive_border" = "rgb(504945)"; - layout = "dwindle"; - allow_tearing = false; - resize_on_border = true; - }; - decoration = { - rounding = 0; - blur = { - enabled = true; - size = 8; - passes = 1; - vibrancy = 0.1696; + lib, + config, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.wm.hyprland.adam.appearance; +in { + options = { + modules.wm.hyprland.adam.appearance.enable = mkEnableOption "Enables appearance settings in Hyprland"; + }; + config = mkIf cfg.enable { + wayland.windowManager.hyprland.settings = { + general = { + gaps_in = 2; + gaps_out = 4; + border_size = 3; + #col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + #col.inactive_border = rgba(595959aa) + "col.active_border" = "rgb(4c7a5d)"; # rgba(b16286ee) 45deg + "col.inactive_border" = "rgb(504945)"; + layout = "dwindle"; + allow_tearing = false; + resize_on_border = true; + }; + decoration = { + rounding = 0; + blur = { + enabled = true; + size = 8; + passes = 1; + vibrancy = 0.1696; + }; + drop_shadow = false; + shadow_range = 4; + shadow_render_power = 3; + # col.shadow = rgba(1a1a1aee) + }; + animations = { + enabled = true; + bezier = [ + "myBezier,0.05, 0.9, 0.1, 1.05" + ]; + animation = [ + "windows, 1, 3, myBezier" + "windowsOut, 1, 3, default, popin 80%" + "border, 1, 3, default" + "borderangle, 1, 8, default" + "fade, 1, 7, default" + "workspaces, 1, 3, default" + ]; + }; + dwindle = { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = true; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true; # you probably want this }; - drop_shadow = false; - shadow_range = 4; - shadow_render_power = 3; - # col.shadow = rgba(1a1a1aee) - }; - animations = { - enabled = true; - bezier = [ - "myBezier,0.05, 0.9, 0.1, 1.05" - ]; - animation = [ - "windows, 1, 3, myBezier" - "windowsOut, 1, 3, default, popin 80%" - "border, 1, 3, default" - "borderangle, 1, 8, default" - "fade, 1, 7, default" - "workspaces, 1, 3, default" - ]; - }; - dwindle = { - # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more - pseudotile = true; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below - preserve_split = true; # you probably want this }; }; } diff --git a/home/modules/wm/hyprland/adam/default.nix b/home/modules/wm/hyprland/adam/default.nix index b6854ae5..200a1a7b 100644 --- a/home/modules/wm/hyprland/adam/default.nix +++ b/home/modules/wm/hyprland/adam/default.nix @@ -1,16 +1,37 @@ -{inputs, ...}: { +{ + inputs, + config, + lib, + pkgs, + userModules, + ... +}: let + inherit (lib) mkIf mkEnableOption mkDefault; + cfg = config.modules.wm.hyprland.adam; +in { imports = [ - inputs.hyprland.homeManagerModules.default - ./appearance.nix - ./inputs.nix - ./keybinds.nix - ./rules.nix - ./startup.nix + "${userModules}/wm/hyprland/adam/appearance.nix" + "${userModules}/wm/hyprland/adam/inputs.nix" + "${userModules}/wm/hyprland/adam/keybinds.nix" + "${userModules}/wm/hyprland/adam/rules.nix" + "${userModules}/wm/hyprland/adam/startup.nix" ]; - config = { + + options = { + modules.wm.hyprland.adam.enable = mkEnableOption "Enable Hyprland"; + }; + + config = mkIf cfg.enable { + modules.wm.hyprland.adam = { + appearance.enable = mkDefault cfg.enable; + inputs.enable = mkDefault cfg.enable; + keybinds.enable = mkDefault cfg.enable; + rules.enable = mkDefault cfg.enable; + startup.enable = mkDefault cfg.enable; + }; wayland.windowManager.hyprland = { enable = true; - xwayland.enable = true; + package = inputs.hyprland.packages.${pkgs.system}.default; systemd = { variables = ["--all"]; extraCommands = [ diff --git a/home/modules/wm/hyprland/adam/inputs.nix b/home/modules/wm/hyprland/adam/inputs.nix index 81592b5e..fd15e073 100644 --- a/home/modules/wm/hyprland/adam/inputs.nix +++ b/home/modules/wm/hyprland/adam/inputs.nix @@ -1,75 +1,87 @@ { - wayland.windowManager.hyprland.settings = { - monitor = [ - "DP-3, 2560x1440@143.86, auto, auto" - "eDP-1,1920x1200@60.02,auto,1" - ]; - env = [ - "QT_WAYLAND_DISABLE_WINDOWDECORATION,1" - ]; + lib, + config, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.wm.hyprland.adam.inputs; +in { + options = { + modules.wm.hyprland.adam.inputs.enable = mkEnableOption "Enables input settings in Hyprland"; + }; + config = mkIf cfg.enable { + wayland.windowManager.hyprland.settings = { + monitor = [ + "DP-3, 2560x1440@143.86, auto, auto" + "eDP-1,1920x1200@60.02,auto,1" + ]; + env = [ + "QT_WAYLAND_DISABLE_WINDOWDECORATION,1" + ]; - input = { - follow_mouse = 1; - accel_profile = "flat"; - sensitivity = 0; # -1.0 - 1.0, 0 means no modification. + input = { + follow_mouse = 1; + accel_profile = "flat"; + sensitivity = 0; # -1.0 - 1.0, 0 means no modification. - touchpad = { - natural_scroll = true; - disable_while_typing = true; - clickfinger_behavior = true; - scroll_factor = 0.5; + touchpad = { + natural_scroll = true; + disable_while_typing = true; + clickfinger_behavior = true; + scroll_factor = 0.5; + }; }; + # Desktop keyboard + device = [ + { + name = "pfu-limited-hhkb-hybrid"; + kb_layout = "hhkbse"; + kb_options = "lv3:rwin_switch"; + } + { + name = "hhkb-hybrid_1-keyboard"; + kb_layout = "hhkbse"; + kb_options = "lv3:rwin_switch"; + } + # Laptop keyboard + { + name = "at-translated-set-2-keyboard"; + kb_layout = "se"; + kb_options = "ctrl:swapcaps"; + } + ]; + gestures = { + workspace_swipe = true; + workspace_swipe_distance = 400; + workspace_swipe_fingers = 3; + workspace_swipe_cancel_ratio = 0.2; + workspace_swipe_min_speed_to_force = 5; + workspace_swipe_direction_lock = true; + workspace_swipe_direction_lock_threshold = 10; + workspace_swipe_create_new = true; + }; + misc = { + vrr = 2; + mouse_move_enables_dpms = 1; + key_press_enables_dpms = 0; + force_default_wallpaper = 0; + disable_hyprland_logo = true; + disable_splash_rendering = true; + disable_autoreload = true; + }; + xwayland = { + force_zero_scaling = false; + }; + render = { + # explicit_sync = 2; + # explicit_sync_kms = 2; + # direct_scanout = false; + }; + # cursor = { + # no_hardware_cursors = true; + # no_break_fs_vrr = true; + # min_refresh_rate = 24; + # }; }; - # Desktop keyboard - device = [ - { - name = "pfu-limited-hhkb-hybrid"; - kb_layout = "hhkbse"; - kb_options = "lv3:rwin_switch"; - } - { - name = "hhkb-hybrid_1-keyboard"; - kb_layout = "hhkbse"; - kb_options = "lv3:rwin_switch"; - } - # Laptop keyboard - { - name = "at-translated-set-2-keyboard"; - kb_layout = "se"; - kb_options = "ctrl:swapcaps"; - } - ]; - gestures = { - workspace_swipe = true; - workspace_swipe_distance = 400; - workspace_swipe_fingers = 3; - workspace_swipe_cancel_ratio = 0.2; - workspace_swipe_min_speed_to_force = 5; - workspace_swipe_direction_lock = true; - workspace_swipe_direction_lock_threshold = 10; - workspace_swipe_create_new = true; - }; - misc = { - vrr = 2; - mouse_move_enables_dpms = 1; - key_press_enables_dpms = 0; - force_default_wallpaper = 0; - disable_hyprland_logo = true; - disable_splash_rendering = true; - disable_autoreload = true; - }; - xwayland = { - force_zero_scaling = false; - }; - render = { - # explicit_sync = 2; - # explicit_sync_kms = 2; - # direct_scanout = false; - }; - # cursor = { - # no_hardware_cursors = true; - # no_break_fs_vrr = true; - # min_refresh_rate = 24; - # }; }; } diff --git a/home/modules/wm/hyprland/adam/keybinds.nix b/home/modules/wm/hyprland/adam/keybinds.nix index 9cac4510..00ebbf99 100644 --- a/home/modules/wm/hyprland/adam/keybinds.nix +++ b/home/modules/wm/hyprland/adam/keybinds.nix @@ -1,101 +1,116 @@ -# KEYBINDS { - wayland.windowManager.hyprland.settings = { - "$terminal" = "kitty"; - "$fileManager" = "thunar"; - "$passwordManager" = "keepassxc"; - "$menu" = "pkill anyrun || anyrun | xargs hyprctl dispatch exec --"; - "$menuw" = "pkill anyrun || anyrun | xargs hyprctl dispatch exec --"; - "$browser" = "firefox-nightly"; - "$browserinc" = "firefox-nightly --private-window"; - "$yazi" = "alacritty -e yazi"; + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.wm.hyprland.adam.keybinds; +in { + options = { + modules.wm.hyprland.adam.keybinds.enable = mkEnableOption "Enables keybind settings in Hyprland"; + }; + config = mkIf cfg.enable { + wayland.windowManager.hyprland.settings = { + "$terminal" = "kitty"; + "$fileManager" = "thunar"; + "$passwordManager" = "keepassxc"; + "$menu" = "pkill anyrun || anyrun | xargs hyprctl dispatch exec --"; + "$menuw" = "pkill anyrun || anyrun | xargs hyprctl dispatch exec --"; + "$browser" = "firefox"; + "$browserinc" = "firefox --private-window"; + "$yazi" = "alacritty -e yazi"; - # See https://wiki.hyprland.org/Configuring/Keywords/ for more - "$mod" = "SUPER"; + # See https://wiki.hyprland.org/Configuring/Keywords/ for more + "$mod" = "ALT_L"; - bind = [ - # Custom binds - "$mod SHIFT, B, exec, pkill -SIGUSR2 waybar" # Reload waybar + bind = let + grimblast = lib.getExe pkgs.grimblast; + tesseract = lib.getExe pkgs.tesseract; + notify-send = lib.getExe' pkgs.libnotify "notify-send"; + in [ + # Custom binds + "$mod SHIFT, B, exec, pkill -SIGUSR2 waybar" # Reload waybar - # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more - "$mod, A, exec, pkill -SIGUSR1 waybar" - "$mod, T, exec, $terminal" - "$mod, W, exec, $browser" - "$mod, K, exec, $passwordManager" - "$mod SHIFT, W, exec, $browserinc" - "$mod, Q, killactive," - #bind = $mod, M, exec, hyprctl dispatch exit - #bind = $mod, E, exec, $fileManager - "$mod, E, exec, $fileManager" - "$mod SHIFT, E, exec, $yazi" - "$mod, F, fullscreen," - "$mod SHIFT, F, togglefloating," - "$mod, SPACE, exec, $menu" - "$mod, P, pseudo," # dwindle - "$mod, J, togglesplit," # dwindle - "$mod, C, exec, hyprctl dispatch exec copyq toggle" - "$mod, TAB, exec, $menuw" + # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more + "$mod, A, exec, pkill -SIGUSR1 waybar" + "$mod, T, exec, $terminal" + "$mod, W, exec, $browser" + "$mod, K, exec, $passwordManager" + "$mod SHIFT, W, exec, $browserinc" + "$mod, Q, killactive," + #bind = $mod, M, exec, hyprctl dispatch exit + #bind = $mod, E, exec, $fileManager + "$mod, E, exec, $fileManager" + "$mod SHIFT, E, exec, $yazi" + "$mod, F, fullscreen," + "$mod SHIFT, F, togglefloating," + "$mod, SPACE, exec, $menu" + "$mod, P, pseudo," # dwindle + "$mod, J, togglesplit," # dwindle + "$mod, C, exec, hyprctl dispatch exec copyq toggle" + "$mod, TAB, exec, $menuw" - # Move focus with mainMod + arrow keys - "$mod, left, movefocus, l" - "$mod, right, movefocus, r" - "$mod, up, movefocus, u" - "$mod, down, movefocus, d" + # Move focus with mainMod + arrow keys + "$mod, left, movefocus, l" + "$mod, right, movefocus, r" + "$mod, up, movefocus, u" + "$mod, down, movefocus, d" - # Switch workspaces with mainMod + [0-9] - "$mod, 1, workspace, 1" - "$mod, 2, workspace, 2" - "$mod, 3, workspace, 3" - "$mod, 4, workspace, 4" - "$mod, 5, workspace, 5" - "$mod, 6, workspace, 6" - "$mod, 7, workspace, 7" - "$mod, 8, workspace, 8" - "$mod, 9, workspace, 9" - "$mod, 0, workspace, 10" + # Switch workspaces with mainMod + [0-9] + "$mod, 1, workspace, 1" + "$mod, 2, workspace, 2" + "$mod, 3, workspace, 3" + "$mod, 4, workspace, 4" + "$mod, 5, workspace, 5" + "$mod, 6, workspace, 6" + "$mod, 7, workspace, 7" + "$mod, 8, workspace, 8" + "$mod, 9, workspace, 9" + "$mod, 0, workspace, 10" - # Move active window to a workspace with mainMod + SHIFT + [0-9] - "$mod SHIFT, 1, movetoworkspace, 1" - "$mod SHIFT, 2, movetoworkspace, 2" - "$mod SHIFT, 3, movetoworkspace, 3" - "$mod SHIFT, 4, movetoworkspace, 4" - "$mod SHIFT, 5, movetoworkspace, 5" - "$mod SHIFT, 6, movetoworkspace, 6" - "$mod SHIFT, 7, movetoworkspace, 7" - "$mod SHIFT, 8, movetoworkspace, 8" - "$mod SHIFT, 9, movetoworkspace, 9" - "$mod SHIFT, 0, movetoworkspace, 10" + # Move active window to a workspace with mainMod + SHIFT + [0-9] + "$mod SHIFT, 1, movetoworkspace, 1" + "$mod SHIFT, 2, movetoworkspace, 2" + "$mod SHIFT, 3, movetoworkspace, 3" + "$mod SHIFT, 4, movetoworkspace, 4" + "$mod SHIFT, 5, movetoworkspace, 5" + "$mod SHIFT, 6, movetoworkspace, 6" + "$mod SHIFT, 7, movetoworkspace, 7" + "$mod SHIFT, 8, movetoworkspace, 8" + "$mod SHIFT, 9, movetoworkspace, 9" + "$mod SHIFT, 0, movetoworkspace, 10" - # Laptop controls - ",XF86AudioLowerVolume, exec, pamixer -d 5" - ",XF86AudioRaiseVolume, exec, pamixer -i 5" - ",XF86AudioMute, exec, pamixer -m" - ",XF86AudioMicMute, exec, pactl -- set-source-mute 0 toggle" - ",XF86MonBrightnessDown, exec, brightnessctl s 10%-" - ",XF86MonBrightnessUp, exec, brightnessctl s +10%" + # Laptop controls + ",XF86AudioLowerVolume, exec, pamixer -d 5" + ",XF86AudioRaiseVolume, exec, pamixer -i 5" + ",XF86AudioMute, exec, pamixer -m" + ",XF86AudioMicMute, exec, pactl -- set-source-mute 0 toggle" + ",XF86MonBrightnessDown, exec, brightnessctl s 10%-" + ",XF86MonBrightnessUp, exec, brightnessctl s +10%" - "$mod, XF86MonBrightnessUp, exec, hyprctl dispatch dpms on" - "$mod, XF86MonBrightnessDown, exec, hyprctl dispatch dpms off" + "$mod, XF86MonBrightnessUp, exec, hyprctl dispatch dpms on" + "$mod, XF86MonBrightnessDown, exec, hyprctl dispatch dpms off" - # Screenshot a window - "$mod, F10, exec, hyprshot -m window" - # Screenshot a monitor - ", F10, exec, hyprshot -m output" - # Screenshot a region - "$mod SHIFT, F10, exec, hyprshot -m region" + # Screenshotting + ",Print,exec,${grimblast} --notify --freeze copysave area" + "SHIFT,Print,exec,${grimblast} --notify --freeze copysave output" + # To OCR + "ALT,Print,exec,${grimblast} --freeze save area - | ${tesseract} - - | wl-copy && ${notify-send} -t 3000 'OCR result copied to buffer'" - # Example special workspace (scratchpad) - "$mod, S, togglespecialworkspace, magic" - "$mod SHIFT, S, movetoworkspace, special:magic" + # Example special workspace (scratchpad) + "$mod, S, togglespecialworkspace, magic" + "$mod SHIFT, S, movetoworkspace, special:magic" - # Scroll through existing workspaces with mainMod + scroll - # bind = $mod, mouse_down, workspace, e+1 - # bind = $mod, mouse_up, workspace, e-1 - ]; - # Move/resize windows with mainMod + LMB/RMB and dragging - bindm = [ - "$mod, mouse:272, movewindow" - "$mod, mouse:273, resizewindow" - ]; + # Scroll through existing workspaces with mainMod + scroll + # bind = $mod, mouse_down, workspace, e+1 + # bind = $mod, mouse_up, workspace, e-1 + ]; + # Move/resize windows with mainMod + LMB/RMB and dragging + bindm = [ + "$mod, mouse:272, movewindow" + "$mod, mouse:273, resizewindow" + ]; + }; }; } diff --git a/home/modules/wm/hyprland/adam/rules.nix b/home/modules/wm/hyprland/adam/rules.nix index 1bf709c4..1e9550fb 100644 --- a/home/modules/wm/hyprland/adam/rules.nix +++ b/home/modules/wm/hyprland/adam/rules.nix @@ -1,44 +1,56 @@ { - wayland.windowManager.hyprland.settings = { - # CALCURSE SETTINGS - windowrulev2 = [ - "float,initialTitle:(floatcal)" - "size 843 650,initialTitle:(floatcal)" - "move 100%-w-20 40,initialTitle:(floatcal)" - #windowrulev2 = move 1708 32,class:(floatcal) + lib, + config, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.wm.hyprland.adam.rules; +in { + options = { + modules.wm.hyprland.toothpick.adam.enable = mkEnableOption "Enables window rule settings in Hyprland"; + }; + config = mkIf cfg.enable { + wayland.windowManager.hyprland.settings = { + # CALCURSE SETTINGS + windowrulev2 = [ + "float,initialTitle:(floatcal)" + "size 843 650,initialTitle:(floatcal)" + "move 100%-w-20 40,initialTitle:(floatcal)" + #windowrulev2 = move 1708 32,class:(floatcal) - # RANGER/NNN SETTINGS - "float,class:(floatranger)" - "float,class:(floatnnn)" - #windowrulev2 = size 843 650,class:(floatranger) - #windowrulev2 = move 1708 32,class:(floatranger) - #windowrulev2 = move 1708 32;size 843 650;dimaround;float,class:^(kitty)$,title:^(kitty)$ - # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more - "suppressevent maximize, class:.* # You'll probably like this." - #windowrulev2 = noshadow, floating:0 - "float,class:^(org.keepassxc.KeePassXC)$" - "center,class:^(org.keepassxc.KeePassXC)$" - "float,class:^(imv)$" - "float,class:^(com.github.hluk.copyq)$" - "float,class:^(blueman-manager)$" - "center,class:^(nwg-look)$" - "float,class:^(nwg-look)$" - "float,class:^(Lxappearance)$" - "float,class:(pavucontrol)$" - "move 100%-w-20 40,class:(pavucontrol)$" - "float,class:^(polkit-gnome-authentication-agent-1)$" - "float,class:^(org.gnome.Calculator)$" - "size 741 585,class:(pavucontrol)$" - "float,class:^(cnst.test)$" - "float,class:^(org.corectrl.CoreCtrl)$" - "float,class:^(feh)$" - "float,class:^(com.example.gtk-adieux)$" - ]; - windowrule = [ - "center, ^(xarchiver)$" - "float, ^(xarchiver)$" - "float, ^(org.gnome.FileRoller)$" - "float, ^(org.freedesktop.impl.portal.desktop.kde)$" - ]; + # RANGER/NNN SETTINGS + "float,class:(floatranger)" + "float,class:(floatnnn)" + #windowrulev2 = size 843 650,class:(floatranger) + #windowrulev2 = move 1708 32,class:(floatranger) + #windowrulev2 = move 1708 32;size 843 650;dimaround;float,class:^(kitty)$,title:^(kitty)$ + # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + "suppressevent maximize, class:.* # You'll probably like this." + #windowrulev2 = noshadow, floating:0 + "float,class:^(org.keepassxc.KeePassXC)$" + "center,class:^(org.keepassxc.KeePassXC)$" + "float,class:^(imv)$" + "float,class:^(com.github.hluk.copyq)$" + "float,class:^(blueman-manager)$" + "center,class:^(nwg-look)$" + "float,class:^(nwg-look)$" + "float,class:^(Lxappearance)$" + "float,class:(pavucontrol)$" + "move 100%-w-20 40,class:(pavucontrol)$" + "float,class:^(polkit-gnome-authentication-agent-1)$" + "float,class:^(org.gnome.Calculator)$" + "size 741 585,class:(pavucontrol)$" + "float,class:^(cnst.test)$" + "float,class:^(org.corectrl.CoreCtrl)$" + "float,class:^(feh)$" + "float,class:^(com.example.gtk-adieux)$" + ]; + windowrule = [ + "center, ^(xarchiver)$" + "float, ^(xarchiver)$" + "float, ^(org.gnome.FileRoller)$" + "float, ^(org.freedesktop.impl.portal.desktop.kde)$" + ]; + }; }; } diff --git a/home/modules/wm/hyprland/adam/startup.nix b/home/modules/wm/hyprland/adam/startup.nix index b7105e5f..997f2b4a 100644 --- a/home/modules/wm/hyprland/adam/startup.nix +++ b/home/modules/wm/hyprland/adam/startup.nix @@ -1,20 +1,32 @@ { - wayland.windowManager.hyprland.settings = { - exec-once = [ - # STARTUP - # exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP - "systemctl --user start polkit-gnome-authentication-agent-1" - # exec-once = lxqt-policykit-agent & - "waybar" - "pamixer --set-volume 50" - "blueman-applet & udiskie -Nt" - "nm-applet --indicator" - "mullvad-vpn" - # exec-once = swaybg -i ~/media/images/wallpaper.png - "wl-clip-persist --clipboard regular --all-mime-type-regex '^(?!x-kde-passwordManagerHint).+'" - # exec-once = hyprctl dispatch exec "sleep 4s && copyq --start-server" - "hyprctl dispatch exec 'sleep 5s && keepassxc'" - "hyprctl dispatch exec 'sleep 3s && solaar -w hide'" - ]; + lib, + config, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.wm.hyprland.adam.startup; +in { + options = { + modules.wm.hyprland.adam.startup.enable = mkEnableOption "Enables startup settings in Hyprland"; + }; + config = mkIf cfg.enable { + wayland.windowManager.hyprland.settings = { + exec-once = [ + # STARTUP + # exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP + "systemctl --user start polkit-gnome-authentication-agent-1" + # exec-once = lxqt-policykit-agent & + "waybar" + "pamixer --set-volume 50" + "blueman-applet & udiskie -Nt" + "nm-applet --indicator" + "mullvad-vpn" + # exec-once = swaybg -i ~/media/images/wallpaper.png + "wl-clip-persist --clipboard regular --all-mime-type-regex '^(?!x-kde-passwordManagerHint).+'" + # exec-once = hyprctl dispatch exec "sleep 4s && copyq --start-server" + "hyprctl dispatch exec 'sleep 5s && keepassxc'" + "hyprctl dispatch exec 'sleep 3s && solaar -w hide'" + ]; + }; }; } diff --git a/home/modules/wm/hyprland/default.nix b/home/modules/wm/hyprland/default.nix index 4f8afedd..b5aa4f30 100644 --- a/home/modules/wm/hyprland/default.nix +++ b/home/modules/wm/hyprland/default.nix @@ -2,6 +2,6 @@ imports = [ "${userModules}/wm/hyprland/cnst" "${userModules}/wm/hyprland/toothpick" - # "${userModules}/wm/hyprland/adam" + "${userModules}/wm/hyprland/adam" ]; } diff --git a/home/users/adam/modules.nix b/home/users/adam/modules.nix index 7b310fa6..918dba00 100644 --- a/home/users/adam/modules.nix +++ b/home/users/adam/modules.nix @@ -1,28 +1,16 @@ { modules = { - wm = { - hyprland = { - cnst.enable = true; - # toothpick.enable = false; - # adam.enable = false; - }; - utils = { - hypridle.enable = true; - hyprlock.enable = true; - hyprpaper.enable = true; - }; - }; browsers = { firefox.enable = true; chromium.enable = false; }; + comm = { + discord.enable = true; + }; devtools = { neovim.enable = true; vscode.enable = false; }; - comm = { - discord.enable = true; - }; gaming = { lutris.enable = false; mangohud.enable = false; @@ -33,6 +21,12 @@ kitty.enable = true; zellij.enable = false; }; + userd = { + sops.enable = false; + copyq.enable = true; + mako.enable = true; + udiskie.enable = true; + }; utils = { ags.enable = false; anyrun.enable = false; @@ -41,11 +35,17 @@ yazi.enable = true; misc.enable = true; }; - userd = { - sops.enable = true; - copyq.enable = true; - mako.enable = true; - udiskie.enable = true; + wm = { + hyprland = { + cnst.enable = false; + toothpick.enable = false; + adam.enable = true; + }; + utils = { + hypridle.enable = true; + hyprlock.enable = true; + hyprpaper.enable = true; + }; }; }; } diff --git a/home/users/cnst/modules.nix b/home/users/cnst/modules.nix index 7b310fa6..7f30eca6 100644 --- a/home/users/cnst/modules.nix +++ b/home/users/cnst/modules.nix @@ -1,28 +1,16 @@ { modules = { - wm = { - hyprland = { - cnst.enable = true; - # toothpick.enable = false; - # adam.enable = false; - }; - utils = { - hypridle.enable = true; - hyprlock.enable = true; - hyprpaper.enable = true; - }; - }; browsers = { firefox.enable = true; chromium.enable = false; }; + comm = { + discord.enable = true; + }; devtools = { neovim.enable = true; vscode.enable = false; }; - comm = { - discord.enable = true; - }; gaming = { lutris.enable = false; mangohud.enable = false; @@ -33,6 +21,12 @@ kitty.enable = true; zellij.enable = false; }; + userd = { + sops.enable = true; + copyq.enable = true; + mako.enable = true; + udiskie.enable = true; + }; utils = { ags.enable = false; anyrun.enable = false; @@ -41,11 +35,17 @@ yazi.enable = true; misc.enable = true; }; - userd = { - sops.enable = true; - copyq.enable = true; - mako.enable = true; - udiskie.enable = true; + wm = { + hyprland = { + cnst.enable = true; + toothpick.enable = false; + adam.enable = false; + }; + utils = { + hypridle.enable = true; + hyprlock.enable = true; + hyprpaper.enable = true; + }; }; }; } diff --git a/home/users/toothpick/modules.nix b/home/users/toothpick/modules.nix index b48f98b4..4b3b62fa 100644 --- a/home/users/toothpick/modules.nix +++ b/home/users/toothpick/modules.nix @@ -1,28 +1,16 @@ { modules = { - wm = { - hyprland = { - cnst.enable = false; - toothpick.enable = true; - # adam.enable = false; - }; - utils = { - hypridle.enable = true; - hyprlock.enable = true; - hyprpaper.enable = true; - }; - }; browsers = { firefox.enable = true; chromium.enable = false; }; + comm = { + discord.enable = true; + }; devtools = { neovim.enable = true; vscode.enable = true; }; - comm = { - discord.enable = true; - }; gaming = { lutris.enable = false; mangohud.enable = false; @@ -33,6 +21,12 @@ kitty.enable = true; zellij.enable = false; }; + userd = { + sops.enable = false; + copyq.enable = true; + mako.enable = true; + udiskie.enable = true; + }; utils = { ags.enable = false; anyrun.enable = false; @@ -41,11 +35,17 @@ yazi.enable = true; misc.enable = true; }; - userd = { - sops.enable = false; - copyq.enable = true; - mako.enable = true; - udiskie.enable = true; + wm = { + hyprland = { + cnst.enable = false; + toothpick.enable = true; + adam.enable = false; + }; + utils = { + hypridle.enable = true; + hyprlock.enable = true; + hyprpaper.enable = true; + }; }; }; } diff --git a/hosts/adampad/modules.nix b/hosts/adampad/modules.nix index e719bcca..b43b1f88 100644 --- a/hosts/adampad/modules.nix +++ b/hosts/adampad/modules.nix @@ -1,14 +1,5 @@ { modules = { - network = { - enable = true; - hostName = "adampad"; - interfaces = { - "enp7s0" = { - allowedTCPPorts = [22 80 443]; - }; - }; - }; gaming = { steam.enable = false; gamescope.enable = false; @@ -22,12 +13,30 @@ gnome.enable = false; hyprland.enable = true; }; - utils = { - android.enable = true; - anyrun.enable = true; - corectrl.enable = false; - microfetch.enable = true; - nix-ld.enable = false; + hardware = { + bluetooth.enable = true; + logitech.enable = false; + graphics = { + amd.enable = true; + nvidia.enable = false; + }; + }; + network = { + enable = true; + hostName = "adampad"; + interfaces = { + "enp7s0" = { + allowedTCPPorts = [22 80 443]; + }; + }; + }; + studio = { + blender = { + enable = false; + hip = false; + }; + gimp.enable = false; + inkscape.enable = false; }; sysd = { blueman.enable = true; @@ -46,21 +55,12 @@ udisks.enable = true; xserver.amd.enable = true; }; - hardware = { - bluetooth.enable = true; - logitech.enable = false; - graphics = { - amd.enable = true; - nvidia.enable = false; - }; - }; - studio = { - blender = { - enable = false; - hip = false; - }; - gimp.enable = false; - inkscape.enable = false; + utils = { + android.enable = true; + anyrun.enable = true; + corectrl.enable = false; + microfetch.enable = true; + nix-ld.enable = false; }; }; } diff --git a/hosts/cnix/modules.nix b/hosts/cnix/modules.nix index b126e342..ce0d0aa4 100644 --- a/hosts/cnix/modules.nix +++ b/hosts/cnix/modules.nix @@ -1,14 +1,5 @@ { modules = { - network = { - enable = true; - hostName = "cnix"; - interfaces = { - "enp7s0" = { - allowedTCPPorts = [22 80 443]; - }; - }; - }; gaming = { steam.enable = true; gamescope.enable = true; @@ -22,12 +13,30 @@ gnome.enable = false; hyprland.enable = true; }; - utils = { - android.enable = true; - anyrun.enable = true; - corectrl.enable = true; - microfetch.enable = true; - nix-ld.enable = false; + hardware = { + bluetooth.enable = true; + logitech.enable = true; + graphics = { + amd.enable = true; + nvidia.enable = false; + }; + }; + network = { + enable = true; + hostName = "cnix"; + interfaces = { + "enp7s0" = { + allowedTCPPorts = [22 80 443]; + }; + }; + }; + studio = { + blender = { + enable = false; + hip = false; + }; + gimp.enable = true; + inkscape.enable = true; }; sysd = { blueman.enable = true; @@ -46,21 +55,12 @@ udisks.enable = true; xserver.amd.hhkbse.enable = true; }; - hardware = { - bluetooth.enable = true; - logitech.enable = true; - graphics = { - amd.enable = true; - nvidia.enable = false; - }; - }; - studio = { - blender = { - enable = false; - hip = false; - }; - gimp.enable = true; - inkscape.enable = true; + utils = { + android.enable = true; + anyrun.enable = true; + corectrl.enable = true; + microfetch.enable = true; + nix-ld.enable = false; }; }; } diff --git a/hosts/toothpc/modules.nix b/hosts/toothpc/modules.nix index fd80ef4b..eb1e147e 100644 --- a/hosts/toothpc/modules.nix +++ b/hosts/toothpc/modules.nix @@ -1,14 +1,5 @@ { modules = { - network = { - enable = true; - hostName = "toothpc"; - interfaces = { - "enp4s0" = { - allowedTCPPorts = [22 80 443]; - }; - }; - }; gaming = { steam.enable = true; gamescope.enable = true; @@ -22,12 +13,30 @@ gnome.enable = false; hyprland.enable = true; }; - utils = { - android.enable = false; - anyrun.enable = true; - corectrl.enable = true; - microfetch.enable = true; - nix-ld.enable = false; + hardware = { + bluetooth.enable = false; + logitech.enable = true; + graphics = { + amd.enable = false; + nvidia.enable = true; + }; + }; + network = { + enable = true; + hostName = "toothpc"; + interfaces = { + "enp4s0" = { + allowedTCPPorts = [22 80 443]; + }; + }; + }; + studio = { + blender = { + enable = false; + hip = false; + }; + gimp.enable = true; + inkscape.enable = true; }; sysd = { blueman.enable = false; @@ -46,21 +55,12 @@ udisks.enable = true; xserver.nvidia.enable = true; }; - hardware = { - bluetooth.enable = false; - logitech.enable = true; - graphics = { - amd.enable = false; - nvidia.enable = true; - }; - }; - studio = { - blender = { - enable = false; - hip = false; - }; - gimp.enable = true; - inkscape.enable = true; + utils = { + android.enable = true; + anyrun.enable = true; + corectrl.enable = true; + microfetch.enable = true; + nix-ld.enable = false; }; }; } diff --git a/system/modules/default.nix b/system/modules/default.nix index cc9a38ce..0ab2290c 100644 --- a/system/modules/default.nix +++ b/system/modules/default.nix @@ -1,17 +1,19 @@ {systemModules, ...}: { imports = [ - "${systemModules}/network" "${systemModules}/gaming/gamemode" "${systemModules}/gaming/gamescope" - "${systemModules}/gaming/steam" "${systemModules}/gaming/lutris" + "${systemModules}/gaming/steam" "${systemModules}/gui/gnome" "${systemModules}/gui/hyprland" - "${systemModules}/utils/android" - "${systemModules}/utils/anyrun" - "${systemModules}/utils/corectrl" - "${systemModules}/utils/microfetch" - "${systemModules}/utils/nix-ld" + "${systemModules}/hardware/bluetooth" + "${systemModules}/hardware/graphics/amd" + "${systemModules}/hardware/graphics/nvidia" + "${systemModules}/hardware/logitech" + "${systemModules}/network" + "${systemModules}/studio/blender" + "${systemModules}/studio/gimp" + "${systemModules}/studio/inkscape" "${systemModules}/sysd/blueman" "${systemModules}/sysd/dbus" "${systemModules}/sysd/fwupd" @@ -29,12 +31,10 @@ "${systemModules}/sysd/xserver/amd" "${systemModules}/sysd/xserver/amd/hhkbse" "${systemModules}/sysd/xserver/nvidia" - "${systemModules}/hardware/graphics/amd" - "${systemModules}/hardware/graphics/nvidia" - "${systemModules}/hardware/bluetooth" - "${systemModules}/hardware/logitech" - "${systemModules}/studio/gimp" - "${systemModules}/studio/inkscape" - "${systemModules}/studio/blender" + "${systemModules}/utils/android" + "${systemModules}/utils/anyrun" + "${systemModules}/utils/corectrl" + "${systemModules}/utils/microfetch" + "${systemModules}/utils/nix-ld" ]; }