TERMIT(1)

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)