Cap the chips at three, and make the menu report-only
Two changes that pull in the same direction: the panel says less, and the menu stops pretending to do anything. The chip row had no bound. It sits in the centre box next to the clock, so enough open sessions would have shoved the clock off centre. It now shows the first N, settable and three by default, and counts the rest as "+N". Chips are already ordered by urgency, so the ones that survive the cut are the ones that need you soonest. Labels are still assigned across every session, including hidden ones, so a chip does not change when the cap does or when a session ahead of it disappears. Clicking a menu row used to switch the zellij tab and raise a terminal. That is gone. It cost real machinery for what it saved -- gnome-terminal runs every window under one shared server process, so windows cannot be matched by pid and the code fell back to matching the zellij session name against window titles, with all the ways that misses. The menu reports status; alt-tab is not the bottleneck. Rows are built inert rather than demoted after the fact, because PopupBaseMenuItem latches _activatable in its constructor. zellij tab lookup stays: naming the tab is the better half of that feature and costs one process every couple of minutes. The preferences test now asserts a control per settings key rather than a switch per key, so the new spin row counts and a future non-boolean setting cannot slip in without one.
This commit is contained in:
+2
-13
@@ -1,8 +1,8 @@
|
||||
// Maps a session's working directory to the zellij tab it is running in.
|
||||
//
|
||||
// Knowing a session waits for you is only half the answer; the other half is
|
||||
// where to look. When sessions live in zellij tabs, the tab name is a better
|
||||
// answer than a path, and zellij can be told to switch to it.
|
||||
// where to look. When sessions live in zellij tabs, the tab name answers that
|
||||
// better than a path does.
|
||||
//
|
||||
// `zellij action dump-layout` prints tab names with each pane's cwd but no pane
|
||||
// ids, so ZELLIJ_PANE_ID from the hook cannot be used for the lookup and the
|
||||
@@ -115,17 +115,6 @@ export class ZellijTabs {
|
||||
this._cache.clear();
|
||||
this._inFlight.clear();
|
||||
}
|
||||
|
||||
/** Switch the given zellij session to a tab. Fire and forget. */
|
||||
goToTab(session, tab) {
|
||||
try {
|
||||
Gio.Subprocess.new(
|
||||
['zellij', '--session', session, 'action', 'go-to-tab-name', tab],
|
||||
Gio.SubprocessFlags.STDOUT_SILENCE | Gio.SubprocessFlags.STDERR_SILENCE);
|
||||
} catch (e) {
|
||||
logError(e, 'claude-code-status: zellij go-to-tab-name failed');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Extract tab names and their pane working directories from a KDL layout.
|
||||
|
||||
Reference in New Issue
Block a user