Hacking «The GLMatrix»

per a mi segon post.. .. els mostraré (cosa que per a alguns potser els resulti bastant inútil) com canviar el color del meu estalvi de pantalla (salvador de pantalla, screensaver) favorit sobre xscreensaver, GLMatrix, el qual que si no el coneixen és simulador dels típics símbols caient pel monitor a l'estil Matrix amb bonics efectes 3D. Aquí una imatge:

Com que sóc força molest, i el meu ordinador està personalitzada amb els colors negre i el característic blau de Arch Linux (el qual queda fantàstic amb el meu teclat amb retroil·luminació de color blau xD).. ..el típic color verd de Matrix, no em combina (o com es diria per aquí i entre nens, no pega ni amb moc).

Per aconseguir això, anem a ficar mà al codi font del xscreensaver, no s'espanten els no experimentats, és simple, i els vaig a guiar pas a pas perquè ho aconsegueixin; amb això vull dir-los, que no els deixaré les coses ja mastegades, sinó que la idea és que es copin i fiquin mà..sense por.

Nota: no sóc cap mena d'expert.. així que qualsevol error que estigui cometent, no dubtin a dir-m'ho..

Mans a l'obra ..

1- Descarregar codi font de xscreensaver.

Podem entrar a la pàgina del xscreensaver, i descarreguem la darrera versió del codi font (codi font).

www.jwz.org/xscreensaver/download.html

O ho podem descarregar directament des de la terminal amb wget, sempre sabent la versió del mateix, En aquest cas 5.20:

 $ wget http://www.jwz.org/xscreensaver/xscreensaver-5.20.tar.gz

El descomprimim:

 $ tar -xf xscreensaver-5.20.tar.gz

 2- Verificar les seues dependències.

Verificarem que tenim els paquets necessaris perquè es pugui fer servir el xscreensaver, per això utilitzarem el 'configure'. cal prestar atenció a la sortida (sortida) que ens donin, per saber si ens falta algun paquet, o hi ha algun error. De faltar algun paquet, busqueu-lo i descarregueu-lo (pot ser per mitjà de synaptics, apt, pacman, etcètera – depenent de gustos i distros).

-Ingressem a la carpeta recent descomprimida:

 $ cd xscreensaver-5.20/

Executem el següent:

 $ ./configure

3- Verifiquem correcte funcionament.

De no faltar cap paquet, ni haver-hi cap error; procedim a instal·lar el xscreensaver, per verificar que funcioni correctament.

executem:

 $ make
Nota: el make sol trigar uns quants minuts, ja que genera tots els fitxers a .o (executables) a partir dels .c (codi), és a dir compila el paquet.

Si no hi ha errors al make, com a usuari 'Root' ho instal·lem:

 # make install
Nota: no explicaré en detall per als que no entenguin sobre què fan aquestes ordres, per a més informació busquin sobre compilació i Makefiles.

Provem:

 $ xscreensaver-demo

4- Modificar /hacks/glx/glmatrix.c

Hauran amb la seva editor de text favorit (vim, nano, gedit, etc) en el meu cas vaig veure, l'arxiu que modificarem en aquest cas:

 $ vi ./hacks/glx/glmatrix.c

Han de trobar un bloc amb la següent formulari:
{
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);
}

Es troba aproximadament a la línia 760, però buscant «a = g» haurien de trobar-lo de seguida

Y afegim de la següent manera el color desitjat:
{
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);
}

Sent a Hexadecimal RGB (red-green-blue)

Per exemple, el característic blau de Arch Linux és el: #1793D1, quedant:

r = 0x71;
g = 0x93;
b = 0xD1;

guardem els canvis.

5- Recompilem el nou xscreensaver amb el glmatrix modificat.

En aquest punt farem pràcticament el mateix que al Punt 2, però aquesta vegada per plasmar els canvis que vam fer.

executem:

 $ make clean

després:

 $ make

Si no va sortir cap mena d'error al make, com a usuari 'Root' executem:

 # make install

6- Executem, verifiquem, configurem i gaudim.

executem:

 $ xscreensaver-demo

A la llista triem GLMatrix:

GLMatrix Preview

I en la presentació ja s'hauria de veure del color que van triar.

Nota: en alguns casos, és possible que calgui reiniciar l'ordinador perquè s'efectuïn els canvis tant al Preview com quan s'executa.

Configureu a gust..i gaudeixin ;)

7- Alguns exemples de diferents colors. (+ TIP)

Color Hexadecimal: #9F03D9

Color Hexadecimal: #D41213

Color Hexadecimal: #E5E311

TIP: per saber un color en Hexadecimal utilitzo GIMP, obrim la paleta de colors i figura com «Notació HTML». També podem prémer la 'o' i prendre el color d'una imatge per saber quin és el seu color a Hex.

Espero hagin gaudit tant com jo a intentar-ho i escriure'l. Qualsevol dubte no dubtin a consultar.

Happy hacking..


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   merlin el debianita va dir

    doncs si es veu bonic i tot però no hi ha res com el clàssic color verd bon tuto salutacions.

    1.    RAW-Basic va dir

      Gràcies pel teu coment.. ..està clar que el clàssic és el clàssic..

      Però el més divertit d'això (almenys per a mi) i el que em va impulsar a fer-ho.. ..és saber que en tenir davant nostre el codi font..és com dir «tinc Linux, i com ho vull canviar. . ..puc!..»..

      Gràcies per llegir.. 😉

  2.   Mr. Linux va dir

    Excel·lent article, qui s'imaginaria que d'un tema tan elemental o senzill com és un screensaver, tindríem tota una classe de compilació, modificació i instal·lació del mateix.

    1.    RAW-Basic va dir

      Gràcies!.. ..m'alegro que t'interessi..

      Per mi va ser tota una odissea daprenentatge també ;)..

  3.   Rots87 va dir

    hi ha alguna diferència amb utilitzar:

    $ sudo pacman -S xscreensaver

    1.    RAW-Basic va dir

      Perquè parteix?.. ..si et referiu al punt 2 i 3 per verificar si funciona..en el vostre cas si uses Arch..sí, és el mateix..ja que sempre tenim l'última versió.. ..però per a altres distros potser no sigui igual.

      D'altra banda..si no descarregues el codi font.. ..no podries fer la modificació de color..que és l'objectiu d'aquest post..

      Vaig respondre la teva pregunta?..

      1.    Rots87 va dir

        ok gràcies per la dada ^_^

  4.   RafaGCG va dir

    Moltes gràcies !!
    És molt interessant el procediment.

    Salutacions!

  5.   KZKG ^ Gaara va dir

    Gràcies per l'aportació 😀

  6.   TORNADA va dir

    És possible per a vostè share modificant el model amb el color xarxa? thanks