# This is an example Hyprland config file.
# Syntax is the same as in Hypr, but settings might differ.
#
# Refer to the wiki for more information.

#
# Please note not all available settings / options are set here.
# For a full list, see the wiki (basic and advanced configuring)
#
exec-once=hyprctl setcursor Simp1e 16
exec-once=~/.config/script/theme-fix
exec-once=waybar
exec-once=systemctl --user restart xdg-desktop-portal
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once=~/.config/script/waylock.sh
exec-once=~/.azotebg
exec-once=foot -s
exec-once=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1


monitor=,preferred,auto,1
#workspace=eDP-1,2
#workspace=HDMI-A-1,1


misc:disable_hyprland_logo=true
misc:enable_swallow=true
misc:swallow_regex=kitty

input {
    numlock_by_default=true
    follow_mouse=1
    repeat_delay=300
    repeat_rate=50

    touchpad {
        natural_scroll=no
    }
}



general {
    sensitivity=1.0 # for mouse cursor
    main_mod=ALT
    gaps_in=5
    gaps_out=5
    border_size=2
    col.active_border=0xff8218c4
    col.inactive_border=0x66333333
    layout=dwindle

    apply_sens_to_raw=1 # whether to apply the sensitivity to raw input (e.g. used by games where you aim using your mouse)

    damage_tracking=full # leave it on full unless you hate your GPU and want to make it suffer
}

decoration {
    blur_ignore_opacity     =   true
    blur_new_optimizations = true
    rounding=10
    blur=1
    blur_size=5 # minimum 1
    blur_passes=1 # minimum 1, more passes = more resource intensive.
    # Your blur "amount" is blur_size * blur_passes, but high blur_size (over around 5-ish) will produce artifacts.
    # if you want heavy blur, you need to up the blur_passes.
    # the more passes, the more you can up the blur_size without noticing artifacts.
}

animations {
    enabled=1
    animation=windows,1,7,default,popin 80%
    animation=border,1,7,default
    animation=fade,1,7,default
    animation=workspaces,1,6,default
}
master {
}

dwindle {
    pseudotile=0 # enable pseudotiling on dwindle
    force_split=2
    col.group_border=0xff282a36
    col.group_border_active=0xff8218c4
}






gestures {
    workspace_swipe=no
}

# example window rules
# for windows named/classed as abc and xyz
#windowrule=move 69 420,abc
windowrule=fullscreen,mpv
windowrule=float,qalculate-gtk
#windowrule=size 1000 500, mpv
#windowrule=move 460,290, mpv
windowrule=float,imv

# rofi
windowrule = float, Rofi
blurls=rofi


windowrule=float,title:^(kami)$
windowrule=size 1000 500,title:^(kami)$
windowrule=center,title^(kami)$

#windowrule=pseudo,abc
#windowrule=monitor 0,xyz
windowrule=tile,WebApp-ytmusic4224
windowrule=tile,WebApp-discord5149

# example binds
bind=ALT,Return,exec,footclient
bind=ALT,A,exec,kitty --class kitty --title kami ~/Documents/Rust/kami/target/release/kami
bind=ALT,Q,killactive,
bind=ALT,F,exec,pcmanfm
bind=ALT,B,exec,firefox
bind=ALT,E,exec,emacsclient --alternate-editor= --create-frame
bind=,107,exec,~/.config/script/wayscreenshot.sh
bind=SHIFT,107,exec,grim -g "$(slurp)" - | wl-copy
bind=ALTSHIFT,Q,exit,
bind=ALTSHIFT,F,togglefloating,
bind=ALTSHIFT,T,fullscreen,0
bind=ALT,D,exec,rofi -no-lazy-greb -show drun -icon-theme 'Papirus' -show-icons
#wofi --show drun -o DP-3

# toggle waybar
bind=SUPER,W,exec,~/.config/script/hide_waybar.sh

bind=ALT,H,focusmonitor,eDP-1
bind=ALT,L,focusmonitor,HDMI-A-1
bind=ALT,K,cyclenext,prev
bind=ALT,J,cyclenext,

bind=ALTSHIFT,H,movewindow,l
bind=ALTSHIFT,L,movewindow,r
bind=ALTSHIFT,K,movewindow,u
bind=ALTSHIFT,J,movewindow,d

#floating toggle
bind=ALT,T,togglefloating,

# move window with mouse
bindm=ALT,mouse:272,movewindow
bindm=ALT,mouse:273,resizewindow

# resize Mode with Alt + R : Press Escape to quit
bind=ALT,R,submap,resize # will switch to a submap called resize
submap=resize # will start a submap called "resize"

bind=,l,resizeactive,30 0
bind=,h,resizeactive,-30 0
bind=,k,resizeactive,0 -30
bind=,j,resizeactive,0 30



bind=,escape,submap,reset # use reset to go back to the global submap
submap=reset # will reset the submap, meaning end the current one and return to the global one.

# audio controlls
bind=,XF86AudioRaiseVolume,exec,pamixer -i 5
bind=,XF86AudioLowerVolume,exec,pamixer -d 5
#bind=,XF86AudioRaiseVolume,exec,pamixer --toggle-mute

# media controlles
bind=,XF86AudioMedia,exec,playerctl play-pause
bind=,XF86AudioPlay,exec,playerctl play-pause
bind=,XF86AudioPrev,exec,playerctl previous
bind=,XF86AudioNext,exec,playerctl next

bind=ALT,1,workspace,1
bind=ALT,2,workspace,2
bind=ALT,3,workspace,3
bind=ALT,4,workspace,4
bind=ALT,5,workspace,5
bind=ALT,6,workspace,6
bind=ALT,7,workspace,7
bind=ALT,8,workspace,8
bind=ALT,9,workspace,9
bind=ALT,0,workspace,10
bind=ALT,51,togglespecialworkspace

bind=ALTSHIFT,1,movetoworkspace,1
bind=ALTSHIFT,2,movetoworkspace,2
bind=ALTSHIFT,3,movetoworkspace,3
bind=ALTSHIFT,4,movetoworkspace,4
bind=ALTSHIFT,5,movetoworkspace,5
bind=ALTSHIFT,6,movetoworkspace,6
bind=ALTSHIFT,7,movetoworkspace,7
bind=ALTSHIFT,8,movetoworkspace,8
bind=ALTSHIFT,9,movetoworkspace,9
bind=ALTSHIFT,0,movetoworkspace,10
bind=ALT,48,movetoworkspace,special

bind=SUPER,mouse_down,workspace,e+1
bind=SUPER,mouse_up,workspace,e-1

bind=ALT,49,togglegroup
bind=ALT,tab,changegroupactive
