Download: CoverStory_gconf

Transkrypt

Download: CoverStory_gconf
GConf
COVER STORY
Używanie ukrytych ustawień GNOME
Bez zabezpieczeń
Gdzie się podziały wszystkie opcje?
To pytanie często zadają sobie użytkownicy GNOME, otóż większość
z nich została dobrze ukryta i dostępna jest jedynie za pośrednictwem edytora GConf. Artykuł
pokazuje, gdzie ich szukać.
ANDREA MÜLLER
N
ieco chaotyczny i niezorganizowany, ale wysoce konfigurowalny –
konstelacja ta była w przeszłości
przyczyną niezwykłej popularności środowiska GNOME wśród hackerów i zapaleńców.
Wersja 2.0 dokonała wielkiego zwrotu. Projekt GNOME ustanowił setki opcji i zaimplementował wytyczne interfejsu użytkownika
(ang. Human Interface Guidelines, HIG –
Ramka 1). Wszystko to przyczyniło się do
wzrostu funkcjonalności i użyteczności.
Zniszczenie pod kontrolą
nu Pomoc /
Zawartość w aplikacji GNOME uruchomionej
spod KDE może być przyczyną frustracji dla
niczego nie spodziewającego się użytkownika.
Na szczęście programiści nie zaniechali tej
cechy. Została ona tylko usunięta z menu i przeniesiona do edytora GConf. Jest to miejsce,
w którym można odnaleźć wszystkie niezbędne opcje konfiguracyjne.
Red Hat Linux jest jedyną dystrybucją, która domyślnie instaluje to praktyczne narzędzie. Mandrake 9.0 i 9.1 instaluje je dopiero
wraz z meta-pakietem gnome2. Użytkownicy
SuSE Linux nie mają innego wyboru, jak zainstalować go ręcznie, nawet jeśli GNOME jest
w pełni zainstalowany na ich dyskach.
Chociaż ich cele mogą być godne pochwały,
wielu doświadczonych użytkowników uważa, że programiści posunęli się trochę zbyt
daleko. Używającym menadżera plików Nautilus w desktopie innym niż GNOME, na
pewno nie jest obcy fakt nadpisywania istPrawie jak Regedit
niejącego desktopu desktopem Nautilusa.
Kiedy zostanie uruchomione narzędzie konW przeszłości użytkownicy mogli zwyczajfiguracyjne, przez podanie komendy gconfnie wyłączyć opcję Nautilus to draw the deeditor &, niech nie zniechęca nas ostrzeżenie
sktop. Obecnie, jeśli uruchomimy Nautilupokazane na Rysunku 2. Program jest stabilsa bez poświęcenia mu pany, a jeśli nawet popełnimy
ru chwil uwagi, zostanie on
pomyłkę podczas modyfipo prostu przeniesiony do
kacji jakiejś opcji, zawsze
GNOME.
można powrócić do ustaRysunek 1: Dwa z trzech przywień domyślnych.
Nawet jeśli przyjmiemy
cisków w tym oknie dialogoopcję --no-desktop podczas
wym są nadmiarowe.
Wygląd aplikacji przyuruchamiania Nautilusa z lipomina edytor Rejestru
nii poleceń, ciągle możemy spotkać się z nieWindows. Struktura drzewa z lewej strony
miłą niespodzianką. Nautilus jest często rejezawiera tzw. klucze i podklucze. Wartości
strowany jako Przeglądarka pomocy dla prowyświetlane są po prawej stronie. Wszystkie
gramów GNOME i niewinne wywołanie z mewprowadzane dane są stosowane ze skut-
kiem natychmiastowym i zapisywane do bazy danych konfiguracji użytkownika. Baza
jest przechowywana w formacie XML w katalogu ~/.gconf.
Klucze zawierające wartości są przechowywane w indywidualnych plikach. Na przykład ~/.gconf/apps/nautilus/preferences/%gconf.xml zawiera bieżące ustawienia managera
plików GNOME. Dodatkowo, oprócz
bazy danych użytkownika istnieją
ustawienia globalne, które stosowane są
przy pierwszym uruchomieniu GNOME.
Są one przechowywane w pliku
/etc/gconf/gconf.xml.defaults. SuSE Linux
w wersji 9 zachowuje się w trochę odmienny sposób i przechowuje wartości domyślne
w
/etc/opt/gnome/gconf/gconf.xml.defaults. SuSE 8.2 wykorzystuje natomiast do
tego celu katalog /etc/opt/gnome2/gconf.
Jeśli kompilujemy GNOME samodzielnie,
należy szukać ustawień domyślnych
w usr/local/etc/gconf.
Chociaż XML jest formatem tekstowym, to
jednak czytanie dokumentów XML jest raczej
trudne. Każde ustawienie składa się z tagu
w nawiasie trójkątnym, który zawiera m.in.
typ i wartość ustawienia (Rysunek 3). Ścieżka
w pliku XML zawsze odpowiada ścieżce używanej w edytorze GConf. Preferencje interfejsu graficznego Nautilusa są przechowywane
np. w kluczu /apps/nautilus/preferences.
Element odpowiedzialny za wyświetlanie
desktopu nazywa się show_desktop. Usunięcie
zaznaczenia prowadzi do zaprzestania wyświetlania desktopu przez menadżera plików, powodującego często niezłe zamieszanie. Zamknięcie edytora GConf oznacza zapisanie
modyfikacji do odpowiedniego pliku XML.
Przywracanie
Menu Narzędzia
Klucze apps i desktop są typowym punktem
startowym, zawierającym wiele różnych
ukrytych kluczy. apps jest miejscem, w którym można konfigurować sposób, w jaki zachowują się aplikacje GNOME. Oprócz
rdzennych aplikacji instalowanych ze środowiskiem GNOME, znajduje się tutaj duża
liczba programów opcjonalnych GNOME,
www.linux-magazine.pl
Kwiecień 2004
19
COVER STORY
GConf
np. edytor HTML –
screem. Klucz desktop
z kolei to obszar przechowujący domyślne
ustawienia desktopu,
niezależne od aplikacji.
Często dużym utrudnieniem jest dopasowanie odpowiedniego klucza do konkretnej właściwości. W takich przypadkach pomocny okazuje się opis kluczy. Na
przykład klucz desktop/gnome/backgroRysunek 2: Używasz na własną odpowiedzialność, itd.
und/picture_filename
– ostrzega edytor GConf.
wskazuje na obraz używany jako tapeta w desktopie GNOME.
W odróżnieniu od
opcji „show_desktop”,
nie ma tutaj prostego
wyboru tak/nie. Zamiast tego należy podać
pełną ścieżkę do żądanego pliku. W tym celu
klikamy na picture_filename w kolumnie VaRysunek 3: GNOME używa plików w formacie XML do przechowywalue i wpisujemy nazwę
nia swoich danych konfiguracyjnych.
pliku w miejscu znaku
zachęty (Rysunek 4). Można też kliknąć bezopcja robi. Jeśli docstring istnieje, edytor
pośrednio na polu wprowadzania. SpowoduGConf wyświetli go w prawej dolnej części
je to, że edytor GConf uruchomi okno dialoekranu (Rysunek 6).
gowe, w którym będzie można dokonać moPrzeglądanie drzewa struktury umożliwia
dyfikacji (Rysunek 5).
podgląd opcji niedostępnych w menu aplikaJeśli nazwa opcji sama w sobie nie wyjaśnia
cji. Tabela 1 zawiera ich krótki wybór. W celu
jej przeznaczenia, być może istnieje skojarzoułatwienia nawigacji można przydzielać zany z nią tzw. docstring – krótki opis tego, co
kładki dla często zmienianych wartości. Służy
Ramka 1: Ulepszona funkcjonalność, zgodnie z wytycznymi interfejsu użytkownika (ang. Human Interface Guidelines – HIG)
Wytyczne interfejsu użytkownika, dostępne
pod adresem http://developer.gnome.org/
projects/gup/hig/, precyzują wymagania ergonomiczne, jakie powinny spełniać wszystkie aplikacje GNOME. Dotyczy to spójnego
układu, wyglądu menu, lokalizacji językowych i unikania właściwości, których większość użytkowników nigdy nie będzie potrzebowała ani nawet rozumiała.
Reguły użyteczności HIG oznaczają m.in.,
że oprogramowanie powinno wybierać język stosownie do typowego słownictwa
użytkownika i jeśli aktualna operacja zajmuje trochę czasu -- dostarczać informacji
mówiącej użytkownikowi, co w danej chwili
się dzieje. Wytyczne zawierają mnóstwo
20
Kwiecień 2004
do tego opcja w menu Bookmark / Add bookmark. Zakładki dodawane są natychmiast i można się do nich odwoływać
w przyszłości za pomocą analogicznej
opcji w menu – Bookmark / Keyname.
Trzech to już drużyna
Program gconf-editor nie zapisuje bezpośrednio opcji w bazie konfiguracyjnej.
Wspomaga go w tym dwóch pomocników działających w tle. Jednym z nich
jest, działający z linii poleceń gconftool2, drugim serwer konfiguracyjny gconfd.
Edytor jest tylko front-endem graficznym rzeczywistego narzędzia, jakim jest
gconftool-2 i przekazuje wprowadzone
zmiany do gconfd. gconfd pobiera modyfikacje i przekazuje je aktywnym programom. Przykładowo, pulpit wyświetlany
przez Nautilusa zniknie natychmiast,
bez potrzeby ponownego uruchomienia
menadżera plików.
Do zmiany opcji z linii poleceń można
posłużyć się narzędziem gconftool-2. Narzędzie przydatne jest zwłaszcza w systemach, które nie posiadają zainstalowanego
front-endu graficznego. Może ono być także ostatnią deską ratunku w przypadku,
gdy baza konfiguracyjna uległa zniszczeniu, np. po załamaniu systemu albo awarii
zasilania, kiedy niemożliwe jest uruchomienie
środowiska GNOME.
Konfiguracja z linii poleceń
Polecenie gconftool-2 posiada całą rzeszę
opcji, co czyni go narzędziem niezbyt intuicyjnym. Krótkie zestawienie opcji zawiera
Tabela 2. Kilka poniższych przykładów demonstruje natomiast jego możliwości.
Typowe wywołanie ma następującą postać:
gconftool-2 opcje klucz
szczegółów na temat wygląda aplikacji,
okien dialogowych i menu. Dlatego istnieje
małe prawdopodobieństwo spotkania aplikacji GNOME, której okno dialogowe posiadałoby równoczesnie przyciski OK, Apply / Zastosuj i Use / Zatwierdź.
HIG definiuje reguły
Kiedy użytkownik dokonuje zmian w konfiguracji, jak pokazano na Rysunku 1, można
przyjąć, że chciałby je zastosować natychmiast. Fakt ten spowodował istnienie nadmiarowych przycisków Apply (ang. Zastosuj)
i Use (ang. Zatwierdź). Kto potrzebuje jeszcze funkcji OK? Użytkownik spodziewa się,
że przycisk Close zrobi dokładnie to samo.
www.linux-magazine.pl
Rysunek 4: Do modyfikowania wartości wykorzystywane są pola wyboru i pola wprowadzania danych
GConf
gdzie klucz oznacza ścieżkę, którą
można podejrzeć w edytorze
GConf, z tym że bez kończących
łańcuch ukośników /.
W razie konieczności dokonania
zmian, a nie tylko wyświetlenia
zawartości kluczy, konieczne będzie podanie wartości. Klucze
wpisujemy tak, jak nazwę ścieżki
(w rzeczywistości klucze są ścieżkami w bazie konfiguracyjnej),
np.
/apps/nautilus/preferences/show-desktop. Aby wyświetlić
listę wszystkich ścieżek, można
skorzystać z polecenia gconftool-2 -all-dirs /:
COVER STORY
Rysunek 5: Przełączenie pomię-
Rysunek 6: Docstring dostarcza listę wartości związanych z wyświetla-
dzy „true” i „false” to kwestia
niem obrazu tapety.
kliknięcia.
/desktop
/apps
/system
/schemas
gconftool-2 -R /apps U
> apps-optionstxt
Parametr -a pokazuje wszystkie ustawienia
poniżej danego klucza. Polecenie gconftool2 -a /apps/file-roller/listing wyświetli bieżącą
konfigurację ustawień dla programu archiwizującego file roller. Można wyeksportować do pliku podklucze i ustawienia dla gałęzi związanej z określoną aplikacją. Jest to
przydatne np. dla celów porównawczych.
Eksport wykonuje się za pomocą poniższego polecenia:
Wygenerowany plik o nazwie apps-options.txt
można następnie wydrukować albo zwyczajnie przeglądać na ekranie (Rysunek 7).
Opcje --long-docs, --short-docs i -T wyświetlają szczegóły konkretnego ustawienia.
Pierwsze dwa pokazują tekst pomocy (o ile
jest dostępna) związanej z kluczem. Flaga T informuje natomiast o typie wartości. Informacja ta jest przydatna w razie konieczności edycji wartości.
Jako regułę kciuka możesz przyjąć, że
Tabela 1: Sekretne Ustawienia GNOME
Nazwa klucza w edytorze GConf
Efekt
/apps/file-roller/listing/show_mime_icons
Włączanie/wyłączanie ikony typu pliku w programie archiwizującym File
Roller. Kiedy opcja jest wyłączona, z każdym plikiem skojarzony jest zwykły
biały symbol.
/apps/file-roller/ui/history_len
Liczba plików w menu historii programu File Roller.
/apps/gedit-2/preferences/editor/save/save_encoding
Wskazanie strony kodowej używanej w edytorze gedit. Domyślnie jest to
UTF-8. Opcja GEDIT_SAVE_ORIGINAL_FILE_ENCODING_IF_POSSIBLE
powoduje, że gedit zapisuje tylko nowe pliki w formacie UTF-8, zachowując
stronę kodową we wszystkich innych przypadkach. Jest to szczególnie
użyteczne w razie wymiany plików pomiędzy użytkownikami.
/apps/gedit-2/preferences/ui/recents/max_recents
Liczba ostatnio otwieranych plików pokazywana w menu edytora.
/apps/gnome-search-tool/show_additional_options
Wyświetlanie rozszerzonych funkcji wyszukiwania w narzędziu wyszukiwania
(GNOME 2.4 lub późniejszy).
/apps/nautilus/desktop/home_icon_visible
Określa, czy wyświetlać ikonę katalogu domowego na pulpicie (GNOME 2.4
lub późniejszy).
/apps/nautilus/desktop/trash_icon_visible
Włączenie lub wyłączenie wyświetlania ikony kosza na pulpicie (GNOME 2.4
lub późniejszy).
/apps/panel/global/confirm_panel_remove
Wyłączenie okna dialogowego z zapytaniem o potwierdzenie, przed
usunięciem panelu.
/apps/gnome-session/options/show_splash_screen
Określenie, czy GNOME powinien wyświetlać ekran powitalny (ang. splash
screen) podczas uruchamiania.
/apps/gnome-session/options/splash_image
Ścieżka do obrazka wyświetlanego na ekranie powitalnym.
/desktop/gnome/file-views/show_backup_files
Wyświetla nazwy plików kończące się znakiem tyldy (~). Wiele programów
używa tego typu nazw dla plików kopii. Pliki zaczynające się kropką pozostają
nadal ukryte.
/desktop/gnome/file-views/show_hidden_files
To samo w odniesieniu do plików zaczynających się kropką.
ścieżki zawsze są typu string, a wartości
true/false zawsze typu bool. Popatrzmy na
poprzedni przykład: opcję określającą, czy
Nautilus powinien wyświetlać desktop. Istnieją także typy int (liczby całkowite), float
(liczby zmiennoprzecinkowe) i list (listy).
Przykładem listy może być /apps/panel/default_setup/general/toplevel_id_list. W tym
przypadku wybierany jest panel, który będzie uruchamiany przez GNOME.
SŁOWNICZEK
Meta-p
pakiet: Pakiet RPM, który nie zawiera żadnych plików, a jedynie zależności pomiędzy innymi pakietami. Pozwala to instalować całe grupy programów, takie jak
np. grupa wymagana do zapewnienia poprawnej pracy desktopu GNOME, wybierając tylko jeden pakiet do zainstalowania.
XML: Extended Markup Language ma
składnię podobną do HTML, ale znacznie
szerszy zakres funkcjonalny. Można opisywać zarówno strukturę jak i formatowanie
dokumentu, używając tagów składniowych,
np. <City>London</City>. Opis związany
z elementem zamkniętym tagami może być
przetwarzany przez program, który potrafi
zinterpretować składnię dokumentu.
UTF-8
8: Strona kodowa uwzględniająca
większość alfabetów używanych na całym
świecie. Aplikacje, które potrafią obsługiwać Unicode, mogą wyświetlać znaki cyrilicy, azjatyckie i środkowoeuropejskie
bez potrzeby określania przez użytkownika konkretnego alfabetu.
Splash screen: Ekran powitalny, wyświetlany
przez niektóre aplikacje podczas uruchamiania. Ekran zawiera zazwyczaj logo i informacje o numerze wersji. Ekrany powitalne posiadają między innymi GNOME, KDE,
Quanta, OpenOffice i sterowniki nVidia.
www.linux-magazine.pl
Kwiecień 2004
21
GConf
COVER STORY
Czas na zmiany
Trzeba wiedzieć, że spowoduje to usunięcie
wszystkich preferencji. Przed dokonaniem
tego drastycznego kroku trzaeba więc upewnić się, że posiadamy kopie pliku /home/username/.gconf w bezpiecznym miejscu. W razie
potrzeby możliwy będzie szybki powrót do
stanu sprzed zmiany.
Po odkryciu nazwy i typu klucza oraz dokładnym upewnieniu się co do jego roli, czas
na wprowadzenie zmian. Można np. wprowadzić następującą zmianę, powodującą, że Nautilus przestanie wyświetlać desktop:
gconftool-2 -t bool -s /appsU
/nautilus/preferencesU
/show_desktop false
Na krótkiej smyczy
Parametr -t bool informuje gconftool-2 o typie
wartości. -s oznacza, że zamierzamy ustawić
wartość opcji – w tym przypadku false. Wybranie true zamiast false przywróci poprzednie zachowanie.
Poniższe polecenie
gconftool-2 -t int -s /appsU
/nautilus/preferencesU
/directory_limit 10000
zwiększa maksymalną liczbę plików, które
może wyświetlić Nautilus do 10000 (GNOME 2.4 nie posiada domyślnie ograniczeń,
GNOME 2.2 natomiast posiada górny limit 4000 plików). Za pomocą następnego
polecenia
gconftool-2 -t string /appsU
/gnome-session/optionsU
/splash_image/home/andiU
/mysplash.png
Rysunek 7: Rzut oka na pełny zestaw opcji
aplikacji.
Jeszcze prostsze jest przywrócenie opcjom
wartości domyślnych. W tym przypadku nie
jest konieczne określanie żadnych wartości ani
typów. Wystarczy uruchomienie polecenia
gconftool-2 -u z nazwą odpowiedniego klucza
i załatwione. Jeśli powstało zamieszanie w ustawieniach programu, nie ma potrzeby powtarzania polecenia dla każdej opcji. Parametr -recursive-unset pozwala wyczyścić wszystkie
klucze w gałęzi, przywracając je do ustawień
domyślnych, na przykład:
gconftool-2 --recursive-unset U
/apps/nautilus
zresetuje ustawienia dla menadżera plików.
To samo może być również wykonane dla
właściwości desktopu:
możemy wymóc zastosowanie innego ekranu
powitalnego począwszy od następnego uruchomienia GNOME.
gconftool-2 --recursive-unset U
/desktop
Tabela 2: Parametry linii poleceń dla gconftool-2
Opcja
Argument
-s
Nazwa klucza Wartość
Ustanawia wartość; wymaga parametru -t.
-g
Nazwa klucza
Zapytanie o wartość.
-u
Nazwa klucza
Resetowanie rekordu.
--recursive-unset
Klucz
Resetowanie (rekursywne) wszystkich wartości związanych z kluczem.
-a
Klucz
Wyświetla wszystkie pary klucz/wartość poniżej klucza.
--all-dirs
Klucz
Wyświetla listę katalogów związanych z kluczem.
-R
Klucz
Wyświetla rekursywnie listę wszystkich katalogów i rekordów
związanych z kluczem.
-t
Typ
Ustanawia typ pliku zgodnie z żądanym argumentem
-- int, string, bool, float, list, or pair.
-T
Nazwa klucza
Zapytanie o typ wartości.
--short-docs, --long-docs
Nazwa klucza
Wyświetla krótką lub szczegółową informację o opcji.
--config-source
Baza konfiguracyjna
Określa bazę konfiguracyjną, której dotyczą operacje zapytań i zapisów.
Normalni użytkownicy posiadają tylko prawo do odczytu dla ustawień
globalnych.
--direct
22
Działanie
Modyfikuje bazę danych bez pośrednictwa serwera. Jest to wymagane do
modyfikacji każdej konfiguracji różnej od własnej, znajdującej się
w ~/.gconf; należy upewnić się, że gconfd nie jest uruchomiony
podczas dokonywania tych zmian.
Kwiecień 2004
www.linux-magazine.pl
Parametry --config-source i --direct, którym
nie przyglądaliśmy się jak dotąd bliżej, czynią łatwiejszym życie administratorów. Pozwalają mianowicie na modyfikację bazy
ustawień globalnych, znajdującej się w katalogu /etc/gconf/gconf.xml.defaults. Ma to
szczególnie sens w przypadku, gdy jako środowiska desktopowego używamy KDE
i chcemy się uchronić przed niespodziewanym uszkodzeniem desktopu spowodowanym np. uruchomieniem Nautilusa przez
użytkownika. Należy upewnić się, że gconfd
nie jest uruchomiony w czasie, gdy będziemy
modyfikować domyślną bazę, który to krok
dotyczy bezpośredniej edycji plików XML
bez uczestnictwa serwera. Kończymy wszystkie aplikacje GNOME i dodatkowo sprawdzamy przy pomocy top lub ps -e | grep
gconfd. Czasami zakończenie pracy przez
serwer może potrwać chwilę.
Teraz można modyfikować wartości globalne, na przykład:
gconftool-2 --direct -configU
-source xml:readwrite:/etcU
/gconf/gconf.xml.defaults/ -t U
bool -s /apps/nautilusU
/preferences/show_desktop false
Określenie parametru xml:readwrite: dla katalogu konfiguracyjnego jest wskazówką dla
gconftool-2 informującą o trybie korzystania
z bazy XML – dostępie zapis/odczyt. Proste
sprawdzenie wartości parametru można uzyskać za pomocą poniższego polecenia:
gconftool-2 --direct -configU
-source xml:readonly:/etc/gconfU
/gconf.xml.defaults/ -g /appsU
/nautilus/preferencesU
/show_desktop
Jest to polecenie, które mogą uruchamiać
nieuprzywilejowani użytkownicy. W Suse
Linux 9 ścieżka do bazy konfiguracyjnej
jest następująca: /etc/opt/gnome/gconf/
gconf.xml.defaults. Użytkownicy SuSE Linux 8.2 dodatkowo będą musieli zamienić
gnome na gnome2.
■