|
1 | 1 | export const PROBE_STATE_MARKER = 'TMUXWEB_STATE_V2'; |
2 | 2 |
|
3 | | -const PROBE_STATE_TRIGGER_LINES = [ |
4 | | - 'TMUXWEB_TMUX=0', |
5 | | - 'if tmux -V >/dev/null 2>&1; then TMUXWEB_TMUX=1; fi', |
6 | | - 'TMUXWEB_SESSION=-1', |
7 | | - 'TMUXWEB_WINDOW=-1', |
8 | | - 'TMUXWEB_PANE=-1', |
9 | | - 'TMUXWEB_MODE=0', |
10 | | - 'TMUXWEB_SESSION_NAME=""', |
11 | | - 'TMUXWEB_WINDOW_NAME=""', |
12 | | - 'TMUXWEB_ACTIVE_WINDOW=-1', |
13 | | - 'TMUXWEB_LAYOUT=""', |
14 | | - 'TMUXWEB_ZOOMED=0', |
15 | | - 'TMUXWEB_SYNC=0', |
16 | | - 'TMUXWEB_SEARCH=0', |
17 | | - 'TMUXWEB_SEARCH_MATCHED=0', |
18 | | - 'if [ "$TMUXWEB_TMUX" -eq 1 ]; then', |
19 | | - 'TMUXWEB_SESSION="$(tmux list-sessions -F \'#{session_id}\' 2>/dev/null | wc -l | tr -d \' \\n\\r\')"', |
20 | | - 'if [ -z "${TMUXWEB_SESSION:-}" ]; then TMUXWEB_SESSION=-1; fi', |
21 | | - 'TMUXWEB_WINDOW="$(tmux list-windows -a -F \'#{window_id}\' 2>/dev/null | wc -l | tr -d \' \\n\\r\')"', |
22 | | - 'if [ -z "${TMUXWEB_WINDOW:-}" ]; then TMUXWEB_WINDOW=-1; fi', |
23 | | - 'TMUXWEB_PANE="$(tmux list-panes -a -F \'#{pane_id}\' 2>/dev/null | wc -l | tr -d \' \\n\\r\')"', |
24 | | - 'if [ -z "${TMUXWEB_PANE:-}" ]; then TMUXWEB_PANE=-1; fi', |
25 | | - 'TMUXWEB_MODE="$(tmux display-message -p \'#{?pane_in_mode,1,0}\' 2>/dev/null | tr -d \' \\n\\r\')"', |
26 | | - 'if [ -z "${TMUXWEB_MODE:-}" ]; then TMUXWEB_MODE=0; fi', |
27 | | - 'TMUXWEB_SESSION_NAME="$(tmux display-message -p \'#S\' 2>/dev/null | tr -d \'\\n\\r\\t\')"', |
28 | | - 'if [ -z "${TMUXWEB_SESSION_NAME:-}" ]; then TMUXWEB_SESSION_NAME="$(tmux list-sessions -F \'#{session_name}\' 2>/dev/null | head -n 1 | tr -d \'\\n\\r\\t\')"; fi', |
29 | | - 'TMUXWEB_WINDOW_NAME="$(tmux display-message -p \'#W\' 2>/dev/null | tr -d \'\\n\\r\\t\')"', |
30 | | - 'if [ -z "${TMUXWEB_WINDOW_NAME:-}" ] && [ -n "${TMUXWEB_SESSION_NAME:-}" ]; then TMUXWEB_WINDOW_NAME="$(tmux display-message -p -t "${TMUXWEB_SESSION_NAME}" \'#{window_name}\' 2>/dev/null | tr -d \'\\n\\r\\t\')"; fi', |
31 | | - 'TMUXWEB_ACTIVE_WINDOW="$(tmux display-message -p \'#{window_index}\' 2>/dev/null | tr -d \' \\n\\r\')"', |
32 | | - 'if [ -z "${TMUXWEB_ACTIVE_WINDOW:-}" ]; then TMUXWEB_ACTIVE_WINDOW=-1; fi', |
33 | | - 'TMUXWEB_LAYOUT="$(tmux display-message -p \'#{window_layout}\' 2>/dev/null | tr -d \'\\n\\r\\t\')"', |
34 | | - 'TMUXWEB_ZOOMED="$(tmux display-message -p \'#{window_zoomed_flag}\' 2>/dev/null | tr -d \' \\n\\r\')"', |
35 | | - 'if [ -z "${TMUXWEB_ZOOMED:-}" ]; then TMUXWEB_ZOOMED=0; fi', |
36 | | - 'TMUXWEB_SYNC_RAW="$(tmux show-window-options -v synchronize-panes 2>/dev/null | tr -d \'\\n\\r\')"', |
37 | | - 'if [ "${TMUXWEB_SYNC_RAW:-off}" = "on" ]; then TMUXWEB_SYNC=1; else TMUXWEB_SYNC=0; fi', |
38 | | - 'TMUXWEB_SEARCH_COUNT="$(tmux display-message -p \'#{search_count}\' 2>/dev/null | tr -d \' \\n\\r\')"', |
39 | | - 'TMUXWEB_SEARCH_PRESENT="$(tmux display-message -p \'#{search_present}\' 2>/dev/null | tr -d \' \\n\\r\')"', |
40 | | - 'if [ -n "${TMUXWEB_SEARCH_COUNT:-}" ] && [ "${TMUXWEB_SEARCH_COUNT}" -ge 1 ] 2>/dev/null; then TMUXWEB_SEARCH=1; if [ "${TMUXWEB_SEARCH_PRESENT:-0}" = "1" ]; then TMUXWEB_SEARCH_MATCHED=1; fi; fi', |
41 | | - 'fi', |
42 | | - `printf "[[${PROBE_STATE_MARKER}:%s\\t%s\\t%s\\t%s\\t%s\\t%s\\t%s\\t%s\\t%s\\t%s\\t%s\\t%s\\t%s]]\\n" "$TMUXWEB_TMUX" "$TMUXWEB_SESSION" "$TMUXWEB_WINDOW" "$TMUXWEB_PANE" "$TMUXWEB_MODE" "$TMUXWEB_SESSION_NAME" "$TMUXWEB_WINDOW_NAME" "$TMUXWEB_ACTIVE_WINDOW" "$TMUXWEB_LAYOUT" "$TMUXWEB_ZOOMED" "$TMUXWEB_SYNC" "$TMUXWEB_SEARCH" "$TMUXWEB_SEARCH_MATCHED" >/dev/ttyS1`, |
43 | | -]; |
44 | | - |
45 | | -export const BASE_PROBE_TRIGGER_COMMAND = PROBE_STATE_TRIGGER_LINES.join('\n'); |
| 3 | +// Keep probe dispatch short and deterministic over the ttyS2 relay. |
| 4 | +// Runtime probe shape is defined by /usr/bin/tmux-tuto-probe inside VM assets. |
| 5 | +export const BASE_PROBE_TRIGGER_COMMAND = '/usr/bin/tmux-tuto-probe >/dev/ttyS1 2>/dev/null'; |
46 | 6 |
|
47 | 7 | export const SEARCH_PROBE_TRIGGER_COMMAND = BASE_PROBE_TRIGGER_COMMAND; |
48 | 8 |
|
|
0 commit comments