TERMINATOR_CONFIG(5)

πŸŽ€ TERMINATOR_CONFIG(5) β€” Manual for Terminator πŸŽ€

✨ NAME ✨

terminator_config β€” the config file for the Terminator terminal emulator, it's giving β€œyour terminal, but make it personal” πŸ’…

πŸ’– DESCRIPTION πŸ’–

Okay so this file is literally where terminator(1) keeps its configuration. Terminator manages its config file through the ConfigObj library, which is the whole β€œflexible but also clear and human-editable” vibe. No cap.

Terminator also has a full GUI preferences editor that automatically saves its config file for you, so bestie, you do not need to write a config file by hand unless you want to. 🫢

🌸 FILE LOCATION 🌸

Normally the config file lives at ~/.config/terminator/config, but it can be overridden with $XDG_CONFIG_HOME β€” in which case it will be $XDG_CONFIG_HOME/terminator/config. Slay. ✨

πŸ¦‹ FILE FORMAT πŸ¦‹

This is what a Terminator config file should look like:

# This is a comment
[global_config]
  focus = system

[keybindings]
  full_screen = <Ctrl><Shift>F11

[profiles]
  [[default]]
    font = Fixed 10
    background_color = "#000000" # A comment
    foreground_color = "#FFFFFF" # Note that hex colour values must be quoted
    scrollback_lines = '500' #More comment. Single quotes are valid too
    cursor_blink = True
    custom_command = "echo \"foo#bar\"" #Final comment - this will work as expected.

[layouts]
  [[default]]
    [[[window0]]]
      type = Window
      parent = ""
    [[[child1]]]
      type = Terminal
      parent = window0

[plugins]

🌈 GLOBAL_CONFIG 🌈

These are the options Terminator currently supports in the global_config section. Group-chat roll call, let's gooo. πŸ’œ

πŸͺŸ Window Behavior & Appearance πŸͺŸ

  • window_state (string) β€” Controls how the Terminator window opens. 'normal' opens normally. 'maximise' opens in a maximised state. 'fullscreen' opens in a fullscreen state. 'hidden' stays hidden. Default value: normal
  • always_on_top (boolean) β€” If set to True, the window will always stay on top of other windows. Default value: False
  • sticky (boolean) β€” If set to True, the window will be visible on all workspaces. Default value: False
  • hide_on_lose_focus (boolean) β€” If set to True, the window will be hidden when focus is lost. Default value: False
  • hide_from_taskbar (boolean) β€” If set to True, the window will be hidden from the taskbar. Default value: False
  • geometry_hinting (boolean) β€” If set to True, the window will resize in step with font sizes. Default value: False
  • ask_before_closing (string) β€” Specifies when to ask for confirmation before closing a window or a tab. Can be any of: 'always', 'multiple_terminals', 'never'. Default value: multiple_terminals
  • borderless (boolean) β€” If set to True, the window will be started without window borders. Default value: False

πŸ—‚οΈ Tab Behavior & Appearance πŸ—‚οΈ

  • tab_position (string) β€” Specifies where tabs are placed. Can be any of: 'top', 'left', 'right', 'bottom', 'hidden'. If set to 'hidden', the tab bar will not be shown. Default value: top
⚠️ Hiding the tab is not recommended, because it can be very confusing. You have been warned, bestie 😭
  • close_button_on_tab (boolean) β€” If set to True, tabs will have a close button on them. Default value: True
  • scroll_tabbar (boolean) β€” If set to True, the tab bar will not fill the width of the window. The titlebars of the tabs will only take as much space as is necessary for the text they contain. Except, that is, if the tabs no longer fit the width of the window β€” in that case scroll buttons will appear to move through the tabs. Default value: False

