Terminal GuideTerminal Guide
terminator icon

Terminator

Terminal Emulators
Linux
Python

Terminal emulator supporting grid layout and broadcast input.

Official Website

Features

Grid LayoutBroadcast InputTabsProfilesPlugins

Installation

APT (Debian/Ubuntu)
apt install terminator
Pacman (Arch)
pacman -S terminator
DNF (Fedora)
dnf install terminator

Why Use Terminator?

Terminator is a Python-based terminal emulator that arranges multiple terminals in a grid within a single window. Its broadcast input feature sends commands to multiple terminals simultaneously.

Grid Layout

Freely split a single window. Display multiple terminals in an organized layout.

Broadcast Input

Send commands to multiple terminals simultaneously. Ideal for cluster management and parallel work.

Tabs and Profiles

Build grid layouts within tabs. Switch profiles by use case.

Plugin System

Extend functionality with Python plugins. Add custom commands and menus.

Main Features

Grid Splitting

Terminator's main feature is the ability to freely split windows horizontally and vertically. Each split area acts as an independent terminal.

Grid Operations
# Split shortcuts
# Ctrl+Shift+E: Vertical split (new terminal to right)
# Ctrl+Shift+O: Horizontal split (new terminal below)

# Move between panes
# Alt+Arrow: Move focus in arrow direction
# Ctrl+Tab: Focus next terminal
# Ctrl+Shift+Tab: Focus previous terminal

# Resize panes
# Ctrl+Shift+Arrow: Move pane boundaries

# Close pane
# Ctrl+Shift+W: Close current terminal

# Maximize terminal
# Ctrl+Shift+X: Maximize current terminal (press again to restore)

Broadcast Input

Send the same command to multiple terminals simultaneously. Very useful for server management and parallel command execution.

Broadcast
# Broadcast input modes

# Broadcast to group
# Ctrl+G to toggle grouping (input broadcasts to same group)

# Broadcast to all
# Alt+A to broadcast to all terminals in window

# Broadcast off
# Alt+O to disable broadcasting

# Can also be set from right-click menu:
# - Broadcast: All
# - Broadcast: Group
# - Broadcast: Off

# Usage examples:
# 1. SSH to multiple servers
# 2. Enable broadcast with Alt+A
# 3. Same command is sent to all terminals

Save and Restore Layouts

Save frequently used layouts to config files for automatic restoration on startup.

Layout Configuration
# Layout configuration (~/.config/terminator/config)

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

  [[development]]
    [[[window0]]]
      type = Window
      parent = ""
      size = 1200, 800
    [[[child0]]]
      type = HPaned
      parent = window0
      ratio = 0.5
    [[[terminal1]]]
      type = Terminal
      parent = child0
      profile = default
      command = "vim"
    [[[child2]]]
      type = VPaned
      parent = child0
      ratio = 0.5
    [[[terminal2]]]
      type = Terminal
      parent = child2
    [[[terminal3]]]
      type = Terminal
      parent = child2
      command = "htop"

# Start with specified layout
terminator -l development

Plugin System

Terminator supports functionality extension via plugins. Create custom plugins in Python.

Plugins
# Enable built-in plugins
# Preferences > Plugins to toggle on/off

# Available built-in plugins:
# - ActivityWatch: Monitor terminal activity
# - CustomCommandsMenu: Custom command menu
# - InactivityWatch: Notification when inactive
# - Logger: Log output to file
# - MavenPluginURLHandler: Process Maven URLs
# - TerminalShot: Take screenshots

# Add custom commands
# Right-click > Preferences > Plugins > CustomCommandsMenu

# Plugin locations
# System: /usr/share/terminator/terminatorlib/plugins/
# User: ~/.config/terminator/plugins/

Installation

Debian/Ubuntu

Debian/Ubuntu
# Install with apt
sudo apt install terminator

Arch Linux

Arch Linux
# Install with pacman
sudo pacman -S terminator

Fedora

Fedora
# Install with dnf
sudo dnf install terminator

pip (Latest Version)

pip
# Install with pip (if you want the latest version)
pip install terminator

# Dependencies may be required
# Debian/Ubuntu:
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0 \
  gir1.2-vte-2.91 python3-psutil python3-configobj

Official Website

Check https://gnome-terminator.org/ for detailed documentation.

Configuration and Customization

Configuration File Location

Configuration File
# Configuration file path
~/.config/terminator/config

# File is created if it doesn't exist
# Settings from GUI are automatically saved to this file

# Configuration file structure
# [global_config]  - Global settings
# [keybindings]    - Keybindings
# [profiles]       - Profile definitions
# [layouts]        - Layout definitions
# [plugins]        - Plugin settings

Global Configuration

