---
name: "termit"
section: "1"
platform: "linux"
package: "termit"
version: "3.1-3+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/termit"
---

# termit(1)

lightweight terminal emulator

## NAME

termit ‐ lightweight terminal emulator

## SYNOPSIS

**termit \[-option ...\]**

## DESCRIPTION

**termit** is a vte‐based lightweight terminal emulator. All configuration is done via Lua‐scripts. The only other dependencies are  Gtk+ and Vte.

## OPTIONS

- **-h,** **--help**

  Print help

- **-v,** **--version**

  Print version number

**-e,** **--execute** = *cmd*

Use *cmd* as shell

**-i,** **--init** = *file*

Use *file* instead of default rc.lua

**-n,** **--name** = *name*

Use *name* in window name hint

**-c,** **--class** = *class*

Use *class* in window class hint

**-r,** **--role** = *role*

Use *role* in window role Gtk‐hint

**-T,** **--title** = *title*

Use *title* in window title (Turns off *allowChangingTitle* option.)

termit --init=session.lua --name=TermitName --class=TermitClass --role=TermitRole --title=TermitTitle --execute=zsh

## FILES

*$HOME/.config/termit/rc.lua*

Per user configuration file. See section **TERMIT LUA API** for further details.

*/usr/share/doc/termit/rc.lua.example*

Example rc.lua file. Demonstrates usage of almost all available settings.

## TERMIT LUA API

**Functions:**

**activateTab** ( *tab\_index* )\
     Activates tab by index.\
     tab\_index ‐ index of tab to activate. Index of the first tab is 1.

**addMenu** ( *menu* )\
     Adds menu in menubar.\
     menu ‐ table of TermitMenuItem type.

**addPopupMenu** ( *menu* )\
     Adds menu in popup menu, similar to addMenu.\
     menu ‐ table of TermitMenuItem type.

**bindKey** ( *keys* , *luaFunction* )\
     Sets new keybinding. If luaFunction is  *nil* removes keybinding.\
     keys ‐ string with keybinding. Available modifiers are Alt Ctrl Shift Meta Super Hyper.\
     luaFunction ‐ callback function

**bindMouse** ( *event* , *luaFunction* )\
     Sets new mouse‐binding. If luaFunction is  *nil* removes mouse‐binding.\
     event ‐ string with one of those values: DoubleClick\
     luaFunction ‐ callback function

**closeTab** ()\
     Closes active tab.

**copy** ()\
     Copies selection into tab's buffer.

**currentTab** ()\
     Returns current tab of TermitTabInfo.

**currentTabIndex** ()\
     Returns current tab index.

**feed** ( *data* )\
     Interprets data as if it were data received from a terminal process.

**feedChild** ( *data* )\
     Sends a data to the terminal as if it were data entered by the user at the keyboard.

**findDlg** ()\
     Opens search entry.

**findNext** ()\
     Searches the next string matching search regex.

**findPrev** ()\
     Searches the previous string matching search regex.

**forEachRow** ( *func* )\
     For each terminal row in entire scrollback buffer executes function passing row as argument.\
     func ‐ function to be called.

**forEachVisibleRow** ( *func* )\
     For each visible terminal row executes function passing row as argument.\
     func ‐ function to be called.

**loadSessionDlg** ()\
     Displays "Load session" dialog.

**nextTab** ()\
     Activates next tab.

**openTab** ( *tabInfo* )\
     Opens new tab.\
     tabinfo ‐ table of TermitTabInfo with tab settings.

**paste** ()\
     Pastes tab's buffer.

**preferencesDlg** ()\
     Displays "Preferences" dialog.

**prevTab** ()\
     Activates previous tab.

**quit** ()\
     Quit.

**reconfigure** ()\
     Sets all configurable variables to defaults and forces rereading rc.lua.

**saveSessionDlg** ()\
     Displays "Save session" dialog.

**selection** ()\
     Returns selected text from current tab.

**setColormap** ( *colormap* )\
     Changes colormap for active tab.\
     colormap ‐ array with 8 or 16 or 24 colors.

**setEncoding** ( *encoding* )\
     Changes encoding for active tab.\
     encoding ‐ string with encoding name.

**setKbPolicy** ( *kb\_policy* )\
     Sets keyuboard policy for shortcuts.\
     kb\_policy ‐ string with one of those values:\
         keycode ‐ use hardware keyboard codes (XkbLayout‐independent)\
         keysym ‐ use keysym values (XkbLayout‐dependent)

**setOptions** ( *opts* )\
     Changes default options.\
     opts ‐ TermitOptions table with new options.

**setTabBackgroundColor** ( *color* )\
     Changes background color for active tab.\
     color ‐ string with new color.

**setTabFont** ( *font* )\
     Changes font for active tab.\
     font ‐ string with new font.

