# 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 { name = geforce match:class = GeForceNOW idle_inhibit = fullscreen } # 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-.*)$ } # Keep enpass focused windowrule { name = enpass-assistant match:title = ^(Enpass Assistant)$ match:class = ^(Enpass)$ stay_focused = on center = on } # 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 = workspace 5, 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 # Scratchpad apps windowrule = workspace special:scratchpad, match:class Spotify windowrule = workspace special:scratchpad, match:class signal windowrule = workspace special:scratchpad, match:class ^(chrome-discord.com__channels_@me-Default)$ windowrule = workspace special:scratchpad, match:class ^(chrome-web.whatsapp.com__-Default)$ # Float Nextcloud windowrule = float on, match:class com.nextcloud.desktopclient.nextcloud # Position drawing windowrule = workspace 5, match:class (krita) windowrule = tag -default-opacity, match:class (krita) windowrule = opacity 1 1, match:class (krita) # Position TV windowrule = workspace 7, match:class ^(chrome-youtube.com__-Default)$ windowrule = workspace 7, match:class ^(chrome-netflix.com__-Default)$ # Float Steam windowrule = float on, match:class steam windowrule = workspace 7, 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 # Float Lunar Client windowrule = float on, match:class lunarclient windowrule = workspace 7, 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 # Floating windows windowrule = float on, match:tag floating-window windowrule = center on, match:tag floating-window windowrule = size 875 600, match:tag floating-window 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) 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 windowrule = fullscreen on, match:class org.station.screensaver windowrule = float on, match:class org.station.screensaver windowrule = animation slide, match:class org.station.screensaver # 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