54

What is the different between Tmux and Terminator? I currently use Terminator which allows me to add more shell in same screen by splitting them horizontally or vertically.

I read about them in some articles but I'm still not able to figure out the main difference.

I want to know what features I'm missing if I don't use Tmux. I'm a front-end developer. I mainly use command line to use git commands only.

Jitendra Vyas
  • 1,073
  • 4
  • 13
  • 19
  • Just the basics: Terminator is a terminal. It is a program you launch when you want to get a terminal going and type terminal commands and run terminal programs. Tmux is a terminal program that you run from a terminal, such as Terminator. – still_dreaming_1 Mar 23 '17 at 16:01

4 Answers4

35

Terminator is easy to install and it does exactly what it's supposed to do - it can split terminal windows both horizontally and vertically, according to user's requirements. It also allows to keep multiple tabs opened in case splitting one window is not enough.

Tmux lies somewhere between Terminator and screen, combining ease of use with basing on the plain terminal only.

Here are the advantages of tmux over Terminator:

  • Portability - tmux works on all systems able to handle plain, old terminal.
  • Scriptability - tmux can be scripted, so that setting up windows and panes takes nothing more than one or two keystrokes.
  • Server-client architecture - tmux can be used to share sessions between users.
  • Tweaks and options - both tmux and Terminator are easy to get with, but it's tmux that allows to go further and offers wide range of configuration hacks.1

1Source: Łukasz Wróbel

Mitch
  • 106,657
  • 24
  • 210
  • 268
  • Thanks for the answer. I will have to read more. I even don't know what is "Screen" What do you mean by "tmux works on all systems able to handle plain, old terminal." Can i use oh-my-zsh with Tmux? – Jitendra Vyas Jun 22 '14 at 07:14
  • 1
    [Screen](http://www.gnu.org/software/screen/) is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells. – Mitch Jun 22 '14 at 07:16
  • 1
    What do you mean "tmux works on all systems able to handle plain, old terminal." We don't work on multiple systems at a time – Jitendra Vyas Jun 23 '14 at 17:02
  • It means that it can be used in different environments, and the ability to move across platforms. – Mitch Jun 23 '14 at 18:55
  • 3
    **tmux** is a terminal multiplexer so it lets you switch between several programs in one single terminal. **terminator** is a tool for arranging terminals. So you can keep using terminator and run tmux inside it, pretty much the same way you can use it with gnome terminal or any other terminal emulator. – emont01 Sep 10 '14 at 01:19
26

To add up with all the answers said about the question. I have been a user of both Terminator and Tmux, but right this moment I switched to tmux in xterm. My experience has been great over the decision because ;

In tmux i can:

  • Predefine layouts, and with these layouts I can use attach commands which will run in each specified pane and then attach some key bindings to activate some predefined layout.

  • Reassign the default key bindings (as said, it's scriptable) so I can make my vim key bindings and make the experience even better.

  • Some learning experience from zooming, copying to and from the clipboard, to configuring your terminal colors and more.

  • Customizing the look and feel is in your hands. Using scripts and third party scripts you can customize tmux to look like and entreprise IDE ie. (powerline, screen sharing and predefined layouts as said above).

  • Screen Sharing FTW, Say you work with multi workspaces and have multiple terminals open in different workspaces but there is a tmux window in workspace 1 and you need that window to be available everywhere, with tmux link-window you can have that window available in all your workspaces and it's awesome!

Did i also say tmux is a Terminal multiplexer and not a Terminal emulator like Terminator, xterm, termite, urxvt etc? This is important to Note because then you can use different terminal emulators and stil share the same tmux windows in emulators you prefer to use.

The experience is so creative, and you can also check this guy called Gotbletu on YouTube he has lots of tutorials on tmux.

Here is an image of my code layout, which I only have to press (Ctlr + a -- as the modified mod key) and alt + c to get it starting.

tmux screenshot

ArchNoob
  • 991
  • 11
  • 12
  • 2
    Great screenshot! What were you using for vim statusline? – Anwar Nov 25 '16 at 10:31
  • 2
    @Anwar Thank you. It's been a longtime since i answered this question. So i made an update and updated the image. Also my **vim** always uses `vim-airline` plugin. However my tmux statusline is usually using tmux's `powerline` segment (or whatever they call it) but not the `tmux-powerline` *cause that is deprecated*. – ArchNoob Nov 25 '16 at 11:53
13

Terminator is a terminal emulator. It "emulates" a display terminal inside your X-Windows display system. Terminator specifically is very cool, because it allows you to split windows, configure layouts, assign keybindings, etc...

Tmux is a "multi-plexer". It's slightly different in that it allows you to run a persistent session inside a terminal. So Tmux allows you to do things like open a session at work, shut down your laptop, go home, then reopen your laptop and drop right back into that same running session.

Currently, I'm exploring Terminator, but I use both. For instance, I might have a Tmux session running multiple panes on one server in one Terminator pane. In another Terminator pane, I might have an ssh session running on another server.

ditch182
  • 231
  • 2
  • 3
3

Been a user of both Terminator/Tmux (and screen, however, have given it up now).

I am dependent on Tmux more because I cannot rely on X. Most of the time I SSHing to remote VM and coding/debugging there. These are linux VM instances in multi-user text-mode runlevel thus terminator is out of the question.

Other reasons:

  1. Tmux allows me to connect to a previously detached session.
  2. Sometimes I need to duplicate my session to a remote person sitting in another part of the world. Tmux allows me to duplicate my session (without needing to share my desktop). The remote person simply needs to attach to my tmux session.
  3. Tmux allows vim integration
  4. Tmux is highly scriptable i.e., I can open up my test-setup using a single script and provide windowed access to different virtual machines.

Terminator has a great UI and more user-friendly since it also integrates well with the mouse. But it is fundamentally dependent on X, which is a hurdle for my adoption.

I used screen for a few years but then moved to tmux because of its flexibility and never looked back.

takladev
  • 131
  • 3