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. ■