Skip to content

Termstead 0.8.0

Choose a tag to compare

@pkhorenyan pkhorenyan released this 27 Oct 16:37
· 21 commits to main since this release

Added

  • A local terminal: the terminal button beside the tab strip's +, Session ▸ New Local Terminal (⌥⌘T) or the sidebar's menu opens your Mac's own shell in a tab, at home, beside the servers. It splits into panes, takes broadcast input, and comes back with "Reopen tabs at launch"; after exit, Return starts it again.
  • A remote desktop can share a folder on this Mac: chosen in the session form, it shows up on the server as a drive, to open, save and copy files in while connected.
  • Prompt icons, such as powerlevel10k's or oh-my-zsh's, show in the terminal — on this Mac and on servers alike — with nothing to install: glyphs the terminal's font lacks are drawn from Symbols Nerd Font Mono (Nerd Fonts 3.4.0), which comes with Termstead, and the text keeps its own font.
  • The welcome screen opens a local terminal too: a button under the address field, and ⌥⌘T among its shortcuts.
  • The Files tab browses this Mac for a local terminal, and follows its cd as it follows a server's shell. Deleting moves to the Trash, a file opens where it is, and dropping files copies them. Opening a local terminal turns the sidebar to them, as logging in to a server does (Settings ▸ Open SFTP after login).
  • A tab whose connection drops after login — sleep, a change of Wi-Fi, a VPN going down — connects again by itself: after 2, 5, 10, 30 and then every 60 s, waiting meanwhile for a network, and Return connects at once. exit is left alone. Settings ▸ Terminal ▸ Reconnect when the connection drops, on by default.
  • Telnet sessions, for switches, routers and other gear that speaks nothing newer: a session type of its own beside SSH and RDP, in a tab like any terminal — logs, snippets, broadcast input and Return to reconnect included. The server asks for its login on screen; the form says plainly that Telnet is not encrypted. macOS has had no telnet since High Sierra, so Termstead brings its own client.
  • Snippets: saved commands, sent to the tab in front with a double-click — and to every pane while broadcast input is on — from a Snippets tab on the sidebar's rail, or Session ▸ Snippets, where the first nine have ⌃1 to ⌃9. A snippet types its lines as if typed, with Return after the last one unless it is left on the prompt to finish by hand.
  • Session logs: a tab's output written to a file as plain text, with the time on each line — no colors or control codes, and nothing a full-screen program such as vim draws. "Log to file" in a session's form logs each of its tabs; Start Logging in any tab's menu or the Session menu logs that tab, a local terminal included. The status bar shows while a tab logs; the folder is set in Settings ▸ Terminal ▸ Logs (~/Documents/Termstead Logs at first).

Changed

  • ssh gives up on a connection gone quiet after a minute (ServerAliveCountMax=2) rather than ninety seconds, so a tab notices a dead network sooner.
  • The RDP engine no longer runs in a sandbox, as RDP clients on the Mac mostly do not: a shared folder is opened by FreeRDP itself. It still runs in a process of its own, so a crash in it ends only the remote desktops.

Fixed

  • File transfers no longer hold up the rest of the app: sftp and other work that waits on a process, a socket or the disk runs on threads of its own instead of Swift's shared ones, which a few long transfers could use up.
  • The terminal font list offers Nerd Fonts' plain variants (FiraCode Nerd Font and the like): their icons are double width, so macOS does not call them monospaced, and the list left them out though their letters are.
  • Text no longer runs under the terminal's scroll bar after the font changes — a tab opening, or ⌘+ and ⌘−: the terminal counted its columns over its whole width, scroll bar included, until the window was resized.