104 lines
3.4 KiB
Nix

let
common = import ../../common.nix;
app = common.default;
in
{
# TODO binds to move focused window
wayland.windowManager.hyprland.settings = {
"$mainMod" = "SUPER";
"$shiftMod" = "$mainMod SHIFT";
"$ctrlMod" = "$mainMod CTRL";
"$menu" = "rofi -show drun";
bind = [
"$mainMod, Q, exec, ${app.terminal}"
"$mainMod, C, killactive,"
"$shiftMod, M, exit,"
"$mainMod, E, exec, ${app.fileManager}"
"$mainMod, V, togglefloating,"
"$mainMod, R, exec, $menu"
"$mainMod, P, pseudo," # dwindle
"$mainMod, J, togglesplit," # dwindle
"$mainMod, B, exec, ${app.browser}"
"$mainMod, L, exec, ${app.lockScreen}"
"$mainMod, K, exec, [float] ${app.calculator}"
"$mainMod, ESCAPE, exec, hyprpanel t dashboardmenu"
# Move focus with mainMod + arrow keys
"$mainMod, left, movefocus, l"
"$mainMod, right, movefocus, r"
"$mainMod, up, movefocus, u"
"$mainMod, down, movefocus, d"
# Move window with ctrl + mainMod + arrow keys
"$ctrlMod, left, movewindow, l"
"$ctrlMod, right, movewindow, r"
"$ctrlMod, up, movewindow, u"
"$ctrlMod, down, movewindow, d"
# Switch workspaces with mainMod + [0-9]
"$mainMod, 1, workspace, 1"
"$mainMod, 2, workspace, 2"
"$mainMod, 3, workspace, 3"
"$mainMod, 4, workspace, 4"
"$mainMod, 5, workspace, 5"
"$mainMod, 6, workspace, 6"
"$mainMod, 7, workspace, 7"
"$mainMod, 8, workspace, 8"
"$mainMod, 9, workspace, 9"
"$mainMod, 0, workspace, 10"
# Move active window to a workspace with mainMod + SHIFT + [0-9]
"$shiftMod, 1, movetoworkspace, 1"
"$shiftMod, 2, movetoworkspace, 2"
"$shiftMod, 3, movetoworkspace, 3"
"$shiftMod, 4, movetoworkspace, 4"
"$shiftMod, 5, movetoworkspace, 5"
"$shiftMod, 6, movetoworkspace, 6"
"$shiftMod, 7, movetoworkspace, 7"
"$shiftMod, 8, movetoworkspace, 8"
"$shiftMod, 9, movetoworkspace, 9"
"$shiftMod, 0, movetoworkspace, 10"
# Example special workspace (scratchpad)
"$mainMod, S, togglespecialworkspace, magic"
"$shiftMod, S, movetoworkspace, special:magic"
# Scroll through existing workspaces with mainMod + scroll
"$mainMod, mouse_down, workspace, e+1"
"$mainMod, mouse_up, workspace, e-1"
];
binde = [
# Resize the focused window
"$shiftMod, right, resizeactive, 20 0"
"$shiftMod, left, resizeactive, -20 0"
"$shiftMod, up, resizeactive, 0 -20"
"$shiftMod, down, resizeactive, 0 20"
];
bindm = [
# Move/resize windows with mainMod + LMB/RMB and dragging
"$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow"
];
bindl = [
", XF86AudioNext, exec, playerctl next"
", XF86AudioPause, exec, playerctl play-pause"
", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioPrev, exec, playerctl previous"
];
bindel = [
# Laptop multimedia keys for volume and LCD brightness
",XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
",XF86MonBrightnessUp, exec, brightnessctl s 10%+"
",XF86MonBrightnessDown, exec, brightnessctl s 10%-"
];
};
}