2026-02-28 18:05:01 +00:00
|
|
|
# Browser types
|
|
|
|
|
windowrule = tag +chromium-based-browser, match:class ((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium)
|
|
|
|
|
windowrule = tag +firefox-based-browser, match:class ([fF]irefox|zen|librewolf)
|
|
|
|
|
windowrule = tag -default-opacity, match:tag chromium-based-browser
|
|
|
|
|
windowrule = tag -default-opacity, match:tag firefox-based-browser
|
|
|
|
|
|
|
|
|
|
# Video apps: remove chromium browser tag so they don't get opacity applied
|
|
|
|
|
windowrule = tag -chromium-based-browser, match:class (chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default)
|
|
|
|
|
windowrule = tag -default-opacity, match:class (chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default)
|
|
|
|
|
|
|
|
|
|
# Force chromium-based browsers into a tile to deal with --app bug
|
|
|
|
|
windowrule = tile on, match:tag chromium-based-browser
|
|
|
|
|
|
|
|
|
|
# Only a subtle opacity change, but not for video sites
|
|
|
|
|
windowrule = opacity 1.0 0.97, match:tag chromium-based-browser
|
|
|
|
|
windowrule = opacity 1.0 0.97, match:tag firefox-based-browser
|
|
|
|
|
|
|
|
|
|
windowrule {
|
2026-03-06 23:42:56 +00:00
|
|
|
name = geforce
|
|
|
|
|
match:class = GeForceNOW
|
|
|
|
|
idle_inhibit = fullscreen
|
2026-02-28 18:05:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Remove 1px border around hyprshot screenshots
|
|
|
|
|
layerrule = no_anim on, match:namespace selection
|
|
|
|
|
|
|
|
|
|
# Jetbrains
|
|
|
|
|
# Fix splash screen showing in weird places and prevent annoying focus takeovers
|
|
|
|
|
windowrule {
|
|
|
|
|
name = jetbrains-splash
|
|
|
|
|
match:class = ^(jetbrains-.*)$
|
|
|
|
|
match:title = ^(splash)$
|
|
|
|
|
match:float = 1
|
|
|
|
|
tag = +jetbrains-splash
|
|
|
|
|
center = on
|
|
|
|
|
no_focus = on
|
|
|
|
|
border_size = 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Center popups/find windows
|
|
|
|
|
windowrule {
|
|
|
|
|
name = jetbrains-popup
|
|
|
|
|
match:class = ^(jetbrains-.*)
|
|
|
|
|
match:title = ^()$
|
|
|
|
|
match:float = 1
|
|
|
|
|
tag = +jetbrains
|
|
|
|
|
center = on
|
|
|
|
|
# Enabling this makes it possible to provide input in popup dialogs (search window, new file, etc.)
|
|
|
|
|
stay_focused = on
|
|
|
|
|
border_size = 0
|
|
|
|
|
min_size = (monitor_w*0.5) (monitor_h*0.5)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Disable window flicker when autocomplete or tooltips appear
|
|
|
|
|
windowrule {
|
|
|
|
|
name = jetbrains-tooltip
|
|
|
|
|
match:class = ^(jetbrains-.*)$
|
|
|
|
|
match:title = ^(win.*)$
|
|
|
|
|
match:float = 1
|
|
|
|
|
no_initial_focus = on
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Disable mouse focus
|
|
|
|
|
windowrule {
|
|
|
|
|
name = jetbrains-focus
|
|
|
|
|
no_follow_mouse = on
|
|
|
|
|
match:class = ^(jetbrains-.*)$
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-06 23:42:56 +00:00
|
|
|
# Keep enpass focused
|
|
|
|
|
windowrule {
|
|
|
|
|
name = enpass-assistant
|
|
|
|
|
match:title = ^(Enpass Assistant)$
|
|
|
|
|
match:class = ^(Enpass)$
|
|
|
|
|
stay_focused = on
|
|
|
|
|
center = on
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-28 18:05:01 +00:00
|
|
|
# Float LocalSend and fzf file picker
|
|
|
|
|
windowrule = float on, match:class (Share|localsend)
|
|
|
|
|
windowrule = center on, match:class (Share|localsend)
|
|
|
|
|
|
|
|
|
|
# Picture-in-picture overlays
|
|
|
|
|
windowrule = tag +pip, match:title (Picture.?in.?[Pp]icture)
|
|
|
|
|
windowrule = tag -default-opacity, match:tag pip
|
|
|
|
|
windowrule = float on, match:tag pip
|
|
|
|
|
windowrule = pin on, match:tag pip
|
|
|
|
|
windowrule = size 600 338, match:tag pip
|
|
|
|
|
windowrule = keep_aspect_ratio on, match:tag pip
|
|
|
|
|
windowrule = border_size 0, match:tag pip
|
|
|
|
|
windowrule = opacity 1 1, match:tag pip
|
|
|
|
|
windowrule = move (monitor_w-window_w-40) (monitor_h*0.04), match:tag pip
|
|
|
|
|
|
|
|
|
|
# qemu
|
|
|
|
|
windowrule = tag -default-opacity, match:class qemu
|
|
|
|
|
windowrule = opacity 1 1, match:class qemu
|
|
|
|
|
|
|
|
|
|
# Retroarch
|
|
|
|
|
windowrule = fullscreen on, match:class com.libretro.RetroArch
|
|
|
|
|
windowrule = tag -default-opacity, match:class com.libretro.RetroArch
|
|
|
|
|
windowrule = opacity 1 1, match:class com.libretro.RetroArch
|
|
|
|
|
windowrule = idle_inhibit fullscreen, match:class com.libretro.RetroArch
|
|
|
|
|
|
|
|
|
|
# Float Steam
|
|
|
|
|
windowrule = float on, match:class steam
|
|
|
|
|
windowrule = center on, match:class steam, match:title Steam
|
|
|
|
|
windowrule = tag -default-opacity, match:class steam.*
|
|
|
|
|
windowrule = opacity 1 1, match:class steam.*
|
|
|
|
|
windowrule = size 1100 700, match:class steam, match:title Steam
|
|
|
|
|
windowrule = size 460 800, match:class steam, match:title Friends List
|
|
|
|
|
windowrule = idle_inhibit fullscreen, match:class steam
|
|
|
|
|
|
2026-03-07 00:26:25 +00:00
|
|
|
# Float Lunar Client
|
|
|
|
|
windowrule = float on, match:class lunarclient
|
|
|
|
|
windowrule = center on, match:class lunarclient
|
|
|
|
|
windowrule = tag -default-opacity, match:class lunarclient
|
|
|
|
|
windowrule = opacity 1 1, match:class lunarclient
|
|
|
|
|
windowrule = size 1100 700, match:class lunarclient
|
|
|
|
|
windowrule = idle_inhibit fullscreen, match:class lunarclient
|
|
|
|
|
|
2026-02-28 18:05:01 +00:00
|
|
|
# Floating windows
|
|
|
|
|
windowrule = float on, match:tag floating-window
|
|
|
|
|
windowrule = center on, match:tag floating-window
|
|
|
|
|
windowrule = size 875 600, match:tag floating-window
|
|
|
|
|
|
2026-03-06 23:42:56 +00:00
|
|
|
windowrule = tag +floating-window, match:class (org.station.bluetui|org.station.impala|org.station.wiremix|org.station.btop|org.station.terminal|org.station.bash|org.gnome.NautilusPreviewer|org.gnome.Evince|com.gabm.satty|Station|About|TUI.float|imv|mpv)
|
2026-02-28 18:05:01 +00:00
|
|
|
windowrule = tag +floating-window, match:class (xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus), match:title ^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*)
|
|
|
|
|
windowrule = float on, match:class org.gnome.Calculator
|
|
|
|
|
|
|
|
|
|
# Fullscreen screensaver
|
2026-03-06 23:42:56 +00:00
|
|
|
windowrule = fullscreen on, match:class org.station.screensaver
|
|
|
|
|
windowrule = float on, match:class org.station.screensaver
|
|
|
|
|
windowrule = animation slide, match:class org.station.screensaver
|
2026-02-28 18:05:01 +00:00
|
|
|
|
|
|
|
|
# No transparency on media windows
|
|
|
|
|
windowrule = tag -default-opacity, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$
|
|
|
|
|
windowrule = opacity 1 1, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$
|
|
|
|
|
|
|
|
|
|
# Popped window rounding
|
|
|
|
|
windowrule = rounding 8, match:tag pop
|
|
|
|
|
|
|
|
|
|
# Prevent idle while open
|
|
|
|
|
windowrule = idle_inhibit always, match:tag noidle
|
|
|
|
|
|
|
|
|
|
# Prevent Telegram from stealing focus on new messages
|
|
|
|
|
windowrule = focus_on_activate off, match:class org.telegram.desktop
|
|
|
|
|
|
|
|
|
|
# Define terminal tag to style them uniformly
|
|
|
|
|
windowrule = tag +terminal, match:class (Alacritty|kitty|com.mitchellh.ghostty)
|
|
|
|
|
windowrule = tag -default-opacity, match:tag terminal
|
|
|
|
|
windowrule = opacity 0.97 0.9, match:tag terminal
|
|
|
|
|
|
|
|
|
|
# Application-specific animation
|
|
|
|
|
layerrule = no_anim on, match:namespace walker
|
|
|
|
|
|
|
|
|
|
# Webcam overlay for screen recording
|
|
|
|
|
windowrule = float on, match:title WebcamOverlay
|
|
|
|
|
windowrule = pin on, match:title WebcamOverlay
|
|
|
|
|
windowrule = no_initial_focus on, match:title WebcamOverlay
|
|
|
|
|
windowrule = no_dim on, match:title WebcamOverlay
|
|
|
|
|
windowrule = move (monitor_w-window_w-40) (monitor_h-window_h-40), match:title WebcamOverlay
|