Screen and my .screenrc file [UPDATED]
I was introduced to Screen — a terminal multiplexer — a couple of weeks ago. When I first tried it, I was mostly annoyed and set it aside. However, it came so highly recommended that I picked it up again and forced myself to learn enough that I could use it on a daily basis:
screen -ls(list screens)screen -r(reattach)Ctl-A c(new screen)Ctl-A A(rename screen)Ctl-A <num>(switch to screen)Ctl-A d(detach)Ctl-A M(monitor for activity)Ctl-A _(monitor for silence)
After getting those commands under my belt, I was very impressed and I use screen all the time now. However, a lot of Screen’s power comes from the customization of Screen through its startup files. Good information about startup files is scattered across the web, so I’ll share what I’ve put together.
Below is my ~/.screenrc file, compiled from the information at softpanorama, from Matt Cutts, from the Screen FAQ, and from the Screen manual’s command list. I’m using this on Ubuntu 8.10 servers over at Slicehost and on my MacOSX 10.5 laptop.
UPDATE: Added more comments around the termcapinfo setting that enables scrollbars to work as expected.
# For a complete list of available commands, see http://bit.ly/jLtj
# Message to display in the status line when activity is detected in a
# monitored window.
activity "activity in %n (%t) [%w:%s]~"
# Detach session on hangup instead of terminating screen completely.
autodetach on # default: on
# When a bell character is sent to a background window, screen displays a
# notification in the message line. The notification message can be re-defined
# by this command.
bell_msg "bell in %n (%t) [%w:%s]~"
# This command controls the display of the window captions. Normally a caption
# is only used if more than one window is shown on the display.
caption always "%{= kw}%?%-Lw%?%{+b kw}%n*%t%f %?(%u)%?%{= kw}%?%+Lw%?"
# Select line break behavior for copying.
crlf off # default: off
# Select default utmp logging behavior.
#deflogin off # default: on
# Set default lines of scrollback.
defscrollback 3000 # default: 100
# If set to 'on', screen will append to the 'hardcopy.n' files created by the
# command hardcopy; otherwise, these files are overwritten each time.
hardcopy_append on # default: off
# This command configures the use and emulation of the terminal's hardstatus
# line. The type 'lastline' will reserve the last line of the display for the
# hardstatus. Prepending the word 'always' will force screen to use the type
# even if the terminal supports a hardstatus line.
hardstatus alwayslastline "%{+b kr}[ %H ] %{ky} Load: %l %-=%{kb} %c %Y.%m.%d"
msgwait 15
# Set message displayed on pow_detach (when HUP is sent to screen's parent
# process).
pow_detach_msg "BYE"
# Set the default program for new windows.
shell bash
# Default timeout to trigger an inactivity notify.
silencewait 30 # default: 30
# Change text highlighting. See http://bit.ly/11RDGZ
sorendition gK
# Do NOT display copyright notice on startup.
startup_message off # default: on
# Set $TERM for new windows. I have more luck with 'linux' than Terminal's
# default 'xterm-color' (^H problems). Comment out to use the default.
term linux
# Tweak termcap, terminfo, and termcapinfo entries for best performance.
termcap linux 'AF=\E[3%dm:AB=\E[4%dm'
termcap xterm-color 'AF=\E[3%dm:AB=\E[4%dm'
terminfo linux 'AF=\E[3%p1%dm:AB=\E[4%p1%dm'
terminfo xterm-color 'AF=\E[3%p1%dm:AB=\E[4%p1%dm'
# Allow xterm / Terminal scrollbars to access the scrollback buffer. This
# enables the behavior you'd expect, instead of losing the content that scrolls
# out of the window.
termcapinfo linux ti@:te@
termcapinfo xterm-color ti@:te@
# Use visual bell instead of audio bell.
vbell on # default: ???
# Message to be displayed when the visual bell is triggered.
vbell_msg " *beep* "
Diverse interests
The top four entries of my blog have remained extremely consistent over time. Arranged alphabetically, they are:
- CouchDB on MacOSX Leopard
- Flex 3 addChild() and initialize()
- iPhone OpenGL ES [UPDATED]
- Tivo Series2 First Setup Without Phone Line
- TypePad and SquareSpace
What strikes me about this list is that the subjects are very diverse, but thematically they are all help guides: I have learned something and I share it in hopes that it will be useful to other people. Look for more entries like that in the coming months.
I myself wrote this
Tonight I found myself trying to decide between “me” and “myself” while writing an email. My usual heuristics failed me, so I decided it was finally time to learn the grammatical underpinnings of “myself” and know with certainty which word should be used in which contexts. I headed over to the excellent Grammar Girl blog and found an article about the appropriate uses of myself. If you’ve ever been tripped up with any English grammar, check out Grammar Girl.