A kdm bejelentkezési ablakának bal alsó sarkában látható egy "Környezet" nevű kombinált lista, melyben kiválaszthatja a kívánt ablakkezelő környezetet. A következő részben azokat a teendőket ismertetjük, amelyek elvégzése szükséges ennek a lehetőségnek a beállításához.
A "Környezet" kombinált lista tartalmának módosításához meg kell változtatni a kdmrc fájl KDM szekciójában néhány bejegyzést.
Ha a kdm segítségével jelentkezik be, akkor az elindítja az Xsession nevű szkriptet, melynek paraméterként adja át a megadott ablakkezelő környezet értékét. Az Xsession fájl Red Hat és Mandrake disztribúcióknál az /etc/X11/xdm/ könyvtárban, SuSE esetén az /usr/X11R6/lib/X11/xdm/ könyvtárban található. Hibakeresésnél segíthet, ha hozzáadja az alábbi sort az Xsession fájlhoz:
echo "$0 || $1 || $2" > $HOME/.Xsession_args |
A további teendő az ablakkezelő környezet elindítási módjától függ. Az alábbiakban két eltérő indítási konvenciót ismertetünk, mindkét esetben megadva a módosítás lépéseit:
Az ablakkezelő környezet indítása az Xsession szkriptből történik. Ilyenkor egy 'case' utasítás beszúrásával lehet a kívánt ablakkezelő indítását elérni. Például a Mandrake disztribúciók ezt a megoldást használják. Alább látható egy részlet egy ilyen Xsession fájlból:
# now, we see if xdm/gdm/kdm has asked for a specific environment
case $# in
1)
case $1 in
kde)
source /opt/kde2/bin/kde1
exec startkde
;;
kde2)
source /opt/kde2/bin/kde2
exec startkde
;;
failsafe)
exec xterm -geometry 80x24-0-0
;;
default)
;;
*)
exec /bin/sh -c "$(/usr/sbin/chksession -x=$1)"
;;
esac
esac |
Egy másik módszer az, hogy az ablakkezelő egy olyan szkriptből indul, amelyet az Xsession indított el. Ilyenkor ellenőrizni kell, hogy az Xsession továbbadja-e a másik szkriptnek a paraméterként kapott ablakkezelő nevét. Alább látható egy példa az ilyen indításra:
exec $startup |
Ezt meg kell változtatni erre:
exec $startup $@ |
Ha végrehajtotta ezt a változtatást, akkor végig kell követnie az elindulás folyamatát, keresse meg, hogy az ablakkezelő indítása hol történik. Ez történhet például az xinitrc fájlban, mely az összes felhasználóra érvényes (pontos elérési útja: /etc/X11/xinit/xinitrc) vagy a felhasználó saját könyvtárában található $HOME/.xinitrc fájlban. Ha megváltoztatja az $HOME/.xinitrc fájlt, akkor az új változat egy másolatát helyezze el az /etc/skel könyvtárban is, hogy az újonnan létrehozott felhasználók saját könyvtárába automatikusan átkerülhessen. Alább látható egy példa az xinitrc fájlra az utóbbi módszer használata esetén:
#!/bin/bash
#
# .xsession/.xinitrc
#
# choose a window manager
#
defaultwm=kde
#set the window manager to $1 if it was supplied
windowmgr=${1:-$defaultwm}
#start the respective window managers
case ${windowmgr} in
kde|kwm|kdestart)
WINDOWMANAGER=startkde
;;
fvwm|fvwm2)
WINDOWMANAGER=fvwm2
;;
fvwm95)
WINDOWMANAGER=fvwm95
;;
*) WINDOWMANAGER=windowmgr # default for unknown wm's
esac
#
# load resources
#
if [ -f /usr/X11R6/lib/X11/Xmodmap ]; then
xmodmap /usr/X11R6/lib/X11/Xmodmap
fi
if [ -f ~/.Xmodmap ]; then
xmodmap ~/.Xmodmap
fi
if [ -f ~/.Xdefaults ]; then
xrdb -merge ~/.Xdefaults
fi
if [ -f ~/.Xresources ]; then
xrdb -merge ~/.Xresources
fi
#
# finally start the window manager
#
exec $WINDOWMANAGER |