nixos/modules/home/hyprland/binds.nix

77 lines
1.9 KiB
Nix

{
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"
];
};
}