The terminal

The terminal opens a shell on the computer a thread runs on, in the thread's folder. It draws with your own Ghostty config: your font, your colors and your cursor.

The terminal is Ghostty's own terminal code, compiled to WebAssembly so that it runs in the app's window.

The terminal pane in the person's Ghostty colors, showing git log --graph.

Open a terminal

There are two places for a terminal:

  • The drawer under the thread. Press mod+j to open or close it.
  • The right panel. Click Add a panel, the + at the top of the right panel, and pick Terminal. If the right panel is empty, it has no +. Click the pane in the list the empty panel shows instead. In that menu or that list, T picks it too.

With no thread open, the drawer opens a shell on the computer you sit at, in your home folder.

The shell is your login shell on that computer, and TERM is xterm-256color. A command that opens a web page, for example a sign-in, opens it on the computer you sit at.

Tabs and splits

While a terminal has focus:

ChordWhat it does
mod+dSplit the terminal. On a Mac only.
mod+nOpen a new terminal. On a Mac only.
mod+=Zoom in.
mod+-Zoom out.
mod+0Reset the zoom.

Off a Mac, Ctrl+D and Ctrl+N go to the shell. Ctrl+D ends the input, which can close the shell. To split or open a terminal there, use the right-click menu.

A group holds up to 4 terminals, stacked or side by side. The zoom changes the terminal only, not the window, and wsp keeps it for each thread's folder.

Right-click in a terminal for Copy, Add to chat, Paste, Clear, the two splits, New terminal and Close terminal. Add to chat puts the selected text into the composer.

mod is Cmd on a Mac and Ctrl elsewhere. You can change these chords in Settings > Keybindings. See Keyboard shortcuts.

Keys the terminal keeps

On a Mac, the app's Cmd chords work everywhere, the terminal included.

On Linux and in a browser on another system, mod is Ctrl, and a shell needs many Ctrl keys. So while a terminal has focus, it keeps most Ctrl chords for itself. For example, Ctrl+b is the prefix of tmux, Ctrl+k deletes to the end of the line, and Ctrl+p walks the shell's history. In a terminal, open the sidebar with Ctrl+Shift+b and the palette with Ctrl+Shift+p.

On a MacElsewhere
Copy the selectionCmd+CCtrl+C or Ctrl+Shift+C
PasteCmd+VCtrl+Shift+V or Shift+Insert
Open a link or a pathCmd-clickCtrl-click

Ctrl+C copies only while text is selected. Without a selection, it goes to the shell as an interrupt.

A web address opens in your browser. A file path opens in the Files pane, at its line.

Scrollback, reloads and restarts

The terminal keeps 10,000 lines that you can scroll back through. The shell runs in the daemon on the thread's computer, not in the window. If you reload the app, the shells come back as tabs, with their last 256 KB of output.

If the daemon on that computer restarts, its shells end. The pane says so. A shell that ends prints [process exited].

Your Ghostty config

wsp reads the Ghostty config on the computer that runs wsp, and draws every terminal with it, on every computer. It reads these files, and a later file wins:

  • ~/.config/ghostty/config.ghostty, then ~/.config/ghostty/config. If XDG_CONFIG_HOME is set, wsp reads its ghostty folder in place of ~/.config/ghostty.
  • On a Mac, also ~/Library/Application Support/com.mitchellh.ghostty/config.ghostty, then config in the same folder.

wsp follows config-file lines and resolves theme, a light and dark pair too. It picks the side that matches the app's theme. Your own lines win over the theme's.

wsp reads these keys, and leaves the rest:

KeyNotes
font-familyRepeat it for fallback fonts.
font-sizeRead and shown by wsp terminal config. The pane draws it only when the terminal's size setting is the file's. That setting is the app's size by default, and the app has no control to change it.
background, foreground, selection-background, cursor-colorSix-digit hex colors.
paletteColors 0 to 15.
cursor-style, cursor-style-blinkblock, bar, underline or block_hollow.
window-padding-x, window-padding-y
background-opacityFrom 0 to 1.
background-blur, background-blur-radiusRead, but not drawn.

Without a Ghostty config, the terminal uses its own defaults.

To see what wsp read, run:

wsp terminal config

It prints the files it read, then one key = value line for each key it took. Pass --scheme light or --scheme dark to pick the side of a light and dark theme.

Pick another font

To use another font than your Ghostty font, click Terminal font in the drawer. Type the name of a font installed on this computer. Leave it empty to go back to your Ghostty font. Icons that a font lacks come from a symbols font that wsp brings.

Last updated