Repository navigation
tmuxy 0.1.4: the phone gets a real key row, swipes and a zoom that shows every row; selecting text copies it; a dropped connection no longer hides your panes; and the CLI gets a contract scripts can rely on.
Install
- macOS:
brew install --cask flplima/tap/tmuxy - Linux:
brew install flplima/tap/tmuxy, or the AppImage / .deb below - From source: see the README
What's new since 0.1.3
Phone
- One finger slides between tabs, a hold selects the word under it, and a double tap zooms the terminal. The page installs as an app on the home screen.
- The key row is two rows of six: esc, tab, ctrl, alt, the prefix and the keyboard; the arrows, enter and the zoom. The prefix key presses your configured prefix and stays lit while it is armed; the arrows repeat while held, and a finger can slide from one arrow to the next.
- The zoom key is a magnifier. Zoomed, every row is on screen at twice the size and the view scrolls sideways; the tree or side pane below gives way. With the keyboard up, the line you are typing on stays in view above it, upright or sideways.
- Under the keys, the tree and the side pane (the pinned terminal) slide under your finger, as tabs do.
- The app menu opens from the tab strip's left end.
Selecting and copying
- Selecting text copies it at once, with a "Copied N characters" notice in the corner; the selection stays. The next key clears it and is typed as usual, so Ctrl+C still interrupts.
- Selected text keeps its colours under a soft highlight, instead of turning into a block of reverse video.
Connection
- A dropped connection is silent for two seconds, so a brief Wi-Fi blip is never seen. After that, a "Reconnecting…" card with "Retry now" appears in the corner; your panes stay visible and usable instead of being covered.
- Typing works as soon as the page has the focus, after a reload or switching back to its tab, without clicking a pane first.
- A new tab opens in your home directory (or the repository, when the server runs from a checkout), not in the AppImage's mount.
Pane groups and the tree
tmuxy pane group allputs every pane in a tab into one group;tmuxy pane group ungroupbrings them back out as splits.- The sidebar tree lists every member of a pane group at one level, in a fixed order, each with its directory and branch; choosing one shows it.
- The tree sidebar no longer sticks on "starting…" when an old
tmuxylauncher is first on your PATH, and a restored session's tree starts the same way.
CLI, for scripts and agents
- A contract: documented exit codes,
--jsonon every command (failures included),pane run --wait,pane wait, panes targeted by label, and a richerpane capture(which also takes-t). - Commands act on the pane they were run from, not on whichever tab happens to be in front:
pane split,pane group add/close/next/prevand the rest. pane runkeeps each word of the command whole.@tmuxy-sizesizes the session to the smallest, largest or latest client, or to a fixedCOLSxROWS.
Look and feel
- The web status line names the server's machine instead of
localhost.
Security
- Session names are checked once, into a type, before they reach any tmux command line.
- A client's reported size has a floor, and the number of sessions the event stream can create is capped.
Pre-tag checks
On the tagged commit (e604971):
- Nightly v86 sweep: green (dispatched on e604971). The tmux version matrix last ran green on 601d317.
- Soak: not run since 0.1.3. This box is not ticked.
- Quarantined stories: none.
- Transport latency (Axis B): measured, because this release changed the keyboard path. Four alternating rounds per version, 512 keystrokes each, through the real
POST /commands+GET /eventspath on the same machine: keystroke-to-screen p50 33.1–33.4 ms (v0.1.3: 33.1–33.7 ms); p95 45–70 ms (v0.1.3: 41–74 ms). No change. - Core bench (Axis A): within about 1% of v0.1.3 on the same machine, both measured the same day:
full_sync406 µs (v0.1.3: 401 µs),delta_rename45.3 µs (44.2 µs),output_burst/20008.07 ms (8.05 ms). The ratio gate passes at 0.103 against its 0.4 budget. - 3-platform Build App: green on e604971 (macOS universal, Linux amd64 and arm64, with the upgrade path), dispatched before tagging.