Life Codecs @ NamingCrisis.net

Ruminations. Reflections. Refractions. Code.

Jan 26, 2010 - how to software dev

GNU Screen Config

I have been using GNU Screen – an awesome terminal multiplexer – casually for quite a while now, but never really customised it much, since I still use a fair bit of GUI applications, even if I do frequent the terminal a lot. Today however I bit the bullet and set up a Screen config, nothing fancy, just a set of terms initialised to stuff I often use with proper term titles (I know, how did I live without them… since I rarely turn off my computer it’s only an issue when I do, since otherwise my term stays on). For my reference, and in case someone finds it useful, here’s the contents of my ~/.screenrc file:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Status line
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}%c %{g}]'

#
# Default screens
#

# Root shell
screen -t rootsh su

# Utility shells
screen -t sh1
screen -t sh2
screen -t sh3

# eclipse workspace shell
chdir ~/eclipse_workspaces
screen -t eclipsews

# interpreters
chdir ~
screen -t python2.6 python2.6
screen -t groovysh groovysh
screen -t scalash scala
screen -t js js

# books dir
chdir ~/documents/ebooks
screen -t ebooks

# tmp dir
chdir /tmp
screen -t tmp

# launcher shell to launch other gui programs
# allows all sorts of logging junk to stay in one shell
chdir ~
screen -t launchsh

The ‘hardstatus’ details are based on this Red Hat zine article on GNU screen. I have yet to look up in the man page what exactly each formatting code/escape strings mean, all I know is it’s a decent set-up :P.

Of course, you’ll need the relevant programs installed if you use this as is – I just need my interpreter shells running to test snippets of code in different programming languages. You can also do stuff like set-up ssh sessions, send commands to running screens – almost collaborative – haven’t explored this much.