tym(1)
π tym(1) β the tiny terminal emulator that's lowkey iconic
okay so bestie, welcome to tym β a tiny VTE-based terminal emulator, which is configurable by Lua. yes, Lua. she's cute, she's small, she's giving main character energy β¨
β¨ DESCRIPTION β¨
tym is a tiny VTE-based terminal emulator, which configurable by Lua. that's it, that's the vibe π«Ά
πΈ SYNOPSIS πΈ
tym [OPTIONS]
π OPTIONS π
-h,--helpβ Show help message. (the classic "what does anything do" button π)-v,--versionβ Show version.-u,--use=<PATH>β Use<PATH>instead of default config file.-t,--theme=<PATH>β Use<PATH>instead of default theme file.--cwd=<PATH>β Use<PATH>as the terminal's working directory. Must be an absolute path β no relativeness allowed, she's strict about that fr fr.--<OPTION>=<VALUE>β Replace<OPTION>config option, where<OPTION>is a config option and<VALUE>is a value of its option. See CONFIGURATION for more information about config options. π
π¦ AVAILABLE OPTIONS π¦
the string girlies π
shellβ Type:stringDefault:$SHELLβvte_get_user_shell()β/bin/shShell to execute.titleβ Type:stringDefault:'tym'Initial window title.fontβ Type:stringDefault:''(empty string) You can specify it like'FAMILY-LIST [SIZE]', for example'Ubuntu Mono 12'. The value is parsed bypango_font_description_from_string(). If you set empty string, the system default fixed width font will be used.iconβ Type:stringDefault:'terminal'Name of icon. cf.https://developer.gnome.org/icon-naming-spec/.cursor_shapeβ Type:stringDefault:'system''block','ibeam'or'underline'are available.cursor_blink_modeβ Type:stringDefault:'system''system','on'or'off'are available.termβ Type:stringDefault:'xterm-256color'Default value of$TERM.roleβ Type:stringDefault:''Unique identifier for the window. If empty string set, no value set. cf.gtk_window_set_role()cjk_widthβ Type:stringDefault:'narrow''narrow'or'wide'are available.uri_schemesβ Type:stringDefault:'http https file mailto'Space-separated list of URI schemes to be highlighted and clickable. Specify empty string to disable highlighting. Specify'*'to accept any strings valid as schemes (according to RFC 3986).
the numbers girlies π’
widthβ Type:integerDefault:80Initial columns.heightβ Type:integerDefault:22Initial rows.adding_horizontalβ Type:integerDefault:80Horizontal padding.adding_verticalβ Type:integerDefault:80Vertical padding.
the boolean girlies π
ignore_default_keymapβ Type:booleanDefault:falseIf it is provided, the default keymap will not be used.autohideβ Type:booleanDefault:falseIf it is provided, mouse cursor will be hidden when you presses a key.bold_is_brightβ Type:booleanDefault:falseIf it is provided, make bold texts bright..silentβ Type:booleanDefault:falseIf it is provided, beep does not sound when bell sequence is sent.osc_clipboardβ Type:booleanDefault:falseIf it is provided, the application can write the clipboard by setting thevte.ext.tym.clipboardtermprop to base64-encoded UTF-8 text, up to 2048 bytes once decoded. It requires VTE 0.78 or later β check your version bestie, no cap π.
misc π§
scrollback_lengthβ Type:integerDefault:512If it is provided, the length of scrollback buffer is resized.
the colour situation π
color_window_backgroundβ Type:ingDefault:''Color of the terminal window. It is seen whenpadding_horizontalpadding_verticalis not0. If you specify'NONE', the window background will not be drawn.
not me noticing the type literally says ing in the page π that's what it says, I don't make the rules, I just report them π
color_foregroundcolor_backgroundcolor_cursorcolor_cursor_foregroundcolor_highlightcolor_highlight_foregroundcolor_boldcolor_0..color_15β Type:stringDefault:''(empty string) You can specify standard color string such as'#f00','#ff0000','rgba(22, 24, 33, 0.7)', or'red'. It will be parsed bygdk_rgba_parse(). If you set empty string, the VTE default color will be used. If you set'NONE'forcolor_background, the terminal background will not be drawn.
π DEFAULT KEYBINDINGS π
the starter pack, the OG trio π
- Ctrl+Shift+c β Copy selection to clipboard
- Ctrl+Shift+v β Paste from clipboard
- Ctrl+Shift+r β Reload config file
π CONFIGURATION π
When $XDG_CONFIG_HOME/tym/config.lua exists, it is executed. Here is an example β obsessed with how readable this is π«Ά
local tym = require('tym')
tym.set('font', 'DejaVu Sans Mono 11')
tym.set_config({
shell = '/usr/bin/fish',
cursor = 'underline',
autohide = true,
color_foreground = 'red',
})
tym.set_keymap('<Ctrl><Shift>o', function()
local h = tym.get('height')
tym.set('height', h + 1)
tym.apply() -- needed for applying config value
tym.notify('Set window height :' .. h)
end)
tym.set_keymaps({
['<Ctrl><Shift>y'] = function()
tym.reload()
tym.notify('reload config')
end,
['<Ctrl><Shift>v'] = function()
tym.notify("Overwrite pasting event")
end,
})
β LUA API β
the whole toolkit, laid out for you bestie π
tym.get(key)
Returns: any Get config value.
tym.set(key, value)
Returns: void Get config value.
yep, it literally says "Get" here in the page β I'm just the messenger π don't come for me
tym.get_config()
Returns: table Get config table.
tym.set_config(table)
Returns: void Set config by table.
tym.reset_config()
Returns: void Reset config to default.
tym.set_keymap(accelerator, func)
Returns: void Set keymap. accelerator must be in a format parsable by gtk_accelerator_parse().
tym.set_keymaps(table)
Returns: void Set keymaps by table.
tym.reset_keymaps()
Returns: void Reset custom keymaps.
tym.send_key(accelerator)
Returns: void Send key press event.
tym.reload()
Returns: void Reload config file and theme file.
tym.reload_theme()
Returns: void Reload theme file.
tym.apply()
Returns: void Apply config to app.
tym.put(text)
Returns: void Feed text.
tym.bell()
Returns: void Sound bell. π
tym.notify(message, title = 'tym')
Returns: void Show desktop notification.
tym.copy()
Returns: void Copy current selection.
tym.paste()
Returns: void Paste clipboard.
tym.get_version()
Returns: string Get version string.
tym.get_config_path()
Returns: string Get path of config file currently being read.
tym.get_theme_path()
Returns: string Get path of theme file currently being read.
πΈ THEME CUSTOMIZATION πΈ
When $XDG_CONFIG_HOME/tym/theme.lua exists, it is executed. Here is an example β look at that palette, she ate π₯
local fg = '#d2d4de'
local bg = '#161821'
return {
color_background = bg,
color_foreground = fg,
color_0 = '#161821',
color_1 = '#e27878',
-- SNIP
color_14 = '#95c4ce',
color_15 = '#d2d4de',
}
You need to return table within global context. no cap, that part actually matters β¨
okay that's the whole page bestie, you're officially a tym expert now π go forth and make your terminal gorgeous ππ
sign-off time: this is version 3.7.0, dated 2026-10-22, and the manual itself is tym(1) β iykyk π¦
π¦ where this page comes from
- nixpkgs unstable: tym 3.7.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms