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 ;;