termit man page

termit ‐ lightweight terminal emulator


termit [-option ...]


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


-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

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



Per user configuration file. See section Termit Lua API for further details.


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

Termit Lua API


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. (Enabled when build with vte version >= 0.26)

findNext ()
   Searches the next string matching search regex. (Enabled when build with vte version >= 0.26)

findPrev ()
   Searches the previous string matching search regex. (Enabled when build with vte version >= 0.26)

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 ()

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.

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.


TermitEraseBinding ‐ one of those string value:
   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
   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
   hideTabbar          hide tabbar
   hideSingleTab       hide menubar when only 1 tab present
   imageFile           path to image to be set on the background
   matches             table with items of TermitMatch type
   scrollbackLines     the length of scrollback buffer
   setStatusbar        lua function to generate new statusbar message
   showScrollbar       display scrollbar
   tabName             default tab name
   tabPos              tabbar position (Top, Bottom, Left, Right)
   tabs                table with items of TermitTabInfo type
   transparency        use transparency level [0,1]
   visibleBell         enables visible bell
   urgencyOnBell       set WM‐hint 'urgent' on termit window when bell
   wordChars           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


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


Look inside provided rc.lua.example.


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.


Evgeny Ratnikov <ratnikov.ev at gmail dot com>

See Also



NOV 2008 Linux User Manuals