Wstęp
W tym artykule chciałbym przybliżyć wam funkcje, budowę i zastosowanie narzędzia Gconf.
Gconf jest krótko mówiąc systemem przechowywania preferencji różnych programów jak również samego środowiska graficznego wbudowanym w GNOME 2. Jego poprzednikiem był gnome-config. Był to bardzo prosty system konfiguracji wykorzystujący pliki .INI. Takie rozwiązanie sprawdzało się tylko przy małych aplikacjach, dlatego już w GNOME 1.4 wprowadzono system gconf, aczkolwiek dopiero w wersji 2 zaczęto wykorzystywać nowy system na szeroką skalę. W budowie jest on troszkę podobny do rejestru systemu Windows, jednak podobieństwo jest małe i najwięcej wspólnego mają graficzne interfejsy do zarządzania kluczami.
Budowa
Wszystkie dane przechowywane są w plikach XML, które znajdują się w odpowiednich katalogach. Ustawienia pobierania są najpierw w trybie tylko do odczytu (gdy nie jesteśmy superużytkownikiem, tak zwanym rootem) z pliku /etc/gconf/gconf.xml.mandatory. Znajdują się tam siłowe, wymuszone ustawienia dla wszystkich użytkowników (słowo "mandatory" w języku angielskim oznacza "obowiązkowy"). Ustawień tych (na wszelki wypadek) nie można zmienić ani usunąć. W następnej kolejności przetwarzany jest plik $(HOME)/.gconf ( $HOME to zmienna środowiskowa oznaczająca ścieżkę do naszego folderu domowego) już w trybie do odczytu i zapisu. Na samym końcu dodawane są wartości domyślne z pliku etc/gconf/gconf.xml.defaults. Są one, tak samo jak wartości obowiązkowe, dla zwykłego użytkownika ładowane w trybie tylko do odczytu, a ich wartość zmienić może jedynie root.
Klucze podzielone są na katalogi lecz te w odróżnieniu od "regedita" mają bardzo intuicyjne nazewnictwo. Łatwo się domyśleć, że w gałęzi /apps znajdują się dane aplikacji, natomiast /system to informacje o systemie. Każdy klucz ma swój schemat, który zawiera skrócony oraz pełny opis klucza, jego domyślną wartość oraz typ wartości (int, string itp). Jest to swego rodzaju dokumentacja, bardzo przydatna dla administratorów.
Zarządzanie
W trybie tekstowym
Gconftool jest narzędziem do tekstowego zarządzania gconfem. Pozwala m.in. na pobieranie, modyfikowanie i usuwanie zarówno kluczy jak i ich wartości, instalacje schematów. Przykładowo, aby pobrać informacje o naszym motywie ikon, wydamy polecenie gconftool-2 -g /desktop/gnome/interface/icon_theme. Możemy też zmienić tapetę - gconftool-2 -t string -s /desktop/gnome/background/picture_filename /scieżka/do/tapety. Oczywiście opcji i możliwości jest dużo, aby je poznać najlepiej zapoznać się z manualem do programu gconftool-2 (man gconftool-2).
W trybie graficznym
Gconf-editor to nakładka graficzna na narzędzie gconftool. Dzięki "edytorowi konfiguracji" możemy łatwo zmieniać wartości kluczy bez wpisywania długich komend do terminala.
. Gdy uruchomimy narzędzie gconf-editor na koncie administratora lub poprzez sudo gconf-editor, będziemy mogli ustawić wartości obowiązkowe oraz zmienić wartości domyślne. Aby dokonać tego niebezpiecznego czynu (nie polecam zbyt dużej zabawy z domyślnymi ustawieniami…), należy po uruchomieniu edytora konfiguracji z menu "Plik" wybrać "nowe okno ustawień obowiązujących" (lub użyć skrótu klawiszowego CTRL+M") lub "nowe okno ustawień domyślnych" (albo CTRL+D na klawiaturze).
Tanie triki na GNOMiki ;)
Gconf-editor pozwala jak żadne inne narzędzie modyfikować system wedle własnego uznania. Poniższa tabela to ciekawy spis kluczy, których modyfikacja może dać ciekawe efekty…
| klucz/gałąź | opis i sugestie |
|---|---|
| /apps/notification-daemon/popup_location | Położenie "dymku informacyjnego". Możliwe wartości to "top_left","top_right","bottom_left" and "bottom_right" |
| /desktop/gnome/volume_manager/autoipod_command | polecenie wykonywane automatycznie po podłączeniu iPoda (zwykłego odtwarzacza mp3 firmy noname również), domyślnie uruchamiany jest rhythmbox (odtwarzacz audio). Ciekawym rozwiązaniem byłaby synchronizacja danych pomiędzy katalogiem z muzyką a odtwarzaczem muzyki |
| /desktop/gnome/url-handlers/ | W tej gałęzi przechowywane są "łapacze linków" (dziwna nazwa, ale zgadza się z funkcją). Przykładowo gdy /desktop/gnome/url-handlers/gg/command ma wartość gaim-url-handler "%s", to po kliknięciu na link gg:2813235 zostanie uruchomiony komunikator gaim z oknem rozmowy z numerem 2813235… Każda podgałąź gałęzi musi zawierać 3 klucze - command (komenda), enabled (włączony lub wyłączony) oraz needs_terminal (polecenie uruchamiane w terminalu) |
| /apps/nautilus/desktop/computer_icon_visible | Określa czy ikona "Komputer" ma się znajdować na pulpicie. |
| /apps/nautilus/desktop/*_icon_visible | Jak wyżej, analogicznie postępujemy wstawiając w miejsce gwiazdki wyraz home (folder domowy), documents (dokumenty), network (sieć) lub trash (kosz) |
| /apps/nautilus/desktop/computer_icon_name | Alternatywna nazwa dla ikonki Komputer |
| apps/nautilus/desktop/*_icon_name | Jak wyżej, analogicznie postępujemy wstawiając w miejsce gwiazdki wyraz home (folder domowy), documents (dokumenty), network (sieć) lub trash (kosz) |
| /apps/nautilus/desktop/volumes_visible | Określa czy ikonka urządzenia ma być automatycznie dodawana do pulpitu. |
| /apps/nautilus/preferences/confirm_trash | Jeśli odznaczymy, to nie będzie potrzeby potwierdzania każdej operacji przeniesienia pliku do kosza |
| /apps/nautilus/preferences/show_desktop | Możemy wyłączyć pokazywanie ikon :] |
| /apps/nautilus/icon_view/captions | Lista podpisów pod ikoną w widoku ikon lub na pulpicie. Ilość wyświetlanych podpisów zależy od stopnia powiększenia. Dopuszczalne wartości to: "size", "type", "date_modified", "date_changed", "date_accessed", "owner", "group", "permissions", "octal_permissions" i "mime_type". |
| /apps/gnome-session/options/show_splash_screen | Jeżeli odhaczymy, to nie będzie wyświetlany ekran powitalny |
| /apps/nautilus/preferences/executable_text_activation | Co robić w wykonywalnymi plikami tekstowymi kiedy są aktywowane (pojedynczym lub podwójnym kliknięciem). Dopuszczalne wartości: "launch" - uruchomienie jako program, "ask" - pytanie co zrobić poprzez okno dialogowe, "display" - wyświetlanie jako pliki tekstowe. |
| /apps/nautilus/preferences/desktop_is_home_dir | Określa, czy Nautilus użyje katalogu domowego użytkownika jako pulpitu. Jeżeli nie, wówczas jako pulpit użyty zostanie katalog ~/Desktop. |
| /apps/gnome-screenshot/include_border | Dołączanie do zrzutu ekranu ramki menedżera okien |
| /apps/gnome-screenshot/border_effect | Efekt dodawany do zewnętrznej części krawędzi przy robieniu zrzutu ekranu korzystając z domyślnego narzędzia GNOME. Dopuszczalne wartości to "shadow" (cień), "none" (brak) oraz "border". |
Na koniec wykorzystamy w praktyce istnienie gconfa. Poniższy skrypt został napisany w bashu, do poprawnego działania potrzebuje programów zenity i scrot [ten pierwszy jest domyślnie zainstalowany w Ubuntu, ten drugi musiałem zainstalować (sudo apt-get install scrot)]. Scrot to świetna aplikacja konsolowa do tworzenia zrzutów ekranu, a zenity to program do wyświetlania graficznych okienek z ustaloną przez nas zawartością. Skrypt wyświetla informacje o motywie ikon/GTK/Metacity oraz o czcionce GTK/Metacity po czym robi zrzut ekranu.
#!/bin/bash
ikony=`gconftool-2 -g /desktop/gnome/interface/icon_theme`
motyw_gtk=`gconftool-2 -g /desktop/gnome/interface/gtk_theme`
motyw_metacity=`gconftool-2 -g /apps/metacity/general/theme`
czcionka_gtk=`gconftool-2 -g /desktop/gnome/interface/font_name`
czcionka_meta=`gconftool-2 -g /apps/metacity/general/titlebar_font`
scrot %Y-%m-%d.png -q100 -d 1&
zenity --info --text "
ikony : $ikony
motyw GTK :$motyw_gtk
motyw metacity :$motyw_metacity
czcionka gtk: $czcionka_gtk
czcionka metacity :$czcionka_meta
A teraz uśmiechnij się do zdjęcia ;)
"

Komentarze