diff --git a/config/nomarchy/default/hypr/apps/1password.conf b/config/nomarchy/default/hypr/apps/1password.conf index f7f56d0..9b4f4d1 100644 --- a/config/nomarchy/default/hypr/apps/1password.conf +++ b/config/nomarchy/default/hypr/apps/1password.conf @@ -1,2 +1,2 @@ -windowrulev2 = no_screen_share on, match:class ^(1[p|P]assword)$ -windowrulev2 = tag +floating-window, match:class ^(1[p|P]assword)$ +windowrulev2 = noscreenshare, class:^(1[p|P]assword)$ +windowrulev2 = tag +floating-window, class:^(1[p|P]assword)$ diff --git a/config/nomarchy/default/hypr/apps/bitwarden.conf b/config/nomarchy/default/hypr/apps/bitwarden.conf index bc7722b..d77503f 100644 --- a/config/nomarchy/default/hypr/apps/bitwarden.conf +++ b/config/nomarchy/default/hypr/apps/bitwarden.conf @@ -1,6 +1,6 @@ -windowrulev2 = no_screen_share on, match:class ^(Bitwarden)$ -windowrulev2 = tag +floating-window, match:class ^(Bitwarden)$ +windowrulev2 = noscreenshare, class:^(Bitwarden)$ +windowrulev2 = tag +floating-window, class:^(Bitwarden)$ # Bitwarden Chrome Extension -windowrulev2 = no_screen_share on, match:class chrome-nngceckbapebfimnlniiiahkandclblb-Default -windowrulev2 = tag +floating-window, match:class chrome-nngceckbapebfimnlniiiahkandclblb-Default +windowrulev2 = noscreenshare, class:chrome-nngceckbapebfimnlniiiahkandclblb-Default +windowrulev2 = tag +floating-window, class:chrome-nngceckbapebfimnlniiiahkandclblb-Default diff --git a/config/nomarchy/default/hypr/apps/browser.conf b/config/nomarchy/default/hypr/apps/browser.conf index f55c73d..3316288 100644 --- a/config/nomarchy/default/hypr/apps/browser.conf +++ b/config/nomarchy/default/hypr/apps/browser.conf @@ -1,16 +1,16 @@ # Browser types -windowrulev2 = tag +chromium-based-browser, match:class ((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium) -windowrulev2 = tag +firefox-based-browser, match:class ([fF]irefox|zen|librewolf) -windowrulev2 = tag -default-opacity, match:tag chromium-based-browser -windowrulev2 = tag -default-opacity, match:tag firefox-based-browser +windowrulev2 = tag +chromium-based-browser, class:((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium) +windowrulev2 = tag +firefox-based-browser, class:([fF]irefox|zen|librewolf) +windowrulev2 = tag -default-opacity, tag:chromium-based-browser +windowrulev2 = tag -default-opacity, tag:firefox-based-browser # Video apps: remove chromium browser tag so they don't get opacity applied -windowrulev2 = tag -chromium-based-browser, match:class (chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default) -windowrulev2 = tag -default-opacity, match:class (chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default) +windowrulev2 = tag -chromium-based-browser, class:(chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default) +windowrulev2 = tag -default-opacity, class:(chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default) # Force chromium-based browsers into a tile to deal with --app bug -windowrulev2 = tile on, match:tag chromium-based-browser +windowrulev2 = tile, tag:chromium-based-browser # Only a subtle opacity change, but not for video sites -windowrulev2 = opacity 1.0 0.97, match:tag chromium-based-browser -windowrulev2 = opacity 1.0 0.97, match:tag firefox-based-browser +windowrulev2 = opacity 1.0 0.97, tag:chromium-based-browser +windowrulev2 = opacity 1.0 0.97, tag:firefox-based-browser diff --git a/config/nomarchy/default/hypr/apps/davinci-resolve.conf b/config/nomarchy/default/hypr/apps/davinci-resolve.conf index 2f10184..d019e9d 100644 --- a/config/nomarchy/default/hypr/apps/davinci-resolve.conf +++ b/config/nomarchy/default/hypr/apps/davinci-resolve.conf @@ -1,2 +1,2 @@ # Focus floating DaVinci Resolve dialog windows -windowrulev2 = stay_focused on, match:class .*[Rr]esolve.*, match:float 1 +windowrulev2 = stayfocused, class:.*[Rr]esolve.*, float:1 diff --git a/config/nomarchy/default/hypr/apps/geforce.conf b/config/nomarchy/default/hypr/apps/geforce.conf index fb2e5a3..635a1fb 100644 --- a/config/nomarchy/default/hypr/apps/geforce.conf +++ b/config/nomarchy/default/hypr/apps/geforce.conf @@ -1,5 +1,5 @@ windowrule { name = geforce - match:class = GeForceNOW + class:= GeForceNOW idle_inhibit = fullscreen } diff --git a/config/nomarchy/default/hypr/apps/hyprshot.conf b/config/nomarchy/default/hypr/apps/hyprshot.conf index 12154ff..5d0b7ba 100644 --- a/config/nomarchy/default/hypr/apps/hyprshot.conf +++ b/config/nomarchy/default/hypr/apps/hyprshot.conf @@ -1,2 +1,2 @@ # Remove 1px border around hyprshot screenshots -layerrule = no_anim = true, match:namespace selection +layerrule = noanim, namespace:selection diff --git a/config/nomarchy/default/hypr/apps/localsend.conf b/config/nomarchy/default/hypr/apps/localsend.conf index b35bb1c..a59d810 100644 --- a/config/nomarchy/default/hypr/apps/localsend.conf +++ b/config/nomarchy/default/hypr/apps/localsend.conf @@ -1,4 +1,4 @@ # Float LocalSend and fzf file picker -windowrulev2 = float on, match:class (Share|localsend) -windowrulev2 = center on, match:class (Share|localsend) -windowrulev2 = size 1100 700, match:class localsend +windowrulev2 = float, class:(Share|localsend) +windowrulev2 = center, class:(Share|localsend) +windowrulev2 = size 1100 700, class:localsend diff --git a/config/nomarchy/default/hypr/apps/moonlight.conf b/config/nomarchy/default/hypr/apps/moonlight.conf index 271a11c..e6d85d3 100644 --- a/config/nomarchy/default/hypr/apps/moonlight.conf +++ b/config/nomarchy/default/hypr/apps/moonlight.conf @@ -1,6 +1,6 @@ windowrule { name = moonlight - match:class = com.moonlight_stream.Moonlight + class:= com.moonlight_stream.Moonlight fullscreen = 1 idle_inhibit = fullscreen } diff --git a/config/nomarchy/default/hypr/apps/pip.conf b/config/nomarchy/default/hypr/apps/pip.conf index 366dba3..2c99d07 100644 --- a/config/nomarchy/default/hypr/apps/pip.conf +++ b/config/nomarchy/default/hypr/apps/pip.conf @@ -1,10 +1,10 @@ # Picture-in-picture overlays -windowrulev2 = tag +pip, match:title (Picture.?in.?[Pp]icture) -windowrulev2 = tag -default-opacity, match:tag pip -windowrulev2 = float on, match:tag pip -windowrulev2 = pin on, match:tag pip -windowrulev2 = size 600 338, match:tag pip -windowrulev2 = keep_aspect_ratio on, match:tag pip -windowrulev2 = border_size 0, match:tag pip -windowrulev2 = opacity 1 1, match:tag pip -windowrulev2 = move (monitor_w-window_w-40) (monitor_h*0.04), match:tag pip +windowrulev2 = tag +pip, title:(Picture.?in.?[Pp]icture) +windowrulev2 = tag -default-opacity, tag:pip +windowrulev2 = float, tag:pip +windowrulev2 = pin, tag:pip +windowrulev2 = size 600 338, tag:pip +windowrulev2 = keep_aspect_ratio on, tag:pip +windowrulev2 = border_size 0, tag:pip +windowrulev2 = opacity 1 1, tag:pip +windowrulev2 = move (monitor_w-window_w-40) (monitor_h*0.04), tag:pip diff --git a/config/nomarchy/default/hypr/apps/qemu.conf b/config/nomarchy/default/hypr/apps/qemu.conf index 0d7e3d6..66598aa 100644 --- a/config/nomarchy/default/hypr/apps/qemu.conf +++ b/config/nomarchy/default/hypr/apps/qemu.conf @@ -1,2 +1,2 @@ -windowrulev2 = tag -default-opacity, match:class qemu -windowrulev2 = opacity 1 1, match:class qemu +windowrulev2 = tag -default-opacity, class:qemu +windowrulev2 = opacity 1 1, class:qemu diff --git a/config/nomarchy/default/hypr/apps/retroarch.conf b/config/nomarchy/default/hypr/apps/retroarch.conf index c5b5ee8..d2df838 100644 --- a/config/nomarchy/default/hypr/apps/retroarch.conf +++ b/config/nomarchy/default/hypr/apps/retroarch.conf @@ -1,4 +1,4 @@ -windowrulev2 = fullscreen on, match:class com.libretro.RetroArch -windowrulev2 = tag -default-opacity, match:class com.libretro.RetroArch -windowrulev2 = opacity 1 1, match:class com.libretro.RetroArch -windowrulev2 = idle_inhibit fullscreen, match:class com.libretro.RetroArch +windowrulev2 = fullscreen, class:com.libretro.RetroArch +windowrulev2 = tag -default-opacity, class:com.libretro.RetroArch +windowrulev2 = opacity 1 1, class:com.libretro.RetroArch +windowrulev2 = idleinhibit fullscreen, class:com.libretro.RetroArch diff --git a/config/nomarchy/default/hypr/apps/steam.conf b/config/nomarchy/default/hypr/apps/steam.conf index 0aca5c1..f65a215 100644 --- a/config/nomarchy/default/hypr/apps/steam.conf +++ b/config/nomarchy/default/hypr/apps/steam.conf @@ -1,8 +1,8 @@ # Float Steam -windowrulev2 = float on, match:class steam -windowrulev2 = center on, match:class steam, match:title Steam -windowrulev2 = tag -default-opacity, match:class steam.* -windowrulev2 = opacity 1 1, match:class steam.* -windowrulev2 = size 1100 700, match:class steam, match:title Steam -windowrulev2 = size 460 800, match:class steam, match:title Friends List -windowrulev2 = idle_inhibit fullscreen, match:class steam +windowrulev2 = float, class:steam +windowrulev2 = center, class:steam, title:Steam +windowrulev2 = tag -default-opacity, class:steam.* +windowrulev2 = opacity 1 1, class:steam.* +windowrulev2 = size 1100 700, class:steam, title:Steam +windowrulev2 = size 460 800, class:steam, title:Friends List +windowrulev2 = idleinhibit fullscreen, class:steam diff --git a/config/nomarchy/default/hypr/apps/system.conf b/config/nomarchy/default/hypr/apps/system.conf index 1a18159..aa67771 100644 --- a/config/nomarchy/default/hypr/apps/system.conf +++ b/config/nomarchy/default/hypr/apps/system.conf @@ -1,23 +1,23 @@ # Floating windows -windowrulev2 = float on, match:tag floating-window -windowrulev2 = center on, match:tag floating-window -windowrulev2 = size 875 600, match:tag floating-window +windowrulev2 = float, tag:floating-window +windowrulev2 = center, tag:floating-window +windowrulev2 = size 875 600, tag:floating-window -windowrulev2 = tag +floating-window, match:class (org.nomarchy.bluetui|org.nomarchy.impala|org.nomarchy.wiremix|org.nomarchy.btop|org.nomarchy.terminal|org.nomarchy.bash|org.gnome.NautilusPreviewer|org.gnome.Evince|com.gabm.satty|Nomarchy|About|TUI.float|imv|mpv) -windowrulev2 = 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.*) -windowrulev2 = float on, match:class org.gnome.Calculator +windowrulev2 = tag +floating-window, class:(org.nomarchy.bluetui|org.nomarchy.impala|org.nomarchy.wiremix|org.nomarchy.btop|org.nomarchy.terminal|org.nomarchy.bash|org.gnome.NautilusPreviewer|org.gnome.Evince|com.gabm.satty|Nomarchy|About|TUI.float|imv|mpv) +windowrulev2 = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus), title:^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*) +windowrulev2 = float, class:org.gnome.Calculator # Fullscreen screensaver -windowrulev2 = fullscreen on, match:class org.nomarchy.screensaver -windowrulev2 = float on, match:class org.nomarchy.screensaver -windowrulev2 = animation slide, match:class org.nomarchy.screensaver +windowrulev2 = fullscreen, class:org.nomarchy.screensaver +windowrulev2 = float, class:org.nomarchy.screensaver +windowrulev2 = animation slide, class:org.nomarchy.screensaver # No transparency on media windows -windowrulev2 = tag -default-opacity, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$ -windowrulev2 = opacity 1 1, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$ +windowrulev2 = tag -default-opacity, class:^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$ +windowrulev2 = opacity 1 1, class:^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$ # Popped window rounding -windowrulev2 = rounding 8, match:tag pop +windowrulev2 = rounding 8, tag:pop # Prevent idle while open -windowrulev2 = idle_inhibit always, match:tag noidle +windowrulev2 = idleinhibit always, tag:noidle diff --git a/config/nomarchy/default/hypr/apps/telegram.conf b/config/nomarchy/default/hypr/apps/telegram.conf index 25209ae..6ecea41 100644 --- a/config/nomarchy/default/hypr/apps/telegram.conf +++ b/config/nomarchy/default/hypr/apps/telegram.conf @@ -1,2 +1,2 @@ # Prevent Telegram from stealing focus on new messages -windowrulev2 = focus_on_activate off, match:class org.telegram.desktop +windowrulev2 = focusonactivate off, class:org.telegram.desktop diff --git a/config/nomarchy/default/hypr/apps/terminals.conf b/config/nomarchy/default/hypr/apps/terminals.conf index 7598f61..20b4f89 100644 --- a/config/nomarchy/default/hypr/apps/terminals.conf +++ b/config/nomarchy/default/hypr/apps/terminals.conf @@ -1,4 +1,4 @@ # Define terminal tag to style them uniformly -windowrulev2 = tag +terminal, match:class (Alacritty|kitty|com.mitchellh.ghostty) -windowrulev2 = tag -default-opacity, match:tag terminal -windowrulev2 = opacity 0.97 0.9, match:tag terminal +windowrulev2 = tag +terminal, class:(Alacritty|kitty|com.mitchellh.ghostty) +windowrulev2 = tag -default-opacity, tag:terminal +windowrulev2 = opacity 0.97 0.9, tag:terminal diff --git a/config/nomarchy/default/hypr/apps/walker.conf b/config/nomarchy/default/hypr/apps/walker.conf index 8f393f1..1d2c2b3 100644 --- a/config/nomarchy/default/hypr/apps/walker.conf +++ b/config/nomarchy/default/hypr/apps/walker.conf @@ -1,2 +1,2 @@ # Application-specific animation -layerrule = no_anim = true, match:namespace walker +layerrule = noanim, namespace:walker diff --git a/config/nomarchy/default/hypr/apps/webcam-overlay.conf b/config/nomarchy/default/hypr/apps/webcam-overlay.conf index 2895369..459ceb6 100644 --- a/config/nomarchy/default/hypr/apps/webcam-overlay.conf +++ b/config/nomarchy/default/hypr/apps/webcam-overlay.conf @@ -1,6 +1,6 @@ # Webcam overlay for screen recording -windowrulev2 = float on, match:title WebcamOverlay -windowrulev2 = pin on, match:title WebcamOverlay -windowrulev2 = no_initial_focus on, match:title WebcamOverlay -windowrulev2 = no_dim on, match:title WebcamOverlay -windowrulev2 = move (monitor_w-window_w-40) (monitor_h-window_h-40), match:title WebcamOverlay +windowrulev2 = float, title:WebcamOverlay +windowrulev2 = pin, title:WebcamOverlay +windowrulev2 = noinitialfocus, title:WebcamOverlay +windowrulev2 = nodim, title:WebcamOverlay +windowrulev2 = move (monitor_w-window_w-40) (monitor_h-window_h-40), title:WebcamOverlay diff --git a/config/nomarchy/default/hypr/windows.conf b/config/nomarchy/default/hypr/windows.conf index 387fe2d..95dcb8f 100644 --- a/config/nomarchy/default/hypr/windows.conf +++ b/config/nomarchy/default/hypr/windows.conf @@ -1,15 +1,15 @@ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # Hyprland 0.53+ syntax -windowrulev2 = suppress_event maximize, match:class .* +windowrulev2 = suppress_event maximize, class:.* # Tag all windows for default opacity (apps can override with -default-opacity tag) -windowrulev2 = tag +default-opacity, match:class .* +windowrulev2 = tag +default-opacity, class:.* # Fix some dragging issues with XWayland -windowrulev2 = no_focus on, match:class ^$, match:title ^$, match:xwayland 1, match:float 1, match:fullscreen 0, match:pin 0 +windowrulev2 = nofocus, class:^$, title:^$, xwayland:1, float:1, fullscreen:0, pin:0 # App-specific tweaks (may remove default-opacity tag) source = ~/.config/nomarchy/default/hypr/apps.conf # Apply default opacity after apps have had a chance to opt out -windowrulev2 = opacity 0.97 0.9, match:tag default-opacity +windowrulev2 = opacity 0.97 0.9, tag:default-opacity diff --git a/modules/home/hyprland.nix b/modules/home/hyprland.nix index aa1ef05..1d230f9 100644 --- a/modules/home/hyprland.nix +++ b/modules/home/hyprland.nix @@ -25,9 +25,9 @@ in "col.inactive_border" = "rgb(${config.colorScheme.palette.base03})"; }; "exec-once" = [ - # "swww-daemon & sleep 0.5 && swww img ${activeWallpaper} --transition-type none" - # "nomarchy-on-boot" - # "nomarchy-welcome" + "swww-daemon & sleep 0.5 && swww img ${activeWallpaper} --transition-type none" + "nomarchy-on-boot" + "nomarchy-welcome" "alacritty" ] ++ (lib.optional config.nomarchy.toggles.waybar "waybar"); "bind" = [