# ================================================== # KoolDots (2026) # Project URL: https://github.com/LinuxBeginnings # License: GNU GPLv3 # SPDX-License-Identifier: GPL-3.0-or-later # ================================================== # Vendor defaults for window rules and layerrules # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # NOTES: This is only for Hyprland >= 0.53 # Some samples on hwo to start apps on specific workspaces # windowrule = match:tag email*, workspace 1 # windowrule = match:tag browser*, workspace 2 # windowrule = match:tag projects*, workspace 3 # windowrule = match:tag screenshare*, workspace 4 silent # windowrule = match:tag gamestore*, workspace 5 # windowrule = match:class ^(virt-manager)$, workspace 6 silent # windowrule = match:class ^(.virt-manager-wrapped)$, workspace 6 silent # windowrule = match:tag im*, workspace 7 # windowrule = match:class obsidian, workspace 8 # windowrule = match:tag games*, workspace 8 # windowrule = match:tag multimedia*, workspace 9 silent # TAGS - add apps under appropriate tag to use the same settings # browser tags windowrule = match:class ^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr|[Ff]irefox-bin)$, tag +browser windowrule = match:class ^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$, tag +browser windowrule = match:class ^(chrome-.+-Default)$, tag +browser windowrule = match:class ^([Cc]hromium)$, tag +browser windowrule = match:class ^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable))$, tag +browser windowrule = match:class ^([Bb]rave-browser(-beta|-dev|-unstable)?)$, tag +browser windowrule = match:class ^([Tt]horium-browser|[Cc]achy-browser)$, tag +browser windowrule = match:class ^(zen-alpha|zen)$, tag +browser # notif tags windowrule = match:class ^(swaync-control-center|swaync-notification-window|swaync-client|class)$, tag +notif # KooL settings tag windowrule = match:title ^(KooL Quick Cheat Sheet)$, tag +KooL_Cheat windowrule = match:title ^(KooL Hyprland Settings)$, tag +KooL_Settings windowrule = match:class ^(nwg-displays|nwg-look)$, tag +KooL-Settings # terminal tags windowrule = match:class ^(ghostty|wezterm|Alacritty|kitty|kitty-dropterm)$, tag +terminal # email tags windowrule = match:class ^([Tt]hunderbird|org.mozilla.Thunderbird)$, tag +email windowrule = match:class ^(eu.betterbird.Betterbird)$, tag +email windowrule = match:class ^(org.gnome.Evolution)$, tag +email # project tags windowrule = match:class ^(codium|codium-url-handler|VSCodium)$, tag +projects windowrule = match:class ^(VSCode|code|code-url-handler)$, tag +projects windowrule = match:class ^(jetbrains-.+)$, tag +projects windowrule = match:class ^(dev.zed.Zed|antigravity)$, tag +projects # screenshare tags windowrule = match:class ^(com.obsproject.Studio)$, tag +screenshare # IM tags windowrule = match:class ^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$, tag +im windowrule = match:class ^([Ff]erdium)$, tag +im windowrule = match:class ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$, tag +im windowrule = match:class ^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$, tag +im windowrule = match:class ^(teams-for-linux)$, tag +im windowrule = match:class ^(im.riot.Riot|Element)$, tag +im # game tags windowrule = match:class ^(gamescope)$, tag +games windowrule = match:class ^(steam_app_\\d+)$, tag +games windowrule = match:xdg_tag ^(proton-game)$, tag +games # gamestore tags windowrule = match:class ^([Ss]team)$, tag +gamestore windowrule = match:title ^([Ll]utris)$, tag +gamestore windowrule = match:class ^(com.heroicgameslauncher.hgl)$, tag +gamestore # file-manager tags windowrule = match:class ^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$, tag +file-manager windowrule = match:class ^(app.drey.Warp)$, tag +file-manager # wallpaper tags windowrule = match:class ^([Ww]aytrogen)$, tag +wallpaper # multimedia tags windowrule = match:class ^([Aa]udacious)$, tag +multimedia # multimedia-video tags windowrule = match:class ^([Mm]pv|vlc)$, tag +multimedia_video # settings tags windowrule = match:title ^(ROG Control)$, tag +settings windowrule = match:class ^(wihotspot(-gui)?)$, tag +settings windowrule = match:class ^([Bb]aobab|org.gnome.[Bb]aobab)$, tag +settings windowrule = match:class ^(gnome-disks|wihotspot(-gui)?)$, tag +settings windowrule = match:title (Kvantum Manager), tag +settings windowrule = match:class ^(file-roller|org.gnome.FileRoller)$, tag +settings windowrule = match:class ^(nm-applet|nm-connection-editor|blueman-manager)$, tag +settings windowrule = match:class ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$, tag +settings windowrule = match:class ^(qt5ct|qt6ct)$, tag +settings windowrule = match:class (xdg-desktop-portal-gtk), tag +settings windowrule = match:class ^(org.kde.polkit-kde-authentication-agent-1)$, tag +settings windowrule = match:class ^([Rr]ofi)$, tag +settings windowrule = match:class ^(btrfs-assistant)$, tag +settings windowrule = match:class ^(timeshift-gtk)$, tag +settings # viewer tags windowrule = match:class ^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$, tag +viewer windowrule = match:class ^(evince)$, tag +viewer windowrule = match:class ^(eog|org.gnome.Loupe)$, tag +viewer # Some special override rules windowrule = match:tag multimedia, no_blur on windowrule = match:tag multimedia, opacity 1.0 # FLOAT windowrule = match:class ([Zz]oom|onedriver|onedriver-launcher), float on windowrule = match:class ^(mpv|com.github.rafostar.Clapper)$, float on windowrule = match:class ^([Qq]alculate-gtk)$, float on # float popups and dialogue windowrule = match:title ^(Authentication Required)$, float on, center on windowrule = match:class ^(xfce-polkit|mate-polkit|polkit-mate-authentication-agent-1)$, match:title ^(Authentication required|Authentication Required)$, float on, center on, size (monitor_w*0.35) (monitor_h*0.35) windowrule = match:class (codium|codium-url-handler|VSCodium), match:title negative:(.*codium.*|.*VSCodium.*), float on windowrule = match:class ^(com.heroicgameslauncher.hgl)$, match:title negative:(Heroic Games Launcher), float on windowrule = match:class ^([Ss]team)$, match:title negative:^([Ss]team)$, float on windowrule = match:title ^(Add Folder to Workspace)$, float on, size (monitor_w*0.7) (monitor_h*0.6), center on windowrule = match:title ^(Save As)$, float on, size (monitor_w*0.7) (monitor_h*0.6), center on windowrule = match:initial_title (Open Files), float on, size (monitor_w*0.7) (monitor_h*0.6) windowrule = match:title ^(SDDM Background)$, float on, center on, size (monitor_w*0.16) (monitor_h*0.12) windowrule = match:class ^(yad)$, float on, center on, size (monitor_w*0.2) (monitor_h*0.2) windowrule = match:class ^(hyprland-donate-screen)$, float on, center on # SIZE # POSITION windowrule = match:title ^(ROG Control)$, center on windowrule = match:title ^(Keybindings)$, center on windowrule = match:class ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$, center on windowrule = match:class ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$, center on windowrule = match:class ^(nm-connection-editor)$, center on windowrule = match:class ^(nm-applet)$, match:title ^(Wi-Fi Network Authentication Required)$, center on # windowrule to avoid idle for fullscreen apps windowrule = match:fullscreen true, idle_inhibit fullscreen windowrule = idle_inhibit fullscreen, match:fullscreen 1 windowrule = idle_inhibit fullscreen, match:class .* windowrule = idle_inhibit fullscreen, match:title .* # OPACITY windowrule = match:tag browser, opacity 0.99 0.8 windowrule = match:tag projects, opacity 0.9 0.8 windowrule = match:tag im, opacity 0.94 0.86 windowrule = match:tag multimedia, opacity 0.94 0.86 windowrule = match:tag file-manager, opacity 0.9 0.8 windowrule = match:tag terminal, opacity 0.9 0.7 windowrule = match:class ^(gedit|org.gnome.TextEditor|mousepad)$, opacity 0.8 0.7 windowrule = match:class ^(deluge)$, opacity 0.9 0.8 windowrule = match:class ^(seahorse)$, opacity 0.9 0.8 # BLUR & FULLSCREEN # This not gonna take the focus to the window that appears # when hovering over some of the parts of the IntelliJ Products windowrule = match:class ^(jetbrains-.*)$, no_initial_focus on windowrule = match:title ^(wind.*)$, no_initial_focus on # LAYER RULES layerrule = match:namespace rofi, blur on layerrule = match:namespace notifications, blur on layerrule = match:namespace quickshell:overview, blur on layerrule = match:namespace quickshell:overview, ignore_alpha 0.5 # layerrule = blur on, match:namespace wallpaper layerrule = animation slide, match:namespace rofi layerrule = animation slide, match:namespace notifications # Optional Layer rules # To Resolve blurred corners in rofi Add to User config # SUPER SHIFT + E Edit User Window Rules #layerrule = blur on, ignore_alpha 0, match:namespace rofi #layerrule = blur on, match:namespace waybar windowrule { name = Picture-in-Picture match:title = ^[Pp]icture-in-[Pp]icture$ float = on move = 72% 7% opacity = 0.95 0.75 pin = on keep_aspect_ratio = on size = (monitor_w*0.3) (monitor_h*0.3) } # Named rule for CachyOS Kernel Manager windowrule { name = CachyOS Kernel Manager match:class = ^(org.cachyos.KernelManager)$ match:title = ^(CachyOS Kernel Manager)$ match:initial_class = ^(org.cachyos.KernelManager)$ match:initial_title = ^(CachyOS Kernel Manager)$ float = on center = on size = (monitor_w*0.6) (monitor_h*0.6) } # Named rule for Mainline Kernels windowrule { name = Mainline Kernels match:class = ^(mainline-gtk)$ match:title = ^(Mainline Kernels)$ match:initial_class = ^(mainline-gtk)$ match:initial_title = ^(Mainline Kernels)$ float = on center = on size = (monitor_w*0.45) (monitor_h*0.55) } # Named rule for Kwallet windowrule { name = Kwallet match:class = ^(org.kde.kwalletmanager)$ match:title = ^(Wallet Manager)$ match:initial_class = ^(org.kde.kwalletmanager)$ match:initial_title = ^(Wallet Manager)$ float = on center = on size = (monitor_w*0.6) (monitor_h*0.6) } # Named rule for NVIDIA Settings windowrule { name = NVIDIA Settings match:class = ^(nvidia-settings)$ match:title = ^(NVIDIA Settings)$ match:initial_class = ^(nvidia-settings)$ match:initial_title = ^(NVIDIA Settings)$ float = on center = on size = (monitor_w*0.6) (monitor_h*0.6) } # Named rule for CachyOS Package Installer windowrule { name = CachyOS Package Installer match:class = ^(org.cachyos.cachyos-pi)$ match:title = ^(CachyOS Package Installer)$ match:initial_class = ^(org.cachyos.cachyos-pi)$ match:initial_title = ^(CachyOS Package Installer)$ float = on center = on size = (monitor_w*0.6) (monitor_h*0.6) } # Named rule for Shelly windowrule { name = Shelly match:class = ^(com.shellyorg.shelly)$ match:title = ^(Shelly)$ match:initial_class = ^(com.shellyorg.shelly)$ match:initial_title = ^(Shelly)$ float = on center = on size = (monitor_w*0.6) (monitor_h*0.6) } # Named rule for CachyOS Hello windowrule { name = CachyOS Hello match:class = ^(CachyOSHello)$ match:title = ^(CachyOS Hello)$ match:initial_class = ^(CachyOSHello)$ match:initial_title = ^(CachyOS Hello)$ float = on center = on size = (monitor_w*0.6) (monitor_h*0.6) } # Named rule for Cache Cleaner - Octopi windowrule { name = Cache Cleaner - Octopi match:class = ^(octopi-cachecleaner)$ match:title = ^(Cache Cleaner - Octopi)$ match:initial_class = ^(octopi-cachecleaner)$ match:initial_title = ^(Cache Cleaner - Octopi)$ float = on center = on size = (monitor_w*0.6) (monitor_h*0.6) } # Named rule for Octopi Package Manager windowrule { name = Octopi Package Manager match:class = ^(octopi)$ match:title = ^(Octopi)$ match:initial_class = ^(octopi)$ match:initial_title = ^(Octopi)$ float = on center = on size = (monitor_w*0.6) (monitor_h*0.6) } # Named rule for Repository Editor - Octopi windowrule { name = Repository Editor - Octopi match:class = ^(octopi-repoeditor)$ match:title = ^(Repository Editor - Octopi)$ match:initial_class = ^(octopi-repoeditor)$ match:initial_title = ^(Repository Editor - Octop)$ float = on center = on size = (monitor_w*0.6) (monitor_h*0.6) } # Named rule for KooL Cheat (tag) windowrule { name = KooL Cheat (tag) match:tag = KooL_Cheat float = on center = on size = (monitor_w*0.65) (monitor_h*0.9) } # Named rule for Wallpaper (tag) windowrule { name = Wallpaper (tag) match:tag = wallpaper float = on center = on size = (monitor_w*0.7) (monitor_h*0.7) opacity = 0.9 0.7 } # Named rule for Settings (tag) windowrule { name = Settings (tag) match:tag = settings float = on center = on size = (monitor_w*0.7) (monitor_h*0.7) opacity = 0.8 0.7 } # Named rule for Viewer (tag) windowrule { name = Viewer (tag) match:tag = viewer float = on center = on opacity = 0.82 0.75 } # Named rule for KooL Settings (tag) windowrule { name = KooL Settings (tag) match:tag = KooL-Settings float = on center = on } # Named rule for Multimedia Video (tag) windowrule { name = Multimedia Video (tag) match:tag = multimedia_video no_blur = on opacity = 1.0 } # Named rule for Games (tag) windowrule { name = Games (tag) match:tag = games no_blur = on fullscreen = 0 } # Named rule for Ferdium windowrule { name = Ferdium match:class = ^([Ff]erdium)$ float = on center = on size = (monitor_w*0.6) (monitor_h*0.7) } # Named rule for Calculators windowrule { name = Calculators match:class = (org.gnome.Calculator|qalculate-gtk) float = on center = on size = (monitor_w*0.55) (monitor_h*0.45) } # Named rule for Thunar Dialogs windowrule { name = Thunar Dialogs match:class = ([Tt]hunar) match:title = negative:(.*[Tt]hunar.*) float = on center = on } # Named rule for Bitwarden windowrule { name = Bitwarden match:class = ^(Bitwarden)$ match:title = ^(Bitwarden)$ match:initial_class = ^(Bitwarden)$ match:initial_title = ^(Bitwarden)$ float = on center = on size = (monitor_w*0.6) (monitor_h*0.6) } # Named rule for hyprpwcenter audio control panel windowrule { name = hyprland audio panel match:class = ^(hyprpwcenter)$ match:initial_class = ^(hyprpwcenter)$ float = on center = on size = (monitor_w*0.6) (monitor_h*0.6) } # Named rule for Garida Assistant windowrule { name = Garuda Assistant match:class = ^(garuda-assistant)$ match:title = ^(Garuda Assistant)$ match:initial_class = ^(garuda-assistant)$ match:initial_title = ^(Garuda Assistant)$ float = on center = on size = (monitor_w*0.6) (monitor_h*0.6) } # Named rule for HyprMod HL config GUI windowrule { name = HyprMod GUI match:class = ^(com.github.hyprmod)$ match:title = ^(HyprMod)$ match:initial_class = ^(com.github.hyprmod)$ match:initial_title = ^(HyprMod)$ float = on center = on size = (monitor_w*0.7) (monitor_h*0.75) } # Named rule for easy effects windowrule { name = EasyEffects match:class = ^(com.github.wwmm.easyeffects)$ match:title = ^(Easy Effects)$ match:initial_class = ^(com.github.wwmm.easyeffects)$ match:initial_title = ^(Easy Effects)$ float = on center = on size = (monitor_w*0.6) (monitor_h*0.65) } # Named rule for Mousam weather GUI windowrule { name = Mousam Weather match:class = ^(io.github.amit9838.mousam)$ match:title = ^(Mousam)$ match:initial_class = ^(io.github.amit9838.mousam)$ match:initial_title = ^(Mousam)$ float = on center = on size = (monitor_w*0.7) (monitor_h*0.75) }