~/.config/terminator/config (global)
[global_config]
  # Window state
  window_state = normal
  borderless = False

  # Tab position
  tab_position = top

  # Broadcast default
  broadcast_default = off

  # Scroll settings
  scroll_on_output = False
  scroll_on_keystroke = True

  # Title bar configuration
  title_hide_sizetext = True
  title_transmit_fg_color = "#ffffff"
  title_transmit_bg_color = "#c80003"
  title_receive_fg_color = "#ffffff"
  title_receive_bg_color = "#0076c9"
  title_inactive_fg_color = "#000000"
  title_inactive_bg_color = "#c0bebf"

  # Focus settings
  focus = click

  # Layout on startup
  always_split_with_profile = True

Profile Configuration

Profile Configuration
[profiles]
  [[default]]
    # Font settings
    font = JetBrains Mono 12
    use_system_font = False

    # Cursor settings
    cursor_shape = block
    cursor_color = "#c0caf5"
    cursor_blink = True

    # Color scheme
    foreground_color = "#c0caf5"
    background_color = "#1a1b26"
    background_darkness = 0.95
    background_type = transparent

    # Palette (16 colors)
    palette = "#15161e:#f7768e:#9ece6a:#e0af68:#7aa2f7:#bb9af7:#7dcfff:#a9b1d6:#414868:#f7768e:#9ece6a:#e0af68:#7aa2f7:#bb9af7:#7dcfff:#c0caf5"

    # Scrollback
    scrollback_lines = 10000
    scrollbar_position = hidden

    # Other
    copy_on_selection = True
    show_titlebar = True

  [[production]]
    # Production environment profile (red background)
    foreground_color = "#ffffff"
    background_color = "#3d0000"
    cursor_color = "#ff0000"
    scrollback_lines = 50000

Keybinding Configuration

Keybinding Configuration
[keybindings]
  # Split
  split_horiz = <Ctrl><Shift>o
  split_vert = <Ctrl><Shift>e

  # Move between panes
  go_up = <Alt>Up
  go_down = <Alt>Down
  go_left = <Alt>Left
  go_right = <Alt>Right
  go_next = <Ctrl>Tab
  go_prev = <Ctrl><Shift>Tab

  # Resize
  resize_up = <Ctrl><Shift>Up
  resize_down = <Ctrl><Shift>Down
  resize_left = <Ctrl><Shift>Left
  resize_right = <Ctrl><Shift>Right

  # Tab operations
  new_tab = <Ctrl><Shift>t
  close_tab = <Ctrl><Shift>w
  next_tab = <Ctrl>Page_Down
  prev_tab = <Ctrl>Page_Up

  # Broadcast
  broadcast_all = <Alt>a
  broadcast_group = <Alt>g
  broadcast_off = <Alt>o

  # Other
  toggle_zoom = <Ctrl><Shift>x
  full_screen = F11
  search = <Ctrl><Shift>f
  copy = <Ctrl><Shift>c
  paste = <Ctrl><Shift>v

Custom Commands

Custom Commands
# CustomCommandsMenu plugin configuration

[plugins]
  [[CustomCommandsMenu]]
    [[[SSH Production]]]
      name = SSH Production
      command = ssh user@prod.example.com
      enabled = True
    [[[SSH Development]]]
      name = SSH Development
      command = ssh user@dev.example.com
      enabled = True
    [[[Docker Logs]]]
      name = Docker Logs
      command = docker logs -f $(docker ps -q | head -1)
      enabled = True
    [[[System Monitor]]]
      name = System Monitor
      command = htop
      enabled = True

# Can be executed from right-click > Custom Commands

Keyboard Shortcuts

ShortcutFunction
Ctrl+Shift+EVertical split (new terminal right)
Ctrl+Shift+OHorizontal split (new terminal below)
Alt+ArrowMove between panes
Ctrl+Shift+ArrowResize pane
Ctrl+Shift+XMaximize/restore current terminal
Ctrl+Shift+WClose current terminal
Alt+ABroadcast to all terminals
Alt+GBroadcast to group
Alt+OTurn off broadcast
Ctrl+Shift+TCreate new tab
Ctrl+Shift+FSearch
F11Toggle fullscreen

Tips

  • *Save Layouts: Save frequently used layouts to config and start withterminator -l layout_name for efficiency.
  • *Use Profiles: Use different profiles (background colors, etc.) for production vs. development to prevent mistakes. You can also change title bar color.
  • *Group Broadcasting: Group specific terminals (Ctrl+G) and broadcast (Alt+G) for finer control.
  • *Custom Commands: Use the CustomCommandsMenu plugin to execute frequently used SSH connections and commands from the right-click menu.
  • *Drag and Drop: Drag a terminal's title bar and drop into another pane to freely change the layout.
Written by Dai AokiPublished: 2026-01-20

Related Articles

Explore More