{ config, ... }: let cfg = config.modules.hyprland; in { wayland.windowManager.hyprland.settings = { "$mod" = "SUPER"; bind = [ # Misc "$mod, Return, exec, ${cfg.terminal}" "$mod, D, exec, walker" # Window management "$mod, C, killactive" "$mod, F, fullscreen, 1" "$mod, Space, togglefloating" # Focus "$mod, H, movefocus, l" "$mod, L, movefocus, r" "$mod, K, movefocus, u" "$mod, J, movefocus, d" # Move windows "$mod SHIFT, H, movewindow, l" "$mod SHIFT, L, movewindow, r" "$mod SHIFT, K, movewindow, u" "$mod SHIFT, J, movewindow, d" # Resize windows "$mod CTRL, H, resizeactive, -20 0" "$mod CTRL, L, resizeactive, 20 0" "$mod CTRL, K, resizeactive, 0 -20" "$mod CTRL, J, resizeactive, 0 20" # Workspaces "$mod, 1, workspace, 1" "$mod, 2, workspace, 2" "$mod, 3, workspace, 3" "$mod, 4, workspace, 4" "$mod, 5, workspace, 5" # Move to workspace "$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" ]; # Repeatable binds (hold key to keep changing) bindel = [ # Volume ", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+" ", XF86AudioLowerVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%-" # Brightness ", XF86MonBrightnessUp, exec, brightnessctl set +5%" ", XF86MonBrightnessDown, exec, brightnessctl set 5%-" ]; # Binds that also work while screen is locked bindl = [ ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" ", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" ]; bindm = [ "$mod, mouse:272, movewindow" "$mod, mouse:273, resizewindow" ]; }; }