The Window
Documentation in progress
Some sections are still incomplete.
The window is in three parts: a sidebar on the left holding the workspace, the terminal area in the middle, and an optional panel on the right. The terminal itself is WezTerm's, and its documentation covers rendering, fonts and escape sequences unchanged. What follows is the part around it.
The sidebar
The sidebar holds the workspace: the Space on show, its Projects, and the Threads in each Project. Spaces, Projects and Threads describes that model and every menu in it; this is only the layout.
At the top, a button names the Space on show and opens the Space menu. It lists the Spaces on this machine first, then the Spaces of each remote server under that server's name and connection state, each server with New Space Here to add one there. A Space already open in another window is marked occupied and cannot be picked, because a Space is shown in one window at a time. The same menu holds Add Remote Host…, New Space, renaming the current Space, and removing it or another one. Settings › Appearance › Connected servers changes how it lists servers: every Space spelled out under the server (Expanded, the default), one row per server (One Row Each), or each server as folders inside one of this machine's Spaces (Folders), so that the menu lists only your own. Servers in the Space menu says what each does. The icon picked for a host under its Icon field in Remote Hosts marks its server in this menu.
On macOS, right-clicking ThinkTerm's Dock icon lists, under New Window, the Spaces open in windows, in alphabetical order, with the one in use checked. Choosing one brings its window forward.
Below that are the Space's Projects, each with its Threads. A pinned Thread leaves its Project's list for a single Pinned section at the top of the Space, which gathers the pins of every Project in it. Pinned Threads cannot be dragged into another order, and the pins of an archived Project stay out of the section until it is unarchived. A Thread can also be marked unread.
A Thread carries a live status, so the list answers which sessions are working and which are waiting on you without visiting each one — Agent Status describes how that is decided. Beside its name a Thread row also shows the programs its panes run, as the same icons the pane tabs wear; Icons and status in the sidebar says how to change how they are laid out and how the status is drawn.
When the Thread the window is showing is out of sight in the list, scrolled away or folded into its Project, a pill with that Thread's icon and an arrow floats at the top or bottom edge of the list, pointing the way (Scroll to Current Thread). Clicking it unfolds the folder if need be and scrolls the list back to the Thread.
Resting the pointer on a Thread's row opens a card that counts its agents and lists each one with its state. At the end of an agent's title line it names the pane the way the command line does, Pane 3; a pane on another machine carries that machine's name in front of the number, Pane devbox/3. The hover card of an agent in the Status panel adds a Pane line with the same name, followed by the pane's label if it has one. That is the number --pane takes in Command Line.
The sidebar opens 31 cells wide by default. Its footer holds four buttons: the Library, Live Overview, Remote Hosts and Find Thread. Settings is no longer in the footer: it is the round button on the Library's left edge, and Settings... is also in the command palette and, on macOS, ⌘, .
The add buttons in the sidebar, such as the + beside Workspaces and the one on a Project's row, draw their round background only while the pointer is over them. Settings › Accessibility › Show button shapes, off by default, keeps it drawn.
Hold ⌘ on macOS, or Ctrl+Shift elsewhere, for half a second and the first nine Threads of the sidebar, from the top, show a number: the key that reaches each one. ⌘1 to ⌘9 on macOS, or Ctrl+Shift+1 to 9 elsewhere, open that Thread. Pinned Threads count first, and Threads in a folded Project do not. The chord is read from the keymap, so a shortcut changed in Settings › Keymap changes what is held and what shows. Window tabs moved to Ctrl+1 to 9 to make room; Keyboard has the list.
A Thread row can be dragged to reorder it, as Spaces, Projects and Threads describes, or out of the sidebar to give the Thread a window of its own: see A Thread in its own window.
With the sidebar put away, resting the pointer on the left edge of the window, or on the sidebar button, slides it out over the terminal until the pointer leaves. The terminal underneath does not move or resize, so nothing running in it sees a change of size. A menu or rename opened from the revealed sidebar holds it out until you are done.
The Library
The sidebar shows one Space. The Library shows all of them. Every Space the window can reach is a card, which is that Space's own sidebar with its Projects and Threads, and the cards are grouped under the machine they live on: This computer first, then each server in the order its Spaces first appeared. A server that is connecting or cannot be reached says so beside its name. A server shown as folders (see Servers in the Space menu) has no cards of its own, except for the Space this window is in.
It takes the place of the left sidebar: a panel on the left of the window, with the terminal keeping the rest of the width. Opening or closing it resizes the terminal once, to where it ends up, so the programs in it see one change of size. The edge of the panel can be dragged to widen or narrow it, and the width is remembered.
It opens from the Library button in the sidebar's footer (ThinkTerm Library), from ThinkTerm Library in the command palette, an action you can bind to a key, and, on macOS, by swiping on past the first Space — see Switching Spaces with a swipe. While it is out, the button that shows and hides the sidebar does nothing.
- Click a card to switch this window to that Space, or a Thread in a card to open that Thread. A server's Space that is not connected connects on the way. Choosing another Space closes the Library again, the chosen card becoming the sidebar. Choosing in the Space the window is already in leaves it open beside the terminal.
- A Space that another window has open cannot be opened from its card. Its
Moremenu holds only the linemy-space (occupied), so it cannot be renamed or removed from here either. - A card's
Morebutton opens the Space's menu: renaming it, and removing it as Deleting describes. A name is edited in the sidebar's header, so choosing the rename goes to that Space, closes the Library and starts the edit there. The+beside a machine's name adds a Space there, and the new card appears without the window leaving the Space it is in. - A wheel or a trackpad moves along the row of cards. Rows in a card have no pin or bin button.
Back to the sidebar, the arrow on the panel's left edge, closes it. So does Escape, unless a menu, the command palette, a text field in the right sidebar or something else in front has a use for the key, and so does a trackpad swipe towards the terminal that starts on the panel outside the cards.
The panel's title counts what it holds, 2 machines · 5 Spaces. The round Settings button on its left edge opens Settings. The dot that stands for a dismissed update (see Updates) sits on that button and on the sidebar's Library button, which leads to it.
Window tabs and pane tabs
Tabs come in two levels, and it is worth keeping them apart.
The row along the top of the window holds the window tabs. Each one is a whole layout — a single terminal, or several split side by side and one above another — and switching window tab swaps the whole layout at once.
Settings › Appearance › Top tab bar chooses whether that row keeps its place. Show, the default, keeps it. Auto-hide gives its height to the terminal and brings the row down over the top of the window while the pointer rests at the top edge. The terminal is pushed down rather than resized, so nothing reflows, and the last line or two drop out of view until the row goes again. A pin at the end of the row, beside the +, keeps it out: pinned, it takes its height as it does under Show. Choosing Auto-hide in Settings starts with the pin out, and the pin applies to every window. The tabs are all still there while the row is away; switch with the keyboard or the command palette. A window tab renamed from the keyboard or the command palette brings the row down for the edit, and the row still comes down while the terminal in front is connecting or offline, since it is the way to another tab.
While the row is away, macOS keeps its traffic lights and the pane bar at the top right holds the toggle for the right sidebar while that is shut. On Windows and Linux the row holds the window's own buttons and the toggles of both sidebars, so the pane bars along the top hold them instead while it is away, and the blank in a pane bar moves the window. A Thread in a window of its own keeps the row away whatever Settings say, and while that window has only one window tab, nothing brings the row down.
Every cell of that layout has a strip of its own above it: a pane stack. The tabs in a stack are terminals that take turns in that one cell, so a cell can hold several shells without being split any further. The buttons at the end of the strip open a new tab in the stack, split the cell down or to the right, and zoom it to fill the window tab; double-clicking empty space in the strip also opens a new tab there. A pane alone in its window tab has no zoom button, since zooming it would change nothing. The button comes back once the tab is split, and stays on a zoomed pane to zoom it back out. When sharing is on, a terminal on a session server also has a share button. Where a cell sits in a split above or below another, a further button folds it down to its strip to give the rest the room, one cell per window tab.
A pane tab can be dragged onto a cell. Dropped on the cell's own strip, it joins that cell's stack; dropped near an edge, it splits the cell on that side and takes the new half; dropped in the middle of the cell, it swaps places with the pane showing there. In a swap each pane takes the other's place in its stack and the size of that cell, so the cells and the panes around them stay where they are, and the pane you dragged is left in front and selected. A highlight shows which it will be before you let go: the strip, the half on one side, or the whole cell for a swap. The tab you drag travels with the pointer, held where you took it, and settles into its place when you let go.
Layout changes are animated. A new split slides in from the side it opened on, and a closed one slides back out the way it came. A zoomed pane grows out of its cell while the others are pushed out past the window tab's edges, and they come back in when it is put back. A pane that is moved or swapped travels to its new place while the others make way. Only the picture moves: the layout has already changed, so the programs in the panes see one resize rather than one a frame. Settings › Terminal › Split animation, on by default, turns all of this off.
Right-clicking a window tab offers:
| Item | Does |
|---|---|
Rename Tab… | Names the window tab |
Close Tabs to Left, Close Tabs to Right, Close Other Tabs | Closes those window tabs without asking first |
Move Tab Left, Move Tab Right | Moves it one place along the row |
New Terminal Tab to Right | Opens a window tab beside it, on the same machine as its current terminal |
Zoom Pane | Zooms the window tab's active cell to fill it, or puts it back |
Right-clicking the + at the end of the row opens a menu for starting a window tab in a program of your choice. New Tab With lists the shells found on this machine, with the one chosen as Settings › Terminal › Default Shell ticked. Under Remote Hosts come the hosts saved on the Remote Hosts page, which open as their Connect does, in a submenu of their own when there are more than six. Then come the entries of launch_menu in the config file, and More…, which opens the launcher this right click opened before. The shells are listed only while the terminal in front runs on this machine; in a terminal on another machine the right click opens the launcher instead. In both cases the config file's new-tab-button-click handler runs first and can take the click over.
Right-clicking a pane tab renames that tab.
Right-clicking inside a terminal offers Copy, Paste, Edit Recording Masks… and Clear Recording Masks (see Recording masks), Split Right, Split Left, Split Down and Split Up, and Reset Terminal. Its last item, Frontend access, chooses between A · Shared (tmux-like) and B · Handoff (exclusive) — whether several devices can drive the terminal together or one at a time — described in Web. When the program in the terminal captures the mouse, hold Shift while right-clicking. A right click can also be made to paste, or to copy and paste, instead of opening this menu; see Copy and paste.
A Thread in its own window
A Thread can have a window of its own. Choose Open in New Window in the Thread's menu, or drag the Thread's row out of the sidebar: the row turns into a card that follows the pointer, and the Thread's window opens where you let go. On macOS, with the WebGPU renderer and outside full screen, the card follows the pointer past the edge of the window; otherwise, and always on Windows and Linux, it stops at the edge. Dragging the card back over the sidebar puts it back as a row. Any Thread can be dragged out, pinned ones included.
The new window shows only that Thread. It has no sidebars, and so no Space of its own, and its row of window tabs stays away as described under Window tabs and pane tabs. Commands about other Threads and Spaces, such as New Thread, switching Space, Live Overview, the Library and Find Thread, are handed to a window that has a sidebar, and showing or hiding a sidebar does nothing there.
A Thread is shown in one window at a time, because two windows cannot each resize the same terminals. The window that was showing it goes to a page that says This thread is open in another window., with a Go to Window button, and the Thread's menu offers Go to Window in place of Open in New Window while it is open. Choosing the Thread in another window's sidebar shows the same page there rather than taking the Thread back.
Closing the window does not end the Thread: its terminals go on running, and the window that was showing the page takes the Thread back. ThinkTerm remembers which Threads had windows and reopens them at the next start. A Thread that is not running comes back only if it is a local one in the Space the first window opens on, and no server is woken for a window you did not just ask for.
Tab icons
Each pane tab carries an icon for what that pane is running: Claude Code, Codex, Python, Neovim, Docker, an SSH session, and so on, with a plain terminal mark for a shell or anything no icon claims. While the pane is working the icon gives way to a spinner. The window tabs in the top row hold several panes that may each run something different, so they always show the terminal mark.
What a pane runs is worked out from the program in charge of its terminal, looked at when the pane prints or changes its title rather than on a timer, and only once a change has held for half a second — a command that flashes past does not flicker the icon. Launchers and interpreters are seen through: sudo vim shows Vim, and a script run by Python or Node shows what the script is called before it falls back to the interpreter. Panes on a ThinkTerm Connect server are observed by that server and reported to every client, so a remote tab shows the same icon a local one would.
Over plain SSH the program in charge locally is ssh itself, so the tab can only show the SSH icon. Detect remote programs, in a plain SSH host's settings, lets the remote shell say what it is running instead: on the next connection ThinkTerm adds one line to the host's bash or zsh startup files, and turning it off removes that line on the connection after. Other login shells are reported as unsupported and left untouched.
What that line does is set the WEZTERM_PROG user variable to the command line before each command and clear it at the prompt, so a shell it does not cover, such as fish, can report its programs the same way by doing the same. The report counts only while the terminal is on another machine; for a local program, what ThinkTerm sees running wins.
The icons are always on. Settings › Tab Icons holds them as a searchable grid of cards. A card lists the program names it answers to, and its shape and colours can be changed: pick an SVG, or drop an .svg file on the card, and set the circle and glyph colours. An imported SVG may be up to 256 KB; ThinkTerm keeps a copy in ~/.config/thinkterm/tab-icons/, named by its hash, so moving or deleting the original does not lose the icon. A built-in card can be reset to how it shipped; cards of your own, up to 64, can be added and deleted. A program name belongs to one card at a time, so adding it to a card takes it off whichever card had it before. The terminal card is fixed and is not shown there. A terminal opened in a browser wears the same icons, taken from the cards set on the machine that serves the page; see Web.
Icons and status in the sidebar
A Thread row shows the programs its panes run, using the same cards as the pane tabs, so an icon changed under Settings › Tab Icons changes here as well. Agents come first, then other programs, with the plain terminal mark last, and a program that several panes run appears once. At the far end of the row is a small mark for what the Thread is doing. The Find Thread rows in the palette draw both the same way, and the mark moves while the Thread works.
Settings › Appearance › Icons and status has three rows:
| Row | Choices | Does |
|---|---|---|
Thread icons | Badge (default), Stack, Group, At the end | How several programs share a row. Badge shows the first program's icon with the second small at its corner, or, with more, how many more. Stack shows the first with the others stacked behind it, only their edges showing. Group draws every program smaller, sharing the one slot. At the end puts the icons side by side at the row's end, before its status. All but At the end keep the icon in a slot of one width, so the names line up |
Sidebar status | Ring, Pulse, Pixels (default), Dots | The mark at the end of a Thread row. Ring is the spinner and dots the sidebar always had. Pulse draws a heartbeat trace while the Thread works and a flat line otherwise. Pixels is a three-by-three grid of pixels. Dots rises through three dots in turn while it works, and shows one dot otherwise |
Agent status | The same four, Pixels by default | The same choice for the Status panel and the hover cards, which follow a setting of their own. Ring keeps the icons described under Agent Status |
Whichever shape is picked, the mark says the same things: working, waiting for you, stopped on an error, finished, or none of those. A finished result is a tick in every shape. The Thread you are in shows green while it works or rests; a wait or an error keeps its own colour.
WezTerm's tab bar
ThinkTerm's own tab row is the window's, and the configuration cannot move or remove it; whether it stays in place or auto-hides is Settings › Appearance › Top tab bar, described under Window tabs and pane tabs. WezTerm's tab bar options — enable_tab_bar, use_fancy_tab_bar, tab_bar_at_bottom, hide_tab_bar_if_only_one_tab and the rest — drive a separate one-row bar inside the terminal area instead, under the pane tabs or along the bottom edge.
With use_fancy_tab_bar = false that bar shows WezTerm's retro tabs, and format-tab-title and the tab bar colours apply to it. With the default fancy bar it stays away until status text is set, for example with window:set_right_status, and then keeps its row, so status that comes and goes does not keep resizing the terminal. enable_tab_bar = false removes it entirely.
Live Overview
The tab bar cannot tell you which of a dozen sessions is doing something. The Live Overview can: it lays every live Thread out as a card, grouped under the Space it belongs to, up to five columns wide.
Each card shows that terminal as it is right now, under a floating capsule naming the Thread and the command it is running. The capsule also carries one dot for every tab in the Thread's workspace, across all of its windows: blue when a command is running in that tab, brighter when output has arrived since the card last showed it, faint when it is idle, and largest for the tab the card is showing. Hovering a dot previews that tab on the card; clicking it opens the Thread on that tab. Past six tabs the dots fold to three and a count, and resting the pointer on them opens the row out.
Machines that are currently offline stay in the grid rather than disappearing from it, so a Space does not empty out when a laptop sleeps.
Closing a card asks first when something is still running there, because it ends every split pane and running program in that terminal.
Two sets of colours
ThinkTerm paints two palettes, and it is worth knowing which is which.
The colours your programs draw with are the terminal's: WezTerm's colors and color_scheme, documented upstream. ThinkTerm adds a way to pick the scheme outside the config file, and a default that goes with a light interface, and both can stand in front of what the file says.
Settings › Appearance › Effective Color Scheme shows the scheme the terminal is painted in. Clicking it opens the command palette's Change Theme list in a terminal window, which repaints the terminal as you move through it. A scheme picked there, or from Change Theme in the palette directly, is saved in settings.json, applies to every window, and wins over color_scheme in the config file — so an edit to that line seems to do nothing until Use configured default, at the top of the same list, hands the choice back to the file. colors in the config file is still laid over whichever scheme is in force.
With nothing picked, a light interface paints the terminal in Apple System Colors (Light), unless the config file names a scheme or sets colors itself, so a light window does not come with text chosen for a black background. A dark interface leaves the config file in charge.
The colours ThinkTerm draws around the terminal — the sidebar, the tab bar, the strip above each pane, Settings, the menus — are its own, and ui_colors overrides them slot by slot; the slots are listed in Configuration. Settings › Appearance › Theme Mode offers four modes: System, Light, Dark, which is the default, and Follow terminal colours, which moves the interface onto the background of whatever colour scheme the terminal is using. Under Follow terminal colours no scheme is picked for you: there the scheme decides the interface, not the other way round.
Terminal text can be held to a minimum contrast against its background, so a scheme that puts dark grey on black stays readable. Settings › Terminal › Minimum text contrast offers 3:1, 4.5:1 and 7:1, and is off by default, because raising contrast also flattens what a program dimmed on purpose — a disabled menu entry, the empty half of a progress bar, a comment. Left off, WezTerm's own text_min_contrast_ratio option decides, and that is unset unless you set it in the config file; a ratio chosen in Settings wins over it.
Interface text sizes
ThinkTerm's own text is sized apart from the terminal's. Settings › Appearance › Typography has a stepper for each of six places, from 10 to 28, with a small picture of the window above them that lights up the part a row applies to:
| Setting | Sizes |
|---|---|
Settings UI Font Size | The Settings window |
Home Font Size | Home and the main content area |
Right Sidebar Font Size | Files, Notes and Snippets; follows Home Font Size until set |
Workspace Sidebar Font Size | The sidebar on the left |
Tab Bar Font Size | The window tabs along the top |
Pane Header Font Size | The strips of pane tabs |
Settings UI Font Weight sets how heavy the Settings window's text is, from 300 to 800 in steps of 100. Each row has its own reset. The terminal's font and size are on Settings › Terminal and in the config file — see Configuration.
App icon
Settings › Appearance › App Icon switches the icon the running app shows in the Dock and the app switcher between Blue Pill, the default, Red Pill, Classic and Otter. It works on macOS only.
Dock icon count
On macOS, ThinkTerm's Dock icon can carry a number: how many Threads have something you have not looked at yet. It counts the Threads the sidebar's notification bell lists, and shows nothing when there are none. Settings › Workspaces › Dock Icon Count turns it on and off; it is on by default. Under it, Finished, Needs You and Error choose which of those moments count, all three by default. Sounds and system notifications, in the same card, have the same choice; Agent Status describes them.
Window opacity
Settings › Appearance › Window Opacity, marked Beta, makes the windows see-through. It is a slider from 30% to 100% in steps of 5, with opaque all the way to the right, and every window follows it as you drag. How dark each area is drawn is set under Shading the areas. It reads Default until you move it, which means window_background_opacity in the config file is in charge; Reset to Default hands the choice back.
On macOS a see-through window also gets a background blur of 20, unless the config file sets a non-zero macos_window_background_blur itself; a 0 there counts as unset. The slider is greyed out on Linux, and Settings says it is not yet stable on Windows, where win32_system_backdrop is left to the config file. The choice applies even when there is no config file; the other overlaps are in Configuration.
On Windows 11, a see-through window brings the frosted glass with it, as on macOS: the system's acrylic, drawn behind the whole window. A window takes it as it is made, so going see-through, or back, shows after ThinkTerm restarts, and Settings says so when the slider moves. It needs the OpenGL renderer.
macOS glass effect
On macOS, Settings › Appearance › Glass effect chooses what a see-through window shows behind it: Blur (default), the blur described above; Frosted, the system's frosted material behind the whole window; and, on macOS 26 and later only, Liquid Glass and Clear glass. The pick applies at once. Earlier versions of macOS offer Blur and Frosted. Clear + blur, clear glass over a blur, is no longer offered, and a setting saved as that reads as Frosted.
Shading the areas
On every platform where the slider works, three rows beside it set how dark the areas of a see-through window are: Sidebar color (default Dark), Tab bar color and Terminal color (both Light by default). Each takes Dark, Mid or Light. A darker shade is more solid in a dark interface and less in a light one, and areas given the same shade look the same. An opaque window is as it was, so the rows change nothing until the slider is below 100%.
Scrolling
The scrollback moves by the pixel rather than by the row: a trackpad or a touch drag follows your fingers instead of jumping a line at a time. Settings › Terminal › Scrolling switches between Smooth, which is the default, and Stepped, which moves a whole line at once.
Every pane draws a thin scrollbar over its right edge while it is scrolling and fades it out shortly after — not only the focused one. It can be dragged. Settings › Terminal › Scrollbar turns it off. enable_scroll_bar = true in the config file replaces it with WezTerm's own scrollbar, a gutter beside the focused pane, whatever that switch says.
Copy and paste
Settings › Terminal › Mouse and clipboard has five rows:
| Row | Choices | Does |
|---|---|---|
Selection style | Rounded (default), Square | Rounded joins the selected rows into one shape; Square gives each row a block of its own |
Copy on select | On (default), off | On, selected text goes straight to the clipboard. Off, selecting only selects: copy with the copy shortcut or a right click |
Right click | Menu (default), Paste, Copy or paste | What a right click in a terminal does. Copy or paste copies the selection and lets go of it when there is one, and pastes otherwise |
Copy and paste effect | Off (default), White, Color | Two lights run along the top and bottom of the text you copy or paste, from the end you began selecting at to the other, so you can see what was copied and where it went |
Focus follows mouse | Off (default), on | On, the pane under the mouse takes the focus without a click. Not while a button is held, and not while another app is in front |
With Copy on select off, Linux still passes the selection to the primary selection that the middle button pastes from.
Whatever Right click is set to, holding Ctrl (Control on macOS) while right-clicking opens the menu described under Window tabs and pane tabs. Where the program in the terminal captures the mouse, add Shift, as for the menu itself. A mouse_bindings entry in the config file that takes the right button's press still takes the whole click, before any of this.
Bottom quote
Settings › Terminal › Bottom Quote shows a short line of text in the lower-right corner of the terminal area. It is off by default. It takes no room from the terminal: it is drawn in the gap left below the last whole row, and where that gap is too thin — a window sized to an exact number of rows — nothing is shown. Quote Font Size changes its size without changing the terminal's layout. A terminal that another device is using shows a note in that same corner offering to take it over (see Remote); while the note is on screen, the quote is not drawn.
The quotes come from ~/.config/thinkterm/bottom_quotes.json, a list of objects with a text and an optional author:
[
{ "text": "Ship the small version first.", "author": "A colleague" },
{ "text": "Read the error message." }
]The file is created with a starter list the first time a quote is shown, and Quotes file › Open opens it. An edit is picked up once the file is saved. Quote Rotation goes through the list in order with Sequential, or picks one with Random; Quote Interval sets how often it changes, from 1 minute to 24 hours and an hour by default. The change follows the clock, so every window shows the same quote. Reset Quotes JSON puts the shipped list back over the file, and asks for a second press first, since whatever you wrote there is lost.
Images in the terminal
Programs can draw pictures in the terminal with the Kitty graphics protocol, iTerm2's inline images or Sixel, as they can in WezTerm.
The terminal also keeps the newer parts of the Kitty protocol — Unicode placeholders, images placed relative to other images, and animation — but the desktop window does not draw those yet. A terminal opened in a browser does; see Web. The browser, for its part, does not show a PNG or JPEG sent through iTerm2's protocol.
Each pane keeps up to 128 MiB of Kitty image data, set by kitty_image_memory_budget_mib, where 0 means no limit. Past it, images that are not on screen go first, oldest first; if the ones on screen alone exceed it, the least recently placed are taken off the screen too, never the newest. One animation is held to 256 MiB at most, or the budget if that is smaller.
Recording masks
When you are recording or sharing your screen, a recording mask covers part of a terminal with an opaque rectangle. Right-click a terminal and choose Edit Recording Masks… — if the program in it captures the mouse, hold Shift while right-clicking, and Ctrl (Control on macOS) as well when Right click is not set to Menu. Drag empty space to draw a mask, drag a mask to move it, and drag any edge or corner of the selected mask to resize it. The arrow keys nudge the selected mask a little, and with Shift ten times as far; Backspace removes it. ⌘Z on macOS, or Ctrl+Z elsewhere, undoes the last edit, up to 100 of them while you are editing. Done, Escape or Return puts the terminal back to normal input; Clear Recording Masks on the same menu removes them all.
Each mask has its own colour, chosen on the toolbar that floats over the pane. It is one row, with a handle at its left to drag it somewhere else. The ten swatches are Match the terminal background, black, a grey, an off-white, and red, orange, yellow, green, blue and purple. The first follows the pane's own background, so a mask over a prompt stays out of sight when the theme changes. Pick a color from the terminal takes the background of any cell you then click, and Escape puts it down. A colour chosen applies to the selected mask and to the masks drawn after it, and a mask is always opaque, whatever colour it has. Beside the swatches are Delete Selected, Clear All and Done (Esc).
Masks belong to one pane, up to 64 of them, and stay at fixed positions within it: they do not follow the text when it scrolls, so check the recording after scrolling or rearranging the window. They follow the pane between windows and appear on its Live Overview card. They exist only in this copy of ThinkTerm — other clients attached to the session never receive them — and are lost when the pane closes or ThinkTerm quits.
A mask covers the picture, not the content. The text underneath is still in the terminal, in what you copy, in logs, and on every other client attached to the same session.
Sharing a terminal
Sharing lets other accounts on the same machine watch one of your terminals live. It is off by default, and Settings calls it an experimental feature that may be removed later and may carry security risks. Settings › Share & Sync › Share terminals turns it on. Turning it off stops every share you have running; if a share is on a server that cannot be reached, it keeps running there and stops once the server can be reached, and ThinkTerm says so.
With it on, a terminal that runs on a session server — the background session server or a ThinkTerm Connect host — has a share button in the strip above it, Share this terminal. A terminal with no server behind it has none, and on Windows sharing is for terminals on a Linux or Mac server. The button opens a panel where you pick the accounts or groups of that machine who may watch, choose when the share stops by itself, 15 min or 30 min, and press Start sharing.
The people you pick see the terminal live but cannot type in it. To type, they ask, and the panel shows <name> wants to type in this terminal with Turn down and Agree for 30 minutes. Once you agree they can type for 30 minutes, and Take back ends that at any time. The panel also lists who is watching (Watching (2)), with Remove for each, and Stop sharing.
What others share with you is listed under Shared with me at the foot of the sidebar. A row opens the shared terminal in a new tab. A button in that pane's strip asks to type: Take Over, then Asked · Withdraw, then In Control · Hand Back once you have been let in. An account running another version of ThinkTerm is listed as <owner> · other version: what it shares cannot be watched until the versions match. thinkterm cli share lists and stops shares and manages their viewers from a terminal, and share watch shows one that is shared with you; see Command Line.
The right-hand panels
The panel to the right of the terminal holds Files, Notes and Snippets, described in Files and Notes, and the Status panel described in Agent Status. Installed plugins can add panels of their own after these — see Plugins. Snippets is itself a built-in plugin.
Settings › Sidebar & Plugins turns each panel on and off and lists the installed plugins. With every panel off, the right sidebar itself goes away.
If the right sidebar was left open, new windows and the next launch open it too. Settings › Sidebar & Plugins › Remember the right sidebar, on by default, controls this; off, it always starts closed.
Put away, the right sidebar comes back the same way the left one does: rest the pointer on the right edge of the window, or on its button, and it slides out over the terminal without resizing it.
The update notice
While a newer release is known, a capsule floats in the bottom-right corner of the terminal area, naming the version. It installs the update with a click, shows the progress, and offers a restart when it is done; Updates has the details. It keeps out of the way of a menu, the command palette or a dialog, and of the right sidebar while that is slid out over the corner, and sits above the bottom quote when that is on.
Where the window opens
Settings › General › Restore Main Window Frame reopens the main window at the size and position you last left it, on macOS and on Windows.
Renderer
Settings › General › Renderer chooses between WebGPU and OpenGL, for terminal windows and the Settings window alike. The change takes effect when ThinkTerm restarts. Left unchosen, the renderer follows front_end in the config file, which is WebGPU by default and OpenGL on Windows; see Configuration.
If the renderer cannot start on the machine — for WebGPU, no usable Metal, DirectX 12 or Vulkan adapter — the window opens on the other one instead, so a choice that does not work on this machine does not lock you out of Settings to undo it. Only when both fail does the window not open.
Related
- Spaces, Projects and Threads — the workspace the sidebar holds, and its menus
- Keyboard and Commands — shortcuts and the command palette,
Change Themeamong its groups - Agent Status — the status each Thread carries, and the
Statuspanel - Files and Notes — what the right-hand panels hold
- Plugins — panels that installed plugins add
- Remote — SSH hosts and ThinkTerm Connect, where remote tab icons come from
- Web — the same terminals in a browser, and
Frontend access - Updates — the capsule that offers a new release
- Configuration —
ui_colors,text_min_contrast_ratio, and where the Settings window writes
