Skip to content

tmuxy v0.1.4

Latest

Choose a tag to compare

@github-actions github-actions released this 30 Oct 07:26
· 120 commits to main since this release

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 all puts every pane in a tab into one group; tmuxy pane group ungroup brings 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 tmuxy launcher 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, --json on every command (failures included), pane run --wait, pane wait, panes targeted by label, and a richer pane 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/prev and the rest.
  • pane run keeps each word of the command whole.
  • @tmuxy-size sizes the session to the smallest, largest or latest client, or to a fixed COLSxROWS.

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 /events path 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_sync 406 µs (v0.1.3: 401 µs), delta_rename 45.3 µs (44.2 µs), output_burst/2000 8.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.