new-tab chord is Alt+Shift+T (prefix-based) and grabbed

Change Ctrl+Shift+T to Alt+Shift+T (Super+Shift+T under --modifier super),
matching the other tab-management chords.  It is now grabbed: process_key_event
returns true so the focused client never sees the chord, instead of passing it
through.
This commit is contained in:
Andrew Hamilton 2026-08-18 13:47:00 +10:00
parent e3cba0f7d7
commit 5d840a09dd
3 changed files with 34 additions and 35 deletions

View file

@ -77,7 +77,7 @@ as children of tabbed-wlroots and connect to its private Wayland socket, so
`DISPLAY` is unset for them and their `WAYLAND_DISPLAY` points at the tabbed
compositor (clients are launched with the GDK and Qt Wayland backends forced).
`Ctrl+Shift+T` opens the terminal named by the `$TERMINAL` environment variable
`Alt+Shift+T` opens the terminal named by the `$TERMINAL` environment variable
when it is set (see Key bindings); otherwise it falls back to `alacritty`. The
value is used verbatim, so it may carry arguments, e.g.
`TERMINAL="foot -e htop" tabbed-wlroots ...`.
@ -107,10 +107,10 @@ startup is always the one from the last argument.
If a command never connects — e.g. `sleep 999` — the rest of the command line
never starts and the window stays black; the compositor itself keeps running
normally (`Ctrl+Shift+T` still works) until you close it.
normally (`Alt+Shift+T` still works) until you close it.
Later tab openings follow the same no-steal rule: a brand-new tab never yanks
the active surface on its own. `Ctrl+Shift+T` still focuses its fresh
the active surface on its own. `Alt+Shift+T` still focuses its fresh
terminal, and a sub-window of the tab you are currently looking at becomes
active; every other new window or tab just appears in the list, hidden, until
you cycle to it.
@ -125,12 +125,13 @@ you cycle to it.
| `Alt+Shift+Up` | Move the active tab earlier in the list |
| `Alt+Shift+Down` | Move the active tab later in the list |
| `Alt+Delete` | Close the active tab (SIGTERM, SIGKILL fallback) |
| `Ctrl+Shift+T` | Open a new terminal tab next to the current one |
| `Alt+Shift+T` | Open a new terminal tab next to the current one |
The tab-management prefix is `Alt` by default. Pass `--modifier super` to
use `Super` (Windows/Meta key, Mod4) instead: `Super` hold shows the
overlay, `Super+Up/Down` cycle, `Super+Shift+Up/Down` reorder, and
`Super+Delete` closes. `Ctrl+Shift+T` always uses Ctrl and is unchanged.
overlay, `Super+Up/Down` cycle, `Super+Shift+Up/Down` reorder,
`Super+Delete` closes, and `Super+Shift+T` opens a new terminal -- the
new-tab chord follows the prefix like every other binding.
The `Super` variant is meant for standalone/DRM and labwc-style hosts
(including the Raspberry Pi, where nothing reserves it); under GNOME the
host grabs most `Super` chords before the nested compositor ever sees them
@ -148,7 +149,7 @@ tab's app icon, resolved from its Wayland `app_id` via the desktop
files and icon themes in `XDG_DATA_DIRS` (PNG via libpng, SVG via
librsvg); tabs without a resolvable icon get a generic placeholder.
`Ctrl+Shift+T` launches a fresh terminal (`$TERMINAL`, default
`Alt+Shift+T` launches a fresh terminal (`$TERMINAL`, default
`alacritty`) as a new tab placed immediately to the right of the current tab,
and it becomes the active tab once it maps (the one exception to the
no-map-steal rule at startup, along with sub-windows of the shown tab).
@ -162,7 +163,7 @@ active tab stays active, it just moves one position earlier or later in the
order. Moving off either end wraps around and the whole list shifts — a
rightmost tab moved past the end lands first, with every other tab pushed
one position, not merely swapped with the first. Holding the chord keeps
moving it (same synthesized repeat as cycling). A `Ctrl+Shift+T` inside the
moving it (same synthesized repeat as cycling). An `Alt+Shift+T` inside the
moved tab opens exactly where the reordered list says it should — immediately
right of the tab's new position.
@ -207,7 +208,7 @@ pass instead of being drawn into a host window.
- `WAYLAND_DISPLAY` is ignored in standalone mode (it never connects to an
outer compositor), except as part of the requested `WLR_BACKENDS`.
- Real keyboard/pointer devices are attached to the tabbed seat directly
(native input); the `Ctrl-Shift-T` and `Alt`-overlay hotkeys still work off
(native input); the `Alt+Shift+T` and `Alt`-overlay hotkeys still work off
those devices.
- `Ctrl-Alt-F1..F12` switch virtual terminals while running on the DRM
backend (via libseat/logind); the terminal sees nothing of the chord.