2026-02-28 16:19:58 +00:00
# ==========================
# Media
# ==========================
# Only display the OSD on the currently focused monitor
2026-03-06 19:39:49 +00:00
$osdclient = swayosd-client --monitor "$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')"
2026-02-28 16:19:58 +00:00
# Laptop multimedia keys for volume and LCD brightness (with OSD)
2026-03-06 19:39:49 +00:00
bindeld = ,XF86AudioRaiseVolume, Volume up, exec, $osdclient --output-volume raise
bindeld = ,XF86AudioLowerVolume, Volume down, exec, $osdclient --output-volume lower
bindeld = ,XF86AudioMute, Mute, exec, $osdclient --output-volume mute-toggle
bindeld = ,XF86AudioMicMute, Mute microphone, exec, $osdclient --input-volume mute-toggle
bindeld = ,XF86MonBrightnessUp, Brightness up, exec, station-brightness-display +5%
bindeld = ,XF86MonBrightnessDown, Brightness down, exec, station-brightness-display 5%-
bindeld = ,XF86KbdBrightnessUp, Keyboard brightness up, exec, station-brightness-keyboard up
bindeld = ,XF86KbdBrightnessDown, Keyboard brightness down, exec, station-brightness-keyboard down
bindld = ,XF86KbdLightOnOff, Keyboard backlight cycle, exec, station-brightness-keyboard cycle
2026-02-28 16:19:58 +00:00
# Precise 1% multimedia adjustments with Alt modifier
2026-03-06 19:39:49 +00:00
bindeld = ALT, XF86AudioRaiseVolume, Volume up precise, exec, $osdclient --output-volume +1
bindeld = ALT, XF86AudioLowerVolume, Volume down precise, exec, $osdclient --output-volume -1
2026-03-06 21:09:52 +00:00
bindeld = ALT, XF86MonBrightnessUp, Brightness up precise, exec, station-brightness-display +1%
bindeld = ALT, XF86MonBrightnessDown, Brightness down precise, exec, station-brightness-display 1%-
2026-02-28 16:19:58 +00:00
# Requires playerctl
2026-03-06 19:39:49 +00:00
bindld = , XF86AudioNext, Next track, exec, $osdclient --playerctl next
bindld = , XF86AudioPause, Pause, exec, $osdclient --playerctl play-pause
bindld = , XF86AudioPlay, Play, exec, $osdclient --playerctl play-pause
bindld = , XF86AudioPrev, Previous track, exec, $osdclient --playerctl previous
2026-02-28 16:19:58 +00:00
# Switch audio output with Super + Mute
2026-03-06 21:09:52 +00:00
bindld = SUPER, XF86AudioMute, Switch audio output, exec, station-cmd-audio-switch
2026-02-28 16:19:58 +00:00
# ==========================
# Copy & Paste
# ==========================
bindd = SUPER, C, Universal copy, sendshortcut, CTRL, Insert,
bindd = SUPER, V, Universal paste, sendshortcut, SHIFT, Insert,
bindd = SUPER, X, Universal cut, sendshortcut, CTRL, X,
2026-03-06 21:09:52 +00:00
bindd = SUPER CTRL, V, Clipboard manager, exec, station-launch-walker -m clipboard
2026-02-28 16:19:58 +00:00
# Close windows
2026-03-01 21:32:06 +00:00
bindd = SUPER, Q, Close window, killactive,
2026-03-06 21:09:52 +00:00
bindd = CTRL ALT, DELETE, Close all windows, exec, station-hyprland-window-close-all
2026-02-28 16:19:58 +00:00
# ==========================
# Tiling
# ==========================
2026-03-06 21:09:52 +00:00
bindd = SUPER CTRL, J, Toggle window split, togglesplit, # dwindle
2026-02-28 16:19:58 +00:00
bindd = SUPER, P, Pseudo window, pseudo, # dwindle
bindd = SUPER, T, Toggle window floating/tiling, togglefloating,
bindd = SUPER, F, Full screen, fullscreen, 0
bindd = SUPER CTRL, F, Tiled full screen, fullscreenstate, 0 2
bindd = SUPER ALT, F, Full width, fullscreen, 1
2026-03-06 21:09:52 +00:00
bindd = SUPER, O, Pop window out (float & pin), exec, station-hyprland-window-pop
# bindd = SUPER CTRL, L, Toggle workspace layout, exec, station-hyprland-workspace-layout-toggle
2026-02-28 16:19:58 +00:00
# Move focus with SUPER + arrow keys
2026-03-01 21:32:06 +00:00
bindd = SUPER, H, Move window focus left, movefocus, l
bindd = SUPER, L, Move window focus right, movefocus, r
bindd = SUPER, K, Move window focus up, movefocus, u
bindd = SUPER, J, Move window focus down, movefocus, d
2026-02-28 16:19:58 +00:00
# Control scratchpad
bindd = SUPER, S, Toggle scratchpad, togglespecialworkspace, scratchpad
bindd = SUPER ALT, S, Move window to scratchpad, movetoworkspacesilent, special:scratchpad
# Cycle through applications on active workspace
2026-03-31 21:52:20 +01:00
bindd = SUPER, TAB, Cycle to next window, cyclenext, visible
bindd = SUPER SHIFT, TAB, Cycle to prev window, cyclenext, visible prev
bindd = SUPER, TAB, Reveal active window on top, bringactivetotop
bindd = SUPER SHIFT, TAB, Reveal active window on top, bringactivetotop
2026-02-28 16:19:58 +00:00
# Resize active window
bindd = SUPER, code:20, Expand window left, resizeactive, -100 0 # - key
bindd = SUPER, code:21, Shrink window left, resizeactive, 100 0 # = key
bindd = SUPER SHIFT, code:20, Shrink window up, resizeactive, 0 -100
bindd = SUPER SHIFT, code:21, Expand window down, resizeactive, 0 100
# Scroll through existing workspaces with SUPER + scroll
bindd = SUPER, mouse_down, Scroll active workspace forward, workspace, e+1
bindd = SUPER, mouse_up, Scroll active workspace backward, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindmd = SUPER, mouse:272, Move window, movewindow
bindmd = SUPER, mouse:273, Resize window, resizewindow
# Toggle groups
bindd = SUPER, G, Toggle window grouping, togglegroup
bindd = SUPER ALT, G, Move active window out of group, moveoutofgroup
# Join groups
bindd = SUPER ALT, LEFT, Move window to group on left, moveintogroup, l
bindd = SUPER ALT, RIGHT, Move window to group on right, moveintogroup, r
bindd = SUPER ALT, UP, Move window to group on top, moveintogroup, u
bindd = SUPER ALT, DOWN, Move window to group on bottom, moveintogroup, d
# Navigate a single set of grouped windows
bindd = SUPER ALT, TAB, Next window in group, changegroupactive, f
bindd = SUPER ALT SHIFT, TAB, Previous window in group, changegroupactive, b
# Window navigation for grouped windows
bindd = SUPER CTRL, LEFT, Move grouped window focus left, changegroupactive, b
bindd = SUPER CTRL, RIGHT, Move grouped window focus right, changegroupactive, f
# Scroll through a set of grouped windows with SUPER + ALT + scroll
bindd = SUPER ALT, mouse_down, Next window in group, changegroupactive, f
bindd = SUPER ALT, mouse_up, Previous window in group, changegroupactive, b
# Activate window in a group by number
bindd = SUPER ALT, code:10, Switch to group window 1, changegroupactive, 1
bindd = SUPER ALT, code:11, Switch to group window 2, changegroupactive, 2
bindd = SUPER ALT, code:12, Switch to group window 3, changegroupactive, 3
bindd = SUPER ALT, code:13, Switch to group window 4, changegroupactive, 4
bindd = SUPER ALT, code:14, Switch to group window 5, changegroupactive, 5
# ==========================
# Utilities
# ==========================
2026-03-06 22:33:30 +00:00
bindd = SUPER, Slash, Cycle monitor scaling, exec, station-hyprland-monitor-scaling-cycle
2026-02-28 16:19:58 +00:00
# Menus
2026-03-06 21:09:52 +00:00
bindd = SUPER, SPACE, Launch apps, exec, station-launch-walker
bindd = SUPER CTRL, E, Emoji picker, exec, station-launch-walker -m symbols
bindd = SUPER CTRL, C, Capture menu, exec, station-menu capture
bindd = SUPER CTRL, O, Toggle menu, exec, station-menu toggle
2026-03-06 23:42:56 +00:00
bindd = SUPER ALT, SPACE, Station menu, exec, station-menu
2026-03-06 21:09:52 +00:00
bindd = SUPER, ESCAPE, System menu, exec, station-menu system
bindld = , XF86PowerOff, Power menu, exec, station-menu system
bindd = SUPER, K, Show key bindings, exec, station-menu-keybindings
bindd = , XF86Calculator, Calculator, exec, gnome-calculator
2026-02-28 16:19:58 +00:00
# Aesthetics
2026-03-06 23:42:56 +00:00
bindd = SUPER SHIFT, SPACE, Toggle top bar, exec, station-toggle-waybar
bindd = SUPER CTRL, SPACE, Theme background menu, exec, station-menu background
# bindd = SUPER SHIFT CTRL, SPACE, Theme menu, exec, station-menu theme
2026-02-28 16:19:58 +00:00
bindd = SUPER, BACKSPACE, Toggle window transparency, exec, hyprctl dispatch setprop "address:$(hyprctl activewindow -j | jq -r '.address')" opaque toggle
2026-03-06 23:42:56 +00:00
bindd = SUPER SHIFT, BACKSPACE, Toggle window gaps, exec, station-hyprland-window-gaps-toggle
bindd = SUPER CTRL, Backspace, Toggle single-window square aspect, exec, station-hyprland-window-single-square-aspect-toggle
2026-02-28 16:19:58 +00:00
# Notifications
2026-03-06 23:42:56 +00:00
bindd = SUPER, COMMA, Dismiss last notification, exec, makoctl dismiss
bindd = SUPER SHIFT, COMMA, Dismiss all notifications, exec, makoctl dismiss --all
bindd = SUPER CTRL, COMMA, Toggle silencing notifications, exec, station-toggle-notification-silencing
bindd = SUPER ALT, COMMA, Invoke last notification, exec, makoctl invoke
bindd = SUPER SHIFT ALT, COMMA, Restore last notification, exec, makoctl restore
2026-02-28 16:19:58 +00:00
# Toggles
2026-03-06 23:42:56 +00:00
bindd = SUPER CTRL, I, Toggle locking on idle, exec, station-toggle-idle
bindd = SUPER CTRL, N, Toggle nightlight, exec, station-toggle-nightlight
2026-02-28 16:19:58 +00:00
# Captures
2026-03-06 23:42:56 +00:00
bindd = , PRINT, Screenshot, exec, station-cmd-screenshot
bindd = ALT, PRINT, Screenrecording, exec, station-menu screenrecord
bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a
2026-02-28 16:19:58 +00:00
# File sharing
2026-03-06 23:42:56 +00:00
bindd = SUPER CTRL, S, Share, exec, station-menu share
2026-02-28 16:19:58 +00:00
# Waybar-less information
bindd = SUPER CTRL ALT, T, Show time, exec, notify-send " $(date +"%A %H:%M — %d %B W%V %Y")"
2026-03-06 23:42:56 +00:00
bindd = SUPER CTRL ALT, B, Show battery remaining, exec, notify-send " Battery is at $(station-battery-remaining)%"
bindd = SUPER CTRL ALT, W, Show active window name and class, exec, notify-send "$(hyprctl activewindow -j | jq -r '"Window: \(.title)\nClass: \(.class)"')"
2026-02-28 16:19:58 +00:00
# Control panels
2026-03-06 23:42:56 +00:00
bindd = SUPER CTRL, A, Audio controls, exec, station-launch-audio
bindd = SUPER CTRL, B, Bluetooth controls, exec, station-launch-bluetooth
bindd = SUPER CTRL, W, Wifi controls, exec, station-launch-wifi
bindd = SUPER CTRL, T, Activity, exec, station-launch-tui btop
2026-02-28 16:19:58 +00:00
# Dictation
# bindd = SUPER CTRL, X, Toggle dictation, exec, voxtype record toggle
# Zoom
bindd = SUPER CTRL, Z, Zoom in, exec, hyprctl keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float + 1')
bindd = SUPER CTRL ALT, Z, Reset zoom, exec, hyprctl keyword cursor:zoom_factor 1
# Lock system
2026-03-06 23:42:56 +00:00
bindd = SUPER CTRL, L, Lock system, exec, station-lock-screen
2026-02-28 16:19:58 +00:00
# ==========================
# Applications
# ==========================
2026-04-01 20:37:45 +01:00
bindd = SUPER, RETURN, Terminal, exec, uwsm-app -- xdg-terminal-exec
2026-03-02 23:50:54 +00:00
bindd = SUPER ALT, RETURN, Tmux, exec, uwsm-app -- xdg-terminal-exec --dir="$(station-cmd-terminal-cwd)" tmux new
bindd = SUPER SHIFT, F, File manager, exec, uwsm-app -- nautilus --new-window
2026-03-06 23:42:56 +00:00
bindd = SUPER ALT SHIFT, F, File manager (cwd), exec, uwsm-app -- nautilus --new-window "$(station-cmd-terminal-cwd)"
2026-03-01 22:21:04 +00:00
bindd = SUPER SHIFT, B, Browser, exec, /home/chris/.local/bin/station-launch-browser
2026-03-02 23:50:54 +00:00
bindd = SUPER SHIFT ALT, B, Browser (private), exec, station-launch-browser --private
2026-03-06 23:42:56 +00:00
bindd = SUPER SHIFT, M, Music, exec, station-launch-or-focus spotify
bindd = SUPER SHIFT, N, Editor, exec, station-launch-editor
# bindd = SUPER SHIFT, D, Docker, exec, station-launch-tui lazydocker
bindd = SUPER SHIFT, G, Signal, exec, station-launch-or-focus ^signal$ "uwsm-app -- signal-desktop"
bindd = SUPER SHIFT, O, Obsidian, exec, station-launch-or-focus ^obsidian$ "uwsm-app -- obsidian -disable-gpu --enable-wayland-ime"
2026-02-28 16:19:58 +00:00
# bindd = SUPER SHIFT, W, Typora, exec, uwsm-app -- typora --enable-wayland-ime
2026-03-24 19:02:42 +00:00
bindd = SUPER SHIFT, SLASH, Passwords, exec, Enpass showassistant
2026-03-06 23:42:56 +00:00
bindd = SUPER SHIFT, E, Email, exec, station-launch-or-focus mailspring
2026-02-28 16:19:58 +00:00
# If your web app url contains #, type it as ## to prevent hyprland treating it as a comment
2026-03-06 23:42:56 +00:00
bindd = SUPER SHIFT, A, ChatGPT, exec, station-launch-webapp "https://gemini.google.com/app"
bindd = SUPER SHIFT, C, Calendar, exec, station-launch-webapp "https://tower.scarif.space/apps/calendar"
bindd = SUPER SHIFT, Y, YouTube, exec, station-launch-or-focus-webapp "YouTube" "https://youtube.com/"
bindd = SUPER SHIFT ALT, G, WhatsApp, exec, station-launch-or-focus-webapp WhatsApp "https://web.whatsapp.com/"
bindd = SUPER SHIFT CTRL, G, Google Maps, exec, station-launch-or-focus-webapp "Google Maps" "https://maps.google.com"
# bindd = SUPER SHIFT, P, Google Photos, exec, station-launch-or-focus-webapp "Google Photos" "https://photos.google.com/"
# bindd = SUPER SHIFT, X, X, exec, station-launch-webapp "https://x.com/"
# bindd = SUPER SHIFT ALT, X, X Post, exec, station-launch-webapp "https://x.com/compose/post"
2026-02-28 16:19:58 +00:00
# Add extra bindings
2026-03-06 23:42:56 +00:00
bind = SUPER SHIFT, R, exec, ghostty -e ssh scarif
2026-02-28 16:19:58 +00:00