TMUX: The Swiss Army Knife of the terminal multiplexer
If you work in Linux environments, you are very likely to use terminator as a terminal emulator or iterm2 in OS X. Like them, TMux is a terminal multiplexer that allows you to manage multiple window of the terminal, either with tabs or dividing it horizontally or vertically from a single terminal.
Even though Tmux doesn’t work as a desktop program and it has a non-graphical interface, it is kind of interesting and useful tool. So today I want to brag about Tmux.
Multiplexing the terminal you want, wherever you want
You can load the same layout of windows we use in iterm2 for example, the OS X terminal (which is not possible to multiplex), thus showing its interface:
This is especially useful because it can connect via SSH to your server and has a similar layout like your desktop.
Only tools that work even via SSH
TMux is not dependent on the terminal emulator. So fact, you can start working on the Mac terminal and continue later in iterm2 where you left off . In addition to split the screen horizontally or vertically, you can use tabs and rename them to your liking. TMux offers sessions .
Each session contains a number of windows, which in turn contain panels with terminals. The sessions usually are used to manage multiple projects very conveniently. This is useful if you work with microservices.
Tmux lets you work without using the mouse, since all actions run them through the keyboard. Either way, you can use the mouse for certain actions, but my recommendation is that you learn to use text commands. Also when handling the panels, you have the absolute freedom to move them between windows, tabs, and sessions ; change of order; increase its size; create new windows based on panels, and many other options.
Runs in the background
As Tmux terminal multiplexer runs in the background, you can safely close your terminal window or in the case of your server, you can close the SSH connection and will not lose anything, nor your layout or tasks that you were running. Simply, you can come back later and continue working.
You can do pair programming
If two people come together at the same session, both have a live feed what they are doing. Even if the screen resolutions are different, you’ll see a strip that tells you where is your partner remotely.
It is extensible and customizable
TMux has plugins that extend its functionality further. My favorite is tmuxp, which lets you define your projects sessions in files, which can be used to automatically initialize when opening TMux. Besides this, you can modify your configuration file and customize the color palette and the action bar.
My invitation is to try this Tmux terminal multiplexer and see for yourself the benefits of using it. Maybe it’s what you were always looking for, or maybe it is not right fit for you. You will not know until you try it yourself. In my case, I was very skeptical of TMux until I tried it. I found a workflow and plugins I needed to work more comfortably.