$ terminals _

Terminator

基于 Python 的平铺式终端模拟器,支持在单个窗口中灵活排列多个终端窗格

Terminator 截图

简介

Terminator 是一款基于 Python 和 GTK 的终端模拟器,其核心特色是允许用户在单个窗口中创建和管理多个终端窗格。通过灵活的水平和垂直分割,用户可以在一个屏幕上同时查看和操作多个终端会话,非常适合需要同时监控多个任务的开发者和系统管理员。

Terminator 的设计目标是在不依赖 tmux 或 screen 等终端复用器的情况下,提供直观的图形化多窗格管理体验。用户可以通过鼠标拖拽或键盘快捷键快速分割、调整和切换窗格,还可以将自定义的窗格布局保存下来以便日后重复使用。

Terminator 同样基于 VTE 终端库构建,因此在终端标准兼容性方面表现可靠。它提供了丰富的自定义选项,包括自定义快捷键、插件系统和命令广播功能——后者允许用户同时向多个终端窗格发送相同的命令,在批量管理服务器时极为高效。

安装

# Ubuntu / Debian
sudo apt install terminator

# Arch Linux
sudo pacman -S terminator

# Fedora
sudo dnf install terminator

# openSUSE
sudo zypper install terminator

# 通过 pip 安装(适用于未收录的发行版)
pip install terminator

验证安装

# 检查版本
terminator --version

# 从命令行启动
terminator &

# 以指定布局启动
terminator -l my_layout &

核心特性

  • 灵活的窗格分割 - 在一个窗口中自由进行水平和垂直分割,可无限嵌套创建复杂布局
  • 命令广播 - 可将输入同时广播到所有终端窗格或指定分组,适合批量服务器管理
  • 布局保存与恢复 - 将自定义的窗格排列保存为命名布局,启动时可直接加载
  • 窗格分组 - 将多个终端窗格编入同一组,组内共享命令广播
  • 拖拽支持 - 通过鼠标拖拽重新排列窗格位置,也可拖拽调整窗格大小
  • 多标签页 - 在多窗格的基础上还支持标签页,进一步扩展工作空间
  • 插件系统 - 基于 Python 的插件架构,支持社区编写的扩展功能
  • 自定义快捷键 - 所有操作均可自定义快捷键,支持通过配置文件批量设置
  • 配置文件 - 支持多套终端配置(字体、颜色、行为),不同窗格可使用不同配置
  • 右键菜单 - 丰富的右键上下文菜单,可快速执行分割、关闭、配置等操作
  • 透明背景 - 支持窗口背景透明效果
  • 标题栏编辑 - 每个窗格可设置独立的标题,便于识别不同会话的用途

常用快捷键

Ctrl+Shift+O    水平分割窗格
Ctrl+Shift+E    垂直分割窗格
Ctrl+Shift+W    关闭当前窗格
Alt+方向键       在窗格之间切换焦点
Ctrl+Shift+X    最大化/还原当前窗格
Ctrl+Shift+G    切换分组广播开关
Ctrl+Shift+T    新建标签页

配置文件

Terminator 的配置文件位于 ~/.config/terminator/config,以 INI 风格格式编写:

[global_config]
  title_transmit_bg_color = "#2e3440"
  title_receive_bg_color = "#4c566a"
  title_inactive_bg_color = "#3b4252"

[profiles]
  [[default]]
    background_darkness = 0.9
    background_type = transparent
    cursor_shape = ibeam
    font = JetBrains Mono 14
    use_system_font = False
    scrollback_lines = 10000
    show_titlebar = False

[layouts]
  [[default]]
    [[[window0]]]
      type = Window
      parent = ""
    [[[child1]]]
      type = Terminal
      parent = window0
  [[development]]
    [[[window0]]]
      type = Window
      parent = ""
    [[[hpaned]]]
      type = HPaned
      parent = window0
      ratio = 0.6
    [[[editor]]]
      type = Terminal
      parent = hpaned
      profile = default
    [[[vpaned]]]
      type = VPaned
      parent = hpaned
      ratio = 0.5
    [[[terminal]]]
      type = Terminal
      parent = vpaned
    [[[logs]]]
      type = Terminal
      parent = vpaned

提示:Terminator 的命令广播功能是运维利器——在多台服务器上同时执行相同命令时,只需分割出多个窗格分别 SSH 到不同服务器,然后开启广播模式即可。使用 terminator -l layout_name 可以快速启动预定义的工作布局,建议为日常开发和运维场景各创建一套布局。