From a7b98f4f338595672b21f7fdf0889d78a19f7beb Mon Sep 17 00:00:00 2001 From: Silas Schöffel Date: Sun, 2 Jun 2024 14:28:50 +0200 Subject: hyprland: init module This is the home-manager module --- hm/default.nix | 2 +- hm/hyprland/default.nix | 191 ----------------------------------------- modules/hm/sils/default.nix | 1 + modules/hm/sils/hyprland.nix | 198 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 200 insertions(+), 192 deletions(-) delete mode 100644 hm/hyprland/default.nix create mode 100644 modules/hm/sils/hyprland.nix diff --git a/hm/default.nix b/hm/default.nix index 893d7e4..4a0e255 100644 --- a/hm/default.nix +++ b/hm/default.nix @@ -4,7 +4,6 @@ ./gpg ./gtk ./hyfetch - ./hyprland ./mako ./nixvim ./packages @@ -34,6 +33,7 @@ firefox.enable = true; foot.enable = true; git.enable = true; + hyprland.enable = true; jameica.enable = true; kdeconnect.enable = true; mail.enable = true; diff --git a/hm/hyprland/default.nix b/hm/hyprland/default.nix deleted file mode 100644 index d2e06a9..0000000 --- a/hm/hyprland/default.nix +++ /dev/null @@ -1,191 +0,0 @@ -{ - pkgs, - self, - ... -}: { - wayland.windowManager.hyprland = { - enable = true; - settings = { - # See https://wiki.hyprland.org/Configuring/Monitors/ - monitor = ",preferred,auto,auto"; - - # See https://wiki.hyprland.org/Configuring/Keywords/ for more - - # Execute your favorite apps at launch - # exec-once = waybar & hyprpaper & firefox - - # Source a file (multi-file configs) - # source = ~/.config/hypr/myColors.conf - - # Some default env vars. - env = "XCURSOR_SIZE,24"; - - # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ - input = { - kb_layout = "de,de"; - kb_variant = ",neo"; - kb_model = ""; - kb_options = "grp:win_space_toggle"; - kb_rules = ""; - - follow_mouse = "1"; - - touchpad = { - natural_scroll = "yes"; - }; - - sensitivity = "0"; # -1.0 - 1.0, 0 means no modification. - }; - - general = { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - - gaps_in = "1"; - gaps_out = "2"; - border_size = "1"; - #"col.active_border" = "rgba(000000cc)"; - #"col.inactive_border" = "rgba(595959aa)"; - - layout = "dwindle"; - }; - - decoration = { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - - inactive_opacity = "1"; - active_opacity = "1"; - rounding = "1"; - blur = { - enabled = false; - #size = "3"; - #passes = "1"; - #new_optimizations = "on"; - }; - - drop_shadow = "yes"; - shadow_range = "4"; - shadow_render_power = "3"; - #"col.shadow" = "rgba(1a1a1aee)"; - }; - - animations = { - enabled = "yes"; - - # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more - - bezier = "myBezier, 0.05, 0.9, 0.1, 1.05"; - - animation = [ - "windows, 1, 7, myBezier" - "windowsOut, 1, 7, default, popin 80%" - "border, 1, 10, default" - "borderangle, 1, 8, default" - "fade, 1, 7, default" - "workspaces, 1, 6, default" - ]; - }; - - dwindle = { - # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more - pseudotile = "yes"; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below - preserve_split = "yes"; # you probably want this - }; - - master = { - # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more - new_is_master = "true"; - }; - - gestures = { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - workspace_swipe = "off"; - }; - - # Example windowrule v1 - # windowrule = float, ^(kitty)$ - # Example windowrule v2 - # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ - # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more - - # See https://wiki.hyprland.org/Configuring/Keywords/ for more - "$mainMod" = "SUPER"; - - # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more - bind = [ - "$mainMod, T, exec, foot" - "$mainMod, C, killactive, " - "$mainMod, M, exit, " - "$mainMod, E, exec, dolphin " - "$mainMod, V, togglefloating, " - "$mainMod, R, exec, rofi -show drun" - "$mainMod, P, pseudo, " # dwindle - "$mainMod, J, togglesplit, " # dwindle - "$mainMod, L, exec, swaylock" # screenlock - ''$mainMod, S, exec, grim -l 0 -g "$(slurp)" - | wl-copy'' # screenshots - ''$mainMod, K, exec, zsh -exec "ssh-agent && keepassxc"'' # opens keepass after starting ssh-agent - '', code:102, exec, zsh -exec "ssh-agent && keepassxc"'' - - # Move focus with mainMod + arrow keys - "$mainMod, left, movefocus, l" - "$mainMod, right, movefocus, r" - "$mainMod, up, movefocus, u" - "$mainMod, down, movefocus, d" - - # Switch workspaces with mainMod + [0-9] - "$mainMod, 1, focusworkspaceoncurrentmonitor, 1" - "$mainMod, 2, focusworkspaceoncurrentmonitor, 2" - "$mainMod, 3, focusworkspaceoncurrentmonitor, 3" - "$mainMod, 4, focusworkspaceoncurrentmonitor, 4" - "$mainMod, 5, focusworkspaceoncurrentmonitor, 5" - "$mainMod, 6, focusworkspaceoncurrentmonitor, 6" - "$mainMod, 7, focusworkspaceoncurrentmonitor, 7" - "$mainMod, 8, focusworkspaceoncurrentmonitor, 8" - "$mainMod, 9, focusworkspaceoncurrentmonitor, 9" - "$mainMod, 0, focusworkspaceoncurrentmonitor, 10" - - # Move active window to a workspace with mainMod + SHIFT + [0-9] - "$mainMod SHIFT, 1, movetoworkspace, 1" - "$mainMod SHIFT, 2, movetoworkspace, 2" - "$mainMod SHIFT, 3, movetoworkspace, 3" - "$mainMod SHIFT, 4, movetoworkspace, 4" - "$mainMod SHIFT, 5, movetoworkspace, 5" - "$mainMod SHIFT, 6, movetoworkspace, 6" - "$mainMod SHIFT, 7, movetoworkspace, 7" - "$mainMod SHIFT, 8, movetoworkspace, 8" - "$mainMod SHIFT, 9, movetoworkspace, 9" - "$mainMod SHIFT, 0, movetoworkspace, 10" - - # Scroll through existing workspaces with mainMod + scroll - "$mainMod, mouse_down, workspace, e+1" - "$mainMod, mouse_up, workspace, e-1" - ]; - binde = [ - ",XF86MonBrightnessUp, exec, brightnessctl s +3%" - ",XF86MonBrightnessDown, exec, brightnessctl s 3%-" - ",XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle" - ",XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%" - ",XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%" - ",XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle" - - "ALT, A, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle" - "ALT SHIFT, A, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%" - "$mainMod, ALT, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%" - ]; - - # Move/resize windows with mainMod + LMB/RMB and dragging - bindm = [ - "$mainMod, mouse:272, movewindow" - "$mainMod, mouse:273, resizewindow" - ]; - #exec-once=bash ~/.config/hypr/start.sh - #exec-once=swww init & - exec-once = [ - #"${pkgs.nwg-panel}/bin/nwg-panel" - #"nm-applet --indicator" - #"${pkgs.waybar}/bin/waybar" - "${pkgs.mako}/bin/mako" - "${pkgs.swaybg}/bin/swaybg -i ${self}/files/wallpaper.jpg" - ]; - }; - }; -} diff --git a/modules/hm/sils/default.nix b/modules/hm/sils/default.nix index a10ed4e..cef49ac 100644 --- a/modules/hm/sils/default.nix +++ b/modules/hm/sils/default.nix @@ -6,6 +6,7 @@ ./firefox ./foot.nix ./git.nix + ./hyprland.nix ./jameica.nix ./kdeconnect.nix ./mail.nix diff --git a/modules/hm/sils/hyprland.nix b/modules/hm/sils/hyprland.nix new file mode 100644 index 0000000..d6ea17c --- /dev/null +++ b/modules/hm/sils/hyprland.nix @@ -0,0 +1,198 @@ +{ + config, + lib, + pkgs, + self, + ... +}: let + cfg = config.sils.hyprland; +in { + options.sils.hyprland.enable = lib.mkEnableOption "sils hyprland config"; + config = lib.mkIf cfg.enable { + wayland.windowManager.hyprland = { + enable = true; + settings = { + # See https://wiki.hyprland.org/Configuring/Monitors/ + monitor = ",preferred,auto,auto"; + + # See https://wiki.hyprland.org/Configuring/Keywords/ for more + + # Execute your favorite apps at launch + # exec-once = waybar & hyprpaper & firefox + + # Source a file (multi-file configs) + # source = ~/.config/hypr/myColors.conf + + # Some default env vars. + env = "XCURSOR_SIZE,24"; + + # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ + input = { + kb_layout = "de,de"; + kb_variant = ",neo"; + kb_model = ""; + kb_options = "grp:win_space_toggle"; + kb_rules = ""; + + follow_mouse = "1"; + + touchpad = { + natural_scroll = "yes"; + }; + + sensitivity = "0"; # -1.0 - 1.0, 0 means no modification. + }; + + general = { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = "1"; + gaps_out = "2"; + border_size = "1"; + #"col.active_border" = "rgba(000000cc)"; + #"col.inactive_border" = "rgba(595959aa)"; + + layout = "dwindle"; + }; + + decoration = { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + inactive_opacity = "1"; + active_opacity = "1"; + rounding = "1"; + blur = { + enabled = false; + #size = "3"; + #passes = "1"; + #new_optimizations = "on"; + }; + + drop_shadow = "yes"; + shadow_range = "4"; + shadow_render_power = "3"; + #"col.shadow" = "rgba(1a1a1aee)"; + }; + + animations = { + enabled = "yes"; + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = "myBezier, 0.05, 0.9, 0.1, 1.05"; + + animation = [ + "windows, 1, 7, myBezier" + "windowsOut, 1, 7, default, popin 80%" + "border, 1, 10, default" + "borderangle, 1, 8, default" + "fade, 1, 7, default" + "workspaces, 1, 6, default" + ]; + }; + + dwindle = { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = "yes"; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = "yes"; # you probably want this + }; + + master = { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = "true"; + }; + + gestures = { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = "off"; + }; + + # Example windowrule v1 + # windowrule = float, ^(kitty)$ + # Example windowrule v2 + # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ + # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + + # See https://wiki.hyprland.org/Configuring/Keywords/ for more + "$mainMod" = "SUPER"; + + # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more + bind = [ + "$mainMod, T, exec, foot" + "$mainMod, C, killactive, " + "$mainMod, M, exit, " + "$mainMod, E, exec, dolphin " + "$mainMod, V, togglefloating, " + "$mainMod, R, exec, rofi -show drun" + "$mainMod, P, pseudo, " # dwindle + "$mainMod, J, togglesplit, " # dwindle + "$mainMod, L, exec, swaylock" # screenlock + ''$mainMod, S, exec, grim -l 0 -g "$(slurp)" - | wl-copy'' # screenshots + ''$mainMod, K, exec, zsh -exec "ssh-agent && keepassxc"'' # opens keepass after starting ssh-agent + '', code:102, exec, zsh -exec "ssh-agent && keepassxc"'' + + # Move focus with mainMod + arrow keys + "$mainMod, left, movefocus, l" + "$mainMod, right, movefocus, r" + "$mainMod, up, movefocus, u" + "$mainMod, down, movefocus, d" + + # Switch workspaces with mainMod + [0-9] + "$mainMod, 1, focusworkspaceoncurrentmonitor, 1" + "$mainMod, 2, focusworkspaceoncurrentmonitor, 2" + "$mainMod, 3, focusworkspaceoncurrentmonitor, 3" + "$mainMod, 4, focusworkspaceoncurrentmonitor, 4" + "$mainMod, 5, focusworkspaceoncurrentmonitor, 5" + "$mainMod, 6, focusworkspaceoncurrentmonitor, 6" + "$mainMod, 7, focusworkspaceoncurrentmonitor, 7" + "$mainMod, 8, focusworkspaceoncurrentmonitor, 8" + "$mainMod, 9, focusworkspaceoncurrentmonitor, 9" + "$mainMod, 0, focusworkspaceoncurrentmonitor, 10" + + # Move active window to a workspace with mainMod + SHIFT + [0-9] + "$mainMod SHIFT, 1, movetoworkspace, 1" + "$mainMod SHIFT, 2, movetoworkspace, 2" + "$mainMod SHIFT, 3, movetoworkspace, 3" + "$mainMod SHIFT, 4, movetoworkspace, 4" + "$mainMod SHIFT, 5, movetoworkspace, 5" + "$mainMod SHIFT, 6, movetoworkspace, 6" + "$mainMod SHIFT, 7, movetoworkspace, 7" + "$mainMod SHIFT, 8, movetoworkspace, 8" + "$mainMod SHIFT, 9, movetoworkspace, 9" + "$mainMod SHIFT, 0, movetoworkspace, 10" + + # Scroll through existing workspaces with mainMod + scroll + "$mainMod, mouse_down, workspace, e+1" + "$mainMod, mouse_up, workspace, e-1" + ]; + binde = [ + ",XF86MonBrightnessUp, exec, brightnessctl s +3%" + ",XF86MonBrightnessDown, exec, brightnessctl s 3%-" + ",XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle" + ",XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%" + ",XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%" + ",XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle" + + "ALT, A, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle" + "ALT SHIFT, A, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%" + "$mainMod, ALT, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%" + ]; + + # Move/resize windows with mainMod + LMB/RMB and dragging + bindm = [ + "$mainMod, mouse:272, movewindow" + "$mainMod, mouse:273, resizewindow" + ]; + #exec-once=bash ~/.config/hypr/start.sh + #exec-once=swww init & + exec-once = [ + #"${pkgs.nwg-panel}/bin/nwg-panel" + #"nm-applet --indicator" + #"${pkgs.waybar}/bin/waybar" + "${pkgs.mako}/bin/mako" + "${pkgs.swaybg}/bin/swaybg -i ${self}/files/wallpaper.jpg" + ]; + }; + }; + }; +} -- cgit 1.4.1