Termite

From ArchWiki
Note: Termite is no longer actively developed/maintained and the developers recommend using Alacritty as a replacement. Alacritty has a keyboard text selection mode inspired by Termite and the upcoming 0.8 version has a similar hints mode. Alacritty is dramatically faster than VTE, more robust, more secure and more modern overall.

Termite is a minimal VTE-based terminal emulator. It is a modal application, similar to Vim, with an insert mode and selection mode where keybindings have different functions.

The configuration file allows changing colors and setting options. Termite supports transparency along with both the 256 color and true color (16 million colors) palettes. It has a similar look and feel to urxvt.

Installation

Install the termiteAUR package.

Usage

Termite starts in insert mode by default. Text may be selected using the mouse, or by using selection-mode keys. In insert mode, Ctrl+Shift+c is used to copy selected text to the X clipboard, Ctrl+Shift+v to paste. Ctrl+Tab starts scrollback completion, and Ctrl+Shift+Up / Ctrl+Shift+Down scroll the screen up or down.

Ctrl+Shift+Space enters selection-mode, similar to vim's normal-mode. Many commands are borrowed from Vim, for example v for visual mode, Shift+v for visual line mode, Ctrl+v for visual block mode, y to copy ("yank") selected text, / and ? for searching, w, b, ^, $ for movement, and Escape to go back to insert mode.

Configuration

Termite looks for configuration files in $XDG_CONFIG_HOME/termite/config, ~/.config/termite/config, $XDG_CONFIG_DIRS/termite/config and /etc/xdg/termite.cfg. The configuration file is used to change options such as font, colors, window hints, etc. The configuration file syntax is inspired by XDG Desktop Entry Specification .desktop files (inspired by Microsoft Windows .ini files), with three sections: options, colors, and hints.

To start customizing termite copy the base example file to your home dir first:

$ cp /etc/xdg/termite/config ~/.config/termite/config

Font

Fonts are specified in the format font=<font_name> <font_size> under the options section. <font_name> is specified according to fontconfig, not Xft. Use fc-list to see which fonts are available on the system (see also Font configuration#Font paths).

~/.config/termite/config
[options]
font = Monospace 9
font = xos4 Terminus 12px
font = Droid Sans Mono 8
Tip: You can also specify a cell_height_scale=<scale> property to scale the height of a line (this will not scale the font - it will just add padding above and below a line). According to [1], this property only works for scale values >= 1.

Colors

Colors consist of either a 24-bit hex value (e.g. #4a32b1), or an rgba vector (e.g. rgba(16, 32, 64, 0.5)). Valid properties for colors are foreground, foreground_bold, foreground_dim, background, cursor, cursor_foreground, and colorN (where N is an integer from zero through 254; used to assign a 24-bit color value to terminal colorN).

An amazing collection of termite color schemes can be found here: https://github.com/khamer/base16-termite/tree/master/themes

~/.config/termite/config
[colors]
foreground = #dcdccc
background  = #3f3f3f

Reload configuration without exiting

You can reload Termite's configuration file without exiting by pressing Ctrl+Shift+r from within Termite.

Alternatively, you can send a USR1 signal to all Termite instances:

$ killall -USR1 termite

Transparency

As of version 9, Termite supports true transparency via color definitions that specify an alpha channel value [2]. This requires a compositor to be running, such as picom or xcompmgr. Most compositors do not require special configuration for Termite to use transparency.

~/.config/termite/config
[colors]
background = rgba(63, 63, 63, 0.8)
Note: In i3, in stacked/tabbed layout, this shows all windows "stacked" on top of each other, in the order they were most recently in the foreground, rather than showing the desktop (the root window) directly behind Termite. This is due to i3 reordering windows rather than hiding invisible windows in tiling mode. You can configure your compositor to make windows with _NET_WM_STATE=_NET_WM_STATE_HIDDEN fully transparent to solve this. For example, for picom use
~/.config/picom.conf
opacity-rule = [
  "0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
];

Troubleshooting

Ctrl+Shift+t

If opening a new tab through Ctrl+Shift+t fails with no directory uri set, source /etc/profile.d/vte.sh. See GNOME/Tips and tricks#New terminals adopt current directory.

If it continues to fail, ensure your hostname is valid. See hostname(7).

Remote SSH error

When Termite is using remote SSH connection sometimes the error occurs: Error opening terminal: xterm-termite. or Open terminal failed: missing or unsuitable terminal: xterm-termite.

This error can occur when trying to edit file with vim or nano. To fix this issue you should execute this command on the remote system:

$ export TERM=xterm-color

Alternatively, follow the instructions on Termite's GitHub. This will allow you to use all of Termite's features when using SSH, whereas the above may not. [3]

Terminal issues with SSH

When Termite is used for SSH connections to a remote system which does not have its Terminfo, various issues (such as non-working backspace and weird cursor behaviour) could happen. The solution is to send your Terminfo to the remote host.

On the local host, using Termite:

$ infocmp > termite.terminfo  # export Termite's Terminfo
$ scp termite.terminfo user@remote-host:~/  # or any other method to copy to the remote host

On the remote host, in the directory where you copied termite.terminfo:

$ tic -x termite.terminfo  # import Terminfo for current user
$ rm termite.terminfo  # optional: remove Terminfo file
Note: After this, you will need to start a new SSH session to have the remote shell load the new Terminfo.

See also