Alt+Delete closes the active tab; kill only pgids the compositor owns
Close the active tab on Alt+Delete: the tab vanishes immediately (active moves to the right neighbor, or the left one for a rightmost tab), the client's whole process group gets SIGTERM with a short SIGKILL escalation if it ignores the TERM. Grabbed and repeat-latched so a single hold closes one tab. Slots are claimed in connection order (not launch order), so close signals the process group recorded at claim time. Only groups the compositor owns are group-signaled; a client started from the compositor's own terminal shares our group and is killed by pid instead, so teardown can't group-kill the launcher's session (a pytest run died 143/137 for exactly this). Tests: settle the active-tab log before cycling (wait_any_active + cycle_ack quiesce), spawn the extra client in its own session, retry wl-paste when the host clipboard stalls, and only skip the host-colour assertion when the host pixel is unobservable. Full suite 5/5 green.
This commit is contained in:
parent
f197c229ca
commit
fb29f03dc0
3 changed files with 422 additions and 28 deletions
|
|
@ -99,6 +99,7 @@ Notes:
|
|||
| `Alt` (hold) | Show the tab-title overlay (centered) |
|
||||
| `Alt+Up` | Previous tab (hold to keep cycling) |
|
||||
| `Alt+Down` | Next tab (hold to keep cycling) |
|
||||
| `Alt+Delete` | Close the active tab (SIGTERM, SIGKILL fallback) |
|
||||
| `Ctrl+Shift+T` | Open a new terminal tab next to the current one |
|
||||
|
||||
Holding `Alt` shows a passive overlay listing every tab's title with the
|
||||
|
|
@ -119,6 +120,12 @@ The tab-cycling hotkey only emits a physical press for the first tab switch;
|
|||
repeats are synthesized, so holding `Alt+Up/Down` keeps stepping through
|
||||
tabs while any other key stops it.
|
||||
|
||||
`Alt+Delete` closes the active tab. The tab disappears immediately (the tab
|
||||
to its right becomes active, or the left neighbor if it was the rightmost);
|
||||
the client's process group gets a `SIGTERM`, escalated to `SIGKILL` after a
|
||||
short grace if it ignores the signal. A tab that closes on its own (its
|
||||
program exits) instead hands active off to the left neighbor.
|
||||
|
||||
Function keys are **not** grabbed: `F9`/`F10`/`F11` (and anything else) are
|
||||
forwarded to the focused client, so apps keep their own bindings (e.g. a
|
||||
browser's `F11`).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue