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 |