dotfiles/.config/hypr/configs/WindowRules.conf
2026-05-13 21:22:17 +02:00

471 lines
16 KiB
Text

# ==================================================
# 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)
}