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.

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.


Entradas relacionadas


Published

Category

admin

Tags

Contacto