From baa8f7d43686634c163950970bfe826948191f41 Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Sat, 17 Oct 2026 13:36:49 -0400 Subject: [PATCH] umbriel: scratchpad residents float as a centered 960px square instead of maximized --- docs/desktop/umbriel.mdx | 4 ++-- dot_config/umbriel/config.toml | 6 +++--- dot_config/umbriel/rules.toml | 18 ++++++++++++++++-- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/docs/desktop/umbriel.mdx b/docs/desktop/umbriel.mdx index df91e73..63f13a4 100644 --- a/docs/desktop/umbriel.mdx +++ b/docs/desktop/umbriel.mdx @@ -61,7 +61,7 @@ The Studio Display's phantom 640x480 connector, which niri switched off as `DP-5 ## Scratchpads -Named scratchpads replace Hyprland's `special:*` workspaces and `omarchy-toggle-scratch`. A window rule sends each app into its scratchpad when it opens; toggling an empty scratchpad runs `spawn_when_empty`. Shown scratchpads are maximized over a desktop dimmed to 0.6, on the output under the pointer. +Named scratchpads replace Hyprland's `special:*` workspaces and `omarchy-toggle-scratch`. A window rule sends each app into its scratchpad when it opens; toggling an empty scratchpad runs `spawn_when_empty`. A shown scratchpad window floats as a 960 px square centered on the output under the pointer (`default_floating_size_px`, the last window rule in `rules.toml`; 960 fits the laptop panel's 1038 px usable height) over a desktop dimmed to 0.6. `animation.scratchpad.maximize` is off. The size is a default: a resident that was already open before the rule changed keeps its old geometry until it is reopened. | Scratchpad | App id | Launch | Keys | | --- | --- | --- | --- | @@ -85,7 +85,7 @@ Named scratchpads replace Hyprland's `special:*` workspaces and `omarchy-toggle- | title `Picture-in-Picture` / `Picture in picture` | floating, unfocused, opaque, 24 px from the top-right of `eDP-1` | | YouTube and chat/mail/dashboard apps (`chromium`, Calendar, Discord, Slack, Gemini, Hermes, Todoist, Cloudflare web apps) | laptop panel, workspace 1, maximized | | `zed`, `obsidian`, sticky notes, `vacuumtube`, `Fladder`, `kitty`, `kitty-herdr`, `kitty-tmux` | Apple Studio Display | -| the six scratchpad apps | their scratchpad | +| the six scratchpad apps | their scratchpad, floating 960×960 centered | Noctalia's bar, panels, notifications, dock, OSD, and desktop widgets get blur through a layer rule. diff --git a/dot_config/umbriel/config.toml b/dot_config/umbriel/config.toml index 6bf3b7f..cd4fe86 100644 --- a/dot_config/umbriel/config.toml +++ b/dot_config/umbriel/config.toml @@ -111,9 +111,9 @@ curve = "spring:0.78,1350" curve = "spring:0.85,1463" workspace_curve = "spring:0.78,1350" -# Hyprland's special workspaces show their app tiled over the whole output -# above a dimmed desktop; maximize is the scratchpad equivalent. +# Scratchpad residents float as a centered square (rules.toml, the last +# window rule) above a dimmed desktop, so maximize stays off here. [animation.scratchpad] curve = "spring:0.85,1463" dim = 0.6 -maximize = true +maximize = false diff --git a/dot_config/umbriel/rules.toml b/dot_config/umbriel/rules.toml index 1d975a9..0b5c7b2 100644 --- a/dot_config/umbriel/rules.toml +++ b/dot_config/umbriel/rules.toml @@ -119,8 +119,7 @@ default_output = "Apple Computer Inc StudioDisplay 0x984262A7" match.title = "^Sticky Notes$" default_output = "Apple Computer Inc StudioDisplay 0x984262A7" -# Scratchpad residents, last so they win over the placement rules above. Their -# presentation (maximized) is animation.scratchpad in config.toml. +# Scratchpad residents, last so they win over the placement rules above. [[window_rule]] match.app_id = "^so[.]stencil[.]tern$" default_scratchpad = "tern" @@ -145,6 +144,21 @@ default_scratchpad = "home" match.app_id = "^ai[.]elementlabs[.]lmstudio$" default_scratchpad = "lmstudio" +# Presentation shared by every scratchpad resident: a 960px square centered on +# the output (fits the laptop panel's 1038px usable height), floating so it +# never joins the strip. Last, so it overrides default_floating = false from +# the translucent-apps rule for Claude and Beeper. +[[window_rule]] +match.app_id = [ + "^so[.]stencil[.]tern$", "^com[.]anthropic[.]Claude$", + "^com[.-]fastmail[.-][Ff]astmail$", "^Beeper$", + "^brave-home[.]google[.]com__", "^ai[.]elementlabs[.]lmstudio$", +] +default_floating = true +default_maximize = false +default_floating_size_px = { width = 960, height = 960 } +default_position = { x = 0, y = 0, anchor = "center" } + # ============================================================================== # Layer rules