Si queremos que cada vez que aparezca el salvapantallas, lo haga
mostrando algunas líneas del código fuente del kernel por pantalla,
sólo necesitamos configurar el salvapantallas phosphor.

Lo primero es instalar el código fuente del kernel:
$ sudo apt-get source linux-source-$(uname -r)
El comando uname muestra información acerca del sistema operativo
instalado, la versión del kernel, la familia del procesador, el nombre
de la máquina o la plataforma. En mi caso, uso un kernel PAE, porque
tengo una Ubuntu de 32 bits y 4 GB de RAM, por lo que el comando
anterior no me ha ido del todo bien:
$ uname -r
2.6.38-10-generic-pae
Así que, en su lugar, he utilizado:
$ sudo apt-get source linux-2.6.38
Una vez descargado el código fuente del kernel, configuraremos
phosphor para que muestre el contenido de algún fichero. Si no tenemos
instalado phosphor, habrá que instalar el paquete
xscreensaver-data-extra.
El fichero de configuración de phosphor está en
/usr/share/applications/screensavers/phosphor.desktop:
[Desktop Entry]
Name=Phosphor
Exec=/usr/lib/xscreensaver/phosphor -root
TryExec=/usr/lib/xscreensaver/phosphor
Comment=Draws a simulation of an old terminal, with large pixels and long-sustain phosphor. On X11 systems, This program is also a fully-functional VT100 emulator! Written by Jamie Zawinski.
StartupNotify=false
Terminal=false
Type=Application
Categories=Screensaver;
OnlyShowIn=GNOME;
Para probarlo podemos ejecutar:
$ /usr/lib/xscreensaver/phosphor -program fortune
$ /usr/lib/xscreensaver/phosphor -scale 2 -delay 40000 -ticks 10 -geom '1680x1050' -program 'od -txC -w6 /dev/random'
Podemos pasarle diferentes opciones, tales como el tipo, el tamaño o la escala de la fuente a utilizar, la velocidad a la que escribe, el programa del cual debe recoger el texto, etc.
Crearemos un pequeño script, random-lines-of-code.sh, que
permita seleccionar un trozo aleatorio de un fichero aleatorio del
código fuente del kernel;
function randint() {
cat /proc/interrupts | md5sum | sed -r 's/[a-f]//g; s/^0+//; s/.{3}$//'
}
# random file
f=$(ls /usr/src/linux-2.6.38/_/_.{c,h} | shuf -n1)
# number of lines
declare -i nol=$(wc -l $f | awk '{print $1}')
# choose a random first line
declare -i first=$( echo $(randint) % $nol | bc )
# choose a random bunch of lines
declare -i offset=$( echo $(randint) % \($nol-$first\) | bc )
# first line doesn't start at 0
first=$(( first+1 ))
# last line
declare -i last=$(( first+offset ))
# show the lines of the file
cat $f | sed -n ${first},${last}p
Guardamos el script, le damos permisos de ejecución y modificamos el
fichero de configuración de phosphor para que lo ejecute. Cambiamos la
línea del Exec:
Exec=/usr/lib/xscreensaver/phosphor -root -scale 2 -program '/home/user/random-lines-of-code.sh'
En el menú Sistema > Preferencias > Salvapantallas seleccionamos
Phosphor, y listos.