
$mainMod = SUPER
# Default
$scriptsDir = $HOME/.config/hypr/scripts
$configs = $HOME/.config/hypr/configs

$files = hyprdrop ghostty --identifier yazi_hyprdrop --args="yazi" --env="PWD=~/"
$term = ghostty
$scriptsDir = $HOME/.config/hypr/scripts

bind = $mainMod, Q, killactive,
bind = $mainMod SHIFT, Q, exec, $scriptsDir/KillActiveProcess.sh

# Special Keys / Hot Keys
bindel = , xf86audioraisevolume, exec, $scriptsDir/Volume.sh --inc # volume up
bindel = , xf86audiolowervolume, exec, $scriptsDir/Volume.sh --dec # volume down
bindl = , xf86AudioMicMute, exec, $scriptsDir/Volume.sh --toggle-mic # mic mute
bindl = , xf86audiomute, exec, $scriptsDir/Volume.sh --toggle # mute
bindl = , xf86Sleep, exec, systemctl suspend  # sleep button 
bindl = , xf86Rfkill, exec, $scriptsDir/AirplaneMode.sh # Airplane mode

# media controls using keyboards
bindl = , xf86AudioPlayPause, exec, $scriptsDir/MediaCtrl.sh --pause
bindl = , xf86AudioPause, exec, $scriptsDir/MediaCtrl.sh --pause
bindl = , xf86AudioPlay, exec, $scriptsDir/MediaCtrl.sh --pause
bindl = , xf86AudioNext, exec, $scriptsDir/MediaCtrl.sh --nxt 
bindl = , xf86AudioPrev, exec, $scriptsDir/MediaCtrl.sh --prv
bindl = , xf86audiostop, exec, $scriptsDir/MediaCtrl.sh --stop

bind = $mainMod, O, exec, killall -SIGUSR1 waybar

# Move focus with mainMod + LHKJ
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, movefocus, d

# Move windows
#bind = $mainMod SHIFT, H, movewindow, l
#bind = $mainMod SHIFT, L, movewindow, r
#bind = $mainMod SHIFT, K, movewindow, u
#bind = $mainMod SHIFT, J, movewindow, d

# Container layouts
bind = $mainMod, E, togglesplit
bind = $mainMod, W, togglegroup

bind = $mainMod SHIFT, Space, togglefloating
bind = $mainMod SHIFT, Space, pin

# Workspaces
bind = $mainMod, code:10, workspace, 1
bind = $mainMod, code:11, workspace, 2
bind = $mainMod, code:12, workspace, 3
bind = $mainMod, code:13, workspace, 4
bind = $mainMod, code:14, workspace, 5
bind = $mainMod, code:15, workspace, 6
bind = $mainMod, code:16, workspace, 7
bind = $mainMod, code:17, workspace, 8
bind = $mainMod, code:18, workspace, 9
bind = $mainMod, code:19, workspace, 10

bind = $mainMod ALT, B, workspace, 1
bind = $mainMod ALT, T, workspace, 2
bind = $mainMod ALT, C, workspace, 3
bind = $mainMod ALT, G, workspace, 4
bind = $mainMod ALT, M, workspace, 5
bind = $mainMod ALT, P, workspace, 6

# Move active window to a workspace silently mainMod + CTRL [0-9]
bind = $mainMod SHIFT, code:10, movetoworkspacesilent, 1
bind = $mainMod SHIFT, code:11, movetoworkspacesilent, 2
bind = $mainMod SHIFT, code:12, movetoworkspacesilent, 3
bind = $mainMod SHIFT, code:13, movetoworkspacesilent, 4
bind = $mainMod SHIFT, code:14, movetoworkspacesilent, 5
bind = $mainMod SHIFT, code:15, movetoworkspacesilent, 6
bind = $mainMod SHIFT, code:16, movetoworkspacesilent, 7
bind = $mainMod SHIFT, code:17, movetoworkspacesilent, 8
bind = $mainMod SHIFT, code:18, movetoworkspacesilent, 9
bind = $mainMod SHIFT, code:19, movetoworkspacesilent, 10
bind = $mainMod SHIFT, bracketleft, movetoworkspacesilent, -1 # brackets [ or ]
bind = $mainMod SHIFT, bracketright, movetoworkspacesilent, +1

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

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

# Stuff
bind = $mainMod SHIFT, C, exec, $scriptsDir/Refresh.sh # Refresh waybar, swaync, rofi
bind = $mainMod, N, exec, $scriptsDir/LockScreen.sh # screen lock
bind = , Print, exec, $scriptsDir/ScreenShot.sh --area # screenshot (area)
bind = , F12, exec, $scriptsDir/ScreenShot.sh --active # screenshot (active window only)

bind = $mainMod SHIFT, N, exec, swaync-client -t -sw # swayNC notification panel


bind = $mainMod SHIFT, L, movecurrentworkspacetomonitor, r
bind = $mainMod SHIFT, H, movecurrentworkspacetomonitor, l
bind = $mainMod SHIFT, K, movecurrentworkspacetomonitor, u
bind = $mainMod SHIFT, J, movecurrentworkspacetomonitor, d

bind = $mainMod, F, fullscreen, 1
bind = $mainMod, Space, fullscreen, 0

# rofi App launcher
#bind = $mainMod, Tab, exec, nwg-drawer -pbexit "wayland-logout" -pbpoweroff "systemctl poweroff" -pbreboot "systemctl reboot"
bind = $mainMod, Tab, exec, anyrun
bind = ALT, Tab, exec, hyprswitch gui --mod-key alt --key tab

bind = $mainMod, Return, exec, $term
bind = $mainMod Shift, Return, exec, hyprdrop ghostty --identifier term_hyprdrop
bind = $mainMod, T, exec, $files

bind = $mainMod, R, focusurgentorlast

# Master Layout Keybinds
bind = $mainMod, A, layoutmsg,swapwithmaster master
