Profile

Profile settings are named settings objects stored at $HOME/.config/qtermy/profiles. Profiles can be edited from the Settings menu, status bar, Manage Profiles window, and various context menus, or by calling the EditProfile action. The files can also be edited directly in a text editor, but note that qtermy does not monitor for external changes to settings files. Use the reload files button in the Manage Profiles window to load external changes and new files without restarting the application.

A fallback profile named "Default" must exist at all times. One profile (which need not be the one named "Default") is designated as the global default profile. Each server also has a default profile, which may defer to the global default. Default profiles are assigned to newly created terminals in the absence of a specific profile name. Profiles can be favorited in the Manage Profiles window, which will cause them to appear at the top of profile selection menus.

Each terminal has a current profile at all times. Some profile settings can be overridden on a per-terminal basis from within qtermy using various adjustment dialogs or by programs such as termyctl running within the terminal. Profile settings are exported to the server as terminal attributes and can be imported by any user as a new profile using ExtractProfile. Terminals created by other users will be assigned a local profile. The collaboration settings allow certain visual settings to be shown as the remote user has set them rather than as they are set in the assigned local profile.

The profile specifies the keymap that is used. To change a terminal's keymap, its profile must be changed or the Keymap must be changed in its current profile.

Each terminal has a small stack of profiles which can be pushed to and popped from, rather than simply switching profiles. Using profile autoswitch rules, profiles can be automatically pushed, popped, or switched in response to terminal attribute changes.

Input

Keymap (string)

The keymap that will be used in terminals with this profile.

SendMouseEvents (boolean)

If enabled, the client will honor mouse modes enabled by terminal programs and will send mouse events to the server.

SendFocusEvents (boolean)

If enabled, the client will honor the "focus in/focus out" mode enabled by terminal programs and will send focus events to the server.

SendScrollEvents (boolean)

If enabled, the client will honor alternate scroll mode and will send scroll events to the server when the terminal's alternate screen buffer is active and the mouse wheel is used. This will override the normal mouse wheel behavior of scrolling the viewport up and down in the scrollback.

InitialFlags (boolean)

If enabled, the terminal will start in alternate scroll mode.

Appearance

BackgroundColor (color)

A convenience setting which sets the terminal background color in the profile's Palette.

ForegroundColor (color)

A convenience setting which sets the terminal foreground color in the profile's Palette.

Palette (string)

The terminal color palette. This consists of a standard 256-color palette as well as extended colors. This can be overridden on a per-terminal basis using the Adjust Colors dialog and RandomTerminalTheme action. Also, depending on the value of ShowRemoteColors, other users' color palettes may be shown in their terminals. Refer to Theme Editor for more information.

Setting a theme or editing the color palette via this setting will update the Dircolors as well.

Note

Each profile stores its own color palette, separate from the theme system. If any theme happens to match both the profile's Palette and Dircolors, its name will be shown in the settings editor at the Palette setting. Changes made to that theme will not change the value of any profile settings.

Font (string)

A string describing the terminal font, which must be a fixed-width (typewriter, monospace) font. This font string is passed to QFont::fromString, which handles all font resolution. This can be overridden on a per-terminal basis using the Adjust Font dialog. Also, depending on the value of ShowRemoteFont, other users' fonts may be shown in their terminals.

Some characters such as box and line drawing characters and emoji are rendered directly by qtermy.

WidgetLayout (string)

Describes the position and visibility of the terminal Widgets and separators between them. This can be overridden on a per-terminal basis using the Adjust Layout dialog. Also, depending on the value of ShowRemoteLayout, termyctl may be used to override this setting from within the terminal and other users' layouts may be shown in their terminals.

ColumnFills (string)

Draws fill lines in the terminal viewport at specified column positions using specified colors. This can be overridden on a per-terminal basis using the Adjust Layout dialog. Also, depending on the value of ShowRemoteFills, termyctl may be used to override this setting from within the terminal and other users' fills may be shown in their terminals.

Badge (string)

The format of the badge string drawn along the edge of the terminal viewport. The value of a terminal attribute named varname may be substituted using the notation \(varname). The value of a server attribute named varname may be substituted using the notation \(server.varname). Multiple lines are not supported.

Depending on the value of ShowRemoteBadge, termyctl may be used to override this setting from within the terminal and other users' badge strings may be shown in their terminals.

Badge strings that do not fit within the terminal viewport can be animated using the EnableBadgeScrolling and BadgeScrollingRate global settings.

ShowMainIndicators (boolean)

If enabled, indicator graphics for the following conditions will be drawn in the terminal viewport:

ShowThumbnailIndicators (boolean)

If enabled, indicator images for the following conditions will be drawn in the terminal thumbnail in the Terminals tool:

Indicator images are loaded as SVG files from $HOME/.local/share/qtermy/images/indicator and prefix/share/qtermy/images/indicator in that order.

