These scripts take care of running programs for you, based on the special keys on some keyboards. Relies on X version 4. It looks at the log files to see "unreported scancodes". Hopefully - these scancodes will continue to be reported in later versions :) This is evil, but it works :) Install in /usr/local/bin or somewhere, and run as yourself (not root!) upon starting your X session. You will need to hack into these scripts to put in the correct pathnames, and you will need to run "showkey -s" outside X to get the different scancodes for the buttons of interest (or just look at the X logs -- easier!) runteststart takes care of starting the session. Create symlinks in the install directory: for i in 0 1 2 3 4 5 6 7 8 9 ; do echo runtest$i ln -s runtest$i runtest done runteststart It kills any session that was started on a different X session on the same vt number. (This only runs locally, BTW!). I just realised this may not be quite necessary, but Oh well - it works :) The reason for the symlinks is so that we can have a unique name for each X session on each different console (DISPLAY=:0, :1, :2 etc) Why dont I do this by setting $0 as appropriate? Because this gets overwritten if and only if the script is COMPLETELY swapped out. i.e RSS == 0 This is all so you dont end up running multiple copies of the script on one X session => bad! (You may suddenly find you open 10 xterms :-) Scripts may die if for you: Dont have tailf installed. Nay, I just realised I hacked my version of tailf. You can use tail -f instead, but this is slightly slower and yet still busier, because it keeps reopening the file) My version of tailf took a second numeric argument which tells it not to print 10 lines out upon startup. My source is included, else role your own. The script that takes care of running the commands is runtesttconnors. Substtute your name as appropriate :), and change the scancodes to suit your keyboard. Also have a look at the comments in the top of runtesttconnors and runtest, and scripts in http://...../../scripts/ and ../music/