7.20. Konfiguracja Window Makera

Window Maker jest menedżerem okien mogącym zastąpić KDE. W porównaniu z nim charakteryzuje się dużo większą szybkością działania i mniejszym zapotrzebowaniem na zasoby komputera. Warto więc rozważyć jego stosowanie w instalacjach, gdzie pojawiają się problemy z wydajnością stosowanego sprzętu lub przepustowością sieci (zwłaszcza przy stosowaniu X terminali). Poza tym jest stabilniejszy od KDE w sytuacji, gdy korzysta z niego na raz wielu tak samo zalogowanych użytkowników (sytuacja taka prowadzi często do załamania stabilności KDE w wersji 3). Ma także logiczny, łatwy do edycji schemat plików konfiguracyjnych.

W porównaniu do przestarzałego już IceWm'a Window Maker nie wymaga specjalnych zasobów polonizacyjnych, oferuje wsparcie dla mechanizmów wykorzystywanych przez programy napisane dla KDE lub Gnome, poza tym dobrze integruje się z kdm. Wadą jest wygląd i zachowanie odbiegające nieco od KDE czy desktopu Windows. Po przyzwyczajeniu się może się jednak podobać i okazuje się całkiem wygodny.

WindowMaker jest dostępny standardowo w dystrybucjach RedHata od wielu wersji, nie wymaga więc oddzielnej instalacji.

Poniższy opis nie obejmuje wszystkich zagadnień związanych z konfiguracją WindowMakera, skupia się na elementach potrzebnych w jego współdziałaniu z systemem SZARP.

Aby umożliwić użytkownikom korzystanie z WindowMakera jako alternatywnego menedżera okien, należy wykonać kilka prostych kroków. Zakładam, że system uruchamiany jest w runlevelu 5 i kdm jest skonfigurowany w sposób typowy dla instalacji systemu SZARP. Wystarczy zalogować się jako root, uruchomić Centrum Sterowania, po czym wybrać System, Menadżer Logowania i zakładkę Sesje. W polu obok napisu Typ sesji wpisujemy windowmaker lub wmaker (to musi być nazwa programu wykonywalnego menedżera okien, różna w różnych wersjach) i naciskamy przycisk Dodaj. Innym sposobem jest ręczna edycja pliku /etc/kde/kdm/kdmrc i dodanie wpisu windowmaker lub wmaker do parametru SesionsTypes. Powyższy sposób działa dla RedHatów 7.X i późniejszych oraz Debiana. Dla wcześniejszych wersji należy zadbać, aby windowmaker był uruchamiany w pliku .Xsessions odpowiednim dla używanego menedżera logowania (np. kdm lub xdm).

Od tej pory użytkownicy przy logowaniu przez kdm będą mieli dostępny wśród typów sesji typ windowmaker. Należy zwrócić uwagę, że kdm zawsze loguje użytkownika domyślnie z ostatnio użytym typem sesji, a więc po jednokrotnym użyciu WindowMakera będzie on używany domyślnie, dopóki użytkownik przy starcie nie wybierze innego typu sesji.

Rzeczą którą możemy chcieć skonfigurować w WindowMakerze jest menu aplikacji pojawiające się po kliknięciu prawym przyciskiem myszki. Istnieje specjalny program do konfiguracji tego menu, ale lepiej i prościej jest chyba robić to bezpośrednio przez edycję pliku.

Jeżeli chcemy zmienić domyślnie instalowane dla każdego użytkownika menu należy wyedytować plik /usr/X11R6/share/WindowMaker/plmenu.pl (położenie tego pliku może być inne dla wcześniejszych wersji). Format tego pliku jest bardzo prosty, składa się z zagnieżdżonych nawiasów opisujących kolejne poziomy menu (wtedy po nazwie menu i przecinku występuje nawias z zawartością podmenu) lub komendy do wykonania (wtedy po przecinku mamy słowo Exec, przecinek a potem w cudzysłowie komendę do wykonania).

Oto przykładowa zawartość pliku konfiguracyjnego:

("WindowMaker",
  ("Informacja",
    ("Informacja o WMaker...", INFO_PANEL),
    ("Legalność...", LEGAL_PANEL),
    ("Konsola Systemu", EXEC, "xconsole"),
    ("Obciążenie Systemu", EXEC, "xosview || xload"),
  ),
  ("Konfiguracja",
  	("Edycja menu", EXEC, "xterm -T 'Edycja menu' -e vi \
		$HOME/GNUstep/Library/WindowMaker/menu"),
	("Ustawienie fontów", EXEC, "xterm -T 'Ustawienie fontów' -e vi \
		$HOME/GNUstep/Defaults/WMGLOBAL"),
  )
)

Przy pierwszym użyciu WindowMakera przez danego użytkownika w jego katalogu domowym tworzony jest podkatalog GNUstep/Defaults. W katalogu tym znajduje się plik WMRootMenu z konfiguracją menu w podanym powyżej formacie. Alternatywnie, menu w starszym, mniej eleganckim, ale bardziej elastycznym formacie, może być umieszczone w innym pliku. Ścieżkę do niego podajemy w cudzysłowie w pliku WMRootMenu.

W pakiecie z WindowMakerem znajduje się program wmenukde.pl, służący do konwersji istniejącego menu KDE do postaci używanej przez WindowMakera. Np. aby stworzyć plik zawierający menu systemu SZARP, należy wydać komendę wkdemenu.pl -d /usr/share/applnk/SZARP i przekierować jej wyjście do pliku, np. /etc/szarp/wmszarp.menu. Następnie w katalogach domowych użytkowników należy w plikach GNUstep/Default/WMRootMenu umieścić w cudzysłowie ścieżkę do pliku, np. "~/GNUstep/Library/WindowMaker/menu", w którym należy umieścić wywołanie podmenu w postaci:

("External Menu", OPEN_MENU, "/etc/szarp/wmszarp.menu"),
Wersja skryptu wkdemenu rozprowadzana w dystrybucjach do RedHata 7.3 włącznie (a może i później) posiada sporo błędów. Dlatego zaleca się używanie zmodyfikowanej wersji, dostępnej w katalogu script w dystrybucji SZARPa.

WindowMaker automatycznie wykrywa zmiany w swoich plikach konfiguracyjnych, także automatycznie te zmiany zapisuje. Może to powodować problemy w sytuacji, jeśli jest uruchomionych kilka kopii programu dla tego samego użytkownika (sytuacja taka jest częsta jeśli na kilku terminalach z Windows użytkownicy korzystają z tego samego użytkownika na serwerze). W takiej sytuacji kolejne kopie programu wmaker powinny być uruchamiane z parametrem --static. Rozwiązaniem jest skopiowanie pliku /usr/bin/wmaker do /usr/bin/wmaker.bin i utworzenie skryptu /usr/bin/wmaker o następującej zawartości:

#!/bin/bash

[ -d $HOME/GNUstep ] || wmaker.inst

if ps axw | grep 'wmaker.bin' ; then {
	/usr/bin/wmaker.bin --static "$@"
} else {
	/usr/bin/wmaker.bin "$@"
} fi
Instalację menu WindowMakera zawierającego odpowiednie pozycje dla systemu SZARP i zainstalowanie powyżej opisanego skryptu w systemie RedHat 7.3 może być wykonane także przez wywołanie komendy make wmmenu w podkatalogu resources w katalogu ze źródłami SZARPa.

Więcej informacji można znaleźć w plikach w katalogu /usr/share/doc/WindowMaker i /usr/X11R6/share/WindowMaker lub odpowiednich (dokładne ścieżki mogą się trochę różnić zależnie do wersji).