GNU Screen Hotkeys vs. Tmux Hotkeys

Years ago I had finally picked up on using a terminal multiplexer as part of my
day to day workflow. I started with tmux having only used screen for one off
server tasks that I wanted to persist across my Internet connection taking a
shit.

Nothing wrong with tmux but I had made the mistake of starting off with
tmuxinator which tacks on some pretty solid session management onto tmux.

This was all well and good but because I scripted my windows to be exactly where / how I wanted them, I ended up being shielded from truly learning how to use tmux.

To be more specific, I never actually wrapped my head around how tmux handles windows and panes versus how screen does.

And then I went off the rails decided to simplify my life by abandoning my
over-dependence to package managers and plugins
. This eventually led me
down the path of dumping tmux all together and moving to screen as my daily driver.

The major contributing factor, which you will probably find laughable, is that I
really didn’t like the default prefix key with tmux, CTRL-b.

I know it can be reconfigured, but if my first order of business is to reconfigure tmux to use the screen prefix, CTRL-a, which I find to feel more natural, that it makes a whole lot of sense to just use screen instead.

Fast forward a couple of years and I’m still using screen but felt it may be time to re-evaluate things and give tmux a shot without all of the cruft of tmuxinator and actually digging into learning how to really use tmux.

It also didn’t hurt that a buddy of mine was asking me if I remembered how to do something in tmux the other day.

Which sadly, I didn’t.

With that, to get more formally reacquainted with tmux, I put together a little comparison chart of the hotkeys in screen and tmux. Keep in mind, this is not an exhaustive list, it’s the stuff that I regularly use.

There’s also a hard bias towards vi-mode and key combinations that keep me
closer to the home row or require the least amount of keystrokes.

ActionGNU ScreenTmux
Start Named Sessionscreen -S <name>tmux new -s <name>
List Sessionsscreen -lstmux ls
Reconnect to Named Sessionscreen -R <name>tmux attach -t <name>
Detach SessionCTRL-a dCTRL-b d
Create New WindowCTRL-a cCTRL-b c
Rename WindowCTRL-a ACTRL-b ,
Jump to Last Active WindowCTRL-a CTRL-aCTRL-b l
Jump to Window by NumberCTRL-a <number>CTRL-b <number>
Jump to Next WindowCTRL-a nCTRL-b n
Jump to Previous WindowCTRL-a pCTRL-b p
Show Window ListCTRL-a "CTRL-b w
Show Window BarCTRL-a wn/a, on by default
Kill Current WindowCTRL-a kCTRL-b &
Kill Session / All WindowsCTRL-a \tmux kill-session
Split HorizontallyCTRL-a |CTRL-b "
Split VerticallyCTRL-a SCTRL-b %
Make Split WiderCTRL-a :resize -h <number>CTRL-b ALT-←
Make Split ThinnerCTRL-a :resize -h <number>CTRL-b ALT-→
Make Split TallerCTRL-a :resize -v <number>CTRL-b ALT-↑
Make Split ShorterCTRL-a :resize -v <number>CTRL-b ALT-↓
Jump to Next SplitCTRL-a TABCTRL-b o
Jump to Previous SplitCTRL-a SHIFT TABNavigate with CTRL-b ← → ↑ ↓
Close Current SplitCTRL-a XCTRL-b x
Close All but Current SplitCTRL-a QCouldn’t find this one
Enter Copy / Scrollback ModeCTRL-a [CTRL-b [
Toggle Copy SelectionSPACESPACE
Jump Half Page UpCTRL-uCTRL-u
Jump Half Page DownCTRL-dCTRL-d
Jump Full Page UpCTRL-bCTRL-b CTRL-b
Jump Full Page DownCTRL-fCTRL-f
Jump To Topgg
Jump To BottomGG
Move Cursor Lefthh
Move Cursor Downjj
Move Cursor Upkk
Move Cursor Rightll
CopyENTERENTER
PasteCTRL-a ]CTRL-b ]
Exit Copy / Scrollback Modeqq

Real talk here, after sitting and messing with tmux a bit to work through these different hotkeys, I think I very well may hang up screen and plunge into tmux head first this new year!

Who the hell knows, maybe I’ll switch to nvim too 😉

Josh Sherman - The Man, The Myth, The Avatar

About Josh

Husband. Father. Pug dad. Musician. Founder of Holiday API, Head of Engineering and Emoji Specialist at Mailshake, and author of the best damn Lorem Ipsum Library for PHP.


If you found this article helpful, please consider buying me a coffee.