Update keyboard shortcuts script to show all runtime keybinds (#70)

* feat: Add a keyboard shortcuts helper

This commit:

* Changes keybinds to use `bindd` and adds descriptions for each one
* Changes the keybinds script to use `hyprctl binds` to inspect runtime keybinds
and generate a wofi menu to search/inspect keybinds

* Rely on 'order defined' for sorting

Using `hyprctl binds` lets us get the binds in the order they're
defined. This lets us be deliberate about what keybinds we want to show
up at the top of the presented window.

* Skip cache file for keybinds

* Strip extra newline causing double spacing
This commit is contained in:
Nathan Anderson
2025-07-13 20:17:48 -04:00
committed by GitHub
parent 41b5893d32
commit 6433511873
8 changed files with 148 additions and 131 deletions

View File

@ -1,58 +1,58 @@
# Close window
bind = SUPER, W, killactive,
bindd = SUPER, W, Close Window, killactive,
# Control tiling
bind = SUPER, J, togglesplit, # dwindle
bind = SUPER, P, pseudo, # dwindle
bind = SUPER, V, togglefloating,
bindd = SUPER, J, Toggle Split, togglesplit, # dwindle
bindd = SUPER, P, Toggle Pseudo, pseudo # dwindle
bindd = SUPER, V, Toggle Floating, togglefloating,
bindd = SUPER CTRL, F, Toggle Fullscreen, fullscreen
# Move focus with mainMod + arrow keys
bind = SUPER, left, movefocus, l
bind = SUPER, right, movefocus, r
bind = SUPER, up, movefocus, u
bind = SUPER, down, movefocus, d
bindd = SUPER, left, Move Focus Left, movefocus, l
bindd = SUPER, right, Move Focus Right, movefocus, r
bindd = SUPER, up, Move Focus Up, movefocus, u
bindd = SUPER, down, Move Focus Down, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = SUPER, code:10, workspace, 1
bind = SUPER, code:11, workspace, 2
bind = SUPER, code:12, workspace, 3
bind = SUPER, code:13, workspace, 4
bind = SUPER, code:14, workspace, 5
bind = SUPER, code:15, workspace, 6
bind = SUPER, code:16, workspace, 7
bind = SUPER, code:17, workspace, 8
bind = SUPER, code:18, workspace, 9
bind = SUPER, code:19, workspace, 10
bindd = SUPER, code:10, Switch to workspace 1, workspace, 1
bindd = SUPER, code:11, Switch to workspace 2, workspace, 2
bindd = SUPER, code:12, Switch to workspace 3, workspace, 3
bindd = SUPER, code:13, Switch to workspace 4, workspace, 4
bindd = SUPER, code:14, Switch to workspace 5, workspace, 5
bindd = SUPER, code:15, Switch to workspace 6, workspace, 6
bindd = SUPER, code:16, Switch to workspace 7, workspace, 7
bindd = SUPER, code:17, Switch to workspace 8, workspace, 8
bindd = SUPER, code:18, Switch to workspace 9, workspace, 9
bindd = SUPER, code:19, Switch to workspace 10, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = SUPER SHIFT, code:10, movetoworkspace, 1
bind = SUPER SHIFT, code:11, movetoworkspace, 2
bind = SUPER SHIFT, code:12, movetoworkspace, 3
bind = SUPER SHIFT, code:13, movetoworkspace, 4
bind = SUPER SHIFT, code:14, movetoworkspace, 5
bind = SUPER SHIFT, code:15, movetoworkspace, 6
bind = SUPER SHIFT, code:16, movetoworkspace, 7
bind = SUPER SHIFT, code:17, movetoworkspace, 8
bind = SUPER SHIFT, code:18, movetoworkspace, 9
bind = SUPER SHIFT, code:19, movetoworkspace, 10
bindd = SUPER SHIFT, code:10, Move Active Window to workspace 1, movetoworkspace, 1
bindd = SUPER SHIFT, code:11, Move Active Window to workspace 2, movetoworkspace, 2
bindd = SUPER SHIFT, code:12, Move Active Window to workspace 3, movetoworkspace, 3
bindd = SUPER SHIFT, code:13, Move Active Window to workspace 4, movetoworkspace, 4
bindd = SUPER SHIFT, code:14, Move Active Window to workspace 5, movetoworkspace, 5
bindd = SUPER SHIFT, code:15, Move Active Window to workspace 6, movetoworkspace, 6
bindd = SUPER SHIFT, code:16, Move Active Window to workspace 7, movetoworkspace, 7
bindd = SUPER SHIFT, code:17, Move Active Window to workspace 8, movetoworkspace, 8
bindd = SUPER SHIFT, code:18, Move Active Window to workspace 9, movetoworkspace, 9
bindd = SUPER SHIFT, code:19, Move Active Window to workspace 10, movetoworkspace, 10
# Swap active window with the one next to it with mainMod + SHIFT + arrow keys
bind = SUPER SHIFT, left, swapwindow, l
bind = SUPER SHIFT, right, swapwindow, r
bind = SUPER SHIFT, up, swapwindow, u
bind = SUPER SHIFT, down, swapwindow, d
bindd = SUPER SHIFT, left, Swap Active Window with Left, swapwindow, l
bindd = SUPER SHIFT, right, Swap Active Window with Right, swapwindow, r
bindd = SUPER SHIFT, up, Swap Active Window with Up, swapwindow, u
bindd = SUPER SHIFT, down, Swap Active Window with Down, swapwindow, d
# Resize active window
bind = SUPER, minus, resizeactive, -100 0
bind = SUPER, equal, resizeactive, 100 0
bind = SUPER SHIFT, minus, resizeactive, 0 -100
bind = SUPER SHIFT, equal, resizeactive, 0 100
bindd = SUPER, minus, Shrink Window Horizontally, resizeactive, -100 0
bindd = SUPER, equal, Grow Window Horizontally, resizeactive, 100 0
bindd = SUPER SHIFT, minus, Shrink Window Vertically, resizeactive, 0 -100
bindd = SUPER SHIFT, equal, Grow Window Vertically, resizeactive, 0 100
# Scroll through existing workspaces with mainMod + scroll
bind = SUPER, mouse_down, workspace, e+1
bind = SUPER, mouse_up, workspace, e-1
bindd = SUPER, mouse_down, Scroll Down though workspaces, workspace, e+1
bindd = SUPER, mouse_up, Scroll Up through workspaces, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = SUPER, mouse:272, movewindow
bindm = SUPER, mouse:273, resizewindow
bindmd = SUPER, mouse:272, Move Windows, movewindow
bindmd = SUPER, mouse:273, Resize Windows, resizewindow