aboutsummaryrefslogtreecommitdiffstats
path: root/docs/superpowers/specs
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-12 18:34:41 +0200
committerDanilo M. <danix@danix.xyz>2026-09-12 18:34:41 +0200
commit61444966c743ee88b8823f986519b70d59405805 (patch)
tree5a04b721b2609651b2ed2417010b4d7abbe7068a /docs/superpowers/specs
parentaed6d2ba552a43d91dd283d567b837a2b7712697 (diff)
downloadquickshell-61444966c743ee88b8823f986519b70d59405805.tar.gz
quickshell-61444966c743ee88b8823f986519b70d59405805.zip
docs(window-switcher): an empty state, rather than opening on nothing
ALT + TAB with no windows would otherwise give a full-screen dim with nothing in it, which reads as a hang. It is reachable from a fresh session, and from closing the last window in the switcher itself, which stays open by design. It now says so instead. The empty state has no card to click, so the backdrop closes the overlay on click as well as on Escape. That applies generally, not only when there is nothing to show. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SYg4wYHq5XNbiVmMeKRb1S
Diffstat (limited to 'docs/superpowers/specs')
-rw-r--r--docs/superpowers/specs/2026-09-12-window-switcher-design.md19
1 files changed, 19 insertions, 0 deletions
diff --git a/docs/superpowers/specs/2026-09-12-window-switcher-design.md b/docs/superpowers/specs/2026-09-12-window-switcher-design.md
index 5689ace..487de1d 100644
--- a/docs/superpowers/specs/2026-09-12-window-switcher-design.md
+++ b/docs/superpowers/specs/2026-09-12-window-switcher-design.md
@@ -71,6 +71,24 @@ Both corner overlays need a scrim or shadow behind them. A themed icon drawn
over an arbitrary window preview can land on a same-coloured region and
disappear, a light icon on a white page being the obvious case.
+## With nothing to show
+
+When the filtered list is empty, the overlay still opens, and shows two centred
+lines in place of the grid:
+
+ Nothing here but hopes and dreams...
+ go create something beautiful!
+
+The second is larger and dimmer than the first.
+
+The state is reachable two ways: a fresh session before anything is launched,
+and closing the last window from the switcher itself, which stays open by
+design. Opening on nothing was considered and rejected in favour of this,
+because a full-screen dim with nothing in it reads as a hang.
+
+Since there is no card to click in this state, the backdrop closes the overlay
+on click as well as on Escape. That holds generally, not only when empty.
+
## Data
One source: `Hyprland.toplevels`, refreshed with `Hyprland.refreshToplevels()`
@@ -105,6 +123,7 @@ open; there is no attempt to detect the ALT release.
| arrows / TAB | move the selection |
| Enter | focus the selection, close the overlay |
| Escape | close the overlay, focus nothing |
+| click the backdrop | close the overlay, focus nothing |
The close button leaves the overlay open because closing is a side errand: a
dismissal would mean reopening to close a second window. The card disappears on