Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I'm about to get back into using screen, but I have been hearing people occasionally mention tmux as a better alternative. Does it really offer an alternative to all the features screen offers, such as activity monitoring in different windows, etc.? What are the pros and cons of each?

share|improve this question

migrated from stackoverflow.com Jan 21 '11 at 17:07

This question came from our site for professional and enthusiast programmers.

4  
Also discussed at unix.stackexchange.com/questions/549/tmux-vs-gnu-screen –  Lloyd Dewolf Jun 2 '11 at 20:32
add comment

5 Answers

up vote 39 down vote accepted

Some of the (major) reasons I prefer tmux over screen:

  • Status bar is much easier to use. You can easily set up different text/styles for current window, windows with activity, etc. and you can put things on the left and right of the status bar, including shell commands that can be run at a specified interval (default 15s).
  • Almost any command you can run inside tmux can be run from a shell with tmux command [args]. This makes it very easily scriptable, as well as making it easy to do complex commands.
  • Much more accurate automatic window renaming. While screen sets the title based on the first word of the command, and requires shell configuration to do even that in a shell window, tmux keeps track of what processes are actually running in each window, and updates the title accordingly. This way you get dynamic renaming with any shell and zero configuration. For example: Let's say you're running Z Shell; the window's name would be "zsh". Now let's say you want to edit some configuration file, so you type sudo emacs /etc/somefile. While sudo is asking for your password, the window's name will be "sudo", but once you've done that and sudo launches emacs, the title will be "emacs". When you're all done and you exit emacs, the title will change back to "zsh". This is pretty useful for keeping track of windows, and it can also be especially useful in specific situations, like if you have some long-running process in another window that occasionally prompts you for input using dialog; the window name would change to "dialog" when that happened, so you would know you had to switch to that window and do something.
  • Nicer session handling (IMHO). You can do a lot more with sessions within tmux itself. You can easily switch, rename, etc. and you can move and share windows between sessions. It also has a different model, where each user has a server which controls his/her sessions and which the client connects to. The downside of this is that if the server crashes, you lose everything; I've never had the server crash on me, though.
  • tmux seems to be more actively developed. There are updates pretty frequently, and you can file a bug report or feature request through SourceForge and get an answer within a few days.

Those are only the major things that immediately come to mind. There are other little things, too, and I'm sure I'm forgetting some things. It's definitely worth it to give tmux a try, though.

share|improve this answer
21  
tmux development is more active because it's new. GNU Screen is almost 25 years old, so they've fixed most of the bugs. –  a paid nerd May 4 '11 at 18:31
3  
a paid nerd's comment is a very important qualification of your last point. And the second point as stated is not really a difference as it applies to screen as well unless you can be more specific. –  jw013 Nov 10 '11 at 4:31
5  
add comment

(Sessions are collections of windows that can be detached and reattached later. Windows may contain one or more panes. For example configs, check out here and here.)

tmux

  • Pros
    • Easy keybindings -- with the right config, you'll feel at home from Vim or Screen
    • Vim-ish and Emacs-ish bindings built-in
    • Good layout management, a lot like a tiling window manager
    • Unicode seems to Just Work with modern terminals
    • Some terminal issues fixed with TERM=tmux
  • Cons
    • Slow -- unsure why, but keystrokes seem laggy
    • Multiplexing forces the whole session width and height to the smallest attached terminal
    • Has crashed multiple times on Mac OS X, losing the entire session
    • Has failed on Linux after upgrade, where I couldn't reconnect to my old session
    • Misses command keystrokes occasionally - ^A ^[ takes a few tries for copy mode
    • Can't move a pane from one window to another
    • No line unwrapping (or "reflow" or "rewrap") after terminal width change (window resizing)

GNU Screen

  • Pros
    • Extremely stable (v1.0 was in 1987)
    • Some terminal issues fixed with TERM=screen
    • Emacs-ish bindings built in
    • Easy to move and control horizontal panes
    • When multiplexing, any attached terminal can resize a pane
  • Cons
    • No vertical splits without patch (except on Ubuntu)
    • Pane splits are lost when detaching
    • Getting Unicode to work takes a little finesse and determination
    • Crazy status line configuration
share|improve this answer
    
Are the laggy keystrokes only when pressing Esc? tmux has a delay where it waits to see if you're entering an xterm sequence or just a lone Esc, and combined with vim's, it can seem pretty laggy. Set escape-time to a lower value like 50. –  Eevee Jun 4 '11 at 21:37
    
It's also funny you say ^A ^[ doesn't work sometimes; I have the same problem with screen, but never tmux! And I believe you can move panes around with join-pane. –  Eevee Jun 4 '11 at 21:38
    
I find that screen uses quite a lot more memory, which could be included as a disadvantage. –  paradroid Aug 14 '11 at 22:31
    
Well, tmux sucks with vim, in some cases (mine namely), no solution ever posted anywhere works, and even people spending some time solving the issue of mine weren't able to. It's annoying when you can't use <C-Left> and <C-Right> in vim. –  tohecz Feb 19 at 10:14
add comment

The things I get out of tmux I don't get easily in screen are:

  1. make vertical pane splits
  2. multiplexing, which we use for remote and local pairing.
share|improve this answer
add comment

I've been using tmux for about 2 days now, so my unbridled enthusiasm for it has not yet been tempered by hitting annoying use cases. While going through the usual growing pains of transitioning from one program to another, I was struck by several positive features, but the feature that has me believing I'll never go back to screen is the utility of the copy-n-paste mode. In screen, you cannot enter copy mode, scroll back in the buffer, and then go to another window. In tmux, you can have multiple windows simultaneously in copy mode with the buffer scrolled back to different positions. Also, there are multiple copy buffers. And you don't need to patch the source to get fFtT cursor movement.

share|improve this answer
add comment

I would say that screens availability is it's strength but it's windowing system is not as easy to handle as 's. I must say I use most of the time at present and as a result have plenty of terminal tabs instead of Screen windows.

@Jed Schneider You can get virticle planes Ctrl + a then |

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.