Glavno pogovorno okno KDM vsebuje spustno polje "session type", ki omogoča izbiro okenskega upravljalnika za sejo. To poglavje opisuje spremembe, ki jih morate izvesti v vaših nastavitvenih, da je ta možnost podprta.
Možnosti, ki se pojavijo v spustnem polju "session type" se nastavijo z vnosi v razdelku KDM datoteke kdmrc.
Ko se prijavite z uporabo KDM, je izvedena lupinska skripta Xsession. Tip seje, ki ga izberete je podan kot argument ukazne vrstice. (Xsession lahko najdete v /etc/X11/xdm/ za Redhat in Mandrake ter v /usr/X11R6/lib/X11/xdm/ za S.u.S.E.). Če razhroščujete, vam bo morda v pomoč, če dodate v Xsession to vrstico:
echo "$0 || $1 || $2" > $HOME/.Xsession_args |
Kako nadaljujete, je sedaj odvisno od tega, kako vaš sistem zažene okenske upravljalnike.Tu obstajata dva različna pristopa, z zgledi sprememb, ki jih morate izvesti:
Okenski upravljalnik je zagnan z ukazi znotraj Xsession. V tem primeru lahko dodate stavek 'case', da poženete ustrezen okenski upravljalnik. ta pristop uporablja Linux Mandrake; tu je izvleček iz datoteke Xsession:
# 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 |
Okenski upravljalnik je pognan z drugo skripto, ki jo pokliče Xsession. V tem primeru morate zagotoviti, da je parameter, ki je bil predan Xsession, predan naprej tej skripti. Če je na primer okenski upravljalnik pognan nekako tako:
exec $startup |
bi to morali spremeniti v:
exec $startup $@ |
Ko ste opravili to spremembo, jo morate slediti skozi zagon, da najdete kraj, kjer je pognan okenski upravljalnik En pristop uporablja xinitrc da požene okenski upravljalnik; to omogoča uporabo sistemske /etc/X11/xinit/xinitrc ali uporabniško specifične datoteke $HOME/.xinitrc. Če uredite $HOME/.xinitrc, boste morda želeli shraniti kopijo v /etc/skel, tako da bo samodejno ustvarjena v vsakem nadalje ustvarjenem uporabniškem računu. Tukaj je primer xinitrc z sistema, ki uporablja ta pristop:
#!/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 |