ShowThumbnailIcon (boolean)

If enabled, the terminal thumbnail in the Terminals tool will be decorated with an icon. The icon is normally set using the icon autoswitch rules, but can be set to a fixed icon using the FixedThumbnailIcon profile setting or the SetTerminalIcon action.

FixedThumbnailIcon (string)

Specifies a custom icon which will be displayed on the terminal thumbnail in the Terminals tool, overriding the icon autoswitch rules. This can also be done using the SetTerminalIcon action. Refer to that action for more information.

Note that ShowThumbnailIcon must be enabled for this setting to have any effect.

NumRecentPrompts (integer)

The number of recent prompts to show in the Minimap widget.

ShowFetchPosition (boolean)

If enabled, a triangular cursor will be drawn in the Minimap widget showing the progress of any ongoing download of scrollback buffer contents. See also ScrollbackFetchSpeed in the global settings.

Effects

ExitStatusEffect (enumeration)

Controls the display of a flash animation in the terminal thumbnail when a job finishes within the terminal. This requires shell integration.

ExitStatusRuntime (integer)

The minimum time a job must run before the ExitStatusEffect animation will be shown in the terminal thumbnail.

Collaboration

AllowRemoteInput (boolean)

If enabled, other clients can send input to terminals owned by this client. This can be overridden on a per-terminal basis using the Terminal menu or ToggleTerminalRemoteInput action.

Warning

This is not a security mechanism. Any client connected to a server can take ownership of a terminal at any time. This option is intended to prevent inadvertent input from other users.

ShowRemoteFont (enumeration)

Controls whether fonts set by programs within the terminal or by other users on their terminals will be shown.

ShowRemoteColors (enumeration)

Controls whether colors and dircolors set by programs within the terminal or by other users on their terminals will be shown.

ShowRemoteLayout (enumeration)

Controls whether widget layouts set by programs within the terminal or by other users on their terminals will be shown.

ShowRemoteFills (enumeration)

Controls whether column fills set by programs within the terminal or by other users on their terminals will be shown.

ShowRemoteBadge (enumeration)

Controls whether badge strings set by programs within the terminal or by other users on their terminals will be shown.

ResetRemoteOnTakingOwnership (boolean)

If enabled, all profile settings associated with the current profile will be pushed to the server as terminal attributes when taking terminal ownership. Other clients may extract their own profile from these settings.

FollowRemoteScrolling (boolean)

If enabled, and the terminal is owned by another client, the active viewport's scrollback position and timing origin will track the information reported by the owning client. This can be overridden on a per-terminal basis using the Terminal menu or ToggleTerminalFollowing action.

AllowRemoteClipboard (boolean)

If enabled, clipboard copy requests made by programs within the terminal will be honored.

Emulator

TermSize (size)

The starting size of the terminal. If there is an active viewport open when a new terminal is created, its size will be used instead of this setting.

ScrollbackSizePower (integer)

The scrollback size. Must be a power of 2. Can be overridden on a per-terminal basis using the Adjust Scrollback dialog.

Command (stringlist)

The command to run in the terminal. This is a list of strings consisting of an executable name and argument vector (including argument zero).

Commands entered into the text field will be split on whitespace and the first word will be used as both the executable to run and argument zero of the argument vector, unless the first word ends with a separate argument in square brackets. In this case, the portion before the square brackets is used as the executable name and the portion within the square brackets is used as argument zero.

For more control over the argument vector, click the Advanced button to bring up a command editor dialog. The dialog displays the executable name and argument vector separately and supports arguments containing whitespace.

Important

Shell constructs such as quoting and variable expansion should not be used since the command may not be run by a shell. Use a wrapper script if this is required.

Directory (string)

The directory which the Command is run from. If unspecified, the command will be started in the user's HOME directory. May be ignored if StartInSameDirectory is set.

StartInSameDirectory (boolean)

If enabled, the Command will be run from the current directory in the active terminal, if available, rather than the configured Directory.

Environment (stringlist)

Environment variable rules used to set and clear environment variables before running the Command.

The terminal answerback string can also be set via this setting.

New in version 1.1: Per-session environment variables can also be set via this setting. These variables will be copied from the environment of the connecting client, and a warning will be displayed when the variables do not match those of the owning client. termyctl may be used to check and fix these variables from within the terminal. By default, DISPLAY and SSH_AUTH_SOCK are configured as per-session environment variables.

ActionOnProcessExit (enumeration)

Specifies what to do when the Command exits. One option is to restart the command. Another option is to stop the emulator, which may close the terminal depending on the configured AutoClose setting.

AutoClose (enumeration)

Specifies the conditions that permit the terminal to autoclose after the emulator has stopped. Note that the terminal will never autoclose if the Command exits before the configured AutoCloseTime.

