feat: add keybind cheatsheet plugin (#64)

* feat: add keybind cheatsheet

* docs: refresh keybind cheatsheet preview

* docs: use official generated keybind thumbnail

* feat(keybind-cheatsheet): preload cached snapshots

Move parser and cache ownership into an event-driven data service so the panel opens from a prepared last-known-good snapshot. Document the plugin's inspiration and independent v5 implementation.
This commit is contained in:
cheerfulScumbag
2026-07-21 19:50:47 -04:00
committed by GitHub
parent 17f7b819d3
commit 2a1efe0468
19 changed files with 2985 additions and 0 deletions
+6
View File
@@ -0,0 +1,6 @@
[
{"locked":false,"mouse":false,"release":false,"repeat":false,"has_description":true,"modmask":64,"submap":"","key":"T","keycode":0,"description":"Terminal","dispatcher":"exec","arg":"foot"},
{"locked":false,"mouse":false,"release":false,"repeat":false,"has_description":true,"modmask":64,"submap":"","key":"1","keycode":0,"description":"Workspace 1","dispatcher":"workspace","arg":"1"},
{"locked":false,"mouse":false,"release":false,"repeat":false,"has_description":true,"modmask":0,"submap":"","key":"XF86AudioMute","keycode":0,"description":"Mute","dispatcher":"exec","arg":"wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"},
{"locked":false,"mouse":false,"release":false,"repeat":false,"has_description":false,"modmask":64,"submap":"","key":"Q","keycode":0,"description":"","dispatcher":"killactive","arg":""}
]
+9
View File
@@ -0,0 +1,9 @@
$mainMod = SUPER
source = ./parts/*.conf
# 1. Applications
bind = $mainMod, T, exec, foot #"Terminal"
bindm = $mainMod, mouse:272, movewindow #"Move window"
# 2. Window Management
bind = $mainMod SHIFT, Q, killactive, #"Close window"
+9
View File
@@ -0,0 +1,9 @@
-- 1. Applications
Hyprland.config.bind("SUPER, T", launch_terminal, { description = "Terminal" })
-- 2. Workspaces
for i = 1, 9 do
Hyprland.config.bind("SUPER, " .. i, workspace, { description = "Workspace " .. i })
end
require("parts.media")
@@ -0,0 +1,2 @@
-- 3. Media
Hyprland.config.bind(", XF86AudioMute", mute, { desc = "Mute" })
@@ -0,0 +1,3 @@
# 3. Workspaces
binde = $mainMod, 1, workspace, 1 #"Workspace 1"
bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
+14
View File
@@ -0,0 +1,14 @@
# Applications
bind=SUPER,T,spawn,foot #"Terminal"
bind=SUPER,B,spawn,firefox #"Browser"
source=./nested.conf
source-optional=./missing.conf
source=./parts/*.conf
# Media
bind=NONE,XF86AudioRaiseVolume,spawn,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
axisbind=SUPER,UP,viewtoleft_have_client
mousebind=SUPER,btn_left,moveresize,curmove #"Move window"
gesturebind=NONE,left,3,focusdir,left #"Focus left"
switchbind=fold,spawn,swaylock #"Lock on close"
+3
View File
@@ -0,0 +1,3 @@
# Window Management
bind=SUPER,Q,killclient #"Close window"
source=./main.conf
@@ -0,0 +1,2 @@
# Workspaces
bind=SUPER,1,view,1 #"Workspace 1"
+12
View File
@@ -0,0 +1,12 @@
include "./parts/*.kdl"
binds {
// #"Applications"
Mod+T hotkey-overlay-title="Terminal" { spawn "foot"; }
Mod+B { spawn "firefox"; }
// #"Window Management"
Mod+Q hotkey-overlay-title="Close window" {
close-window;
}
}
@@ -0,0 +1,5 @@
binds {
// #"Workspaces"
Mod+1 hotkey-overlay-title="Workspace 1" { focus-workspace 1; }
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
}