I’ve been using GNU screen since 2005 or so. Not only is it a great way to arrange your work (multiple terminals in one window, a terminal “multiplexer”), it allows for detaching and reattaching (keep remote jobs running even when the connection drops). The problem is that screen is no longer actively maintained and is beginning to show it.
Security vulnerabilities, archaic config options, support for new terminal features, etc… we all knew we’d have to leave screen one day. 😛
Enter tmux, the not-so-new new kid on the block. Support for modern terminal features, more intuitive configuration, blah blah blah, and it’s actively maintained.
I’ve been trying to switch from screen to tmux since 2010 or so, when I first started imagining a day when screen would cease to work properly. The problem was that mimicking my screen configuration in tmux was harder than I thought, so I just kept putting it off. A few months ago someone was teasing me because I was still using screen, so I decided to take another look at tmux.
Here’s my screen config running inside a gnome-terminal:
What I like about that config is that it shows me how many “windows” I have in the current terminal, which programs are running, which machine I’m currently logged into and various other useful pieces of information. My
.screenrc dates back to my days in university, where I would leave sessions running on the Computer Science department’s Solaris server (where we wrote all our code in vim), and on various Mac OS X servers on campus which I used to manage.
Looks pretty good, and works pretty much like my screen config did, but feels much more modern.
After a few weeks or months of using tmux, I noticed a few things that bug me:
- Fonts are bolded and colored slightly differently in the tmux status bar compared to screen (see screenshots above)
- Copy mode takes like 1 second to enter, it was immediate in screen (see alanorth/dotfiles@bc04f0f7)
- Can’t use Esc to exit copy mode, must use ‘q’… muscle memory from years of screen use 🙁
The issues are only minor, so they’re not deal breakers. I can say I’ve been using tmux exclusively for about six months now, so there’s no going back to screen for me. Feel free to copy my tmux configuration file if you’d like, it’s on github.