aboutsummaryrefslogtreecommitdiffstats
path: root/window-switcher/README.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-10-18 12:26:10 +0200
committerDanilo M. <danix@danix.xyz>2026-10-18 12:26:10 +0200
commit1f6bd402b5d2ffef845129a327cae95113b23e55 (patch)
treeb522d59b159b82de33eb8014dda815c2f5b62fa7 /window-switcher/README.md
parenta880134140f7ab8195c6651c2f64f614855c8dce (diff)
downloadquickshell-1f6bd402b5d2ffef845129a327cae95113b23e55.tar.gz
quickshell-1f6bd402b5d2ffef845129a327cae95113b23e55.zip
window-switcher: animate, respace and label the expose, add arrow keys
Closing a window from the expose now glides the rest into their new rects instead of jumping. The Repeater's plain array model rebuilt every card on any change, leaving nothing to animate; ScriptModel diffs by identity, so only the closed card goes. The Behaviors stay off until the fade-in settles, or every card would fly in from the corner on open. The scatter keeps its centre weighting but spaces windows further apart (GAP 60 -> 200 real px) and may fill 95% of the screen rather than 92%. Measured with node at 7 windows: about 45px on screen between cards. The bottom 28px are reserved so the lowest card's name stays on screen. Each card shows the app's desktop-entry name below its preview, falling back to the app id, and the app icon moved to a larger overlay in the preview's bottom-left corner; the hover title starts right of it. Arrow keys select a card and Enter focuses it. The scatter has no grid, so Expose.step picks the nearest centre on the arrow's side with sideways drift counted double, and the first press picks the top-left card; test_expose.js covers it. The selection is held as the window, not an index, so a close that shifts the list does not move it, and hovering selects too, so pointer and keys never show two highlights. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'window-switcher/README.md')
-rw-r--r--window-switcher/README.md10
1 files changed, 7 insertions, 3 deletions
diff --git a/window-switcher/README.md b/window-switcher/README.md
index a0e72f4..fb3dc8d 100644
--- a/window-switcher/README.md
+++ b/window-switcher/README.md
@@ -57,11 +57,15 @@ shell to expand `~`. The bind lives in `keybindings.lua` on ALT+TAB. `show` and
| top-right corner of DP-1 | open, after the glow (see below) |
| click a preview | focus that window and dismiss |
| the `x` on a hovered preview | close that window, overlay stays open |
+| arrow keys | select a preview; the first press picks the top-left one |
+| Enter | focus the selected window and dismiss |
| Escape, or a click on the backdrop | dismiss, focus unchanged |
-The title and the `x` show only on hover, which also draws the accent border.
-There is no keyboard selection: this is a pointer feature, and the keyboard
-keeps only the way in and Escape.
+The selected preview draws the glow, the accent border and its title. Hovering
+a preview selects it, so the pointer and the arrows share one selection rather
+than showing two. The scatter has no rows or columns, so an arrow moves to the
+nearest preview on that side, preferring one level with the current one
+(`Expose.step`). The `x` stays hover-only: closing is a pointer errand.
Closing leaves the overlay up on purpose. Tidying several windows would
otherwise mean reopening between each one, and the preview goes when Hyprland