Para mi segundo post.. ..voy a mostrarles (algo que para algunos quizás les resulte bastante inútil) como cambiar el color de mi protector de pantalla (salvador de pantalla, screensaver) favorito sobre xscreensaver, GLMatrix, el cual que si no lo conocen es simulador de los típicos símbolos cayendo por el monitor al estilo Matrix con lindos efectos 3D. Acá una imágen:
Como soy bastante molesto, y mi computadora está personalizada con los colores negro y el característico azul de Arch Linux (el cual queda estupendo con mi teclado con retroiluminación de color azul xD).. ..el típico color verde de Matrix, no me combina (o como se diría por acá y entre niños, no pega ni con moco).
Para lograr esto, vamos a meter mano en el código fuente del xscreensaver, no se asusten los no experimentados, es simple, y los voy a guiar paso a paso para que lo logren; con esto quiero decirles, que no les voy a dejar las cosas ya masticadas, sino que la idea es que se copen y metan mano..sin miedo.
Manos a la obra..
1- Descargar código fuente de xscreensaver.
Podemos entrar a la página del xscreensaver, y descargamos la última versión del source code (código fuente).
O lo podemos descargar directamente desde la terminal con wget, siempre sabiendo la version del mismo, en este caso 5.20:
$ wget http://www.jwz.org/xscreensaver/xscreensaver-5.20.tar.gz
Lo descomprimimos:
$ tar -xf xscreensaver-5.20.tar.gz
2- Verificar sus dependencias.
Vamos a verificar que tenemos los paquetes necesarios para que se pueda usar el xscreensaver, para esto utilizaremos el ‘configure’. Hay que prestar atención a la salida (output) que nos den, para saber si nos falta algún paquete, o hay algún error. De faltar algún paquete, busquenlo y descarguenlo (puede ser por medio de synaptics, apt, pacman, etcétera – dependiendo de gustos y distros).
-Ingresamos a la carpeta recién descomprimida:
$ cd xscreensaver-5.20/
Ejecutamos lo siguiente:
$ ./configure
3- Verificamos correcto funcionamiento.
De no faltar ningún paquete, ni haber ningún error; procedemos a instalar el xscreensaver, para verificar que funcione correctamente.
Ejecutamos:
$ make
Si no hay errores en el make, como usuario ‘root’ lo instalamos:
# make install
Probamos:
$ xscreensaver-demo
4- Modificar /hacks/glx/glmatrix.c
Habran con su editor de texto favorito (vim, nano, gedit, etc) en mi caso vi, el archivo que vamos a modificar en este caso:
$ vi ./hacks/glx/glmatrix.c
Tienen que encontrar un bloque con la siguiente forma:
{
unsigned long p = XGetPixel (xi, x, y);
unsigned char r = (p >> rpos) & 0xFF;
unsigned char g = (p >> gpos) & 0xFF;
unsigned char b = (p >> bpos) & 0xFF;
unsigned char a = g;
g = 0xFF;
p = (r << rpos) | (g << gpos) | (b << bpos) | (a << apos);
XPutPixel (xi, x, y, p);
}
Y agregamos de la siguiente manera el color deseado:
{
unsigned long p = XGetPixel (xi, x, y);
unsigned char r = (p >> rpos) & 0xFF;
unsigned char g = (p >> gpos) & 0xFF;
unsigned char b = (p >> bpos) & 0xFF;
unsigned char a = g;
r = 0x71;
g = 0x93;
b = 0xD1;
p = (r << rpos) | (g << gpos) | (b << bpos) | (a << apos);
XPutPixel (xi, x, y, p);
}
Siendo en Hexadecimal RGB (red-green-blue)
Por ejemplo, el característico azul de Arch Linux es el: #1793D1, quedando:
r = 0x71;
g = 0x93;
b = 0xD1;
Guardamos los cambios.
5- Recompilamos el nuevo xscreensaver con el glmatrix modificado.
En este punto haremos prácticamente lo mismo que en el punto 2, pero esta vez para plasmar los cambios que hicimos.
Ejecutamos:
$ make clean
Luego:
$ make
Si no salió ninguna clase de error en el make, como usuario ‘root’ ejecutamos:
# make install
6- Ejecutamos, verificamos, configuramos y disfrutamos.
Ejecutamos:
$ xscreensaver-demo
En la lista elegimos GLMatrix:
Y en la presentación debería ya verse del color que eligieron.
Configuren a gusto..y disfruten
7- Algunos ejemplos de distintos colores. (+ TIP)
TIP: para saber un color en Hexadecimal utilizo GIMP, abrimos la paleta de colores y figura como «Notación HTML». También podemos apretar la ‘o‘ y tomar el color de una imágen para saber cual es su color en Hex.
Espero hayan disfrutado tanto como yo en intentarlo y escribirlo.. Cualquier duda no duden en consultar..
Happy hacking..