Nastavenia pomocou GConf
V okamžiku, keď sa stretnete so správou servera s grafickým rozhraním, ktoré používa viacero používateľov, skôr alebo neskôr narazíte na problém centrálnej správy nastavení grafického prostredia. Pre prostredie Gnome je to možné prostredníctvom démona GConf. Ako ho však používať?
Obsah článku
Pri prvých pokusoch s nastavovaním prostredia Gnome si iste naštudujete, že existujú tri úrovne nastavení, a to používateľské, ktoré sú platné len pre daného používateľa a systémové, ktoré môžu byť predvolené (teda, východzie nastavenia, ktoré si používateľ môže zmeniť) alebo povinné (ang. mandatory), ktoré si používateľ zmeniť nemôže.
Narazíte však aj na jeden problém, ktorým je štruktúra databázy gconf, ktorá je veľmi podobná štruktúre registrov Windows tým, že sa vyznačuje stromovou organizáciou dát. V tejto stromovej štruktúre býva zo začiatku problém sa vyznať a hlavne zapamätať si v tomto strome nastavení tie správne cesty. Zdržím sa hodnotenia, či je to dobre alebo zle. Namiesto toho ukážem spôsob ako sa v tom zo začiatku vyznať prostredníctvom štandardných nástrojov príkazového riadku.
Rada
Tento postup väčšinou nebudete potrebovať pri zmene používateľských nastavení a dokonca sa bez neho zaobídete aj pri zmene tých systémových, ak vás ale nebaví neustále klikanie a rozhodnete sa použiť na prácu práve nástroj gconftool, možno tento príklad postupu nastavenia veľkosti písma pre všetkých používateľov oceníte.
Na začiatku mám novú inštaláciu systému Debian GNU/Linux, kde mi nevyhovuje nastavenia písma, pretože je podľa môjho názoru veľmi malé (10 pt) a chcem aby tieto písma boli nastavené na veľkosť 12, a tiež chcem nastaviť spôsob vyhladzovania písiem pre LCD. Takže cieľ je jasný, a pre používateľa jednoduchý, pretože si spustí z ponuky
, v ktorom je záložka Písmo. Táto záložka obsahuje všetky dostupné (a vlastne i potrebné) nastavenia písiem na jednom mieste, takže si písma nastavím podľa svojej predstavy, napríklad takto:
Po nastavení vlastností písma, ostáva nájsť, kde sa tieto nastavenia skrývajú v databáze démona gconf. Samozrejme možno použiť viacero spôsobov, ja mám najradšej grep, takže vyhľadám kde je nastavenie typov písma:
grep -lri "monospace 12" .gconf/* | xargs -L1 dirname
.gconf/desktop/gnome/interface
grep -lri "sans bold 12" .gconf/* | xargs -L1 dirname
.gconf/apps/metacity/general
grep -lri "sans 12" .gconf/* | xargs -L1 dirname
.gconf/apps/nautilus/preferences
.gconf/desktop/gnome/interface
Výsledkom môjho hľadania sú tri adresáre, v ktorých je nastavenie
uložené v súbore s menom %gconf.xml
, teda v súbore XML. Na prácu s
gconftool nie je potrebné meno adresára .gconf
, zato však je
potrebné vedieť meno vlastnosti, ktoré zistím vypísaním obsahu spomínaných
súborov v adresároch, ktoré som získal, napríklad:
.gconf/desktop/gnome/interface/%gconf.xml
<?xml version="1.0"?>
<gconf>
<entry name="monospace_font_name" mtime="1278233115" type="string">
<stringvalue>Monospace 12< /stringvalue>
</entry>
<entry name="document_font_name" mtime="1278233079" type="string">
<stringvalue>Sans 12< /stringvalue>
</entry>
<entry name="font_name" mtime="1278233062" type="string">
<stringvalue>Sans 12< /stringvalue>
</entry>
</gconf>
V ostatných súboroch sú zvyšné mená a je možné ich nájsť podobným spôsobom, takže výsledkom je cesta k nastaveniu, tvorená spojením oboch tučne zvýraznených časti (v tomto a predchádzajúcom výpise).Ďalším krokom, po zistení ciest a mien vlastností je preverenie, či som zistil správne parametre pomocou vypísania si obsahu nastavenia. Príklad uvediem pre vypísanie nastavenia písma pre ikony na ploche, k čomu potrebujem vedieť práve cestu k nastaveniu a jeho meno, o samotné vypísanie hodnoty sa postará voľba –get príkazu gconftool:
gconftool --get /apps/nautilus/preferences/desktop_font
Sans 12
Vidím, že som zistil tie správne informácie, a tak môžem pristúpiť k nastaveniu, pomocou rovnakého nástroja. Najjednoduchšie je použitie nástroja pre používateľské nastavenia, o čo sa postará voľba –set, ktorej je ešte potrebné zadať typ parametra. V našom prípade sú všetky parametre typu string (ďalšími možnosťami sú napríklad int, či bool), takže nastavenie písma plochy by pomocou nástroja gconftool mohlo vyzerať takto:
gconftool --set --type string /apps/nautilus/preferences/desktop_font "Sans 12"
Spustením tohoto príkazu som síce nič nezmenil (pretože som znova
nastavil to čo tam už nastavené bolo), ale poslúžil ako ukážka zápisu
príkazu. Rovnaký zápis poslúži aj pre nastavenie predvolených a
povinných hodnôt, je mu však potrebné ešte pridať cestu k úložisku
(databáze) nastavení. Obe databázy sú v adresári /etc/gconf/
, pričom
predvolené sú nazvané gconf.xml.defaults a povinné zase
gconf.xml.mandatory
. Takže podľa toho, ako zadám cestu k databáze,
rozhodnem, či nastavujem predvolené alebo povinné nastavenia. Táto
voľba (medzi povinnými a predvolenými) ja na každom samostatne, ja
dávam prednosť nastaveniu predvolených hodnôt, čím umožňujem
používateľom neskoršiu zmenu podľa ich vlastných potrieb. Príkaz pre
nastavenie predvolenej hodnoty písma plochy teda môže vyzerať takto:
gconftool --direct \
--config-source xml:readwrite:/etc/gconf/gconf.xml.defaults \
--set --type string /apps/nautilus/preferences/desktop_font "Sans 12"
Len pre istotu pripomínam, že tento príkaz už treba spustiť s príslušnými právami, najčastejšie ako root, pretože inak je výsledkom siahodlhé chybové hlásenie, ktoré však možnosť nedostatočných práv pre zápis nespomína…
Po nastavení predvolenej hodnoty, už moje lokálne nastavenia potrebné nie sú a tak ich zmažem, tentokrát už zase ako bežný používateľ, pomocou voľby –unset:
gconftool --unset /apps/nautilus/preferences/desktop_font
Záver
Na záver už len krátku poznámku, že nastavenia konfiguračného démona možno meniť pomocou grafického nástroja gconf-editor. Tento nástroj umožňuje (ak máte dostatočné práva) meniť aj predvolené, či povinné nastavenia, ale kto bude klikať myšou, keď môže ťukať do príkazového riadku, že? Alebo inými slovami, urobiť si skript s príkazmi je oveľa jednoduchšie ako to isté pomocou skriptu, ktorý kliká myšou…