# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */  #
# For window rules and layerrules
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more

# NOTES: This is only for Hyprland older versions (< 0.48)

# windowrule v2 - tags - add apps under appropriate tag to use the same settings
# browser tags
windowrulev2 = tag +browser, class:^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr|[Ff]irefox-bin)$
windowrulev2 = tag +browser, class:^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$
windowrulev2 = tag +browser, class:^(chrome-.+-Default)$ # Chrome PWAs
windowrulev2 = tag +browser, class:^([Cc]hromium)$
windowrulev2 = tag +browser, class:^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable))$
windowrulev2 = tag +browser, class:^(Brave-browser(-beta|-dev|-unstable)?)$
windowrulev2 = tag +browser, class:^([Tt]horium-browser|[Cc]achy-browser)$
windowrulev2 = tag +browser, class:^(zen-alpha|zen)$
windowrulev2 = tag +notif, class:^(swaync-control-center|swaync-notification-window|swaync-client|class)$
windowrulev2 = tag +KooL_Cheat, title:^(KooL Quick Cheat Sheet)$
windowrulev2 = tag +KooL_Settings, title:^(KooL Hyprland Settings)$
windowrulev2 = tag +KooL-Settings, class:^(nwg-displays|nwg-look)$

# terminal tags
windowrulev2 = tag +terminal, class:^(Alacritty|kitty|kitty-dropterm)$

# email tags
windowrulev2 = tag +email, class:^([Tt]hunderbird|org.gnome.Evolution)$
windowrulev2 = tag +email, class:^(eu.betterbird.Betterbird)$

# project tags
windowrulev2 = tag +projects, class:^(codium|codium-url-handler|VSCodium)$
windowrulev2 = tag +projects, class:^(VSCode|code-url-handler)$
windowrulev2 = tag +projects, class:^(jetbrains-.+)$ # JetBrains IDEs

# screenshare tags
windowrulev2 = tag +screenshare, class:^(com.obsproject.Studio)$

# IM tags
windowrulev2 = tag +im, class:^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$
windowrulev2 = tag +im, class:^([Ff]erdium)$
windowrulev2 = tag +im, class:^([Ww]hatsapp-for-linux)$
windowrulev2 = tag +im, class:^(ZapZap|com.rtosta.zapzap)$ 
windowrulev2 = tag +im, class:^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$
windowrulev2 = tag +im, class:^(teams-for-linux)$

# game tags
windowrulev2 = tag +games, class:^(gamescope)$
windowrulev2 = tag +games, class:^(steam_app_\d+)$

# gamestore tags
windowrulev2 = tag +gamestore, class:^([Ss]team)$
windowrulev2 = tag +gamestore, title:^([Ll]utris)$
windowrulev2 = tag +gamestore, class:^(com.heroicgameslauncher.hgl)$

# file-manager tags
windowrulev2 = tag +file-manager, class:^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$
windowrulev2 = tag +file-manager, class:^(app.drey.Warp)$

# wallpaper tags
windowrulev2 = tag +wallpaper title:^([Ww]aytrogen)$
windowrulev2 = tag +wallpaper, class:^([Ww]aytrogen)$

# multimedia tags
windowrulev2 = tag +multimedia, class:^([Aa]udacious)$


# settings tags
windowrulev2 = tag +settings, title:^(ROG Control)$
windowrulev2 = tag +settings, class:^(wihotspot(-gui)?)$ # wifi hotspot
windowrulev2 = tag +settings, class:^([Bb]aobab|org.gnome.[Bb]aobab)$ # Disk usage analyzer
windowrulev2 = tag +settings, class:^(gnome-disks|wihotspot(-gui)?)$
windowrulev2 = tag +settings, title:(Kvantum Manager)
windowrulev2 = tag +settings, class:^(file-roller|org.gnome.FileRoller)$ # archive manager
windowrulev2 = tag +settings, class:^(nm-applet|nm-connection-editor|blueman-manager)$
windowrulev2 = tag +settings, class:^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$
windowrulev2 = tag +settings, class:^(qt5ct|qt6ct|[Yy]ad)$
windowrulev2 = tag +settings, class:(xdg-desktop-portal-gtk)
windowrulev2 = tag +settings, class:^(org.kde.polkit-kde-authentication-agent-1)$
windowrulev2 = tag +settings, class:^([Rr]ofi)$

# viewer tags
windowrulev2 = tag +viewer, class:^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$ # system monitor
windowrulev2 = tag +viewer, class:^(evince)$ # document viewer 
windowrulev2 = tag +viewer, class:^(eog|org.gnome.Loupe)$ # image viewer

# POSITION
# windowrulev2 = center,floating:1 # warning, it cause even the menu to float and center.
windowrulev2 = center, tag:KooL_Cheat*
windowrulev2 = center, class:([Tt]hunar), title:negative:(.*[Tt]hunar.*)
windowrulev2 = center, title:^(ROG Control)$
windowrulev2 = center, tag:KooL-Settings*
windowrulev2 = center, title:^(Keybindings)$
windowrulev2 = center, class:^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$
windowrulev2 = center, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
windowrulev2 = center, class:^([Ff]erdium)$
windowrulev2 = move 72% 7%,title:^(Picture-in-Picture)$ 
#windowrulev2 = move 72% 7%,title:^(Firefox)$ 

# windowrule v2 to avoid idle for fullscreen apps
#windowrulev2 = idleinhibit fullscreen, class:^(*)$
#windowrulev2 = idleinhibit fullscreen, title:^(*)$
windowrulev2 = idleinhibit fullscreen, fullscreen:1

