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.