# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mod SHIFT, return, exec, $term 
bind = $mod, d, killactive, 
bind = $mod, t, togglefloating, 
bind = $mod, f, fullscreen, 
bind = $mod, tab, changegroupactive 

# Audio
bindl = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +2%
bindl = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -2%
bindl = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle

# Utility commands 
bind = $mod, x, submap, utility
submap = utility
bind =  , s, exec, shutdown now
bind =  , r, exec, reboot
bind =  , q, exit, 
bind =  , g, exec, ~/.config/hypr/scripts/gamemode.sh $e
binde = , h, resizeactive, -50 0
binde = , j, resizeactive, 0 50
binde = , k, resizeactive, 0 -50
binde = , l, resizeactive, 50 0
bind =  , 1, exec, ~/.config/hypr/scripts/audio-device-switcher.sh 1 $e
bind =  , 2, exec, ~/.config/hypr/scripts/audio-device-switcher.sh 2 $e
bind =  , 3, exec, ~/.config/hypr/scripts/audio-device-switcher.sh 3 $e
bind =  , v, exec, ~/bin/linux-toggle-vpn $e
bind =  , p, exec, grimblast copy area $e
bind =  SHIFT, p, exec, grimblast save area $e
bind =  , escape, submap, reset 
submap = reset

# Group commands 
bind = $mod, g, submap, group
submap = group
bind = , g, togglegroup 
bind = , h, moveintogroup, l 
bind = , j, moveintogroup, d 
bind = , k, moveintogroup, u 
bind = , l, moveintogroup, r 
bind = , o, moveoutofgroup

# Reset submap after commands 
bind = , g, submap, reset 
bind = , h, submap, reset 
bind = , j, submap, reset 
bind = , k, submap, reset 
bind = , l, submap, reset 
bind = , o, submap, reset 
bind = , escape, submap, reset 
submap = reset

# Master and stack
bind = $mod, j, layoutmsg, cyclenext
bind = $mod, k, layoutmsg, cycleprev
bind = $mod SHIFT, j, layoutmsg, swapnext
bind = $mod SHIFT, k, layoutmsg, swapprev
bind = $mod, p, focuscurrentorlast 
bind = $mod, m, layoutmsg, focusmaster
bind = $mod SHIFT, m, layoutmsg, swapwithmaster
bind = $mod, space, layoutmsg, orientationcycle
bind = $mod, period, layoutmsg, addmaster 
bind = $mod, comma, layoutmsg, removemaster

# Switch workspaces
bind = $mod, 1, workspace, name:I  
bind = $mod, 2, workspace, name:II 
bind = $mod, 3, workspace, name:III
bind = $mod, 4, workspace, name:IV 
bind = $mod, q, workspace, name:V 
bind = $mod, w, workspace, name:VI 
bind = $mod, e, workspace, name:VII
bind = $mod, r, workspace, name:VIII
bind = $mod, s, moveworkspacetomonitor,name:X current
bind = $mod, s, workspace, name:X

# Move active window to a workspace
bind = $mod SHIFT, 1, movetoworkspacesilent, name:I    
bind = $mod SHIFT, 2, movetoworkspacesilent, name:II 
bind = $mod SHIFT, 3, movetoworkspacesilent, name:III
bind = $mod SHIFT, 4, movetoworkspacesilent, name:IV 
bind = $mod SHIFT, q, movetoworkspacesilent, name:V 
bind = $mod SHIFT, w, movetoworkspacesilent, name:VI 
bind = $mod SHIFT, e, movetoworkspacesilent, name:VII
bind = $mod SHIFT, r, movetoworkspacesilent, name:VIII
bind = $mod SHIFT, s, movetoworkspacesilent, name:X

# move between monitors
bind = $mod, h, movefocus, l
bind = $mod, l, movefocus, r

# Scroll through existing workspaces with mod + scroll
bind = $mod, mouse_down, workspace, e+1
bind = $mod, mouse_up, workspace, e-1

# Move/resize windows with mod + LMB/RMB and dragging
bindm = $mod, mouse:272, movewindow
bindm = $mod, mouse:273, resizewindow

# Open applications
bind = $mod, a, submap, launcher
submap = launcher
bind = , r, exec, $term --title launcher -e ~/bin/linux-app-launcher $e
bind = , escape, submap, reset 
submap = reset

bind = $mod, o, submap, open
submap = open
bind = , b, exec, google-chrome-stable $e
bind = , o, exec, obsidian $e
bind = , s, exec, steam $e
bind = , d, exec, discord $e 
bind = , m, exec, mpv $(wl-paste) $e 
bind = , escape, submap, reset 
submap = reset
