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.
Settings Categories
Input¶
-
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 ofShowRemoteColors
, other users' color palettes may be shown intheir
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
andDircolors
, its name will be shown in the settings editor at thePalette
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 intheir
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 intheir
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 intheir
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 namedvarname
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 intheir
terminals.Badge strings that do not fit within the terminal viewport can be animated using the
EnableBadgeScrolling
andBadgeScrollingRate
global settings.
-
ShowMainIndicators
(boolean)
¶ If enabled, indicator graphics for the following conditions will be drawn in the terminal viewport:
- Terminal is
owned
by another client. - Terminal is hosting a connection to a server.
Scroll lock
is active in the terminal.- Command mode is active.
- Selection mode is active.
- An Alert is
active
in the terminal. - Terminal is an input multiplexing leader.
- Terminal is an input multiplexing follower.
- Terminal is
-
ShowThumbnailIndicators
(boolean)
¶ If enabled, indicator images for the following conditions will be drawn in the terminal thumbnail in the Terminals tool:
- Terminal is
owned
by another client. IfRenderAvatars
is set and the owning client has set anAvatar
image, it will be shown as this indicator. - Terminal is hosting a connection to a server.
Scroll lock
is active in the terminal.- An Alert is
active
in the terminal. - Terminal is an input multiplexing leader.
- Terminal is an input multiplexing follower.
Indicator images are loaded as SVG files from
$HOME/.local/share/qtermy/images/indicator
andprefix/share/qtermy/images/indicator
in that order.- Terminal is
-
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 theSetTerminalIcon
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 orToggleTerminalRemoteInput
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 ontheir
terminals will be shown.
-
ShowRemoteColors
(enumeration)
¶ Controls whether
colors
anddircolors
set by programs within the terminal or by other users ontheir
terminals will be shown.
-
ShowRemoteLayout
(enumeration)
¶ Controls whether
widget layouts
set by programs within the terminal or by other users ontheir
terminals will be shown.
-
ShowRemoteFills
(enumeration)
¶ Controls whether
column fills
set by programs within the terminal or by other users ontheir
terminals will be shown.
-
ShowRemoteBadge
(enumeration)
¶ Controls whether
badge strings
set by programs within the terminal or by other users ontheir
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 mayextract
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 orToggleTerminalFollowing
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'sHOME
directory. May be ignored ifStartInSameDirectory
is set.
-
StartInSameDirectory
(boolean)
¶ If enabled, the
Command
will be run from the current directory in the active terminal, if available, rather than the configuredDirectory
.
-
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
andSSH_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 configuredAutoClose
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 theCommand
exits before the configuredAutoCloseTime
.
-
AutoCloseTime
(integer)
¶ The minimum time that the
Command
must run before theAutoClose
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.
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 theLanguage
setting. This will override anyEnvironment
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
andToggleFileListingFormat
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 theDircolors
.
-
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 ifSetLsColorsEnvironmentVariable
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 ofShowRemoteColors
, other users' dircolors may be shown in the Files tool fortheir
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
andDircolors
, its name will be shown in the settings editor at thePalette
setting. Changes made to that theme will not change the value of any profile settings.
-
SetLsColorsEnvironmentVariable
(boolean)
¶ If enabled, the
LS_COLORS
andUSER_LS_COLORS
environment variables will be set appropriately so that the configuredDircolors
are used by the terminal. This will override anyEnvironment
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.