Terminal tab
A terminal tab runs a command-line shell inside tessoa. It can be open alongside file tabs.
Terminal tabs open on Windows, macOS and Linux alike, and they are a paid feature that requires an active license.
Opening a terminal tab
Both entry points sit in a right-click menu, and both are ▸ flyouts: hovering one lists the shells installed on this machine, and clicking a shell opens the tab.
| Menu entry | Where you right-click | Which folder the terminal starts in |
|---|---|---|
| Open terminal tab here ▸ | Empty space in the file area | The folder you were looking at when you right-clicked |
| New terminal tab ▸ | Empty space on the tab bar | The folder of the most recently used file tab in that group |
The candidates come in a fixed order, the first entry being the default:
| System | Candidates |
|---|---|
| Windows | PowerShell 7, Windows PowerShell, cmd, Git Bash, and then each WSL distribution |
| macOS / Linux | Default shell (the one $SHELL points at), then bash, zsh and fish |
Shells installed through Homebrew on macOS are found as well — those live outside the system's default search path, where a double-clicked application usually cannot see them. When no shell can be found at all, the parent entry shows greyed out with a tip reading No shell found.
When the starting folder is unavailable, tessoa falls back step by step: the folder the menu offered, then the group's most recent file tab folder, then your home folder. The menu entry is not greyed out over an unavailable folder. The starting folder is fixed the moment you right-click; navigating elsewhere while the menu is open does not change the result.
Without an active license the two entries show greyed out, but they still respond to a click. The tip reads Terminal tabs require an active license; clicking raises a toast with an Unlock button, and clicking Unlock opens the About › License page. Terminal tabs that already exist are not affected by a license running out; restarting the terminal and session restore keep working.
Right-clicking a file or folder offers no such entry. The background menu holds a separate Open in Terminal entry: it opens a system terminal window outside tessoa, which is a different thing from a terminal tab. On Windows it is the same shell flyout with the same candidates, only its result is an external window; on macOS and Linux it stays a single entry.
The not-running state
While the grid is empty, the few lines in the middle of the screen are themselves clickable (a background appears under the pointer), and pressing any key does the same as clicking. The three situations show different text:
| Situation | What the middle of the screen shows |
|---|---|
| Restored with the session | Click or press any key to start, with Working directory: … on the line below |
| The process ended | Process ended (exit code N) (just Process ended when no code is available), then Click or press any key to restart |
| Starting failed | The reason in red — No shell found, Working directory no longer exists (common after unplugging a drive or deleting the folder and then restoring the session), or Failed to start: followed by the system's reason — then Click or press any key to retry |
When the process ends with output still on screen, this block is not shown, so it does not cover what you are about to read. To restart then, use Restart Terminal in the tab's right-click menu; after one Clear Buffer, the block appears again.
Working inside the terminal
Input-method composition appears below the cursor and is sent to the terminal only after confirmation. The terminal supports italics, strikethrough, underline styles, combining characters and emoji. The running program controls text styles and cursor shapes.
| Action | How to do it |
|---|---|
| Select text | Drag with the mouse; double-click a word or triple-click a whole line. |
| Select a long line | Long lines rewrap with the terminal width. Triple-click selects the whole logical line; copying does not add newlines caused only by display wrapping. |
| Read previous output | Use the mouse wheel or the right-hand scrollbar. Dragging a selection beyond the top or bottom edge continues scrolling through previous output. |
| Use programs such as vim or htop | When a program enables mouse input, clicks, drags and wheel events are passed to it. |
| Select text while a program uses the mouse | Hold Shift while clicking or dragging. Hold Shift while using the wheel to scroll terminal history. |
Searching terminal output
- Press Ctrl+Shift+F, or ⌘+F on macOS.
- Enter the text to find. Search covers the current screen and retained output history.
- With the search field focused, press Enter or F3 for the next match; hold Shift for the previous match.
- Press Esc in the search field to close search and return to terminal input.
The search bar supports case-sensitive, whole-word and regular-expression matching. While the search field has focus, typing searches instead of sending input to the shell. Clicking terminal text returns input focus to the terminal but keeps the search bar open. Switching to another tab closes it.
Opening and copying links
The terminal recognizes URLs and hyperlinks emitted by programs. Hold Ctrl and click a link to open it, or use ⌘ on macOS. Right-click a link and choose Copy Link to copy its address. An ordinary drag still selects text.
Web and email links open in the system's default application. File links open in tessoa: directories open in a new tab, while files are selected in their containing folder rather than executed.
The terminal's context menus
A terminal tab has two right-click menus of its own. On the character grid:
| Menu entry | What it does |
|---|---|
| Copy | Copies the selected text; shown greyed out with no selection |
| Paste | Sends the clipboard's text to the shell |
| Select All | Selects everything, including the scrollback |
| Clear Buffer | Clears the screen and the scrollback, keeping the cursor's line |
When this menu is opened on a link, it also includes Copy Link.
Right-clicking the terminal tab itself offers, besides the closing family, Restart Terminal (restart with the same shell) and Restart with Shell ▸ (the same shell flyout, restarting with a different one). This menu has no bookmark entries: a terminal tab has no path to bookmark.
Shortcuts inside the terminal
These are the default shortcuts. Change them in the Terminal Tabs group under Settings → Keyboard & Mouse → Keyboard → Keyboard Shortcuts.
| Action | Windows / Linux | macOS |
|---|---|---|
| Copy and clear the selection, or interrupt when no text is selected | Ctrl+C | Use Ctrl+C for an interrupt; use the next row for copying |
| Copy and keep the selection | Ctrl+Shift+C / Ctrl+Insert | ⌘+C |
| Paste | Ctrl+V / Ctrl+Shift+V / Shift+Insert | ⌘+V / ⌘+Shift+V |
| Select all | Ctrl+Shift+A | ⌘+A |
| Find | Ctrl+Shift+F | ⌘+F |
| Clear the buffer | Unbound; can be assigned | ⌘+K |
| New tab | Ctrl+Shift+T | ⌘+T |
| Page up / down | Shift+PageUp / Shift+PageDown | Shift+PageUp / Shift+PageDown |
Changing terminal shortcuts
- Open Keyboard Shortcuts settings and find Terminal Tabs.
- Click an action, then press the desired key combination.
- Check the row for conflicts. Use Unbind or Default at the end of the row to remove or restore a binding.
Terminal shortcuts accept keyboard keys only. Ctrl+Tab and Ctrl+Shift+Tab are reserved for switching tabs and cannot be assigned to terminal actions.
A Takes a shell control key warning means the terminal action will consume the key instead of passing it to the shell. Overlapping global shortcuts produce a conflict warning; affected global actions are marked Not active in terminal tabs. The shortcut for opening settings always takes priority.
By default, Ctrl+L and Alt+F go to the shell. Other Ctrl+Shift combinations on Windows / Linux and ⌘ combinations on macOS can still trigger global actions if no terminal shortcut uses them. The table and explanations assume default bindings; after customization, refer to the settings page.
Behaviour as a tab
- The title shows shell · folder. The folder in the title is the one from creation time;
cdinside the terminal does not change the title. - A terminal tab can be dragged to a new position, to another pane, torn off into a new window, and included in a split, the same as a file tab.
- The session remembers it: after restarting tessoa every terminal tab is kept, but the process is not restarted automatically — what comes back is an empty grid with the block of text in the middle, and the scrollback is not saved. When the recorded shell has been uninstalled, the default one is used instead, with the folder unchanged.
- Opening a new tab from a terminal tab (with New Tab Folder set to Match Current Tab) lands in the folder the terminal is currently in: a folder reported by the shell wins, then one read off the prompt line on screen; when neither is available (with a custom prompt such as oh-my-posh or starship, for example), it falls back to the creation-time folder.
- A terminal tab has no address bar and no footer. The header line above the grid shows the shell name and the working directory; the line is not clickable. View switching and zooming do not apply to terminal tabs.
Running terminals remain in the background when you switch layouts and are available when you switch back. If switching or deleting a layout would end terminals, tessoa asks for confirmation first.
Division of work with file tabs
A file tab's folder and the terminal's working directory are not linked. The terminal inherits a folder once, at creation, and the two change independently from then on: navigating in a file tab does not cd the terminal, and cd in the terminal does not move any file tab.
Dropping file paths
- Start the shell in the terminal.
- Drag one or more files from the file list or another application onto the terminal text area.
- Check the inserted paths, finish the command, and press Enter when ready.
Dropping inserts absolute paths without copying or moving files or executing a command. Multiple paths are separated by spaces. tessoa quotes or escapes them for the shell selected for that tab, and converts path formats for Git Bash and WSL. Paths cannot be dropped before the terminal starts or after its process exits.
Colors and text contrast
Open Settings → Preview → Terminal Tab to adjust these options.
| Setting | What it does |
|---|---|
| Terminal Color Scheme | Choose Match Theme, Campbell, One Half Dark, One Half Light or Solarized Light |
| Increase Text Contrast Automatically | Darken or lighten text whose color is too close to the background |
| Use Option as Meta Key | macOS only; off by default. When enabled, Option plus a letter sends Esc followed by the letter. When disabled, Option retains its special-character input behavior. |
Tabs & split panes · Keyboard shortcuts · File operations · Settings overview