Keybindings

Every real bind is tagged directly in the Hyprland config it's defined in, so the on-screen cheat sheet can't drift far from what's actually bound.

General

KeybindAction
Super+TOpen terminal
Super+CClose focused window
Super+MExit the Hyprland session
Super+EOpen file manager
Super+BOpen browser
Super+VToggle floating
Super+FToggle fullscreen
Super+Shift+TToggle split direction
Super+Ctrl+LLock screen
Super+PPick a color, copied to the clipboard
Super+DToggle do-not-disturb
KeybindAction
Super (tap)Open the main menu
Super+AOpen the audio menu
Super+NOpen the network menu
Super+Shift+BOpen the Bluetooth menu
Super+/Show this cheat sheet

Windows and workspaces

KeybindAction
Super+H/J/K/LFocus window left/down/up/right
Super+Shift+H/J/K/LMove window left/down/up/right
Super+0-9Switch to workspace N
Super+Shift+0-9Move window to workspace N
Super+ScrollNext/previous workspace
Super+Drag (left button)Move window
Super+Drag (right button)Resize window

Screenshots and capture

KeybindAction
Print ScreenScreenshot the full output to the clipboard
Super+SScreenshot the full output to a file and the clipboard, without grabbing keyboard focus (region capture below does, since it shells out to slurp; this doesn't)
Super+Shift+SScreenshot a region to the clipboard
Super+OOCR a screen region to the clipboard
Super+Shift+OScan a QR code or barcode in a region to the clipboard

Media and volume

KeybindAction
Volume Up/Volume DownRaise/lower volume 5%
MuteToggle mute
Mic MuteToggle mic mute
Brightness Up/Brightness DownRaise/lower brightness 10%
Media Next/Media PreviousSkip track
Media Play/PausePlay or pause

The cheat sheet

Super+/ opens a read-only fuzzel list built by grepping the Hyprland config for -- kb: <combo> | <description> comments, one per real bind, so the list can't list a bind that doesn't exist or omit one that does. It has a short manual tail for fuzzel's own vim-style navigation keys (Ctrl+J/Ctrl+K to move between entries, Ctrl+H/Ctrl+L to move the cursor, Ctrl+D/Ctrl+U to page), since those come from fuzzel's own config and have no Hyprland bind to tag.

Edit this page on GitHub