@yuriteixeira/pi-muxr 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -30
- package/dist/cli/dashboard.js +8 -30
- package/dist/cli/dashboard.js.map +1 -1
- package/dist/cli/index.js +7 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/extension/pi-muxr.js +6 -0
- package/dist/extension/pi-muxr.js.map +1 -1
- package/dist/notifications/terminal.d.ts +3 -0
- package/dist/notifications/terminal.js +7 -0
- package/dist/notifications/terminal.js.map +1 -0
- package/dist/tmux/sidebar.d.ts +4 -1
- package/dist/tmux/sidebar.js +41 -16
- package/dist/tmux/sidebar.js.map +1 -1
- package/docs/ARCHITECTURE.md +9 -9
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,28 +1,16 @@
|
|
|
1
1
|
# Welcome to `pi-muxr`!
|
|
2
2
|
|
|
3
|
-
If you use [Pi](https://pi.dev) and
|
|
3
|
+
If you use [Pi](https://pi.dev) and is a die-hard [Tmux](https://github.com/tmux/tmux) user, maybe all you ever wanted from [Herdr](https://herdr.dev/) was its dashboard & navigation capabilities.
|
|
4
|
+
Then, **you came to the right place!**
|
|
4
5
|
|
|
5
|
-
`pi-muxr`
|
|
6
|
+
The `pi-muxr` extension provides:
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
1. A dashboard showing Pi sessions running on Tmux panes (including a sidebar mode)
|
|
9
|
+
2. A web app serving as a proxy for those, so you can continue your work even if you're away from your keyboard.
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-

|
|
12
|
-
|
|
13
|
-
## Features
|
|
14
|
-
|
|
15
|
-
- Tracks multiple Pi sessions across tmux.
|
|
16
|
-
- Shows `ASK`, `ERROR`, `DONE`, `RUN`, and `IDLE` states for active sessions.
|
|
17
|
-
- Sorts actionable sessions first.
|
|
18
|
-
- Focuses the owning tmux pane from the keyboard.
|
|
19
|
-
- Supports read and dismiss actions.
|
|
20
|
-
- Detects and hides stale sessions with heartbeats and pane checks.
|
|
21
|
-
- Provides terminal and browser interfaces.
|
|
22
|
-
- Provides a toggleable pinned sidebar across all tmux sessions and windows.
|
|
23
|
-
- Sends terminal bell, desktop, and browser notifications.
|
|
24
|
-
- Supports configurable dashboard and browser actionable states.
|
|
25
|
-
- Supports configurable desktop notification and dashboard bell behavior.
|
|
11
|
+
| Sidebar | Fullscreen | Web App |
|
|
12
|
+
| - | - | - |
|
|
13
|
+
|  |  |  |
|
|
26
14
|
|
|
27
15
|
## Installation
|
|
28
16
|
|
|
@@ -68,7 +56,7 @@ pi-muxr --list
|
|
|
68
56
|
pi-muxr --web
|
|
69
57
|
```
|
|
70
58
|
|
|
71
|
-
Run `pi-muxr --sidebar` inside tmux to open and pin a full height dashboard pane on the right side of every window in every tmux session. Pass `left` or `right` to select the side. Each pane uses at most 25 percent of the window width. New tmux sessions and windows receive the same sidebar while it is pinned. The pinned sidebar is toggleable. Run the same command again to close all dashboard sidebar panes and remove the pin.
|
|
59
|
+
Run `pi-muxr --sidebar` inside tmux to open and pin a full height dashboard pane on the right side of every window in every tmux session. Pass `left` or `right` to select the side. Each pane uses at most 25 percent of the window width. New tmux sessions and windows receive the same sidebar while it is pinned. A sidebar closes with its window when no other pane remains in that window. The pinned sidebar is toggleable. Run the same command again to close all dashboard sidebar panes and remove the pin.
|
|
72
60
|
|
|
73
61
|
Use `--quit-on-select` to close the interactive dashboard after Enter focuses the selected row. The browser interface runs at `http://127.0.0.1:3042` by default.
|
|
74
62
|
|
|
@@ -105,21 +93,13 @@ mkdir -p ~/.pi-muxr
|
|
|
105
93
|
cp examples/config.json ~/.pi-muxr/config.json
|
|
106
94
|
```
|
|
107
95
|
|
|
108
|
-
You can then edit the copied file. The settings control:
|
|
109
|
-
|
|
110
|
-
- The state directory and SQLite database path.
|
|
111
|
-
- Which session states need action in the dashboard and browser interface.
|
|
112
|
-
- Desktop notifications for `ASK`, `ERROR`, and `DONE`, and the dashboard bell.
|
|
113
|
-
- Whether the dashboard shows dismissed rows.
|
|
114
|
-
- Stale session, heartbeat, and dashboard presence timing.
|
|
115
|
-
|
|
116
96
|
To check the active configuration, including defaults and your changes, run:
|
|
117
97
|
|
|
118
98
|
```bash
|
|
119
99
|
pi-muxr --config
|
|
120
100
|
```
|
|
121
101
|
|
|
122
|
-
##
|
|
102
|
+
## If you're interested in the code
|
|
123
103
|
|
|
124
104
|
- [Architecture](docs/ARCHITECTURE.md)
|
|
125
105
|
- [Building and local setup](docs/BUILDING.md)
|
package/dist/cli/dashboard.js
CHANGED
|
@@ -13,7 +13,7 @@ export function runDashboard(options = {}) {
|
|
|
13
13
|
const config = loadConfig();
|
|
14
14
|
const db = openDatabase(config.databasePath);
|
|
15
15
|
const presenceId = createPresenceId();
|
|
16
|
-
const state = { rows: [], selected: 0,
|
|
16
|
+
const state = { rows: [], selected: 0, message: null };
|
|
17
17
|
const terminal = new ProcessTerminal();
|
|
18
18
|
const tui = new TuiAltScreen(terminal);
|
|
19
19
|
let runtime;
|
|
@@ -28,7 +28,7 @@ export function runDashboard(options = {}) {
|
|
|
28
28
|
tui,
|
|
29
29
|
component,
|
|
30
30
|
quitOnSelect: options.quitOnSelect ?? false,
|
|
31
|
-
refreshTimer: setInterval(() => refresh(runtime
|
|
31
|
+
refreshTimer: setInterval(() => refresh(runtime), 1_000),
|
|
32
32
|
presenceTimer: setInterval(() => writeDashboardPresence(db, presenceId, process.env.TMUX_PANE ?? null), config.dashboardPresenceIntervalMs),
|
|
33
33
|
animationTimer: setInterval(() => renderAnimationFrame(runtime), RUN_SPINNER_INTERVAL_MS),
|
|
34
34
|
cleaned: false,
|
|
@@ -36,7 +36,7 @@ export function runDashboard(options = {}) {
|
|
|
36
36
|
tui.addChild(component);
|
|
37
37
|
tui.setFocus(component);
|
|
38
38
|
writeDashboardPresence(db, presenceId, process.env.TMUX_PANE ?? null);
|
|
39
|
-
refresh(runtime
|
|
39
|
+
refresh(runtime);
|
|
40
40
|
tui.start();
|
|
41
41
|
const cleanupHandler = () => cleanup(runtime);
|
|
42
42
|
const sigintHandler = () => { cleanup(runtime); process.exit(0); };
|
|
@@ -66,13 +66,9 @@ function cleanup(runtime) {
|
|
|
66
66
|
runtime.tui.stop();
|
|
67
67
|
runtime.db.close();
|
|
68
68
|
}
|
|
69
|
-
function refresh(runtime
|
|
69
|
+
function refresh(runtime) {
|
|
70
70
|
runtime.state.rows = buildDashboardRows(readStatuses(runtime.db), listTmuxPanes(), runtime.config);
|
|
71
71
|
clampSelection(runtime.state);
|
|
72
|
-
if (beep && runtime.config.dashboardBell)
|
|
73
|
-
beepForNewEvents(runtime);
|
|
74
|
-
else
|
|
75
|
-
rememberCurrentActionableEvents(runtime.state);
|
|
76
72
|
render(runtime);
|
|
77
73
|
}
|
|
78
74
|
function render(runtime) {
|
|
@@ -103,17 +99,17 @@ function selectLast(runtime) {
|
|
|
103
99
|
}
|
|
104
100
|
function refreshFromInput(runtime) {
|
|
105
101
|
runtime.state.message = null;
|
|
106
|
-
refresh(runtime
|
|
102
|
+
refresh(runtime);
|
|
107
103
|
}
|
|
108
104
|
function dismissSelectedFromInput(runtime) {
|
|
109
105
|
runtime.state.message = null;
|
|
110
106
|
dismissSelected(runtime.db, runtime.state);
|
|
111
|
-
refresh(runtime
|
|
107
|
+
refresh(runtime);
|
|
112
108
|
}
|
|
113
109
|
function dismissAllReadFromInput(runtime) {
|
|
114
110
|
runtime.state.message = null;
|
|
115
111
|
dismissAllRead(runtime.db, runtime.config.actionableStates);
|
|
116
|
-
refresh(runtime
|
|
112
|
+
refresh(runtime);
|
|
117
113
|
}
|
|
118
114
|
function focusSelectedFromInput(runtime) {
|
|
119
115
|
runtime.state.message = null;
|
|
@@ -122,7 +118,7 @@ function focusSelectedFromInput(runtime) {
|
|
|
122
118
|
quit(runtime);
|
|
123
119
|
return;
|
|
124
120
|
}
|
|
125
|
-
refresh(runtime
|
|
121
|
+
refresh(runtime);
|
|
126
122
|
}
|
|
127
123
|
function quit(runtime) {
|
|
128
124
|
cleanup(runtime);
|
|
@@ -131,24 +127,6 @@ function quit(runtime) {
|
|
|
131
127
|
function clampSelection(state) {
|
|
132
128
|
state.selected = Math.min(state.selected, Math.max(0, state.rows.length - 1));
|
|
133
129
|
}
|
|
134
|
-
function beepForNewEvents(runtime) {
|
|
135
|
-
for (const row of runtime.state.rows) {
|
|
136
|
-
const key = eventKey(row);
|
|
137
|
-
if (row.actionable && row.unread && !row.dismissed && !runtime.state.seenEvents.has(key)) {
|
|
138
|
-
runtime.terminal.write("\x07");
|
|
139
|
-
runtime.state.seenEvents.add(key);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
function rememberCurrentActionableEvents(state) {
|
|
144
|
-
for (const row of state.rows) {
|
|
145
|
-
if (row.actionable && !row.dismissed)
|
|
146
|
-
state.seenEvents.add(eventKey(row));
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
function eventKey(row) {
|
|
150
|
-
return `${row.id}:${row.lastEventAt}`;
|
|
151
|
-
}
|
|
152
130
|
function dismissSelected(db, state) {
|
|
153
131
|
const row = state.rows[state.selected];
|
|
154
132
|
if (row)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/cli/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAY,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACnH,OAAO,EAAE,YAAY,EAAiB,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAyB,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/cli/dashboard.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { loadConfig } from "../config/config.js";
|
|
|
3
3
|
import { openDatabase } from "../state/database.js";
|
|
4
4
|
import { readStatuses } from "../state/read-statuses.js";
|
|
5
5
|
import { listTmuxPanes } from "../tmux/list-panes.js";
|
|
6
|
-
import { ensurePinnedSidebar, parseSidebarSide, parseSidebarWindowTarget, toggleSidebar } from "../tmux/sidebar.js";
|
|
6
|
+
import { cleanupOrphanedSidebar, ensurePinnedSidebar, parseSidebarCleanupWindowTarget, parseSidebarSide, parseSidebarWindowTarget, toggleSidebar } from "../tmux/sidebar.js";
|
|
7
7
|
import { renderRows } from "./format.js";
|
|
8
8
|
import { buildDashboardRows } from "./rows.js";
|
|
9
9
|
import { runWebServer } from "../web/server.js";
|
|
@@ -29,6 +29,11 @@ function main(argv) {
|
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
31
|
try {
|
|
32
|
+
const sidebarCleanupWindowTarget = parseSidebarCleanupWindowTarget(argv);
|
|
33
|
+
if (sidebarCleanupWindowTarget) {
|
|
34
|
+
cleanupOrphanedSidebar(sidebarCleanupWindowTarget);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
32
37
|
const sidebarWindowTarget = parseSidebarWindowTarget(argv);
|
|
33
38
|
if (sidebarWindowTarget) {
|
|
34
39
|
ensurePinnedSidebar(sidebarWindowTarget);
|
|
@@ -36,8 +41,7 @@ function main(argv) {
|
|
|
36
41
|
}
|
|
37
42
|
const sidebarSide = parseSidebarSide(argv);
|
|
38
43
|
if (sidebarSide) {
|
|
39
|
-
|
|
40
|
-
console.log(result === "created" ? `Opened and pinned pi-muxr sidebars on the ${sidebarSide}.` : "Closed and unpinned pi-muxr sidebars.");
|
|
44
|
+
toggleSidebar(sidebarSide);
|
|
41
45
|
return;
|
|
42
46
|
}
|
|
43
47
|
}
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { loadConfig } from "../config/config.js";
|
|
2
2
|
import { DEFAULT_ACTIONABLE_STATES } from "../domain/status.js";
|
|
3
3
|
import { notifyStatus } from "../notifications/desktop.js";
|
|
4
|
+
import { ringTerminalBell, shouldRingTerminalBell } from "../notifications/terminal.js";
|
|
4
5
|
import { openDatabase } from "../state/database.js";
|
|
5
6
|
import { hasFreshDashboardPresence } from "../state/dashboard-presence.js";
|
|
6
7
|
import { markNotified, removeStatus, updateHeartbeat, upsertStatus } from "../state/write-status.js";
|
|
@@ -126,6 +127,7 @@ function writeState(runtime, ctx, state, severity, summary) {
|
|
|
126
127
|
const status = baseStatus(runtime, ctx, pane, state, severity, summary, now, true);
|
|
127
128
|
const notificationSnapshot = readNotificationSnapshot(runtime.db, status.id);
|
|
128
129
|
upsertStatus(runtime.db, status);
|
|
130
|
+
maybeRingBell(runtime, status, notificationSnapshot);
|
|
129
131
|
maybeNotify(runtime, status, notificationSnapshot);
|
|
130
132
|
}
|
|
131
133
|
function baseStatus(runtime, ctx, pane, state, severity, summary, now, event) {
|
|
@@ -146,6 +148,10 @@ function baseStatus(runtime, ctx, pane, state, severity, summary, now, event) {
|
|
|
146
148
|
heartbeatAt: now,
|
|
147
149
|
};
|
|
148
150
|
}
|
|
151
|
+
function maybeRingBell(runtime, status, snapshot) {
|
|
152
|
+
if (shouldRingTerminalBell(runtime.config, status.state, snapshot?.state ?? null))
|
|
153
|
+
ringTerminalBell();
|
|
154
|
+
}
|
|
149
155
|
function maybeNotify(runtime, status, snapshot) {
|
|
150
156
|
if (!runtime.db || !runtime.config.desktopNotifications)
|
|
151
157
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi-muxr.js","sourceRoot":"","sources":["../../src/extension/pi-muxr.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pi-muxr.js","sourceRoot":"","sources":["../../src/extension/pi-muxr.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { DashboardConfig, PiMuxrState } from "../domain/status.js";
|
|
2
|
+
export declare function shouldRingTerminalBell(config: Pick<DashboardConfig, "actionableStates" | "dashboardBell">, state: PiMuxrState, previousState: PiMuxrState | null): boolean;
|
|
3
|
+
export declare function ringTerminalBell(): void;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function shouldRingTerminalBell(config, state, previousState) {
|
|
2
|
+
return config.dashboardBell && config.actionableStates.includes(state) && state !== previousState;
|
|
3
|
+
}
|
|
4
|
+
export function ringTerminalBell() {
|
|
5
|
+
process.stdout.write("\x07");
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=terminal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/notifications/terminal.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,sBAAsB,CACpC,MAAmE,EACnE,KAAkB,EAClB,aAAiC;IAEjC,OAAO,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,aAAa,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC"}
|
package/dist/tmux/sidebar.d.ts
CHANGED
|
@@ -8,9 +8,12 @@ export declare function parseSidebarSide(argv: string[]): SidebarSide | null;
|
|
|
8
8
|
export declare function parseSidebarPaneInventory(output: string): SidebarPaneInventory;
|
|
9
9
|
export declare function buildSidebarSplitArgs(side: SidebarSide, targetPaneId: string, command: string): string[];
|
|
10
10
|
export declare function parseSidebarWindowTarget(argv: string[]): string | null;
|
|
11
|
+
export declare function parseSidebarCleanupWindowTarget(argv: string[]): string | null;
|
|
11
12
|
export declare function buildPiMuxrCommand(execPath: string, entrypoint: string): string;
|
|
12
13
|
export declare function buildSidebarHookCommand(execPath: string, entrypoint: string): string;
|
|
13
|
-
export declare function
|
|
14
|
+
export declare function buildSidebarCleanupHookCommand(execPath: string, entrypoint: string): string;
|
|
15
|
+
export declare function buildSidebarHookArgs(createHookCommand: string, cleanupHookCommand: string): string[][];
|
|
14
16
|
export declare function buildSidebarUnhookArgs(): string[][];
|
|
15
17
|
export declare function toggleSidebar(side: SidebarSide): SidebarToggleResult;
|
|
16
18
|
export declare function ensurePinnedSidebar(targetWindowId: string): boolean;
|
|
19
|
+
export declare function cleanupOrphanedSidebar(targetWindowId: string): boolean;
|
package/dist/tmux/sidebar.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { execFileSync } from "node:child_process";
|
|
2
2
|
const SIDEBAR_OPTION = "@pi-muxr-sidebar";
|
|
3
3
|
const SIDEBAR_SIDE_OPTION = "@pi-muxr-sidebar-side";
|
|
4
|
-
const
|
|
4
|
+
const SIDEBAR_CREATE_HOOKS = ["after-new-window[731]", "after-new-session[731]"];
|
|
5
|
+
const SIDEBAR_CLEANUP_HOOK = "window-layout-changed[731]";
|
|
6
|
+
const SIDEBAR_HOOKS = [...SIDEBAR_CREATE_HOOKS, SIDEBAR_CLEANUP_HOOK];
|
|
5
7
|
const SIDEBAR_PANES_FORMAT = `#{pane_id}\t#{window_id}\t#{${SIDEBAR_OPTION}}`;
|
|
6
8
|
export function parseSidebarSide(argv) {
|
|
7
9
|
const optionIndex = argv.indexOf("--sidebar");
|
|
@@ -22,8 +24,10 @@ export function parseSidebarPaneInventory(output) {
|
|
|
22
24
|
const [paneId, windowId, marker] = line.split("\t");
|
|
23
25
|
if (!paneId || !windowId)
|
|
24
26
|
continue;
|
|
25
|
-
if (marker === "left" || marker === "right")
|
|
27
|
+
if (marker === "left" || marker === "right") {
|
|
26
28
|
sidebarPaneIds.push(paneId);
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
27
31
|
if (seenWindowIds.has(windowId))
|
|
28
32
|
continue;
|
|
29
33
|
seenWindowIds.add(windowId);
|
|
@@ -39,23 +43,23 @@ export function buildSidebarSplitArgs(side, targetPaneId, command) {
|
|
|
39
43
|
return args;
|
|
40
44
|
}
|
|
41
45
|
export function parseSidebarWindowTarget(argv) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (!target || !/^@\d+$/.test(target))
|
|
47
|
-
throw new Error("--sidebar-window requires a tmux window ID.");
|
|
48
|
-
return target;
|
|
46
|
+
return parseWindowTarget(argv, "--sidebar-window");
|
|
47
|
+
}
|
|
48
|
+
export function parseSidebarCleanupWindowTarget(argv) {
|
|
49
|
+
return parseWindowTarget(argv, "--sidebar-cleanup-window");
|
|
49
50
|
}
|
|
50
51
|
export function buildPiMuxrCommand(execPath, entrypoint) {
|
|
51
52
|
return `${quoteShellArgument(execPath)} ${quoteShellArgument(entrypoint)}`;
|
|
52
53
|
}
|
|
53
54
|
export function buildSidebarHookCommand(execPath, entrypoint) {
|
|
54
|
-
|
|
55
|
-
return `run-shell ${quoteShellArgument(command)}`;
|
|
55
|
+
return buildWindowHookCommand(execPath, entrypoint, "--sidebar-window");
|
|
56
56
|
}
|
|
57
|
-
export function
|
|
58
|
-
return
|
|
57
|
+
export function buildSidebarCleanupHookCommand(execPath, entrypoint) {
|
|
58
|
+
return buildWindowHookCommand(execPath, entrypoint, "--sidebar-cleanup-window");
|
|
59
|
+
}
|
|
60
|
+
export function buildSidebarHookArgs(createHookCommand, cleanupHookCommand) {
|
|
61
|
+
const createHooks = SIDEBAR_CREATE_HOOKS.map((hook) => ["set-hook", "-g", hook, createHookCommand]);
|
|
62
|
+
return [...createHooks, ["set-hook", "-g", SIDEBAR_CLEANUP_HOOK, cleanupHookCommand]];
|
|
59
63
|
}
|
|
60
64
|
export function buildSidebarUnhookArgs() {
|
|
61
65
|
return SIDEBAR_HOOKS.map((hook) => ["set-hook", "-g", "-u", hook]);
|
|
@@ -75,7 +79,7 @@ export function toggleSidebar(side) {
|
|
|
75
79
|
const command = buildPiMuxrCommand(process.execPath, entrypoint);
|
|
76
80
|
createSidebarPanes(side, inventory.targetPaneIds, command);
|
|
77
81
|
try {
|
|
78
|
-
pinSidebar(side, buildSidebarHookCommand(process.execPath, entrypoint));
|
|
82
|
+
pinSidebar(side, buildSidebarHookCommand(process.execPath, entrypoint), buildSidebarCleanupHookCommand(process.execPath, entrypoint));
|
|
79
83
|
}
|
|
80
84
|
catch (error) {
|
|
81
85
|
destroySidebarPanes(readSidebarPaneInventory().sidebarPaneIds);
|
|
@@ -96,6 +100,26 @@ export function ensurePinnedSidebar(targetWindowId) {
|
|
|
96
100
|
createSidebarPanes(side, [targetPaneId], buildPiMuxrCommand(process.execPath, resolveEntrypoint()));
|
|
97
101
|
return true;
|
|
98
102
|
}
|
|
103
|
+
export function cleanupOrphanedSidebar(targetWindowId) {
|
|
104
|
+
const inventory = readSidebarPaneInventory(targetWindowId);
|
|
105
|
+
if (inventory.targetPaneIds.length > 0 || inventory.sidebarPaneIds.length === 0)
|
|
106
|
+
return false;
|
|
107
|
+
destroySidebarPanes(inventory.sidebarPaneIds);
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
function parseWindowTarget(argv, option) {
|
|
111
|
+
const optionIndex = argv.indexOf(option);
|
|
112
|
+
if (optionIndex === -1)
|
|
113
|
+
return null;
|
|
114
|
+
const target = argv[optionIndex + 1];
|
|
115
|
+
if (!target || !/^@\d+$/.test(target))
|
|
116
|
+
throw new Error(`${option} requires a tmux window ID.`);
|
|
117
|
+
return target;
|
|
118
|
+
}
|
|
119
|
+
function buildWindowHookCommand(execPath, entrypoint, option) {
|
|
120
|
+
const command = `${buildPiMuxrCommand(execPath, entrypoint)} ${option} '#{window_id}'`;
|
|
121
|
+
return `run-shell ${quoteShellArgument(command)}`;
|
|
122
|
+
}
|
|
99
123
|
function resolveEntrypoint() {
|
|
100
124
|
const entrypoint = process.argv[1];
|
|
101
125
|
if (!entrypoint)
|
|
@@ -122,11 +146,12 @@ function readPinnedSidebarSide() {
|
|
|
122
146
|
return null;
|
|
123
147
|
}
|
|
124
148
|
}
|
|
125
|
-
function pinSidebar(side,
|
|
149
|
+
function pinSidebar(side, createHookCommand, cleanupHookCommand) {
|
|
126
150
|
execFileSync("tmux", ["set-option", "-g", SIDEBAR_SIDE_OPTION, side], { stdio: "ignore" });
|
|
127
151
|
try {
|
|
128
|
-
for (const args of buildSidebarHookArgs(
|
|
152
|
+
for (const args of buildSidebarHookArgs(createHookCommand, cleanupHookCommand)) {
|
|
129
153
|
execFileSync("tmux", args, { stdio: "ignore" });
|
|
154
|
+
}
|
|
130
155
|
}
|
|
131
156
|
catch (error) {
|
|
132
157
|
removeSidebarHooks();
|
package/dist/tmux/sidebar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../src/tmux/sidebar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAUlD,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAC1C,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AACpD,MAAM,
|
|
1
|
+
{"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../src/tmux/sidebar.ts"],"names":[],"mappings":"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"}
|
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -16,6 +16,7 @@ The project does not read terminal output. A Pi extension receives Pi events and
|
|
|
16
16
|
Pi session
|
|
17
17
|
|
|
|
18
18
|
| Pi extension events
|
|
19
|
+
+--> terminal bell in the Pi pane
|
|
19
20
|
v
|
|
20
21
|
SQLite database: ~/.pi-muxr/pi-muxr.sqlite
|
|
21
22
|
|
|
|
@@ -23,7 +24,6 @@ SQLite database: ~/.pi-muxr/pi-muxr.sqlite
|
|
|
23
24
|
| |
|
|
24
25
|
| +--> terminal input and display
|
|
25
26
|
| +--> tmux pane focus
|
|
26
|
-
| +--> terminal bell
|
|
27
27
|
|
|
|
28
28
|
+--> Web terminal gateway
|
|
29
29
|
| |
|
|
@@ -88,7 +88,7 @@ The domain supports these states:
|
|
|
88
88
|
| `IDLE` | The session is alive but not active. |
|
|
89
89
|
| `STALE` | Internal display classification for an expired heartbeat or a missing tmux pane. |
|
|
90
90
|
|
|
91
|
-
By default, `ASK`, `ERROR`, and `DONE` are actionable. The configuration can change the actionable states used by the dashboard,
|
|
91
|
+
By default, `ASK`, `ERROR`, and `DONE` are actionable. The configuration can change the actionable states used by the dashboard, terminal bell, dismissal actions, and browser notifications. Desktop notifications always use the default actionable states.
|
|
92
92
|
|
|
93
93
|
An event is unread when its `last_event_at` is newer than `read_until_event_at` and it has not been dismissed. Unread and actionable are separate properties. The dashboard can therefore show an unread marker for a state that is not actionable. An event is dismissed when `dismissed_until_event_at` is at least as recent as `last_event_at`. This means a new event becomes visible again after an older event was read or dismissed.
|
|
94
94
|
|
|
@@ -124,7 +124,7 @@ session_shutdown
|
|
|
124
124
|
-> close database
|
|
125
125
|
```
|
|
126
126
|
|
|
127
|
-
The extension also refreshes tmux information when it writes a state update. It uses `TMUX_PANE` and tmux pane discovery to associate a Pi process with its owning pane.
|
|
127
|
+
The extension also refreshes tmux information when it writes a state update. It uses `TMUX_PANE` and tmux pane discovery to associate a Pi process with its owning pane. When the process enters a configured actionable state, the extension emits one terminal bell. Because the bell comes from the Pi process, tmux assigns the alert to the window that owns the Pi pane.
|
|
128
128
|
|
|
129
129
|
Summaries are truncated before storage. This keeps the database small and limits the amount of event data retained for display.
|
|
130
130
|
|
|
@@ -163,7 +163,7 @@ load configuration
|
|
|
163
163
|
-> render dashboard
|
|
164
164
|
```
|
|
165
165
|
|
|
166
|
-
The dashboard refreshes once per second
|
|
166
|
+
The dashboard refreshes once per second and keeps the selected row. The Pi extension emits terminal bells, so the dashboard does not assign alerts to its own window.
|
|
167
167
|
|
|
168
168
|
User actions update SQLite before they affect the display:
|
|
169
169
|
|
|
@@ -181,7 +181,7 @@ The extension uses `tmux list-panes` to discover pane metadata. The dashboard jo
|
|
|
181
181
|
|
|
182
182
|
When the user focuses a row, `src/tmux/focus.ts` selects the pane and switches to its tmux session and window. When the CLI runs outside tmux, it reports the commands needed to focus the pane instead of pretending that the focus succeeded.
|
|
183
183
|
|
|
184
|
-
The sidebar command splits every window in every tmux session and starts the same `pi-muxr` entrypoint in each new pane. The default side is right, and each pane uses at most 25 percent of the window width. A tmux pane option marks each pane. A global tmux option stores the selected side. Indexed `after-new-session` and `after-new-window` hooks add the sidebar to new sessions and windows without replacing other hooks. The next sidebar command finds the markers, closes all dashboard sidebar panes, and removes the option and hooks.
|
|
184
|
+
The sidebar command splits every window in every tmux session and starts the same `pi-muxr` entrypoint in each new pane. The default side is right, and each pane uses at most 25 percent of the window width. A tmux pane option marks each pane. A global tmux option stores the selected side. Indexed `after-new-session` and `after-new-window` hooks add the sidebar to new sessions and windows without replacing other hooks. An indexed `window-layout-changed` hook closes a sidebar when it is the only pane left in its window. The next sidebar command finds the markers, closes all dashboard sidebar panes, and removes the option and hooks.
|
|
185
185
|
|
|
186
186
|
The browser gateway uses a separate tmux session, named `pi-muxr-web` by default. A query parameter can select another valid session name.
|
|
187
187
|
|
|
@@ -219,7 +219,7 @@ The web interface is a terminal view, not a second dashboard implementation. It
|
|
|
219
219
|
|
|
220
220
|
## Notifications
|
|
221
221
|
|
|
222
|
-
The
|
|
222
|
+
The terminal bell and browser notifications use the configured actionable states. Desktop notifications use the fixed default states: `ASK`, `ERROR`, and `DONE`.
|
|
223
223
|
|
|
224
224
|
Desktop notification flow:
|
|
225
225
|
|
|
@@ -234,7 +234,7 @@ extension state update
|
|
|
234
234
|
|
|
235
235
|
The extension avoids repeated desktop notifications for the same state. When configured, a fresh dashboard presence suppresses desktop notifications because the user can already see the event.
|
|
236
236
|
|
|
237
|
-
The
|
|
237
|
+
The Pi extension emits the terminal bell when a session enters a new actionable state. It compares the new state with the stored state to avoid a repeated bell. The browser gateway polls notification state and sends browser messages for new unread actionable rows.
|
|
238
238
|
|
|
239
239
|
## Configuration boundary
|
|
240
240
|
|
|
@@ -243,9 +243,9 @@ Configuration is loaded from `~/.pi-muxr/config.json`. If the file does not exis
|
|
|
243
243
|
Configuration controls:
|
|
244
244
|
|
|
245
245
|
- Database and state paths.
|
|
246
|
-
- Actionable states for the dashboard,
|
|
246
|
+
- Actionable states for the dashboard, terminal bell, dismissal actions, and browser notifications.
|
|
247
247
|
- Desktop notification behavior for the fixed `ASK`, `ERROR`, and `DONE` states.
|
|
248
|
-
-
|
|
248
|
+
- Terminal bell behavior.
|
|
249
249
|
- Whether dismissed rows are shown.
|
|
250
250
|
- Stale and heartbeat timing.
|
|
251
251
|
- Dashboard presence timing.
|