Verschillende vensterbeheerders ondersteunen

Het KDM handboek
Terug | Hoofdstuk 3. Uw systeem configureren voor KDM | Volgende

# 3.2. Verschillende vensterbeheerders ondersteunen

Het hoofddialoogvenster van KDM heeft een "sessie type" drop-down box, die u in staat stelt een vensterbeheerder te kiezen voor uw sessie. Dit hoofdstuk beschrijft de wijzigingen in uw configuratiebestanden die u moet maken om deze mogelijkheid te ondersteunen.

De opties die verschijnen in de "sessie type" drop-down box zijn geconfigureerd door de ingangen in de `KDM` sectie van `kdmrc`.

Als u inlogt met KDM zal het shellscript `Xsession` uitgevoerd worden. De sessietype die u selecteerd is gepasseerd als een commandoregel argument.(`Xsession` kan gevonden worden in `/etc/X11/xdm/` voor Redhat en Mandrake, en in `/usr/X11R6/lib/X11/xdm/` voor S.u.S.E.). Met debuggen, zou het handig zijn om deze regel toe te voegen aan `Xsession`:

     echo "$0 || $1 || $2" > $HOME/.Xsession_args

Hoe u door moet gaan hangt van hoe uw systeem vensterbeheerders opstart af. Er zijn twee verschillende aanpakken, met voorbeelden van de wijzigingen die u moet maken:

- De vensterbeheerder is gestart door commando's in `Xsession`. In dit geval, kan u een case statement toevoegen om de geschikte vensterbeheerder te starten. Linux Mandrake gebruikt deze aanpak; hier is een deel van `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

- De vensterbeheerder wordt gestart door een ander script dat gestart wordt door `Xsession`. In dit geval moet u zorgen dat de parameter die in `Xsession` gepasseerd is, gepasseerd wordt naar dat andere script. Bijvoorbeeld, als de vensterbeheerder zoals hier gestart is:

       exec $startup

  u moet dit wijzigen naar:

       exec $startup $@

  Als u deze wijziging aangebracht heeft, moet u uw manier door de opstart traceren om de plaatst te vinden waar de vensterbeheerder gestart wordt. Eén aanpak gebruikt `xinitrc` om de vensterbeheerder te starten; dit kan een systeem-wijd bestand zijn `/etc/X11/xinit/xinitrc` of een gebruikersspecifiek `$HOME/.xinitrc` kan worden gebruikt. Als u `$HOME/.xinitrc` wijzigt, kan u een kopie bewaren in `/etc/skel`, zodat deze automatisch gegenereert wordt voor elke gebruikersaccount die u vanaf nu creëert. Hier is een voorbeeld `xinitrc` voor een systeem dat deze aanpak gebruikt:

       #!/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

Terug | Begin | Volgende
Uw systeem configureren voor KDM | Omhoog | KDM compileren en installeren