23 mai 2012

Cum să adăugaţi imagini de fundal pentru toţi utilizatorii în Ubuntu 12.04

Ca tot omul, am descărcat şi eu Pangolinul Precis, versiunea 12.04 a sistemului de operare Ubuntu, şi l-am instalat într-o maşină virtuală: ca să văd cum arată, şi ce face. Face bine, decât că din motive obscure inginerii de la Canonical au considerat că este mai mult decât firesc ca interfaţa grafică a unui sistem de operare publicat în 2012 să aibă nevoie de accelerare hardware de parc-ar fi vreun joc cu-mpuşcături. Aşa că într-o maşină virtuală VMware merge mai încetunel, chiar încet de tot, asta după ce am reuşit să-l păcălesc că placa grafică, aia virtuală, este destul de puternică pentru a suporta marea şi inovativa interfaţă grafică Unity. (Hint: mks.enable3D = "TRUE".) Mă tem că la următoarea versiune, Ubuntu va introduce interfaţa grafică Dinity, de două ori mai nepractică decât Unity, şi apoi va urma Trinity, pe care nimeni n-o va mai înţelege, aşa cum nimeni nu-nţelege misterul Sfintei Treimi. Dar să nu divagăm mai mult decât e strict necesar, şi să revenim la problema anunţată, şi anume adăugarea de imagini de fundal disponibile pentru toţi utilizatorii.

Pangolinul vine cu 15 imagini de fundal, dintre care şase sunt zaharoase rău, cinci sunt găselniţe fotografice şi numai trei sunt plauzibile, zic eu, după părerea mea, care e individuală şi trebuie luată ca exprimând numai şi numai opinia autorului, şi aceea nesigură. Ca să duc mărturisirea până la capăt, cele trei fundaluri pe care consider plauzibile sunt Precise Pangolin de Vlad Gerasimov, Speaker Weave de Phil Jackson şi Ubuntu de echipa fără nume de la Ubuntu.

Jucându-mă cu Pangolinul mi-am pus întrebarea cum să adaug la lista imaginilor de fundal general disponibile câteva dintre favoritele mele, făcute de mine, cu aparatul de fotografiat sau cu mausul, imagini care şi-au dovedit trăinicia în decursul utilizării. Zis şi făcut, m-am gândit eu, nu poate fi prea complicat: probabil că e suficient să depistez directórul unde sunt stocate imaginile preîncărcate şi să le depun tot acolo şi pe-ale mele. Deci —
$ find /usr -name '*Pangolin*'
/usr/share/backgrounds/Precise_Pangolin_by_Vlad_Gerasimov.jpg
$ _
Nimic mai simplu, cd în /usr/share/backgrounds şi cp din /mnt/hgfs/Disk-R/Photos/Wallpapers, şi hai să văd că merge, clic dreapta pe desktop, Change Desktop Background şi ah! nici vorbă ca noile imagini să fie luate în considerare. Ptiu! c-am fost bou, este evident că o astfel de abordare simplistă nu merge decât în Windows, pe când într-un sistem de operare sofisticat, cum ar fi Ubuntu, trebuie că pe undeva se face o legătură între numele fişierului şi titlul imaginii, nu? Probabil într-un fişier XML, că doar suntem în a doua decadă a secolului al XXI-lea, când nimic nu poate fi simplu dacă poate fi rafinat:
$ dpkg-query -l *wallpaper*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
ii  ubuntu-wallpap 0.34.1         Ubuntu Wallpapers
un  ubuntu-wallpap          (no description available)
un  ubuntu-wallpap          (no description available)
un  ubuntu-wallpap          (no description available)
un  ubuntu-wallpap          (no description available)
un  ubuntu-wallpap          (no description available)
ii  ubuntu-wallpap 0.34.1         Ubuntu 12.04 Wallpapers
$ dpkg-query -W ubuntu-wallpap*
ubuntu-wallpapers    0.34.1
ubuntu-wallpapers-karmic    
ubuntu-wallpapers-lucid    
ubuntu-wallpapers-maverick    
ubuntu-wallpapers-natty    
ubuntu-wallpapers-oneiric    
ubuntu-wallpapers-precise    0.34.1
$ dpkg-query -L ubuntu-wallpapers-precise | grep '\.xml'
/usr/share/backgrounds/contest/precise.xml
/usr/share/gnome-background-properties/precise-wallpapers.xml
$ _
precise.xml este un slideshow descris în XML, bine de ştiut dar irelevant pentru moment. Relevant este precise-wallpapers.xml; din această experienţă şi din aplicarea aplicată a artei Orientale a căutării pe Internet, google-fu, rezultă că onorabilul gnome-control-center se uită în /usr/share/gnome-background-properties şi în /usr/local/share/gnome-background-properties după fişiere XML care înşiră imaginile de fundal. Numele acestor fişiere nu contează, sau poate contează, nu ştiu, dar prea puţin. Fiecare astfel de fişier arată asfel, cu câte un element <wallpaper> pentru fiecare fişier care conţine o imagine de fundal:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">
<wallpapers>
  <wallpaper>
    <name>titlu</name>
    <filename>/nume/absolut/fisier</filename>
    <options>prezentare</options>
    <pcolor>#xxxxxx</pcolor>
    <scolor>#yyyyyy</scolor>
    <shade_type>solid</shade_type>
  </wallpaper>
  ...
</wallpapers>
  • titlu este titlul imaginii afişat de gnome-control-center;
  • /nume/absolut/fişier este numele absolut al unei imagini în format JPEG sau PNG;
  • prezentare arată modul de afişare al imaginii de fundal; printre valorile acceptate se numără zoom, centered şi stretched; or fi şi altele, dar nu le-am depistat;
  • #xxxxxx şi #yyyyyy sunt culori date ca şase cifre hexa er-ge-be; la ce-s bune nu ştiu, dar am pus culoarea principală şi secundară din imagine.
Pour la bonne bouche vă spun că este bine ca numele fişierului JPEG sau PNG să nu conţină spaţii, pentru că toate-ncercările mele de a specifica un nume cu spaţii-ntr-însul al eşuat. Ca să scutesc din efort, nu merge nici backslash-spaţiu, nici &#32; nici %20.

Rămâne ca temă pentru acasă scrierea unui script care se uită într-un directór dat, sau prin lipsă în directórul curent, listează fişierele JPEG şi PNG şi generează la ieşirea standard un fişier XML de forma specificată mai sus.

Trăiască revoluţia surselor deschise!

Niciun comentariu:

Trimiteți un comentariu