Widgets

Widgets are optional navigation and information aides displayed next to each terminal viewport. They can be arranged using the Appearance/WidgetLayout profile setting as well as the Adjust Layout dialog. They can also be toggled from View→Tools.

Depending on the value of the ShowRemoteLayout profile setting, termyctl may be used to adjust the widget layout from within the terminal and other users' widget layouts may be shown in their terminals.

Marks

The Marks widget displays supplemental information about each line in the terminal in the form of two-character codes called marks. Marks are drawn using the appropriate extended colors from the terminal's color palette.

Shell integration is required for prompt and job marks to be displayed.

The following marks are displayed:

  • E*: A prompt (or equivalently, a job) whose command exited normally. The second character is the reported exit status (see below).
  • S*: A prompt (or equivalently, a job) whose command was killed by a signal. The second character is the reported signal number (see below).
  • P>: The current prompt (where the next command will be typed).
  • R<: The currently running command.
  • M>: The current search match.
  • N*: An annotation. The second character is the note character specified when creating the annotation.

The following convention is used to display the exit status or signal number of a completed job:

Number Character
0-9 0-9
10-35 a-z
35-126 +
127 -

Click in the marks widget to select the enclosing job and scroll to its prompt. Hover over a mark to display a tooltip with information about the item. Right click to bring up an item-specific context menu.

Minimap

The Minimap widget combines the functionality of a scrollbar with a display of points of interest within the terminal scrollback buffer. It is similar to the Marks widget, but scaled to the size of the entire scrollback buffer. It displays the following information:

  • The location of its own viewport within the scrollback buffer, displayed in a solid color with the viewport's pane index number at the center.

  • The location of other viewports onto the same terminal, each displayed as an outline with the other viewport's pane index number at the center.

  • The location of recent jobs, displayed using the extended colors appropriate for the job's exit status. The number of jobs shown is controlled by the NumRecentPrompts profile setting. Clicking a job will select it. This requires shell integration.

    The icon displayed with each job is derived by matching its command against the icon autoswitch rules that reference the proc.comm attribute.

  • The location of the selected job. If multiple viewports are open onto the terminal, multiple selected jobs may be displayed.

  • The location of the current search match, if any.

  • The location of annotations, each displayed with its note character, if any.

  • The location of the active text selection, if any, displayed in a checkerboard pattern.

  • The progress of any ongoing background fetch of scrollback buffer contents, displayed as a triangular cursor. This is enabled by the ShowFetchPosition profile setting.

Minimap items are drawn using the same extended colors as the marks in the Marks widget. Hover over an item to display a tooltip with information about the item. Right click an item to bring up an item-specific context menu.

For a more minimal look, use an ordinary scrollbar instead.

Scrollbar

An ordinary vertical scroll bar used to scroll within the terminal scrollback buffer.

To view more information about points of interest within the scrollback buffer, use the Minimap widget instead.

Timing

The Timing widget displays the time when each line in the terminal was last modified, relative to a particular line designated as the origin. Times are measured to the tenth of a second, but will be shown with less precision the further they are from the origin. Lines shown with no time have the same time as the line above (but see note below about blank lines).

The timing origin is normally floating, meaning that it will follow the terminal's current job (this requires shell integration). To set the origin at a fixed position, right click in the timing widget to bring up a context menu. To float the origin, use the context menu or TimingFloatOrigin action.

If the terminal is owned by another client and FollowRemoteScrolling is enabled, the timing origin will track the information reported by the owning client.

Note

The modification times reported by termy-server are only a rough approximation with no guarantee of precision or accuracy.

Blank lines may not have a valid modification time. This is because modification times are only recorded for printable characters, and newline is considered a cursor movement rather than a printable character. Due to this, setting the timing origin on a blank line may fail.