# Media keys
bind = ,XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%
bind = ,XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%
bind = ,XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
bind = ,XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
bind = ,XF86AudioPlay, exec, playerctl play-pause
bind = ,XF86AudioStop, exec, playerctl stop
bind = ,XF86AudioNext, exec, playerctl next
bind = ,XF86AudioPrev, exec, playerctl previous

# Control keys
bind = SUPER SHIFT, E, exit,
bind = SUPER SHIFT, Q, killactive,
bind = SUPER SHIFT, SPACE, togglefloating, 
bind = SUPER, P, pseudo, # dwindle
bind = SUPER, R, togglesplit, # dwindle
bind = SUPER, F, fullscreen,
bind = SUPER, T, fullscreen, 1 # maximize
bind = SUPER SHIFT, F, exec, hyprtool fullerscreen
bind = SUPER CTRL, F, fakefullscreen,

<! for _, dirs in pairs {
    { "left", "right", "up", "down" },
    { "H", "L", "K", "J" },
} do !>
# Move focus with mainMod + arrow keys
bind = SUPER, <% dirs[1] %>, movefocus, l
bind = SUPER, <% dirs[2] %>, movefocus, r
bind = SUPER, <% dirs[3] %>, movefocus, u
bind = SUPER, <% dirs[4] %>, movefocus, d

# Window Moving
bind = SUPER SHIFT, <% dirs[1] %>, movewindow, l
bind = SUPER SHIFT, <% dirs[2] %>, movewindow, r
bind = SUPER SHIFT, <% dirs[3] %>, movewindow, u
bind = SUPER SHIFT, <% dirs[4] %>, movewindow, d

<! for mods, delta in pairs {
    ["CTRL"] = 25,
    ["CTRL SHIFT"] = 100,
} do !>
# Window Resize
bind = SUPER <% mods %>, <% dirs[1] %>, resizeactive, -<% delta %> 0
bind = SUPER <% mods %>, <% dirs[2] %>, resizeactive, <% delta %> 0
bind = SUPER <% mods %>, <% dirs[3] %>, resizeactive, 0 -<% delta %>
bind = SUPER <% mods %>, <% dirs[4] %>, resizeactive, 0 <% delta %>
<! end !>
<! end !>

# Workspace keybinds
<! for i = 1, 9 do !>
bind = SUPER, <% i %>, workspace, <% i %>
bind = SUPER SHIFT, <% i %>, movetoworkspacesilent, <% i %>
<! end !>

bind = SUPER, 0, workspace, 10
bind = SUPER SHIFT, 0, movetoworkspacesilent, 10

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

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