diff --git a/home/.config/hypr/keybinds.conf b/home/.config/hypr/keybinds.conf index bae283e..23fccb0 100644 --- a/home/.config/hypr/keybinds.conf +++ b/home/.config/hypr/keybinds.conf @@ -4,16 +4,22 @@ $MOUSE_MMB = mouse:274 $MOUSE_EX1 = mouse:275 $MOUSE_EX2 = mouse:276 -# DE/WM control +##################### +### DE/WM CONTROL ### +##################### + bind = SUPER_SHIFT, Q, exec, menuquit bind = SUPER_CTRL, L, exec, loginctl lock-session bind = SUPER_SHIFT, L, exec, wlogout -p layer-shell bind = SUPER_SHIFT, T, exec, toggle-idle -# Programs +################ +### PROGRAMS ### +################ + bind = SUPER, R, exec, wofi --show drun bind = SUPER_SHIFT, Return, exec, wofi --show run -bind = SUPER_SHIFT, C, exec, clipman pick -t wofi +bind = SUPER_SHIFT, V, exec, clipman pick -t wofi bind = SUPER, Return, exec, kitty bind = SUPER, X, exec, pcmanfm-qt @@ -23,14 +29,20 @@ bind = SUPER, D, exec, discord bind = SUPER, C, exec, qalculate-gtk bind = , XF86Calculator, exec, qalculate-gtk -# Notifications +##################### +### NOTIFICATIONS ### +##################### + bind = CTRL, grave, exec, dunstctl close bind = CTRL_SHIFT, grave, exec, dunstctl close-all bind = CTRL, period, exec, dunstctl history-pop bind = CTRL_SHIFT, period, exec, dunstctl context bind = SUPER_SHIFT, D, exec, toggle-notifications -# Volume comtrol +###################### +### VOLUME CONTROL ### +###################### + binde = SUPER, Down, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05- binde = SUPER, Up, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+ binde = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05- @@ -38,18 +50,23 @@ binde = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05 bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle bind = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle -# Brightness control +########################## +### BRIGHTNESS CONTROL ### +########################## + binde = SUPER, Right, exec, brightness -i 5% -n binde = SUPER, Left, exec, brightness -d 5% -n binde = , XF86MonBrightnessUp, exec, brightness -i 5% -n binde = , XF86MonBrightnessDown, exec, brightness -d 5% -n +################### +### SCREENSHOTS ### +################### + # Screenshots (with custom screenshot script) $SCREENSHOT_FORMAT = "${XDG_SCREENSHOTS_DIR:-$HOME/Pictures/Screenshots}/Screenshot_$(date +%Y-%m-%d_%H-%M-%S).png" $SCREENSHOT_DELAY = 2000 -bind = , 642, exec, quick-record --notify toggle -bind = SUPER, 642, exec, quick-record toggle bind = ALT, Print, exec, wl-copy --type image/png "$(hyprpicker)" && notify-send 'Picked color' "$(wl-paste) (saved to clipboard)" bind = , Print, exec, screenshot --notify --copy --target area bind = SUPER, Print, exec, screenshot --notify --copy --target area --edit @@ -60,7 +77,15 @@ bind = SUPER_CTRL, Print, exec, screenshot --notify --copy --target area --delay bind = SUPER_SHIFT_CTRL, Print, exec, screenshot --notify --save $SCREENSHOT_FORMAT --target area --delay $SCREENSHOT_DELAY --edit # bind = , Print, exec, screenshot --save $SCREENSHOT_FORMAT --target all -# Active window +# XF86Favorites key for recording +# (don't question me, I had it free) +bind = , 164, exec, quick-record --notify toggle +bind = SUPER, 164, exec, quick-record toggle + +##################### +### ACTIVE WINDOW ### +##################### + bind = SUPER, W, killactive, bind = SUPER, F, togglefloating, bind = SUPER, Space, fullscreen, 0 @@ -70,34 +95,63 @@ bind = SUPER, P, exec, bash -c "if hyprctl activewindow | grep 'floating: 0'; th bind = SUPER_SHIFT, P, pseudo, bind = SUPER_SHIFT, S, layoutmsg, togglesplit -# Window groups +##################### +### WINDOW GROUPS ### +##################### + bind = SUPER, G, togglegroup, bind = ALT, tab, changegroupactive, f bind = ALT, grave, changegroupactive, b -# Special workspace (scratchpad) +###################################### +### SPECIAL WORKSPACE (SCRATCHPAD) ### +###################################### + bind = ALT, grave, movetoworkspace, special bind = SUPER, grave, togglespecialworkspace, -# Move window focus -bind = SUPER, h, movefocus, l -bind = SUPER, l, movefocus, r -bind = SUPER, k, movefocus, u -bind = SUPER, j, movefocus, d +################################################################ +### OVERRIDE SPLIT DIRECTION FOR NEXT WINDOW (MANUAL TILING) ### +################################################################ -# Move active window in direction -bind = SUPER_ALT, h, movewindow, l -bind = SUPER_ALT, l, movewindow, r -bind = SUPER_ALT, k, movewindow, u -bind = SUPER_ALT, j, movewindow, d - -# Override the split direction for next opened winodw bind = SUPER_ALT, left, layoutmsg, preselect l bind = SUPER_ALT, right, layoutmsg, preselect r bind = SUPER_ALT, up, layoutmsg, preselect u bind = SUPER_ALT, down, layoutmsg, preselect d -# Move between workspaces, swapping to current monitor (like xmonad) +######################### +### MOVE WINDOW FOCUS ### +######################### + +bind = SUPER, h, movefocus, l +bind = SUPER, l, movefocus, r +bind = SUPER, k, movefocus, u +bind = SUPER, j, movefocus, d + +####################################### +### MOVE ACTIVE WINDOW IN DIRECTION ### +####################################### + +bind = SUPER_ALT, h, movewindow, l +bind = SUPER_ALT, l, movewindow, r +bind = SUPER_ALT, k, movewindow, u +bind = SUPER_ALT, j, movewindow, d + +####################################### +### MOVE FLOATING WINDOWS ### +####################################### + +$myMoveSize = 100 +$myMove = sh .config/hypr/scripts/move-window.sh $myMoveSize +bind = SUPER_ALT, left, exec, $myMove l +bind = SUPER_ALT, right, exec, $myMove r +bind = SUPER_ALT, up, exec, $myMove u +bind = SUPER_ALT, down, exec, $myMove d + +###################################################### +### SWITCH WORKSPACE (SWAPPING TO CURRENT MONITOR) ### +###################################################### + bind = SUPER, 1, exec, swap-workspace 1 bind = SUPER, 2, exec, swap-workspace 2 bind = SUPER, 3, exec, swap-workspace 3 @@ -108,7 +162,10 @@ bind = SUPER, 7, exec, swap-workspace 7 bind = SUPER, 8, exec, swap-workspace 8 bind = SUPER, 9, exec, swap-workspace 9 -# Move windows to workspaces +################################ +### MOVE WINDOW TO WORKSPACE ### +################################ + bind = SUPER_SHIFT, 1, movetoworkspacesilent, 1 bind = SUPER_SHIFT, 2, movetoworkspacesilent, 2 bind = SUPER_SHIFT, 3, movetoworkspacesilent, 3 @@ -119,7 +176,10 @@ bind = SUPER_SHIFT, 7, movetoworkspacesilent, 7 bind = SUPER_SHIFT, 8, movetoworkspacesilent, 8 bind = SUPER_SHIFT, 9, movetoworkspacesilent, 9 -# Move windows to workspaces and focus it there +########################################### +### MOVE WINDOW TO WORKSPACE + FOCUS IT ### +########################################### + bind = ALT, 1, movetoworkspace, 1 bind = ALT, 2, movetoworkspace, 2 bind = ALT, 3, movetoworkspace, 3 @@ -130,21 +190,32 @@ bind = ALT, 7, movetoworkspace, 7 bind = ALT, 8, movetoworkspace, 8 bind = ALT, 9, movetoworkspace, 9 -# Cycle workspaces (relative movement) +############################################ +### CYCLE WORKSPACES (RELATIVE MOVEMENT) ### +############################################ + bind = SUPER, mouse_down, workspace, +1 bind = SUPER, mouse_up, workspace, -1 bind = SUPER, bracketleft, workspace, -1 bind = SUPER, bracketright, workspace, +1 -# Cycle monitors + +########################################## +### CYCLE MONITORS (RELATIVE MOVEMENT) ### +########################################## + bind = SUPER_SHIFT, bracketleft, focusmonitor, -1 bind = SUPER_SHIFT, bracketright, focusmonitor, +1 -# Mouse window resizing +####################### +### WINDOW RESIZING ### +####################### + +## Mouse window resizing bindm = SUPER, $MOUSE_LMB, movewindow bindm = SUPER, $MOUSE_RMB, resizewindow -# Quick keyboard window resizing +## Quick keyboard resizing binde = ALT, right, resizeactive, 10 0 binde = ALT, left, resizeactive, -10 0 binde = ALT, up, resizeactive, 0 -10 @@ -154,7 +225,7 @@ binde = ALT, K, resizeactive, 0 -10 binde = ALT, J, resizeactive, 0 10 binde = ALT, L, resizeactive, 10 0 -# Precise keyboard window resizing (group) +## Precise keyboard resizing (submap) bind = SUPER, slash, submap, resize submap = resize @@ -198,15 +269,22 @@ bind = , return, submap, reset bind = SUPER, slash, submap, reset submap = reset -# Global keybinds (passing keys to other programs) +######################################################## +### GLOBAL KEYBINDS (PASSING KEYS TO OTHER PROGRAMS) ### +######################################################## + bind = CTRL, F10, pass, ^(com\.obsproject\.Studio)$ bind = CTRL, F10, pass, ^(com\.obsproject\.Studio)$ +####################### +### ISOLATION GROUP ### +####################### + # Isolating group to prevent keybind capturing (for games etc) -# SUPER + Fn + semicol -bind = SUPER, code:94, exec, hyprctl dispatch submap isolate && notify-send "Keybind isolation" "Keybind isolation on" +# SUPER + Fn + F12 (Favorites) +bind = SUPER, XF86Favorites, exec, hyprctl dispatch submap isolate && notify-send "Keybind isolation" "Keybind isolation on" submap = isolate -bind = SUPER, code:94, exec, hyprctl dispatch submap reset && notify-send "Keybind isolation" "Keybind isolation off" +bind = SUPER, XF86Favorites, exec, hyprctl dispatch submap reset && notify-send "Keybind isolation" "Keybind isolation off" submap = reset # vi: ft=hypr