# See https://wiki.hyprland.org/Configuring/Monitors/
#{{{ Monitor config
monitor = , preferred, auto, 1
#}}}

# See https://wiki.hyprland.org/Configuring/Keywords/ for more

#{{{ Autostart
# Execute your favorite apps at launch
# exec-once = waybar & hyprpaper & firefox
exec-once = ~/.config/autostart.sh
#}}}

# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf

#{{{ Input options
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
    kb_layout = us
    kb_variant =
    kb_model =
    kb_options = caps:escape
    kb_rules =
    numlock_by_default = true
    scroll_method = "2fg"
    follow_mouse = 1
    touchpad {
        natural_scroll = no
    }
    float_switch_override_focus = 0
    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
#}}}

#{{{ General options
general {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    gaps_in = 5
    gaps_out = 20
    border_size = 2
    #col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
    #col.inactive_border = rgba(595959aa)
    col.active_border = rgba(198844ee)
    col.inactive_border = rgba(1b1d1cee)
    layout = master
    no_cursor_warps = false
}
#}}}

#{{{ Misc options
misc {
    enable_swallow = true
    swallow_regex = ^(St)$
    vfr = false
}
#}}}

#{{{ Decoration options
decoration {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    rounding = 10
    blur = yes
    blur_size = 3
    blur_passes = 1
    blur_new_optimizations = on
    blur_xray = yes
    drop_shadow = yes
    shadow_range = 4
    shadow_render_power = 3
    col.shadow = rgba(1a1a1aee)
}
#}}}

#{{{ Animations options
animations {
    enabled = no
    # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
    bezier = myBezier, 0.05, 0.9, 0.1, 1.05
    animation = windows, 1, 7, myBezier
    animation = windowsOut, 1, 7, default, popin 80%
    animation = border, 1, 10, default
    animation = borderangle, 1, 8, default
    animation = fade, 1, 7, default
    animation = workspaces, 1, 6, default
}
#}}}

#{{{ Dwindle layout options
dwindle {
    # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
    pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
    preserve_split = yes # you probably want this
    special_scale_factor = 0.55
}
#}}}

#{{{ Master layout options
master {
    special_scale_factor = 0.55
    # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
    new_is_master = true
    new_on_top = false
    no_gaps_when_only = false
    orientation = left
    inherit_fullscreen = true
}
#}}}

#{{{ Gestures options
gestures {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    workspace_swipe = off
}
#}}}

#{{{ Device options
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
device:epic mouse V1 {
    sensitivity = -0.5
}
#}}}

#{{{ Windowrules
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float, class:^(kitty)$, title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrule = windowdance, title:^(Rhythm Doctor)$
windowrule = fullscreen, ^(Xephyr)$
windowrule = float, title:^(LibreWolf - Choose User Profile)$
windowrulev2 = float, class:^(yabridge-host.exe.so)$, title:^(menu)$
windowrulev2 = float,floating:0,title:^(menu*)
windowrulev2 = forceinput,title:^(menu*)
windowrulev2 = windowdance,title:^(menu*)
#}}}

#{{{ Mods
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = ALT
$secdMod = SUPER
#}}}

#{{{ Layout toggle bind
# Layout toggle
bind = $mainMod $secdMod, A, exec, hypr-layout -t
#}}}

#{{{ Master layout binds
# Master layout binds
#bind = $mainMod+SHIFT, Return, layoutmsg, swapwithmaster auto #MASTER
#bind = $mainMod+SHIFT, J, layoutmsg, swapnext #MASTER
#bind = $mainMod+SHIFT, K, layoutmsg, swapprev #MASTER
#bind = $mainMod, H, layoutmsg, addmaster #MASTER
#bind = $mainMod, L, layoutmsg, removemaster #MASTER
#bind = $mainMod, J, movefocus, d #MASTER
#bind = $mainMod, K, movefocus, u #MASTER
#}}}

