Software showcase; Terminator

Introduction

"The robot future of terminals" according to its author appears to be highly-configurable, allowing for a very complex and dynamic environment that expands and contracts to your needs. Terminator, inspired by other projects which intended to show multiple terminals side-by-side (without the need of multiple windows opened and a window manager to snap them together) presents a feature set that is compelling for the most hardcore of terminal users with benefits that even the most green of terminal users may welcome.

Like mate-terminal (and gnome-terminal before it) it allows for users to colour their terminal however they wish, use transparency effects, background images and so on, but there are some other neat tricks it offers;

Features

  • Infinitely splitting terminals
  • Parent tabs for child terminals
  • Input grouping
    • Simultaneous input in multiple child terminals
  • Window state definitions
    • Either Normal, Hidden, Maximized or fullscreen
  • Set above
  • Set sticky
  • Hide unfocused
  • Skip taskbar
  • Use window geometry hints
  • Define child separator and border size
  • Show its own titlebar per terminal
  • Custom URL handler
    • Allows to specify a web browser of your choice
  • DBus integration
  • Bold text and anti-aliasing toggles
  • Layout management
    • Working directory and command autorun definitions for different child windows
  • Plugin support (for custom extra features)
  • All of the stuff that mate-terminal already provides

How to use

Setup

In mate-terminal or whatever solution you prefer, you can take your select-by-word characters and put them into Terminator's preferences in parent tab Profiles, under child tab General. Once that is done, define your other options which are equivalent to options from your prior solution and then you can proceed to use the program expecting the same exact behaviour.

Interaction

A waterfall of terminals
Like other terminals before it, you just type stuff and things happen. Though, there are some useful extra features that Terminator has which other solutions may lack; namely, the capability to split the display into multiple child windows within it so you can perform multiple tasks more quickly. The sky is truly the limit when it comes to things you can do, and all without needing to remember key commands like is necessary when using similar solutions like tmux

You may skip reading this, though it must be said... Another split-terminal solution, `tmux` can be ran in any terminal emulator and can provide similar core features as `terminator` does without a desktop environment, so `tmux` still has its place. A core advantage of `terminator` over `tmux` when you _can_ run `terminator` on the other hand, is the reduced likelihood of "garbage" output from performing multiple commands in a single emulator display.

Tabs and groups
If things get a little bit... "Much", you can always break other tasks out to a new tab, where you can continue to split (and split and split) until you can split no more... then open another tab. There's also another cool trick you can do; If you need to run the same commands in multiple terminals, you can define a group, set all target terminals to said group, and input your command in one terminal of the same group to provide the same input to all in that group. It does not matter in which tab of the current window, if it's using the same group the same command will apply to each terminal with that group selected.

Example use cases

Teaching and learning software
You can keep a man page open to one side, while typing in a command at the other. This will let you see the flags you need in real time rather than having to remember them, and keep it all in a single window. Also neat if you're recording a video for people to follow alogn with; Terminator can be used to make teaching a more efficient task for both teacher and student.

Monitor all of the things
You can run multiple tools and scripts at once and see their output. This may be handy depending on what the task may be.

Debug better
Using a text editor in the terminal, you can more easily locate scripts that are causing issues on one terminal, and execute the same script again in another terminal to visually diff error output without writing to a log file.

Act upon multiple remote computers and multiple directories the same way
Using groups, you can distribute the same command to multiple remote shells, and have them all performing the same exact thing. Similarly, you can point multiple terminals to different part of your local file tree, as well trees to your remote machine and enable them to perform the same task, or you can copy files in multiple machines to a single folder with multiple commands input all at once.

Whatever else you can think of
There are other useful things you can do, and it's entirely up to your imagination and creativity with what to do in Terminator. The only limitation is what your mind can come up with.

How to install

sudo apt install terminator

4 Likes

Terminator has been my terminal emulator of choice for some time now, very configurable and flexible. Thanks for the good write up @tiox.