dotfile
# This is a configuration file for the GNU `screen` program, version 4.00.03, a
# very, very useful program for emulating multiple terminal windows in a single
# terminal.
 
# This command sets the string to display when activity occurs in a monitored
# window.  It differs from the default string only in that a bell is sounded
# before printing the message.
activity '^GActivity in window %n'
 
# Refresh the entire display when switching windows:
allpartial off
 
# This command enables "alternate screens" so that full-screen programs run
# within `screen` will not affect any output already on the display and will
# return it to the way it was when exiting.
altscreen on
 
# This command sets the string to display when a bell is printed in a
# background window.  It differs from the default string only in that a bell is
# sounded before printing the message.
bell_msg '^GBell in window %n'
 
# Use UTF-8:
defencoding UTF-8
defutf8 on
 
# Set the number of lines to remember for scrollback to 1024:
defscrollback 1024
 
# Turn on line wrapping in all windows:
defwrap on
 
# Set the command character to ^F instead of ^A (which I need for line editing
# in bash and playing NetHack) and set the `meta' command key to 'f':
escape ^Ff
 
# Append to hardcopy files rather than overwriting them:
hardcopy_append on
 
# Don't run any special commands while inactive:
idle off
 
# Display messages for up to 3 seconds:
msgwait 3
 
# Use NetHack-style messages:
nethack on
 
# Require a password for resuming detached `screen` sessions; insert your own
# (encrypted) password here:
password dwarf
 
# Set `bash` to be the default program to run in new windows:
shell bash
 
# Set the default title of new windows to be "Shell":
shelltitle Shell
 
# Don't display the copyright notice on startup:
startup_message off
 
# Declare the terminal type as `xterm-color':
term xterm-color
 
# Use an audible bell instead of a visual one:
vbell off
 
# This command changes the keybindings in copy mode slightly to something I'm
# more comfortable with; 'S' scrolls up one screen, 's' scrolls down one
# screen, and 'v' marks the beginning or end of copied text.
markkeys ^B=S:^F=s:\040=v
 
# These commands rebind a number of keys; see the `screen` manpage for exactly
# which command means what.
bind D detach
bind G windowlist -b
bind K kill
bind L log
bind T title
bind ^C copy
bind ^F meta
bind ^G windowlist -b
bind ^P lastmsg
bind ^R command -c regions
bind ^V paste .
bind b other
bind g select
bind m monitor
 
# These keys are dangerous in their default settings and must be neutralized:
bind d
bind k
bind ^D
# Since 'F' is right next to 'D' on the keyboard, "^F^D" is very easy to
# accidentally type.
 
# Hitting ESC after ^F now cancels the `screen` command:
bind ^[
 
# These commands bind a number of keys for use in managing display regions;
# they must be preceded by "^F^R" in order to be used.
bind -c regions - resize -1
bind -c regions + resize +1
bind -c regions = resize =
bind -c regions m resize min
bind -c regions M resize max
bind -c regions | split
bind -c regions s split
bind -c regions x remove
bind -c regions O only
bind -c regions j focus down
bind -c regions k focus up
bind -c regions \^ focus top
bind -c regions 0 focus top
bind -c regions $ focus bottom
bind -c regions ^[
bind -c regions ^R stuff ^R
bind -c regions ^I focus
bind -c regions w fit