**setTabForegroundColor** ( *color* )\
     Changes foreground (e.g. font) color for active tab.\
     color ‐ string with new color.

**setTabPos** ( *newPos* )\
     Changes position for active tab.\
     newPos ‐ number with new tab position.

**setTabTitle** ( *tabTitle* )\
     Changes title for active tab.\
     tabTitle ‐ string with new tab title.

**setTabTitleDlg** ()\
     Displays "Set tab title" dialog.

**setWindowTitle** ( *title* )\
     Changes termit window title.\
     title ‐ string with new title.

**spawn** ( *command* )\
     Spawns command (works via shell).\
     command ‐ string with command and arguments.

**toggleMenubar** ()\
     Displays or hides menubar.

**toggleTabbar** ()\
     Displays or hides tabbar.

**Types:**

**TermitCursorBlinkMode** ‐ one of those string values:\
     System              Follow GTK+ settings for cursor blinking\
     BlinkOn             Cursor blinks\
     BlinkOff            Cursor does not blink

**TermitCursorShape** ‐ one of those string values:\
     Block               Draw a block cursor\
     Ibeam               Draw a vertical bar on the left side of character\
     Underline           Draw a horizontal bar below the character

**TermitEraseBinding** ‐ one of those string values:\
     Auto                VTE\_ERASE\_AUTO\
     AsciiBksp           VTE\_ERASE\_ASCII\_BACKSPACE\
     AsciiDel            VTE\_ERASE\_ASCII\_DELETE\
     EraseDel            VTE\_ERASE\_DELETE\_SEQUENCE\
     EraseTty            VTE\_ERASE\_TTY

For detailed description look into Vte docs.

**TermitKeybindings** ‐ table with predefined keybindings.\
     closeTab            'Ctrl‐w'\
     copy                'Ctrl‐Insert'\
     nextTab             'Alt‐Right'\
     openTab             'Ctrl‐t'\
     paste               'Shift‐Insert'\
     prevTab             'Alt‐Left'

**TermitMatch** ‐ table for matches.\
     field name          match regular expression\
     field value         lua callback for action on Left‐click.

**TermitMenuItem** ‐ table for menuitems.\
     accel               accelerator for menuitem. String with keybinding\
     action              lua function to execute when item activated\
     name                name for menuitem

**TermitOptions** ‐ table with termit options.\
     allowChangingTitle  auto change title (similar to xterm)\
     audibleBell         enables audible bell\
     backgroundColor     background color\
     backspaceBinding    reaction on backspace key (one of TermitEraseBinding)\
     colormap            array with 8 or 16 or 24 colors\
     cursorBlinkMode     cursor blink mode (one of TermitCursorBlinkMode)\
     cursorShape         cursor shape (one of TermitCursorShape)\
     deleteBinding       reaction on delete key (one of TermitEraseBinding)\
     encoding            default encoding\
     fillTabbar          expand tabs' titles to fill whole tabbar\
     font                font name\
     foregroundColor     foreground color\
     geometry            cols x rows to start with\
     getTabTitle         lua function to generate new tab title\
     getWindowTitle      lua function to generate new window title\
     hideMenubar         hide menubar\
     hideSingleTab       hide tabbar when only 1 tab present\
     hideTabbar          hide tabbar\
     hideTitlebarWhenMaximized hide window titlebar when mazimized\
     matches             table with items of TermitMatch type\
     scrollbackLines     the length of scrollback buffer\
     scrollOnKeystroke   enables scroll to the bottom when the user presses a key\
     scrollOnOutput      enables scroll to the bottom when new data is received\
     setStatusbar        lua function to generate new statusbar message\
     showScrollbar       display scrollbar\
     showBorder          show notebook borders\
     startMaximized      maximize window on start\
     tabName             default tab name\
     tabPos              tabbar position (Top, Bottom, Left, Right)\
     tabs                table with items of TermitTabInfo type\
     urgencyOnBell       set WM‐hint 'urgent' on termit window when bell\
     wordCharExceptions  additional word characters (double click selects word)

**TermitTabInfo** ‐ table with tab settings:\
     command             tab start command\
     encoding            current tab encoding\
     font                font string\
     fontSize            font size\
     pid                 process id\
     title               tab title\
     workingDir          tab working dir

**Globals:**

**tabs** is the array with settings for all tabs. Access specific tab by index.

## EXAMPLES

Look inside provided rc.lua.example.

## BUGS

After start sometimes there is black screen. Resizing termit window helps.

In options table 'tabs' field should be the last one. When loading all settings are applied in the same order as they are set in options table. So if you set tabs and only then colormap, these tabs would have default colormap.

## AUTHOR

Evgeny Ratnikov \<ratnikov.ev at gmail dot com\>

## SEE ALSO

[**lua**(1)](/lua/1.md)