πŸ–₯️ Terminal Behavior & Appearance πŸ–₯️

  • focus (string) β€” Specifies how focus is given to terminals. 'click' means focus only moves to a terminal after you click in it. 'sloppy' means focus will follow the mouse pointer. 'system' means focus will match that used by a GNOME window manager. Default value: click
  • always_split_with_profile (boolean) β€” Specifies whether splits/tabs will continue to use the profile of their peer terminal. If set to False, they will always use the default profile. Default value: False
  • link_single_click (boolean) β€” If set to True, clicking a link will open it even if Ctrl is not pressed. Default value: False
  • putty_paste_style (boolean) β€” If set to True, right-click will paste text, while middle-click will popup the context menu. The source for the pasted text depends on the value of putty_paste_style_source_clipboard. Default value: False
  • putty_paste_style_source_clipboard (boolean) β€” If set to True, the Clipboard will be used as source for pasting in PuTTY style. Otherwise, the Primary Selection will be used. This option is ignored unless putty_paste_style is set to True. Default value: False
  • disable_mouse_paste (boolean) β€” If set to True, mouse pasting will be disabled. Default value: False
  • smart_copy (boolean) β€” If set to True, and there is no selection, the shortcut is allowed to pass through. This is useful for overloading Ctrl+C to copy a selection, or send the SIGINT to the current process if there is no selection. If False, the shortcut does not pass through at all, and the SIGINT does not get sent. Default value: True
  • clear_select_on_copy (boolean) β€” If set to True, text selection will be cleared after copying using the copy keybinding. Default value: False
  • handle_size (integer) β€” Specifies the width of the separator between terminals. Anything outside the range 0-20 (inclusive) will be ignored and the default theme value will be used instead. Default value: 1
  • inactive_color_offset (float) β€” Specifies how much to reduce the color values of fonts in terminals that do not have focus. Default value: 0.8
  • inactive_bg_color_offset (float) β€” Specifies how much to reduce the color values of the background in terminals that do not have focus. Default value: 1.0
  • cell_width (float) β€” Specifies the horizontal scale of character cells in the terminal. Default value: 1.0
  • cell_height (float) β€” Specifies the vertical scale of character cells in the terminal. Default value: 1.0
  • title_at_bottom (boolean) β€” If set to True, the terminal's titlebar will be drawn at the bottom instead of the top. Default value: False

πŸŽ€ Miscellaneous πŸŽ€

  • dbus (boolean) β€” Specifies whether Terminator will load its DBus server. When this server is loaded, running Terminator multiple times will cause the first Terminator process to open additional windows. If this configuration item is set to False, or the python dbus module is unavailable, running Terminator multiple times will run a separate Terminator process for each invocation. Default value: True
  • extra_styling (boolean) β€” If set to True, Terminator may load an additional CSS styling file, depending on the theme. Default value: True
  • broadcast_default (string) β€” Specifies the default broadcast behavior. Can be any of: 'all', 'group', 'off'. Default value: group
  • use_custom_url_handler (boolean) β€” If set to True, URL handling will be given over entirely to the program specified by 'custom_url_handler'. Default value: False
  • custom_url_handler (string) β€” Specifies the path to a program which accepts a URI as an argument and does something relevant with it. This option is ignored unless use_custom_url_handler is set to True.
  • case_sensitive (boolean) β€” If set to True, uppercase and lowercase characters will be considered different when searching text in the terminal. Default value: True
  • invert_search (boolean) β€” If set to True, the search direction will be inverted (bottom to top) when searching text in the terminal. Default value: False
  • enabled_plugins (list of strings) β€” Specifies which plugins will be loaded by default. All other plugin classes will be ignored. Default value: ['LaunchpadBugURLHandler', 'LaunchpadCodeURLHandler', 'APTURLHandler']

⌨️ KEYBINDINGS ⌨️

okay so these are literally all the options Terminator supports in the keybindings section rn. buckle up bestie, there's like a million πŸ’…

