# Lines ending with `# [hidden]` won't be shown on cheatsheet
# Lines starting with #! are section headings

#!
##! Apps
bind = Super, C, exec, code --password-store=gnome-libsecret # Launch VSCode (editor)
bind = Super, E, exec, dolphin --new-window # Launch file manager
bind = Super, W, exec, zen --new-window # Launch Browser
bind = Super, X, exec, gnome-text-editor # Launch Text Editor
bind = Super, B, exec, killall btop || ghostty -e btop # Launch btop (system monitor)
bind = Super, Space, exec, eww open main --toggle # Launch dashboard (eww)
bind = Super+Shift, V, exec, pavucontrol # Launch pavucontrol (volume mixer)
bind = Super+Shift, K, exec, waybar-toggle # Toggle waybar
bind = Super+Shift, L, exec, lyrics-widgets # Toggle lyrics player
bind = Super+Shift, F, exec, coin # Flip a coin

#!
##! Essentials
bind = Super, T, exec, kitty # Launch kitty (terminal)
bind = Super, Return, exec, kitty # [hidden]
bind = Super+Shift, Return, exec, ghostty # [hidden]
bind = Alt, Space, exec, pkill rofi || rofi -show drun # [hidden] Launch app launcher
bind = Super, Super_L, exec, pkill rofi || rofi -show drun # [hidden] Launch app launcher
bind = Super, R, exec, pkill rofi || rofi -show run # Launch command launcher
bind = , mouse:277, exec, killall rofi || rofi -show drun

##! Actions
# Screenshot, Record, OCR, Color picker, Clipboard history
bind = Super, V, exec, pkill rofi || cliphist list | rofi -dmenu -config ~/.config/rofi/dmenu.rasi -display-columns 2 -i | cliphist decode | wl-copy # Clipboard history >> clipboard
bind = Super, Period, exec, pkill rofi || rofi-emoji # Pick emoji >> clipboard
bind = Ctrl+Alt, Delete, exec, pkill wlogout || wlogout -p layer-shell # [hidden]
bind = Super+Shift, S, exec, screenshot-script area # Screen snip
bind = Super+Ctrl+Shift, S, exec, screenshot-script window # Screen snip (window)
bind = , Print, exec, screenshot-script full # Screen snip (whole screen)
# Color picker
bind = Super+Shift, C, exec, hyprpicker -a # Pick color (Hex) >> clipboard
# Fullscreen screenshot
# bindl=,Print,exec,grim - | wl-copy # Screenshot >> clipboard
# bindl= Ctrl,Print, exec, mkdir -p ~/Pictures/Screenshots && ~/.config/ags/scripts/grimblast.sh copysave screen ~/Pictures/Screenshots/Screenshot_"$(date '+%Y-%m-%d_%H.%M.%S')".png # Screenshot >> clipboard & file
# Recording stuff
# bind = Super+Alt, R, exec, ~/.config/ags/scripts/record-script # Record region (no sound)
# bind = Ctrl+Alt, R, exec, ~/.config/ags/scripts/record-script --fullscreen # [hidden] Record screen (no sound)
bind = Super+Alt, R, exec, record-script --fullscreen-sound # Record screen (with sound)
# wallpaper
bind = Super+Shift, W, exec, wallpaper-chooser # Launch wallpaper chooser

##! Session
# bind = Ctrl+Super, L, exec, ags run-js 'lock.lock()' # [hidden]
bind = Super, L, exec, loginctl lock-session # Lock
bindl = Ctrl+Shift+Alt+Super, L, exec, sleep 0.1 && systemctl suspend || loginctl suspend # Suspend system
bind = Ctrl+Shift+Alt+Super, Delete, exec, systemctl poweroff || loginctl poweroff # [hidden] Power off

#!
##! Media
bindl= Super+Shift, N, exec, playerctl next # Next track
bindl= ,XF86AudioNext, exec, playerctl next # [hidden]
bindl= ,XF86AudioPrev, exec, playerctl previous # [hidden]
bind = Super+Shift+Alt, mouse:275, exec, playerctl previous # [hidden]
bind = Super+Shift+Alt, mouse:276, exec, playerctl next # [hidden]
bindl= Super+Shift, B, exec, playerctl previous # Previous track
bindl= Super+Shift, P, exec, playerctl play-pause # Play/pause media
bindl= ,XF86AudioPlay, exec, playerctl play-pause # [hidden]
bindl= ,XF86AudioPause, exec, playerctl play-pause # [hidden]

#!
##! Sound & Brightness
bindl = ,XF86AudioMute, exec, pamixer --toggle-mute # [hidden]
bindl = Super+Shift, M, exec, pamixer --toggle-mute # [hidden]
bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ && wp-vol # [hidden]
bindle=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- && wp-vol # [hidden]

bindle=, XF86MonBrightnessUp, exec, brightnessctl -d $DISPLAY_DEVICE set 5%+ # [hidden]
bindle=, XF86MonBrightnessDown, exec, brightnessctl -d $DISPLAY_DEVICE set 5%- # [hidden]

#!
##! Window management
# Focusing
#/# bind = Super, ←/↑/→/↓,, # Move focus in direction
bind = Super, Left, movefocus, l # [hidden]
bind = Super, Right, movefocus, r # [hidden]
bind = Super, Up, movefocus, u # [hidden]
bind = Super, Down, movefocus, d # [hidden]
bindm = Super, mouse:272, movewindow
bindm = Super, mouse:273, resizewindow
bind = Super, Q, killactive,
bind = Super, mouse:274, killactive # [hidden] Kill active window
bind = Super+Shift+Alt, Q, exec, hyprctl kill # Pick and kill a window

##! Window arrangement
#/# bind = Super+Shift, ←/↑/→/↓,, # Window: move in direction
bind = Super+Shift, Left, movewindow, l # [hidden]
bind = Super+Shift, Right, movewindow, r # [hidden]
bind = Super+Shift, Up, movewindow, u # [hidden]
bind = Super+Shift, Down, movewindow, d # [hidden]
# Window split ratio
#/# binde = Super, +/-,, # Window: split ratio +/- 0.1
binde = Super, udiaeresis, splitratio, -0.1 # [hidden]
binde = Super, plus, splitratio, +0.1 # [hidden]
# Positioning mode
bind = Super+Alt, Space, togglefloating,
bind = Super, mouse:276, togglefloating # [hidden]
bind = Super+Alt, F, fullscreenstate, 0 3 # Toggle fake fullscreen
bind = Super, F, fullscreen, 0
bind = Super, D, fullscreen, 1
bind = Super, J, togglesplit
bind = Super, O, plugin:uyani:organize # https://github.com/Uyanide/hyprplug
bind = Super, H, layoutmsg, orientationcycle left right

#!
##! Workspace navigation
# Switching
#/# bind = Super, Hash,, # Focus workspace # (1, 2, 3, 4, ...)
bind = Super, 1, workspace, 1 # [hidden]
bind = Super, 2, workspace, 2 # [hidden]
bind = Super, 3, workspace, 3 # [hidden]
bind = Super, 4, workspace, 4 # [hidden]
bind = Super, 5, workspace, 5 # [hidden]
bind = Super, 6, workspace, 6 # [hidden]
bind = Super, 7, workspace, 7 # [hidden]
bind = Super, 8, workspace, 8 # [hidden]
bind = Super, 9, workspace, 9 # [hidden]
bind = Super, 0, workspace, 10 # [hidden]
#/# bind = Ctrl+Super, ←/→,, # Workspace: focus left/right
bind = Ctrl+Super, Right, workspace, +1 # [hidden]
bind = Ctrl+Super, Left, workspace, -1 # [hidden]
#/# bind = Super, Scroll ↑/↓,, # Workspace: focus left/right
bind = Super, mouse_up, workspace, +1 # [hidden]
bind = Super, mouse_down, workspace, -1 # [hidden]
bind = Ctrl+Super, mouse_up, workspace, +1 # [hidden]
bind = Ctrl+Super, mouse_down, workspace, -1 # [hidden]
bind = Super, mouse_left, workspace, -1 # [hidden]
bind = Super, mouse_right, workspace, +1 # [hidden]
bind = Ctrl+Super, mouse_left, workspace, -1 # [hidden]
bind = Ctrl+Super, mouse_right, workspace, +1 # [hidden]
#/# bind = Super, Page_↑/↓,, # Workspace: focus left/right
bind = Super, Page_Down, workspace, +1 # [hidden]
bind = Super, Page_Up, workspace, -1 # [hidden]
bind = Ctrl+Super, Page_Down, workspace, +1 # [hidden]
bind = Ctrl+Super, Page_Up, workspace, -1 # [hidden]
## Special
bind = Super, S, togglespecialworkspace, s
bind = Super, mouse:275, togglespecialworkspace, s # [hidden]

##! Workspace management
# Move window to workspace Super + Alt + [0-9]
#/# bind = Super+Alt, Hash,, # Window: move to workspace # (1, 2, 3, 4, ...)
bind = Super+Alt, 1, movetoworkspacesilent, 1 # [hidden]
bind = Super+Alt, 2, movetoworkspacesilent, 2 # [hidden]
bind = Super+Alt, 3, movetoworkspacesilent, 3 # [hidden]
bind = Super+Alt, 4, movetoworkspacesilent, 4 # [hidden]
bind = Super+Alt, 5, movetoworkspacesilent, 5 # [hidden]
bind = Super+Alt, 6, movetoworkspacesilent, 6 # [hidden]
bind = Super+Alt, 7, movetoworkspacesilent, 7 # [hidden]
bind = Super+Alt, 8, movetoworkspacesilent, 8 # [hidden]
bind = Super+Alt, 9, movetoworkspacesilent, 9 # [hidden]
bind = Super+Alt, 0, movetoworkspacesilent, 10 # [hidden]
bind = Ctrl+Super+Shift, Right, movetoworkspace, +1 # [hidden]
bind = Ctrl+Super+Shift, Left, movetoworkspace, -1 # [hidden]
bind = Ctrl+Super, Up, workspace, -5 # [hidden]
bind = Ctrl+Super, Down, workspace, +5 # [hidden]
#/# bind = Super+Shift, Scroll ↑/↓,, # Window: move to workspace left/right
bind = Super+Shift, mouse_down, movetoworkspace, -1 # [hidden]
bind = Super+Shift, mouse_up, movetoworkspace, +1 # [hidden]
bind = Super+Shift, mouse_left, movetoworkspace, -1 # [hidden]
bind = Super+Shift, mouse_right, movetoworkspace, +1 # [
#/# bind = Super+Shift, Page_↑/↓,, # Window: move to workspace left/right
bind = Super+Shift, Page_Down, movetoworkspace, +1  # [hidden]
bind = Super+Shift, Page_Up, movetoworkspace, -1  # [hidden]
bind = Super+Alt, S, movetoworkspacesilent, special:s
bind = Super, P, pin
bind = Alt, Tab, cyclenext
# bind = Super, Tab, hyprexpo:expo, toggle # can be: toggle, select, off/disable or on/enable
bind = Super+Ctrl, T, exec, workspace-new # Create new workspace

bind = Super, M, exit
