Screen vs tmux

...Yet Another Comparison guide


Recently, at work this subject came up again... Whether or not I was fanning the flame war is another matter. Hilariously, much like an old article I had written before and again recently found (recorded below) "the war" had begun the same, an engineer had just discovered Screen...


I always love causing joining in a good flame war, regardless of the technology. I am a proud member of the church of Vi! For Example.. The reason being as it helps us to learn and challenge the way that we do things, I have learnt more about technology from heated discussions with passionate people that I have ever learned from a README.md file! In many ways I believe these discussions are necessary for a healthy development environment!


Opinions from the past

In terms of functionality not much has actually changed under the hood for both of these candidates, they both essentially do the same thing they have done for years. In many ways, they shouldn't change as testament to what was created.

Here is the post I wrote oh so many, many years ago when I was younger and more naive, or was I?

GNU Screen and tmux are terminal multiplexers designed for Unix-like platforms. They are basically window managers for text consoles instead of the X Window System. Screen is the more heard-of terminal multiplexer.

tmux-only features include:

  • Client/server system - a server instance is started automatically when a session runs as a client for that server, which leaves less of a footprint.
  • Synchronize-panes - duplicate input from any pane to all other panes in the same window. A bit like a clusterssh function to simultaneous input to all of the terms all at the same time.
    ctrl+b :set-window-option synchronize-panes [on|off]

Screen only features include:

  • Zmodem transfers - the abilty to transfer files when all you have is a serial connection available. Although this sysadmin does not need to use this feature.
  • Attaching to a serial tty - such as screen -r /dev/ttyS0 115200 in case you lose a session.
  • Naming of invidual panes - you can name each pane in case you loose track of things! TMUX wins for me

I first started using Screen, but I quickly found tmux to be the better option. With less of a footprint to deal with, I could have many hands on one server with out the need to keep spawning servers. I also found tmux had a better mastery of panes (as a terminator user very important!) and the conversion from Screen was simple after getting used to using ctrl+b instead of ctrl+a.


 

Back to the present war

This would continue as (regardless of the multiplexer they mentioned... I would have probably picked the opposite side) I would begin to argue a lot of the above points about TMUX over screen. There would be some back and forth banter about Key Bindings, much like the above article, finally a few days later the OP would return to the thread and agree...

In my humble opinion this just cements that TMUX is still the better option!!


Verdict!

It would appear that nearly a decade later, I am still correct in my promotion of the far superior TMUX. Out of the box it is noticeably more colourful, despite the key bindings being different to Screen that for some reason newbies find easier to pick up, most are willing to make the jump for the extra screen bling.


Of course if screen bling is you goal might I suggest:


$ fortune | cowsay | lolcat # add to a while loop for some pretty and informational graphics!