# windowrule v2 move to workspace
windowrulev2 = workspace 1, tag:email*
windowrulev2 = workspace 2, tag:browser*
#windowrulev2 = workspace 3, class:^([Tt]hunar)$
#windowrulev2 = workspace 3, tag:projects*
windowrulev2 = workspace 5, tag:gamestore*
windowrulev2 = workspace 7, tag:im*
windowrulev2 = workspace 8, tag:games*

# windowrule v2 move to workspace (silent)
windowrulev2 = workspace 4 silent, tag:screenshare*
windowrulev2 = workspace 6 silent, class:^(virt-manager)$
windowrulev2 = workspace 6 silent, class:^(.virt-manager-wrapped)$
windowrulev2 = workspace 9 silent, tag:multimedia*

# FLOAT
windowrulev2 = float, tag:KooL_Cheat*
windowrulev2 = float, tag:wallpaper*
windowrulev2 = float, tag:settings*
windowrulev2 = float, tag:viewer*
windowrulev2 = float, tag:KooL-Settings*
windowrulev2 = float, class:([Zz]oom|onedriver|onedriver-launcher)$
windowrulev2 = float, class:(org.gnome.Calculator), title:(Calculator)
windowrulev2 = float, class:^(mpv|com.github.rafostar.Clapper)$
windowrulev2 = float, class:^([Qq]alculate-gtk)$
#windowrulev2 = float, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
windowrulev2 = float, class:^([Ff]erdium)$
windowrulev2 = float, title:^(Picture-in-Picture)$
#windowrulev2 = float, title:^(Firefox)$


#windowrule v2 - float popups and dialogue
windowrulev2 = float, title:^(Authentication Required)$
windowrulev2 = center, title:^(Authentication Required)$
windowrulev2 = float, class:(codium|codium-url-handler|VSCodium), title:negative:(.*codium.*|.*VSCodium.*)
windowrulev2 = float, class:^(com.heroicgameslauncher.hgl)$, title:negative:(Heroic Games Launcher)
windowrulev2 = float, class:^([Ss]team)$, title:negative:^([Ss]team)$
windowrulev2 = float, class:([Tt]hunar), title:negative:(.*[Tt]hunar.*)
#windowrulev2 = float, class:(electron), title:(Add Folder to Workspace)
windowrulev2 = float, title:^(Add Folder to Workspace)$
windowrulev2 = size 70% 60%, title:^(Add Folder to Workspace)$
windowrulev2 = center, title:^(Add Folder to Workspace)$
windowrulev2 = float, initialTitle:(Open Files)
windowrulev2 = size 70% 60%, initialTitle:(Open Files)
windowrulev2 = float, title:^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background
windowrulev2 = center, title:^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background
windowrulev2 = size 16% 12%, title:^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background

# OPACITY
windowrulev2 = opacity 0.9 0.7, tag:browser*
windowrulev2 = opacity 0.9 0.8, tag:projects*
windowrulev2 = opacity 0.94 0.86, tag:im*
windowrulev2 = opacity 0.94 0.86, tag:multimedia*
windowrulev2 = opacity 0.9 0.8, tag:file-manager*
windowrulev2 = opacity 0.8 0.7, tag:terminal*
windowrulev2 = opacity 0.8 0.7, tag:settings*
windowrulev2 = opacity 0.82 0.75, tag:viewer*
windowrulev2 = opacity 0.9 0.7, tag:wallpaper*
windowrulev2 = opacity 0.8 0.7, class:^(gedit|org.gnome.TextEditor|mousepad)$
windowrulev2 = opacity 0.9 0.8, class:^(deluge)$
windowrulev2 = opacity 0.9 0.8, class:^(im.riot.Riot)$ # Element matrix client
windowrulev2 = opacity 0.9 0.8, class:^(seahorse)$ # gnome-keyring gui
windowrulev2 = opacity 0.95 0.75, title:^(Picture-in-Picture)$


# SIZE
windowrulev2 = size 65% 90%, tag:KooL_Cheat*
windowrulev2 = size 70% 70%, tag:wallpaper*
windowrulev2 = size 70% 70%, tag:settings*
windowrulev2 = size 60% 70%, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
windowrulev2 = size 60% 70%, class:^([Ff]erdium)$

#windowrulev2 = size 25% 25%, title:^(Picture-in-Picture)$   
#windowrulev2 = size 25% 25%, title:^(Firefox)$ 

# PINNING
windowrulev2 = pin, title:^(Picture-in-Picture)$
#windowrulev2 = pin,title:^(Firefox)$ 

# windowrule v2 - extras
windowrulev2 = keepaspectratio, title:^(Picture-in-Picture)$

# BLUR & FULLSCREEN
windowrulev2 = noblur, tag:games*
windowrulev2 = fullscreen, tag:games*

#windowrulev2 = bordercolor rgb(EE4B55) rgb(880808), fullscreen:1
#windowrulev2 = bordercolor rgb(282737) rgb(1E1D2D), floating:1
#windowrulev2 = opacity 0.8 0.8, pinned:1

# LAYER RULES
layerrule = blur, rofi
layerrule = ignorezero, rofi
layerrule = blur, notifications
layerrule = ignorezero, notifications
#layerrule = ignorealpha 0.5, tag:notif*

#layerrule = ignorezero, class:^([Rr]ofi)$
#layerrule = blur, class:^([Rr]ofi)$
#layerrule = unset,class:^([Rr]ofi)$
#layerrule = ignorezero, <rofi>

#layerrule = ignorezero, overview
#layerrule = blur, overview