#{{{ Dwindle layout binds
# Dwindle layout binds
bind = $mainMod, P, pseudo, #DWINDLE
bind = $mainMod $secdMod, S, togglesplit, #DWINDLE
# Move focus with mainMod + HJKL
bind = $mainMod, H, movefocus, l #DWINDLE
bind = $mainMod, L, movefocus, r #DWINDLE
bind = $mainMod, K, movefocus, u #DWINDLE
bind = $mainMod, J, movefocus, d #DWINDLE
# Move window with mainMod + HJKL
bind = $mainMod SHIFT, L, movewindow, r #DWINDLE
bind = $mainMod SHIFT, H, movewindow, l #DWINDLE
bind = $mainMod SHIFT, J, movewindow, d #DWINDLE
bind = $mainMod SHIFT, K, movewindow, u #DWINDLE
# Resize clients with mainMod + secdMod + HJKL
binde = $mainMod $secdMod, L, resizeactive, 10 0 #DWINDLE
binde = $mainMod $secdMod, H, resizeactive, -10 0 #DWINDLE
binde = $mainMod $secdMod, K, resizeactive, 0 -10 #DWINDLE
binde = $mainMod $secdMod, J, resizeactive, 0 10 #DWINDLE
#}}}

#{{{ Group binds
# Group binds
#bind = $mainMod CONTROL, G, togglegroup,
#bind = $mainMod CONTROL, I, lockgroups, lock
#bind = $mainMod CONTROL, U, lockgroups, unlock
#bind = $mainMod CONTROL, H, moveintogroup, r
#bind = $mainMod CONTROL, L, moveintogroup, l
#bind = $mainMod CONTROL, J, moveintogroup, d
#bind = $mainMod CONTROL, K, moveintogroup, u
#}}}

#{{{ WC binds
bind = $mainMod SHIFT, Q, killactive, 
bind = $mainMod SHIFT, E, exit, 
bind = $mainMod SHIFT, SPACE, togglefloating, 
bind = $mainMod $secdMod, F2, exec, ~/.config/hypr/gamemode.sh
bind = $mainMod, F, fullscreen, 0
bind = $mainMod, M, fullscreen, 1
#}}}

#{{{ Workspace binds
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
bind = $mainMod CONTROL SHIFT, 1, movetoworkspace, 1
bind = $mainMod CONTROL SHIFT, 2, movetoworkspace, 2
bind = $mainMod CONTROL SHIFT, 3, movetoworkspace, 3
bind = $mainMod CONTROL SHIFT, 4, movetoworkspace, 4
bind = $mainMod CONTROL SHIFT, 5, movetoworkspace, 5
bind = $mainMod CONTROL SHIFT, 6, movetoworkspace, 6
bind = $mainMod CONTROL SHIFT, 7, movetoworkspace, 7
bind = $mainMod CONTROL SHIFT, 8, movetoworkspace, 8
bind = $mainMod CONTROL SHIFT, 9, movetoworkspace, 9
bind = $mainMod CONTROL SHIFT, 0, movetoworkspace, 10
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
#}}}

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

#{{{ Resize submap binds
bind = $mainMod $secdMod, R, submap, resize
submap = resize
binde = CONTROL, L, resizeactive, 10 0
binde = CONTROL, H, resizeactive, -10 0
binde = CONTROL, K, resizeactive, 0 -10
binde = CONTROL, J, resizeactive, 0 10
binde = , escape, submap, reset
submap = reset
#}}}

#{{{ Menu bindings
bind = $mainMod, R, exec, exec j4-dmenu-desktop --dmenu="bemenu -i -l 10 -p \"Run:\""
bind = $mainMod, D, exec, exec bemenu-run -l 15 -p "Run:"
bind = $mainMod $secdMod, Q, exec, GTK_THEME="Plata-Noir-Compact" qbc
bind = $mainMod $secdMod, W, exec, GTK_THEME="Plata-Noir-Compact" lwc
bind = $mainMod $secdMod, E, exec, GTK_THEME="Plata-Noir-Compact" mbc
bind = $mainMod $secdMod, R, exec, GTK_THEME="Plata-Noir-Compact" ffc
bind = $mainMod $secdMod, 1, exec, GTK_THEME="Plata-Noir-Compact" bm
bind = $mainMod $secdMod, comma, exec, dmount
bind = $mainMod $secdMod, period, exec, dmenuumount
bind = $mainMod $secdMod CONTROL, U, exec, dmenuunicode
bind = $mainMod $secdMod, U, exec, mprisctl
bind = $mainMod $secdMod, P, exec, passmenu
#}}}

