My Not So Fancy .screenrc

Some number of days ago my dear Wesley put out the call absolutely begging for our Best .screenrc Files. While mine is very simple it hits all my special points. First the config, then the explanation.

startup_message off


defutf8 on
utf8 on on

# Enable window monitoring & notifications
monitor on
defmonitor on

# Change escape command from ctrl-a to ctrl-z
escape ^za

autodetach on

hardstatus on
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d%{W}%{g}]'

Go Home!

Normally the chdir is used on a special case to switch to a new directory, however here I'm using it to force my screen to start in my home directory. This is mostly because I'm lazy and don't want to have to change directories prior to launch.

Unicode All The Things

I honestly don't have a fantastic and compelling reason to use UTF-8. This is 2014 and it seems like it's time to start using Unicode instead of some silly old school character sets. These lines tell screen to use UTF-8 by default and to go ahead and turn it on. This way if I open a new screen window it'll have a consistent character set.

Ohai Guise! Look Over Here!

When you have multiple screen windows sometimes it can be tricksome to keep track of them all. When I first started using multiple windows it was because of IRC. I was using irssi, because I'm a nerd, and freenode because it's IRC. Then I joined an industry group that had a private IRC server and it just became easier to run two instances of irssi. This meant two screen windows so MONITORING! When I get activity in the window this will throw an alert so that I know somebody said something.


By default screen uses ctrl+a in order to break into command mode. Since I also use bash this is exceptionally annoying. I'm changing the escape character to ctrl+z so that I can finally start using the 'start of line' key combo again.

The hardstatus line is...thick. This is the real magic that makes multiple windows worth using. This sets up a status line on the bottom that lists all the windows, which one is currently active, which ones have unread activity, their name, and the current date. If you use this status line the potentially least obvious things are the three most likely statuses you'll see on the windows. They will be shown immediately after the line number.

  • - : The previously opened window.
  • * : The current active window.
  • @ : This window has unseen activity.

All of this comes together in something that looks like this.

My Fancy Ass .screenrc