When I first switched to linux I was looking for a terminal to replace the gnome default terminal mainly due to the tiling feature. I tested a few terminal emulators and the Terminator seems to be a perfect fit for me. In this detailed tutorial, we will learn what is Terminator, Terminator features, and how to install and use the terminator tiling terminal emulator in Linux.
What is Terminator Terminal Emulator?
Terminator is a tiling terminal emulator for Linux that allows you to layout terminals in any fashion by splitting them horizontally or vertically.
It supports multiple tabs, drag and drop terminal panel, keyboard shortcuts akin to tiling window managers and saving layouts and profiles. It is also extensible through plugins.
Terminator is started as a small project with a few hundred lines of code back in 2007. With the help of community contribution, it now has its place in the linux terminal space.
Terminator is written in Python and offers a great set of features to be productive in the terminal. The two main features of the terminator are the tiling window and broadcasting.
The tiling window allows you to create horizontal and vertical splits without the need to create a new tab. The broadcasting feature allows you to type a command across all the opened terminal windows at the same time.
Some of the other notable features of the terminator include
- Full customization support through UI and config file.
- Horizontal and Vertical split support.
- Synchronized inputs between terminals. Commands typed in one terminal will be automatically replicated in other terminals.
- Customizable layouts.
- Customizable keybindings.
- Custom titles.
- Drag and Drop support to reorder terminal.
- Smart copy and putty-style paste.
- Functionality can be extended using your own plugins written in python.
- Supports multiple profile configuration.
- Custom URL handler.
Install Terminator in Linux
Terminator can either be installed directly using the operating system's default package manager or you can also clone the source code from github and manually install it.
Heads Up: The recommended way is to install the terminator directly from the package manager since it takes care of installing dependencies.
The following commands will help you to install terminator in your favorite linux distribution.
To install Terminator in Alpine Linux, run:
$ sudo apk add terminator
To install the Terminator in the Arch Linux, and its variants such as EndeavourOS and Manjaro Linux, run:
$ sudo pacman -S terminator
To install Terminator on Debian, Ubuntu and its derivatives, run the following command:
$ sudo apt install terminator -y
For Ubuntu 20.04 and above terminator can be installed using PPA too.
$ sudo add-apt-repository ppa:mattrose/terminator
$ sudo apt-get update
$ sudo apt install terminator -y
To install terminator on Fedora, RHEL, CentOS, AlmaLinux and Rocky Linux, run the following command:
$ sudo dnf install terminator
To install the terminator of FreeBSD run the following command.
$ pkg install terminator
How to Use Terminator?
Once you launch the terminator you should see a window similar to the below image.
Context & Grouping Menus
From the main window, there are two menus available to be accessed.
The context menu can be accessed by "right click" on the mouse. There are a total of 5 sections in the context menu.
- Copy and Paste
- Open tabs, Split terminal horizontally and vertically.
- Close the terminal.
- Zoom & Maximize Terminal.
- Scrollbar, Preferences, Encoding & Layouts.
You can access the grouping menu by clicking the icon on the top left-hand corner of the terminal. Grouping allows you to combine multiple layouts into a single group.
Using the broadcast option, if you type in one terminal it will be typed across all the terminals. This will be useful when you are working with multiple servers and wish to run the same command on all the servers simultaneously.
Horizontal & Vertical Splits
You can create horizontal and vertical splits either from the context menu or from the default keybindings.
Context Menu => Right Click => Horizontal split Context Menu => Right Click => Vertical split
CTRL + SHIFT + O => Horizontal split CTRL + SHIFT + E => Vertical split
When working with multiple splits you can either move between the splits with the mouse or through keybindings.
To move between the splits either use "
ALT + ARROW KEYS" or "
SHIFT + CTRL + TAB".
Terminator - Grouping
As stated already, grouping allows you to group multiple terminals in a single group and broadcast the commands as you type.
Create a New Group
You can create new groups and map the terminal window. Now when you type the command in the active terminal window it will be typed across all the terminals in the same group.
I have created a new group called "devservers". Once you create additional groups you will see a couple more options enabled.
Take a look at the below image. I created three vertical splits and added the first and second split as part of the devservers group. The third split is part of the default group.
The color on the terminal bar helps you identify which is an active terminal and which terminal is part of the defined group and which is not.
- RED COLOR => Active terminal window.
- BLUE COLOR => Part of the same group.
- GREY COLOR => Not part of the same group.
When I type any command in the active terminal, the same will be typed automatically on all the terminals part of the same group. Refer to the below image on the first and second split.
If you wish to broadcast to all open terminal windows irrespective of groups choose the "broadcast all" option.
You can remove a single group by selecting "Remove group name" from the menu or remove all the groups by selecting "Remove all groups".
You can extensively customize the terminator either from the preference or directly in the config file. The config file is located under "
$HOME/.config/terminator/config". Whatever customization you make in the UI will be automatically modified/added in the config file.
Heads Up: Take a backup copy of the config file before making any changes directly in the config file.
To access the UI, "right-click -> preferences". You will see the preferences UI similar to the one shown in the below image.
There are 6 tabs in the preferences UI. Let’s go through each one of them.
1. About Section - Access to Documentation
Terminator has detailed documentation hosted in readthedocs.io. You can search for it directly on the web or launch it from the about section by clicking on the "Manual" icon.
2. Plugins Section
From the plugins section, you can activate any existing plugins. Terminator also provides you the flexibility to create your own plugins.
All the custom plugins should be under the "
3. Keybindings Section
Terminator comes with keybindings for almost all the actions you can perform as part of your workflow.
If you wish to set a new keystroke for an action, double-click on the keybinding for that associated action and type the keystroke. Make sure the keystrokes are not already mapped to different actions.
4. Profiles Section
The profiles section lets you set the color scheme, fonts, font size, cursor shape, transparency, and scrollback buffer size.
The "Default" profile comes with the terminator. You can either customize it or create your own profiles.
To add a new profile "Profiles -> Add -> Name ".
You will see the "profiles" option added to the context menu which shows the list of profiles you created. You can select the profile you wish to set from there.
Let’s go through some of the important customization options.
Under the general section, you can set font, font size, and cursor shape. If you need to copy the text when selected then enable "copy on selection" option. If you wish to disable the annoying red-colored title bar, disable the "show titlebar" option.
Under the Command section, you can choose the run the shell as a login shell. You can also set a custom command to run when the terminal is launched with this profile.
Under the Colors section, you can set the foreground and background color schemes. You can also create a custom color scheme from the "custom" option.
Under the Background section, you can control the terminal background. By default, solid color is set but you have the option to set an image as a background or create a transparent background.
Under the Scrolling section, you can set the scrollback buffer size.
5. Global Section
The global section controls the appearance and behavior of the terminal. This is where you can set some of the interesting features offered by terminator.
Let’s go through some of the important features.
- Window State - It controls which mode the terminal will be launched. Available options are Normal, Maximized, Full-screen, and Hidden.
- Always On Top - When this is enabled, the terminal will always be at the front even though you switch to other applications.
- Hide On Lose Focus - When you hover the mouse out of the terminator then the terminal will be hidden from the screen.
- Windows Geometry Hints - When you resize the terminal window the window geometry will be displayed in the title bar.
- Putty Style Paste - This will allow you to paste by clicking on the right mouse click which is similar to putty style.
- Tab Position - You can set tab positions to left, right, top, bottom, or hidden.
- Terminal Title Bar - The color scheme of the terminal title bar can be set under this section.
There are other options in the global section that can be enabled or disabled depending on your preference.
Terminator Configuration File
Till now whatever configuration changes we discussed will be written to the terminator config file. When you want to retain the same configuration across different machines, then you can backup the configuration file to a central location like github and export it.
To view Terminator config file, run:
$ cat ~/.config/terminator/config
Heads Up: It is not recommended to make changes directly in the config file unless you know what you are doing. Also, it is recommended to take a backup before making any changes directly in the configuration file.
Terminator is great for those who work with multiple terminals and want to manage them efficiently. It is one of the popular terminal emulator choice of developers and power users who work with Terminals extensively.
Have you tired Terminator? Please share your thoughts on this in the comment section below.
- How To Install And Configure Alacritty Terminal Emulator In Linux
- Terminology, A Best Terminal Emulator With Lots Of Features
- Terminus – A Web Technology Based Modern Terminal
- Tilda – A Highly Configurable GTK-based Drop Down Terminal For Unix-like Systems