AutoCloseTime (integer)

The minimum time that the Command must run before the AutoClose setting will be honored. Use this setting to prevent a terminal from autoclosing when its command exits immediately.

PromptClose (enumeration)

Specifies the conditions under which a confirmation prompt will be shown before a terminal is explicitly closed.

InsertNewlineBeforePrompt (boolean)

If enabled, a newline will be printed prior to a prompt if the prompt would otherwise not begin at the first column. This feature requires shell integration.

ClearScreenByScrolling (boolean)

If enabled, a clear screen request will be handled by inserting blank lines at the bottom of the terminal if a prompt is active. This will preserve the scrollback contents above the prompt while still placing the prompt at the top of a blank screen. This feature requires shell integration.

StartingMessage (string)

A string to print to the terminal before running the Command.

Encoding

Language (string)

The desired language for the terminal. On its own, this setting only controls a small number of strings printed in the terminal by the server itself. Use SetLangEnvironmentVariable to propagate this setting to programs within the terminal.

The server must have a matching translation file installed for this setting to have any effect on the strings that it prints.

SetLangEnvironmentVariable (boolean)

If enabled, the LANG environment variable will be set to the value of the Language setting. This will override any Environment rules for the same variable.

Encoding (string)

The Unicode variant to use in the terminal. Encodings are defined as part of the TermySequence protocol and specify the widths and combining behavior of Unicode code points, including emoji. The encoding is used to synchronize the location of the screen cursor between the client and server.

The server may not honor this request and may choose a different encoding. See WarnOnUnsupportedEncoding.

Note

Strings are drawn in the terminal viewport using Qt's QPainter class, whose interpretation of a given Unicode string may differ from that of the configured encoding. Visual glitches may result in some cases.

UseEmoji (boolean)

This setting is part of the requested Encoding. If enabled, emoji characters will be shown in emoji presentation and drawn as emoji images.

DoubleWidthAmbiguous (boolean)

This setting is part of the requested Encoding. If enabled, ambiguous characters will be treated as double-width characters.

WarnOnUnsupportedEncoding (boolean)

If enabled, a warning message will be logged if a terminal has an Encoding which is unsupported by the client. When the server and client disagree on a terminal's encoding, characters and combining characters may be drawn with incorrect widths.

See also LogThreshold global setting.

Files

DirectorySizeLimit (integer)

The maximum number of files that will be reported by the server and shown in the Files tool for any given directory. The Files tool will allow the user to override this limit on a case-by-case basis.

FileDisplayFormat (enumeration)

The display format to use in the Files tool. This can be overridden from the Tools menu or context menu, or via the SetFileListingFormat and ToggleFileListingFormat actions.

FileChangeEffect (enumeration)

Controls the display of a flash animation in the Files tool when a file is modified.

ShowHiddenFiles (boolean)

If enabled, hidden files will be shown in the Files tool, similar to ls -a.

FileClassify (boolean)

If enabled, a classification character will be printed following the file names in the in the Files tool, similar to ls -F.

FileColorize (boolean)

If enabled, the configured Dircolors will be honored in the Files tool, similar to ls --color.

FileGittify (boolean)

If enabled, a git status character will be printed prior to the file names in the Files tool if applicable. The server must have libgit2 support enabled at both compile time and runtime and libgit2 must be installed on the server's machine.

If FileColorize is enabled, git status characters will be drawn using extended color categories defined in the Dircolors.

ShowGitBanner (boolean)

If enabled, the current git branch will be shown in the Files tool if applicable. The server must have libgit2 support enabled at both compile time and runtime and libgit2 must be installed on the server's machine.

Dircolors (string)

Specifies the dircolors to use in the Files tool if FileColorize is enabled, and in the terminal itself if SetLsColorsEnvironmentVariable is enabled. The setting is a string in dircolors(1) format with some qtermy extensions such as git colors. Refer to Dircolors Editor for more information.

This can be overridden on a per-terminal basis using the Adjust Colors dialog and RandomTerminalTheme action. Also, depending on the value of ShowRemoteColors, other users' dircolors may be shown in the Files tool for their terminals.

Setting a theme or editing the color palette via the Palette setting will also update this setting.

Note

Each profile stores its own dircolors, separate from the theme system. If any theme happens to match both the profile's Palette and Dircolors, its name will be shown in the settings editor at the Palette setting. Changes made to that theme will not change the value of any profile settings.

SetLsColorsEnvironmentVariable (boolean)

If enabled, the LS_COLORS and USER_LS_COLORS environment variables will be set appropriately so that the configured Dircolors are used by the terminal. This will override any Environment rules for the same variables.

Note

Dircolors adjustments made while the terminal is running will not be reflected in these environment variables and thus will not be honored by programs within the terminal. Adjustments will be honored in the Files tool.