Gconf

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. 1_thmb.jpg. 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 ;)
"

2_thmb.jpg
Dodaj nową wypowiedź
lub Zaloguj się jako użytkownik serwisu Wikidot.com
(nie będzie opublikowany)
- +
O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-NonCommercial 3.0 License