# Keybinds
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */  #
#
$mainMod = SUPER
$files = dolphin
$term = kitty

# Default
$scriptsDir = $HOME/.config/hypr/scripts
$UserScripts = $HOME/.config/hypr/UserScripts

# Rofi App Launcher
bind = $mainMod, D, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window

## ags overview
##bind = $mainMod, A, exec, pkill rofi || true && ags -t 'overview'


bind = $mainMod, Return, exec, $term  # Launch terminal
bind = $mainMod, E, exec, $files # Launch file manager

# pyprland
bind = $mainMod SHIFT, Return, exec, pypr toggle term # Dropdown terminal
bind = $mainMod, Z, exec, pypr zoom # Toggle Zoom

bind = $mainMod, Q, killactive,
bind = $mainMod, F, fullscreen,
bind = $mainMod SHIFT, F, togglefloating,
bind = $mainMod ALT, F, exec, hyprctl dispatch workspace allfloat

# Features / Extras
bind = $mainMod, H, exec, $scriptsDir/KeyHints.sh #small help file
bind = $mainMod ALT, R, exec, $scriptsDir/Refresh.sh # Refresh waybar, swaync, rofi
bind = $mainMod ALT, E, exec, $scriptsDir/RofiEmoji.sh # emoji
bind = $mainMod SHIFT, B, exec, $scriptsDir/ChangeBlur.sh # Toggle blur settings 
bind = $mainMod SHIFT, G, exec, $scriptsDir/GameMode.sh # animations ON/OFF
bind = $mainMod ALT, L, exec, $scriptsDir/ChangeLayout.sh # Toggle Master or Dwindle Layout
bind = $mainMod ALT, V, exec, $scriptsDir/ClipManager.sh # Clipboard Manager
bind = $mainMod SHIFT, N, exec, swaync-client -t -sw # swayNC panel

# Waybar / Bar related
bind = $mainMod, B, exec, pkill -SIGUSR1 waybar # Toggle hide/show waybar 
bind = $mainMod CTRL, B, exec, $scriptsDir/WaybarStyles.sh # Waybar Styles Menu
bind = $mainMod ALT, B, exec, $scriptsDir/WaybarLayout.sh # Waybar Layout Menu

# Resize windows
binde = $mainMod SHIFT, left, resizeactive,-50 0
binde = $mainMod SHIFT, right, resizeactive,50 0
binde = $mainMod SHIFT, up, resizeactive,0 -50
binde = $mainMod SHIFT, down, resizeactive,0 50

# Move windows
bind = $mainMod CTRL, left, movewindow, l
bind = $mainMod CTRL, right, movewindow, r
bind = $mainMod CTRL, up, movewindow, u
bind = $mainMod CTRL, down, movewindow, d

# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d

# Workspaces related
bind = $mainMod, tab, workspace, m+1
bind = $mainMod SHIFT, tab, workspace, m-1

# Special workspace
bind = $mainMod SHIFT, U, movetoworkspace, special
bind = $mainMod, U, togglespecialworkspace,

# The following mappings use the key codes to better support various keyboard layouts
# 1 is code:10, 2 is code 11, etc
# Switch workspaces with mainMod + [0-9] 
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

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

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

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