πŸŽ€ Creation & Destruction πŸŽ€

  • split_horiz β€” splits the current terminal horizontally. default: <Ctrl><Shift>O
  • split_vert β€” splits the current terminal vertically. default: <Ctrl><Shift>E
  • split_auto β€” splits the current terminal automatically, along the longer side. default: <Ctrl><Shift>A
  • new_tab β€” opens up a fresh new tab. default: <Ctrl><Shift>T
  • new_window β€” opens a new window as part of the existing process (same process, new vibe ✨). default: <Ctrl><Shift>I
  • new_terminator β€” spawns a whole new Terminator process. default: <Super>I
  • layout_launcher β€” opens the layout launcher. default: <Alt>L
  • close_term β€” closes the current terminal. default: <Ctrl><Shift>W
  • close_window β€” closes the current window. default: <Ctrl><Shift>Q
  • cycle_next β€” focuses the next terminal. this is literally an alias for go_next. default: <Ctrl>Tab
  • cycle_prev β€” focuses the previous terminal. alias for go_prev, periodt. default: <Ctrl><Shift>Tab
  • go_next β€” focuses the next terminal. default: <Ctrl><Shift>N
  • go_prev β€” focuses the previous terminal. default: <Ctrl><Shift>P
  • go_up β€” focuses the terminal above the current one. default: <Alt>Up
  • go_down β€” focuses the terminal below the current one. default: <Alt>Down
  • go_left β€” focuses the terminal to the left of the current one. default: <Alt>Left
  • go_right β€” focuses the terminal to the right of the current one. default: <Alt>Right
  • page_up β€” scrolls the terminal up one page. (no default, she's unbound πŸ’€)
  • page_down β€” scrolls the terminal down one page. (no default either)
  • page_up_half β€” scrolls the terminal up half a page. (no default)
  • page_down_half β€” scrolls the terminal down half a page. (no default)
  • line_up β€” scrolls the terminal up one line. (no default)
  • line_down β€” scrolls the terminal down one line. (no default)
  • next_tab β€” moves to the next tab. default: <Ctrl>Page_Down
  • prev_tab β€” moves to the previous tab. default: <Ctrl>Page_Up
  • switch_to_tab_1, switch_to_tab_2, ... switch_to_tab_10 β€” moves to the Nth tab. heads up bestie: <Alt><Shift>1 may show up as <Alt>! or something like that, depending on your keyboard layout 🫢

🌸 Organisation 🌸

  • resize_up β€” moves the parent dragbar up. default: <Ctrl><Shift>Up
  • resize_down β€” moves the parent dragbar down. default: <Ctrl><Shift>Down
  • resize_left β€” moves the parent dragbar left. default: <Ctrl><Shift>Left
  • resize_right β€” moves the parent dragbar right. default: <Ctrl><Shift>Right
  • rotate_cw β€” rotates terminals clockwise. default: <Super>R
  • rotate_ccw β€” rotates terminals counter+clockwise (yes, that's exactly what the original says, i'm not touching it 😭). default: <Super><Shift>R
  • move_tab_right β€” moves the current tab to the right by swapping position with the next tab. default: <Ctrl><Shift>Page_Down
  • move_tab_left β€” moves the current tab to the left by swapping position with the previous tab. default: <Ctrl><Shift>Page_Up

πŸ’… Focus πŸ’…

  • full_screen β€” toggles the window to fullscreen. default: F11
  • toggle_zoom β€” toggles maximisation of the current terminal. default: <Ctrl><Shift>X
  • scaled_zoom β€” toggles maximisation of the current terminal and scales the font when maximised. default: <Ctrl><Shift>Z
  • hide_window β€” hides/shows all Terminator windows. default: <Ctrl><Shift><Alt>A

πŸ‘‘ Grouping & Broadcasting πŸ‘‘

  • create_group β€” creates a new group. (no default)
  • group_all β€” groups all terminals together. default: <Super>G
  • ungroup_all β€” ungroups all terminals. (no default)
  • group_all_toggle β€” toggles grouping of all terminals. (no default)
  • group_win β€” groups all terminals in the current window together. (no default)
  • ungroup_win β€” ungroups all terminals in the current window. default: <Super><Shift>W
  • group_win_toggle β€” toggles grouping of all terminals in the current window. (no default)
  • group_tab β€” groups all terminals in the current tab together. default: <Super>T
  • ungroup_tab β€” ungroups all terminals in the current tab. default: <Super><Shift>T
  • group_tab_toggle β€” toggles grouping of all terminals in the current tab. (no default)
  • broadcast_off β€” turns broadcasting off. (no default)
  • broadcast_group β€” broadcasts to all terminals in the same group as the current terminal. (no default)
  • broadcast_all β€” broadcasts to all terminals, every single one πŸ”₯ (no default)

πŸ“ Miscellaneous πŸ“

  • help β€” opens the full HTML manual in your browser. default: F1
  • preferences β€” opens the Preferences window. (no default)
  • preferences_keybindings β€” opens the Preferences window and jumps straight to the Keybindings tab. default: <Ctrl><Shift>K
  • copy β€” copies the selected text to the Clipboard. default: <Ctrl><Shift>C
  • paste β€” pastes the current contents of the Clipboard. default: <Ctrl><Shift>V
  • paste_selection β€” pastes the current contents of the Primary Selection. (no default)
  • send_newline β€” sends a newline (LF, 0x0A) character to the terminal. super useful for shells configured to treat LF differently from CR (like for multi-line input, iykyk). default: <Shift>Return
  • toggle_scrollbar β€” toggles the scrollbar. default: <Ctrl><Shift>S
  • search β€” searches for text in the terminal scrollback history. default: <Ctrl><Shift>F
  • reset β€” resets the terminal state. default: <Ctrl><Shift>R
  • reset_clear β€” resets the terminal state and clears the terminal window. default: <Ctrl><Shift>G
  • zoom_in β€” increases the font size by one unit. default: <Ctrl>plus
  • zoom_out β€” decreases the font size by one unit. default: <Ctrl>minus
  • zoom_normal β€” restores the original font size. default: <Ctrl>0
  • zoom_in_all β€” increases the font size by one unit for all terminals. (no default)
  • zoom_out_all β€” decreases the font size by one unit for all terminals. (no default)
  • zoom_normal_all β€” restores the original font size for all terminals. (no default)
  • edit_window_title β€” renames the current window. default: <Ctrl><Alt>W
  • edit_tab_title β€” renames the current tab. default: <Ctrl><Alt>A
  • edit_terminal_title β€” renames the current terminal. default: <Ctrl><Alt>X
  • insert_number β€” inserts the current terminal's number, i.e. 1 to 12. default: <Super>1
  • insert_padded β€” inserts the current terminal's number but zero padded, i.e. 01 to 12. default: <Super>0
  • next_profile β€” switches to the next profile. (no default)
  • previous_profile β€” switches to the previous profile. (no default)

πŸ’– PROFILES πŸ’–

these are the options Terminator currently supports in the profiles section, bestie. every single profile gets its own subsection with a header in the format [[name]] β€” like, one header per profile, no sharing ✨

🌈 General 🌈

  • allow_bold = boolean β€” if set to True, text in the terminal can be displayed in bold. default: True
  • copy_on_selection = boolean β€” if set to True, text selections get automatically copied to the Clipboard, on top of being copied to the Primary Selection. default: False
  • disable_mousewheel_zoom = boolean β€” if set to True, Ctrl+mouse_wheel will not zoom or unzoom the terminal. default: False
  • word_chars = string β€” specifies the characters that count as part of a single word when you're selecting text by word. hyphen and alphanumerics don't need to be specified (they're already in, obviously πŸ’…). ranges are allowed, e.g. "A-Z". so like, if word_chars = "," then "foo,bar" counts as a single word. default: -,./?%&#:_
  • mouse_autohide = boolean β€” if set to True, the mouse pointer gets hidden while you're typing. default: True
  • term = string β€” specifies the value Terminator assigns to the 'TERM' environment variable. default: xterm-256color
  • colorterm = string β€” specifies the value Terminator assigns to the 'COLORTERM' environment variable. default: truecolor
  • split_to_group = boolean β€” if set to True, the terminal created by splitting gets inserted into the current terminal's group. default: False
  • autoclean_groups = boolean β€” if set to True, empty groups get removed. default: True
  • use_system_font = boolean β€” if set to True, the system default font is used for text in the terminal. otherwise, the value of font gets used. default: True
  • font = string β€” specifies which font to use for text in the terminal. ⚠️ this option is ignored unless use_system_font is set to False. default: Mono 10
  • cursor_blink = boolean β€” if set to True, the cursor blinks when you're not typing. default: True
  • cursor_shape = string β€” specifies the shape of the cursor. can be any of: 'block', 'underline', 'ibeam'. default: block
  • cursor_color_default = boolean β€” if set to True, the background and foreground colors of the terminal are used as the foreground and background colors for the cursor, respectively. default: True
  • cursor_fg_color = color string β€” specifies the foreground color to use for the cursor. ⚠️ ignored unless cursor_color_default is set to False. (no default)
  • cursor_bg_color = color string β€” specifies the background color to use for the cursor. ⚠️ also ignored unless cursor_color_default is set to False. (no default)
  • audible_bell = boolean β€” if set to True, a sound plays when an application writes the escape sequence for the terminal bell. default: False
  • visible_bell = boolean β€” if set to True, the terminal flashes when an application writes the escape sequence for the terminal bell. default: False
  • urgent_bell = boolean β€” if set to True, the window's urgency hint gets set when an application writes the escape sequence for the terminal bell. default: False
  • icon_bell = boolean β€” if set to True, a small icon shows up on the terminal titlebar when an application writes the escape sequence for the terminal bell. default: True

finishing this profile group’s last bool before we move on, bestie:

  • force_no_bell = boolean β€” if you set this to True, the terminal bell is completely disabled. Default: False.

πŸ› οΈ Command

  • login_shell = boolean β€” if True, the terminal runs the default shell (or whatever custom_command says) as a login shell. That means the first argument passed to the shell/command will be '-l'. Default: False.
  • use_custom_command = boolean β€” if True, the value of custom_command is used instead of the default shell. Default: False.
  • custom_command = string β€” the command to execute instead of the default shell. Heads up: this option is ignored unless use_custom_command is set to True.
  • exit_action = string β€” what happens when the terminal is closed. 'close' removes the terminal. 'restart' restarts the shell (or the command specified by custom_command). 'hold' keeps the terminal open, even if the process in it has terminated. Default: close.

🎨 Colors

  • use_theme_colors = boolean β€” if True, the theme’s foreground and background colors are used for the terminal. Otherwise, the values of foreground_color and background_color are used. Default: False.
  • foreground_color = color string β€” the foreground color for the terminal. This option is ignored unless use_theme_colors is set to False. Default: #AAAAAA.
  • background_color = color string β€” the background color for the terminal. This option is ignored unless use_theme_colors is set to False. Default: #000000.
  • palette = string list of colors β€” the 16-color palette for the terminal. The value must be a string containing a colon-separated list of colors in hex format. For example, "#000000:#cd0000:#00cd00: ... ".
  • bold_is_bright = boolean β€” if True, bold text gets brighter colors. Default: False.

🌈 Background

  • background_darkness = float β€” the transparency of the background color. The value must be between 0.0 and 1.0. This option is ignored unless background_type is set to 'transparent' or 'image'. Default: 0.5.
  • background_type = string β€” what kind of background the terminal has. 'solid' for a solid (opaque) background. 'transparent' for a transparent background. 'image' for a background image. If this is set to 'transparent', the transparency of the background will be the value of background_darkness. If this is set to 'image', the image specified by background_image will be the background; the background color will then be drawn on top of it, with a transparency specified by background_darkness. Default: solid.
  • background_image = path string β€” the path to an image that will be used as background. This option is ignored unless background_type is set to 'image'.
  • background_image_mode = string β€” how the background image is drawn. 'stretch_and_fill' fills the terminal entirely, without necessarily maintaining aspect ratio. 'scale_and_fit' fits the image inside the terminal, eventually leaving blank bars, while maintaining aspect ratio. 'scale_and_crop' fills the terminal entirely, eventually cropping the image, while maintaining aspect ratio. 'tiling' repeats the image as to fill the terminal. This option is ignored unless background_type is set to 'image'. Default: stretch_and_fill.
  • background_image_align_horiz = string β€” horizontal alignment of the background image. Can be any of: 'left', 'center', 'right'. This option is ignored unless background_type is set to 'image'. Default: center.
  • background_image_align_vert = string β€” vertical alignment of the background image. Can be any of: 'top', 'middle', 'bottom'. This option is ignored unless background_type is set to 'image'. Default: middle.

πŸ“œ Scrolling

  • scrollbar_position = string β€” where the terminal scrollbar is put. Can be any of: 'left', 'right', 'hidden'. Default: right.
  • scroll_on_output = boolean β€” if True, the terminall (their spelling, not mine 😭) will scroll to the bottom when an application writes text to it. Default: False.
  • scroll_on_keystroke = boolean β€” if True, the terminal scrolls to the bottom when typing. Default: True.
  • scrollback_infinite = boolean β€” if True, the terminal keeps the entire scrollback history. Default: False.
  • scrollback_lines = integer β€” how many lines of scrollback history the terminal keeps. Lines that don’t fit in the scrollback history get discarted (yep, original spelling πŸ’€). Note: setting large values can slow down rewrapping and resizing. This option is ignored unless scrollback_infinite is set to False. Default: 500.

πŸ”Œ Compatibility

  • backspace_binding = string β€” what code the backspace key generates. The value can be: 'ascii-del' for the ASCII DEL character; 'control-h' for the ASCII BS character (Ctrl+H); 'escape-sequence' for the escape sequence typically bound to backspace or delete; 'automatic' for letting the terminal automatically decide the character sequence to use. Default: ascii-del.
  • delete_binding = string β€” what code the delete key generates. The value can be: 'ascii-del' for the ASCII DEL character; 'control-h' for the ASCII BS character (Ctrl+H); 'escape-sequence' for the escape sequence typically bound to backspace or delete; 'automatic' for letting the terminal automatically decide the character sequence to use. Default: escape-sequence.

πŸ‘‘ Titlebar

  • show_titlebar = boolean β€” if True, the terminal has a titlebar showing the current title of that terminal. Default: True.
  • title_hide_sizetext = boolean β€” if True, the size of the terminal will not be written on its titlebar. Default: False.
  • title_use_system_font = boolean β€” if True, the system default font is used for text in the terminal’s titlebar. Otherwise, the value of title_font is used. Default: True.
  • title_font = string β€” which font to use for text in the terminal’s titlebar. This option is ignored unless title_use_system_font is set to False. Default: Sans 9.
  • title_transmit_fg_color = color string β€” foreground color for the terminal’s titlebar when the terminal is focused. Default: #ffffff.
  • title_transmit_bg_color = color string β€” background color for the terminal’s titlebar when the terminal is focused. Default: #c80003.
  • title_inactive_fg_color = color string β€” foreground color for the terminal’s titlebar when the terminal is unfocused. Default: #000000.
  • title_inactive_bg_color = color string β€” background color for the terminal’s titlebar when the terminal is unfocused. Default: #c0bebf.
  • title_receive_fg_color = color string β€” foreground color for the terminal’s titlebar when the terminal is in a group and is receiving input while unfocused. Default: #ffffff.
  • title_receive_bg_color = color string β€” background color for the terminal’s titlebar when the terminal is in a group and is receiving input while unfocused. Default: #0076c9.

πŸͺŸ LAYOUTS

The layouts section contains all the saved layouts. Each layout should be its own subsection with a header in the format [[name]].

Each object in a layout is a named sub-sub-section with various properties.

  • type = string β€” can be any of: 'Window', 'Notebook', 'HPaned', 'VPaned', 'Terminal'.
  • parent = string β€” which object is the parent of the component being defined. All objects, except those of type Window, must specify a parent.

This is an example of a layouts section containing only the layout named "default".

[layouts]
  [[default]]
    [[[window0]]]
      type = Window
      parent = ""
    [[[child1]]]
      type = Terminal
      parent = window0

🧩 PLUGINS

Terminator plugins can add their own configuration to the config file, and it will appear as a subsection. Please refer to the documentation of individual plugins for more information.

πŸ‘€ SEE ALSO

that’s the whole vibe πŸ’… β€” this page is TERMINATOR_CONFIG(5) from Terminator, dated 2023-10-10, and yes she ate. πŸŽ€

πŸ“¦ where this page comes from