fix(vm): increase RAM to 8GB and fix Hyprland rule syntax to prevent crashes

- Increase VM memory to 8192MB to avoid OOM kills during session startup.
- Migrate all 'windowrule' to 'windowrulev2' in core configuration.
- Fix 'no_anim' syntax in layer rules.
- Re-enable graphics while keeping serial logs for debugging.
This commit is contained in:
Bernardo Magri
2026-04-05 14:17:52 +01:00
parent c71cb7ea71
commit 1fa60ed64a
20 changed files with 124 additions and 79 deletions

View File

@@ -1,2 +1,2 @@
windowrule = no_screen_share on, match:class ^(1[p|P]assword)$
windowrule = tag +floating-window, match:class ^(1[p|P]assword)$
windowrulev2 = no_screen_share on, match:class ^(1[p|P]assword)$
windowrulev2 = tag +floating-window, match:class ^(1[p|P]assword)$

View File

@@ -1,6 +1,6 @@
windowrule = no_screen_share on, match:class ^(Bitwarden)$
windowrule = tag +floating-window, match:class ^(Bitwarden)$
windowrulev2 = no_screen_share on, match:class ^(Bitwarden)$
windowrulev2 = tag +floating-window, match:class ^(Bitwarden)$
# Bitwarden Chrome Extension
windowrule = no_screen_share on, match:class chrome-nngceckbapebfimnlniiiahkandclblb-Default
windowrule = tag +floating-window, match:class chrome-nngceckbapebfimnlniiiahkandclblb-Default
windowrulev2 = no_screen_share on, match:class chrome-nngceckbapebfimnlniiiahkandclblb-Default
windowrulev2 = tag +floating-window, match:class chrome-nngceckbapebfimnlniiiahkandclblb-Default

View File

@@ -1,16 +1,16 @@
# 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
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
# 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)
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)
# Force chromium-based browsers into a tile to deal with --app bug
windowrule = tile on, match:tag chromium-based-browser
windowrulev2 = 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
windowrulev2 = opacity 1.0 0.97, match:tag chromium-based-browser
windowrulev2 = opacity 1.0 0.97, match:tag firefox-based-browser

View File

@@ -1,2 +1,2 @@
# Focus floating DaVinci Resolve dialog windows
windowrule = stay_focused on, match:class .*[Rr]esolve.*, match:float 1
windowrulev2 = stay_focused on, match:class .*[Rr]esolve.*, match:float 1

View File

@@ -1,2 +1,2 @@
# Remove 1px border around hyprshot screenshots
layerrule = no_anim on, match:namespace selection
layerrule = no_anim = true, match:namespace selection

View File

@@ -1,4 +1,4 @@
# Float LocalSend and fzf file picker
windowrule = float on, match:class (Share|localsend)
windowrule = center on, match:class (Share|localsend)
windowrule = size 1100 700, match:class localsend
windowrulev2 = float on, match:class (Share|localsend)
windowrulev2 = center on, match:class (Share|localsend)
windowrulev2 = size 1100 700, match:class localsend

View File

@@ -1,10 +1,10 @@
# 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
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

View File

@@ -1,2 +1,2 @@
windowrule = tag -default-opacity, match:class qemu
windowrule = opacity 1 1, match:class qemu
windowrulev2 = tag -default-opacity, match:class qemu
windowrulev2 = opacity 1 1, match:class qemu

View File

@@ -1,4 +1,4 @@
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
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

View File

@@ -1,8 +1,8 @@
# 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
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

View File

@@ -1,23 +1,23 @@
# Floating windows
windowrule = float on, match:tag floating-window
windowrule = center on, match:tag floating-window
windowrule = size 875 600, match:tag floating-window
windowrulev2 = float on, match:tag floating-window
windowrulev2 = center on, match:tag floating-window
windowrulev2 = size 875 600, match:tag floating-window
windowrule = 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)
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
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
# Fullscreen screensaver
windowrule = fullscreen on, match:class org.nomarchy.screensaver
windowrule = float on, match:class org.nomarchy.screensaver
windowrule = animation slide, match:class org.nomarchy.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
# 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)$
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)$
# Popped window rounding
windowrule = rounding 8, match:tag pop
windowrulev2 = rounding 8, match:tag pop
# Prevent idle while open
windowrule = idle_inhibit always, match:tag noidle
windowrulev2 = idle_inhibit always, match:tag noidle

View File

@@ -1,2 +1,2 @@
# Prevent Telegram from stealing focus on new messages
windowrule = focus_on_activate off, match:class org.telegram.desktop
windowrulev2 = focus_on_activate off, match:class org.telegram.desktop

View File

@@ -1,4 +1,4 @@
# 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
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

View File

@@ -1,2 +1,2 @@
# Application-specific animation
layerrule = no_anim on, match:namespace walker
layerrule = no_anim = true, match:namespace walker

View File

@@ -1,6 +1,6 @@
# 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
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