Gdy już zainstalowałeś swoje wymarzone IceWM, to oczywiście jakoś trzeba to uruchomić. Pokażę tu kilka (a raczej dwie) możliwości załatwienia tej sprawy, może któraś zadziała u Ciebie :)
Jeżeli odpalasz środowisko graficzne przez startx, to sprawa sprowadza się do odpowiedniego spreparowania pliku ~/.xsession. Linia startująca IceWM może wyglądać na przykład tak:
exec icewm-session || exec xterm -fg red
To polecenie uruchomi icewm-session, a w razie wypadku odpali xterma, tak byś miał szansę coś jeszcze pogrzebać.
Jeśli korzystasz z jakiegoś Display Managera w rodzaju KDM czy GDM musisz przygotować mu plik konfiguracyjny tak by wiedział, że spośród różnych Zarządców Okien może wybrać również IceWM.
Najlepiej przyjrzeć się jak wyglądają już istniejące pliki z definicjami innych Window Managerów i na ich przykładzie przygotować co trzeba. Na podstawie doświadaczeń własnych i tych, którzy poświęcili się dla potomnych instalując IceWM na swoich komputerach, podaję niżej sposoby na wykonanie tego cuda w kilku dystrybucjach: Mandrake, Aurox, Slackware.
Jeżeli możesz podesłać podobne informacje na temat konfiguracji w innych dystrybucjach, to pod menu strony znajdziesz mój adres, na który możesz wysłać informacje. Wszelkie zastrzeżenia do informacji, które podaję poniżej również mile widziane.
W moim Mandrake za uruchomienie IceWM odpowiada plik /etc/X11/wmsession.d/07IceWM, który wygląda tak:
NAME=IceWM ICON=icewm-wmsession.xpm EXEC=/usr/bin/starticewm DESC=Lightweight desktop environment SCRIPT: exec /usr/bin/icewm
To wystarcza bym obok GNOME i KDE na liście wyboru w KDM miał również IceWM.
Tu niestety mam dwie wersje postępowania. Nie mogę zweryfikować, która jest słuszna (może obie?), więc podaję oba rozwiązania.
Wersja 1.
W wyniku wspólnych zmagań z Auroksem, jakie stoczyliśmy z niejakim Johnem Doe (przy pomocy forum na aurox.org), udało nam się ustalić, że do dorzucenia IceWm do listy wyboru należy wykonać następujące czynności:
1. Stworzyć wykonywalny plik /etc/X11/gdm/Sessions/IceWM o poniższej zawartości:
#!/bin/bash exec /etc/X11/xdm/Xsession icewm
2. W pliku /etc/X11/xdm/Xsession fragment
# now, we see if xdm/gdm/kdm has asked for a specific environment case $# in 1) if [ -x /usr/share/apps/switchdesk/Xclients.$1 ]; then exec -l $SHELL -c "$SSHAGENT /usr/share/apps/switchdesk/Xclients.$1"; fi; case $1 in failsafe) exec -l $SHELL -c "xterm -geometry 80x24-0-0" ;; gnome) exec -l $SHELL -c "$SSHAGENT gnome-session" ;; kde|kde1|kde2) exec -l $SHELL -c "$SSHAGENT /usr/share/apps/switchdesk/Xclients.kde" ;; twm) # fall back to twm exec -l $SHELL -c "$SSHAGENT /usr/share/apps/switchdesk/Xclients.twm" ;; esac esac
przerobić nieco tak by skrypt Xssesion wiedział jak ma się zachować, gdy poprosimy go o uruchomienie IceWM
# now, we see if xdm/gdm/kdm has asked for a specific environment
case $# in
1)
if [ -x /usr/share/apps/switchdesk/Xclients.$1 ]; then
exec -l $SHELL -c "$SSHAGENT /usr/share/apps/switchdesk/Xclients.$1";
fi;
case $1 in
failsafe)
exec -l $SHELL -c "xterm -geometry 80x24-0-0"
;;
gnome)
exec -l $SHELL -c "$SSHAGENT gnome-session"
;;
kde|kde1|kde2)
exec -l $SHELL -c "$SSHAGENT /usr/share/apps/switchdesk/Xclients.kde"
;;
twm)
# fall back to twm
exec -l $SHELL -c "$SSHAGENT /usr/share/apps/switchdesk/Xclients.twm"
;;
icewm)
exec -l $SHELL -c "$SSHAGENT icewm"
;;
esac
esac
czyli dodajemy pogrubiony fragment.
Wersja 2.
Podana na tym samym forum Auroksa przez Titanica, polega tylko na stworzeniu pliku /etc/X11/dm/Sessions/icewm.desktop o zawartości:
[Desktop Entry] Encoding=UTF-8 Type=XSession Exec=icewm-session TryExec=icewm-session Name=IceWM Comment=IceWM, a fast and flexible window manager Comment[pl]=IceWM, szybki menedzer okien
Jeżeli używasz Auroksa i wypróbowałeś/wypróbowałaś któryś z tych sposobów, daj znać czy zadziałał.
Rozgryzienie tego zagadnienia dla Slackware zawdzięczam pytaniu Smoka na alt.pl.comp.os.linux.newbie, googlaniu i pomocy Włóczykija z tej samej grupy. Włóczykij przygotował paczkę z plikami potrzebnymi do dodania IceWM do menu GDM, którą możesz ściągnąć stąd. Dla miłośników ręcznych robótek podaję informacje, jak zrobić to samemu.
1. Najpierw trzeba stworzyć wykonywalny plik /etc/X11/dm/Sessions/icewm.desktop o następującej zawartości:
[Desktop Entry] Encoding=UTF-8 Name=IceWM Comment=The IceWM window manager Exec=/etc/X11/gdm/Xsession icewm # no icon yet, only the top three are currently used Icon= Type=Application
2. Drugi plik to /etc/X11/xinit/xinitrc.icewm zawierający
#!/bin/sh # $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $ userresources=$HOME/.Xresources usermodmap=$HOME/.Xmodmap sysresources=/usr/X11R6/lib/X11/xinit/.Xresources sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap # merge in defaults and keymaps if [ -f $sysresources ]; then xrdb -merge $sysresources fi if [ -f $sysmodmap ]; then xmodmap $sysmodmap fi if [ -f $userresources ]; then xrdb -merge $userresources fi if [ -f $usermodmap ]; then xmodmap $usermodmap fi # Start the window manager: exec icewm
3. Ostatnia sprawa to zmodyfikowanie pliku /etc/X11/gdm/Xsession, czyli dołożenie opcji dla IceWM. na przykład gdzieś w okolicach wpisów dla BlackBox i Xfce:
icewm) exec icewm ;;