#{{{ Misc bindings
bind = $mainMod, Return, exec, foot
bind = $mainMod $secdMod, F, exec, foot lf
bind = $mainMod, W, exec, waytoggle
bind = $mainMod, Q, exec, loginctl lock-session
bind = $mainMod SHIFT, G, exec, get-app-id
#bind = $mainMod CONTROL, R, exec, startx -- /usr/bin/Xephyr -screen 1920x1080 :1
#}}}

#{{{ Scratchpads
bind = $mainMod+CONTROL, Z, exec, [workspace special:sphtop;float;noanim] sphtop
bind = $mainMod+CONTROL, X, exec, [workspace special:spterm;float;noanim] spterm
bind = $mainMod+CONTROL, C, exec, [workspace special:sppmxr;float;noanim] sppmxr
bind = $mainMod+CONTROL, V, exec, [workspace special:spblue;float;noanim] spblue
bind = $mainMod+CONTROL, B, exec, [workspace special:spncmp;float;noanim] spncmp
bind = $mainMod+CONTROL, A, exec, [workspace special:spmutt;float;noanim] spmutt
bind = $mainMod+CONTROL, S, exec, [workspace special:spprof;float;noanim] spprof
bind = $mainMod+CONTROL, D, exec, [workspace special:spirss;float;noanim] spirss
bind = $mainMod+CONTROL, F, exec, [workspace special:sptodo;float;noanim] sptodo
bind = $mainMod+CONTROL, G, exec, [workspace special:sptrmc;float;noanim] sptrmc
bind = $mainMod+CONTROL, Q, exec, [workspace special:spqpwg;float;noanim] spqpwg
#}}}

#{{{ OBS bindings
bind = $mainMod CONTROL, 1, pass, ^(com\.obsproject\.Studio)$
bind = $mainMod CONTROL, 2, pass, ^(com\.obsproject\.Studio)$
bind = $mainMod CONTROL, 3, pass, ^(com\.obsproject\.Studio)$
bind = $mainMod CONTROL, 4, pass, ^(com\.obsproject\.Studio)$
bind = $mainMod CONTROL, 5, pass, ^(com\.obsproject\.Studio)$
bind = $mainMod CONTROL, 6, pass, ^(com\.obsproject\.Studio)$
bind = $mainMod CONTROL, 7, pass, ^(com\.obsproject\.Studio)$
bind = $mainMod CONTROL, 8, pass, ^(com\.obsproject\.Studio)$
bind = $mainMod CONTROL, 9, pass, ^(com\.obsproject\.Studio)$
bind = $mainMod CONTROL, 0, pass, ^(com\.obsproject\.Studio)$
#}}}

#{{{ Inert submap binds
bind = $mainMod, B, submap, inert
submap = inert
bind = $mainMod, B, submap, reset
submap = reset
#}}}

#{{{ Media bindings
bindl = $secdMod, P, exec, playerctl play-pause
bindel = , XF86AudioRaiseVolume, exec, volsv -i 5
bindel = , XF86AudioLowerVolume, exec, volsv -d 5
bind = , XF86AudioMute, exec, volsv -t
bindl = , XF86AudioMicMute, exec, volsv -m
bindel = , XF86MonBrightnessUp, exec, bl -i
bindel = , XF86MonBrightnessDown, exec, bl -d
bindl = $mainMod, XF86MonBrightnessUp, exec, bl -s 100
bindl = $mainMod, XF86MonBrightnessDown, exec, bl -s 1
bind = , Print, exec, scrshot
#}}}