mirror of
https://github.com/ItsDrike/nixdots
synced 2024-11-13 03:07:18 +00:00
ItsDrike
9d15387d5e
This introduces xmonad like workspace swapping, i.e. if the workspaces is already focused on another monitor, a swap will occur, moving the workspace from the other monitor to the currently focused monitor and replacing it with the workspace originally focused on this monitor (i.e. swapping them). If we're only using 1 monitor, or the workspace isn't focused on any monitor, this will behave exactly like regular workspace focus command.
175 lines
4.5 KiB
Nix
175 lines
4.5 KiB
Nix
{
|
|
wayland.windowManager.hyprland.settings = {
|
|
"$MOUSE_LMB" = "mouse:272";
|
|
"$MOUSE_RMB" = "mouse:273";
|
|
"$MOUSE_MMB" = "mouse:274";
|
|
"$MOUSE_EX1" = "mouse:275";
|
|
"$MOUSE_EX2" = "mouse:276";
|
|
|
|
"$XF86Favorites" = "164";
|
|
|
|
bind = [
|
|
#
|
|
# Active window
|
|
#
|
|
"SUPER, W, killactive,"
|
|
"SUPER, F, togglefloating,"
|
|
"SUPER, Space, fullscreen, 0"
|
|
"SUPER, Space, fullscreen, 1" # maximize
|
|
"SUPER_SHIFT, S, layoutmsg, togglesplit"
|
|
|
|
#
|
|
# Programs
|
|
#
|
|
"SUPER, Return, exec, kitty"
|
|
# TODO: requires programs
|
|
|
|
#
|
|
# DE/WM Control programs
|
|
#
|
|
# TODO: Requires programs
|
|
"SUPER_SHIFT, L, exec, wlogout -p layer-shell"
|
|
|
|
#
|
|
# Screenshots
|
|
#
|
|
# TODO: requires script
|
|
|
|
#
|
|
# Brightness control
|
|
#
|
|
# TODO: requires script
|
|
|
|
|
|
#
|
|
# Audio/Volume control
|
|
#
|
|
"SUPER, Down, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-"
|
|
"SUPER, Up, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+"
|
|
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-"
|
|
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+"
|
|
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
|
", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
|
|
|
#
|
|
# Notifications
|
|
#
|
|
# TODO: Requires notification daemon (dunst?)
|
|
|
|
|
|
#
|
|
# Window groups
|
|
#
|
|
"SUPER, G, togglegroup,"
|
|
"ALT, tab, changegroupactive, f"
|
|
"ALT, grave, changegroupactive, b"
|
|
|
|
#
|
|
# Special workspace (scratchpad)
|
|
#
|
|
"ALT, grave, movetoworkspace, special"
|
|
"SUPER, grave, togglespecialworkspace,"
|
|
|
|
#
|
|
# Move window focus
|
|
#
|
|
"SUPER, h, movefocus, l"
|
|
"SUPER, l, movefocus, r"
|
|
"SUPER, k, movefocus, u"
|
|
"SUPER, j, movefocus, d"
|
|
|
|
#
|
|
# Move active window in direction
|
|
#
|
|
"SUPER_ALT, h, movewindow, l"
|
|
"SUPER_ALT, l, movewindow, r"
|
|
"SUPER_ALT, k, movewindow, u"
|
|
"SUPER_ALT, j, movewindow, d"
|
|
|
|
#
|
|
# Move floating windows
|
|
#
|
|
# TODO: requires script (move-window.sh)
|
|
|
|
#
|
|
# Override split direction for next window (manual tiling)
|
|
#
|
|
"SUPER_ALT, left, layoutmsg, preselect l"
|
|
"SUPER_ALT, right, layoutmsg, preselect r"
|
|
"SUPER_ALT, up, layoutmsg, preselect u"
|
|
"SUPER_ALT, down, layoutmsg, preselect d"
|
|
|
|
#
|
|
# Switch workspace (swapping to current monitor)
|
|
#
|
|
"SUPER, 1, exec, hyprland-swap-workspace 1"
|
|
"SUPER, 2, exec, hyprland-swap-workspace 2"
|
|
"SUPER, 3, exec, hyprland-swap-workspace 3"
|
|
"SUPER, 4, exec, hyprland-swap-workspace 4"
|
|
"SUPER, 5, exec, hyprland-swap-workspace 5"
|
|
"SUPER, 6, exec, hyprland-swap-workspace 6"
|
|
"SUPER, 7, exec, hyprland-swap-workspace 7"
|
|
"SUPER, 8, exec, hyprland-swap-workspace 8"
|
|
"SUPER, 9, exec, hyprland-swap-workspace 9"
|
|
|
|
#
|
|
# Move window to workspace
|
|
#
|
|
"SUPER_SHIFT, 1, movetoworkspacesilent, 1"
|
|
"SUPER_SHIFT, 2, movetoworkspacesilent, 2"
|
|
"SUPER_SHIFT, 3, movetoworkspacesilent, 3"
|
|
"SUPER_SHIFT, 4, movetoworkspacesilent, 4"
|
|
"SUPER_SHIFT, 5, movetoworkspacesilent, 5"
|
|
"SUPER_SHIFT, 6, movetoworkspacesilent, 6"
|
|
"SUPER_SHIFT, 7, movetoworkspacesilent, 7"
|
|
"SUPER_SHIFT, 8, movetoworkspacesilent, 8"
|
|
"SUPER_SHIFT, 9, movetoworkspacesilent, 9"
|
|
|
|
#
|
|
# Move window to workspace + focus it
|
|
#
|
|
"ALT, 1, movetoworkspace, 1"
|
|
"ALT, 2, movetoworkspace, 2"
|
|
"ALT, 3, movetoworkspace, 3"
|
|
"ALT, 4, movetoworkspace, 4"
|
|
"ALT, 5, movetoworkspace, 5"
|
|
"ALT, 6, movetoworkspace, 6"
|
|
"ALT, 7, movetoworkspace, 7"
|
|
"ALT, 8, movetoworkspace, 8"
|
|
"ALT, 9, movetoworkspace, 9"
|
|
|
|
#
|
|
# Cycle workspaces (relative movement)
|
|
#
|
|
"SUPER, mouse_down, workspace, +1"
|
|
"SUPER, mouse_up, workspace, -1"
|
|
"SUPER, bracketright, workspace, +1"
|
|
"SUPER, bracketleft, workspace, -1"
|
|
|
|
#
|
|
# Cycle monitors (relative movement)
|
|
#
|
|
"SUPER_SHIFT, mouse_down, focusmonitor, +1"
|
|
"SUPER_SHIFT, mouse_up, focusmonitor, -1"
|
|
"SUPER_SHIFT, bracketright, focusmonitor, +1"
|
|
"SUPER_SHIFT, bracketleft, focusmonitor, -1"
|
|
|
|
#
|
|
# Window resizing
|
|
#
|
|
# TODO: Submaps + binde
|
|
|
|
#
|
|
# Isolation group
|
|
#
|
|
# TODO: Submaps
|
|
];
|
|
|
|
bindm = [
|
|
# Mouse window resizing
|
|
"SUPER, $MOUSE_LMB, movewindow"
|
|
"SUPER, $MOUSE_RMB, resizewindow"
|
|
];
|
|
};
|
|
}
|