Consolidate omarchy-shell Hyprland rules; float settings panel

Rename apps/quickshell.lua to apps/omarchy-shell.lua and gather every
rule that targets a Quickshell surface owned by the shell:

  - menu and image-selector layer rules (image-selector moved out of
    apps/system.lua, where it didn't belong with generic floating /
    media / idle rules)
  - new window rules so the settings panel floats centered at 960x700
    instead of tiling

The settings panel is a transient dialog, not a workspace surface, so
tiling it disrupts the layout and leaves it awkwardly tall when it lands
in a half-screen split. Class+title scoping keeps the rule from leaking
into other org.quickshell windows (menu, image picker, etc.).
This commit is contained in:
Ryan Hughes
2026-05-14 02:25:05 -04:00
parent 1c559d2231
commit 08bf6d075d
3 changed files with 15 additions and 5 deletions
+15
View File
@@ -0,0 +1,15 @@
-- Window and layer rules for the Omarchy Quickshell surfaces. The
-- shell-wide bar / menu / popouts are layer-shell; the settings panel is
-- a regular Hyprland window via Quickshell's FloatingWindow.
-- Keep the menu instant: no layer-shell fade/slide animation.
hl.layer_rule({ match = { namespace = "omarchy-menu" }, no_anim = true, animation = "none" })
-- Image selector overlay should also pop without animation.
hl.layer_rule({ match = { namespace = "omarchy-image-selector" }, no_anim = true, animation = "none" })
-- Settings panel floats centered with a sensible default size instead of
-- tiling — it's a transient dialog, not a workspace surface.
hl.window_rule({ match = { class = "^org.quickshell$", title = "^Omarchy Settings$" }, float = true })
hl.window_rule({ match = { class = "^org.quickshell$", title = "^Omarchy Settings$" }, center = true })
hl.window_rule({ match = { class = "^org.quickshell$", title = "^Omarchy Settings$" }, size = { 960, 700 } })
-2
View File
@@ -1,2 +0,0 @@
-- Keep the menu instant: no layer-shell fade/slide animation.
hl.layer_rule({ match = { namespace = "omarchy-menu" }, no_anim = true, animation = "none" })
-3
View File
@@ -21,6 +21,3 @@ hl.window_rule({ match = { tag = "pop" }, rounding = 8 })
-- Prevent idle while open.
hl.window_rule({ match = { tag = "noidle" }, idle_inhibit = "always" })
-- Image selector.
hl.layer_rule({ match = { namespace = "omarchy-image-selector" }, no_anim = true, animation = "none" })