TermySequence for Linux
TermySequence is:
- A set of design goals and a protocol specification for a multiplexing terminal emulator server with many features.
- A server implementation written in cross-platform, multithreaded C++ with minimal dependencies.
- A Qt-based client implementation with its own set of features, including a plugin system using an embedded Chrome V8 Javascript engine.
- A terminal emulation system with a focus on connectivity, productivity, and collaboration.
- Free software, licensed under GPLv2.
TermySequence is packaged for:
- Fedora 28+ via the official repositories (instructions)
- Ubuntu 18.04+ via Open Build Service (instructions)
- OpenSUSE Tumbleweed via Open Build Service (instructions)
- Arch via Open Build Service (instructions)
How to get started • Already using TermySequence? Visit the users' page for news and updates.
Server Features
- Connection chaining: Establish connections from client to server and from server to server using common login commands. Connect directly through a terminal or in the background.
- Ideal for use with containers. Minimal size and dependency footprint. Establish connections using standard container login commands. Works with any container runtime.
- Filesystem access available to connected clients. Download, upload, mount, pipe, and more across any number of hops over the same connection used for terminals.
- Clients automatically receive directory listings for all terminals' current directories.
- Per-file git status information included in directory listings through the use of dynamically loaded libgit2.
- Relative modification times included with each non-empty line of terminal output. Use the timing widget to view them in the client.
- Terminal emulators run in separate threads from connections, with scrollback contents downloaded asynchronously. Command output within terminals is not limited by connection speed.
- Support for multiple simultaneous inbound connections. View and interact with other users' terminals within the context of a shared account. Upload an avatar image which will be displayed to other users on your terminals. Share font and color settings.
- Attach arbitrary UTF-8 key/value pairs to terminals, servers, and text regions. Create custom monitor scripts to report arbitrary server status information to clients.
- iTerm2-compatible shell integration.
- Display inline images using iTerm2-compatible imgcat and imgls utilities.
- Create custom port forwarding on demand across any number of hops over the same connection used for terminals.
- OSC 8 hyperlinks.
- Optional socket activation support and unit files allow use as a systemd user service.
Client Features
- Use the keymap tool to quickly get started with the application. It's a built-in cheat sheet for your key bindings.
- Autocomplete entire commands using the suggestions tool.
- Implement a wide variety of custom functionality in Javascript using a rich plugin API.
- Create arbitrary semantic regions in command output using Javascript parser plugins. Or create them using OSC 515 hyperlinks from inside the terminal.
- Two separate input modes: command mode, for implementing vim-style dual mode keymaps, and selection mode, for mouseless manipulation of text selections.
- Supplement the terminal viewport with useful widgets to display marks, minimap, and timing information.
- Use batch connections to establish multiple outbound connections at once, including sequential connections across multiple hops.
- Create annotations at points of interest within the terminal. Annotations are stored on the server and are visible to other users.
- Display an icon image with each terminal's thumbnail depending on which command is running in the terminal. Switch icons automatically using a custom ruleset.
- Comprehensive settings system including terminal profiles and per-server settings. Switch terminal profiles automatically using a custom ruleset.
- Giving a demo? Enter presentation mode to hide distractions, increase the terminal font size, and go fullscreen in a single keystroke.
- Define launchers to run applications and open files and URL's. Capture remote program output and mount remote files to be opened in local applications. Bind commands to keystrokes.
- Define alerts to perform a variety of actions when a condition becomes true in a terminal.
- Custom-rendered emoji images and box and line drawing characters.
- …and many more features