Choisir son Gestionnaire de fenêtres à la connexion
Choisir son Gestionnaire de fenêtres à la connexion
par Fred Mise à jour par Jonesy, GEDsismik et Fraazz
Lorsque l'on se connecte à GNU/Linux en mode graphique on utilise un gestionnaire d'écran, appelé aussi gestionnaire de connexion, ou en anglais display manager. Celui-ci permet (souvent) de choisir le gestionnaire de fenêtres ou l'environnement à lancer, mais comment cela marche-t-il ?
Nous allons donc voir ci-dessous comment configurer le gestionnaire de connexion afin de choisir son environnement préféré sous X (KDE, Gnome, Afterstep, WindowMaker, fvwm,... ou même pourquoi pas olwm, mwm ou twm !).
Il existe plusieurs Display Manager (DM), mais les deux le plus couramment utilisés sont kdm et gdm car ce sont les DM respectifs de KDE et de Gnome. De plus, ces DM sont installé par défaut sur la majorité des distributions.
La raison de ces choix est que toute la configuration se fait dans une boîte de dialogue à la fois simple et claire.
Remarque : le display manager par défaut de XFree86 et Xorg se nomme xdm.
Utilisons KDM
Pour installer KDM, rien de plus simple, il faut installer les paquetages de base de KDE (qt, kdelibs, kdebase et éventuellement kdesupport si le paquetage existe). Si vous utilisez une distribution récente les paquetages doivent être présent sur le CD de celle-ci, mais si ce n'est pas le cas, ou si vous avez perdu les CD, vous pouvez toujours télécharger les paquetages soit sur le site de KDE, soit sur le site prévu à cet effet de votre distribution.
Vérifier que KDE est installé, dans un terminal, faîtes :
kdebase-3.2.3-128mdk
Spécifique à la Slackware :
/var/log/packages/kdebase-3.3.2-i486-1
Si ce n'est pas le cas, il nous faut l'installer, là c'est très simple, mais il faut être root, procurez-vous les paquetages correspondant à votre distribution, et installez-les.
Les numéros de version pouvant bien sûr différer, voici comment les installer :
Spécifique aux distributions RPM :
[root@localhost home]# rpm -i kdelibs-common-3.2.3-93mdk.i586.rpm
[root@localhost home]# rpm -i kdebase-3.2.3-128mdk.i586.rpm
Spécifique à la Slackware :
[root@localhost ~]# installpkg kdelibs-3.3.2-i486-1.tgz
[root@localhost ~]# installpkg kdebase-3.3.2-i486-1.tgz
C'est fait, KDE est installé !
Configurons KDM
La configuration de KDM est pratiquement triviale. Il suffit de lancer le Centre de configuration KDE (Control Center, commande : kcontrol) via le menu ou la barre de tâches. Puis allez dans Administration du système (System Administration) et Gestionnaire de connexion (Login Manager).
Les onglets apparence, polices et arrière plan
Sur ces onglets, vous pouvez mettre ce que bon vous semble, elles ne servent que pour configurer l'apparence de KDM. Un conseil toutefois, le choix de la police peut conduire à quelques problèmes si celle que vous choisissez n'est pas disponible au moment du lancement de KDM, donc prudence.
L'onglet Arrêt
Cette page sert à définir qui à le droit de faire quoi lors des arrêts et connexions.
Il permet aussi de dire si nous voulons voir les choix du chargeur de démarrage (lilo ou grub) afin de redémarrer directement sur un autre système.
Les onglets utilisateurs et commodités
Ces onglets servent à choisir si KDM vous proposera une liste d'utilisateurs ou non. Cela peut éviter d'avoir à taper le nom de l'utilisateur lors de la connexion : un clic sur l'utilisateur et le voilà sélectionné. Pour activer cette option, cocher la case <Lister les utilisateurs>.
Et il y a encore d'autres options...
L'onglet sessions (antérieur à KDE 3.2)
C'est la page qui nous intéresse pour choisir le gestionnaire de fenêtres que nous chargerons à la connexion. Dans la boîte liste intitulée <Types disponibles> vous devez insérer une entrée par gestionnaire de fenètre que vous souhaitez proposer. Par exemple, vous pouvez y ajouter :
- WindowMaker
- Enlightenment
- Blackbox
- Sawfish
- etc...
Le fait d'ajouter ces entrées dans cette liste ne signifie pas que vous pourrez effectivement les utiliser, il signifie seulement que ces Gestionnaires de fenêtre vous seront proposés à la connexion. L'orthographe de chacune des entrées est libre, mais sera réutilisée par la suite dans le script qui lance le gestionnaire correspondant (voir ci-dessous).
Les sessions (à partir de KDE 3.2)
La définition des gestionnaires de fenêtres utilisables ne se fait plus dans le centre de contrôle. La liste est générée automatiquement à partir de la liste des fichiers <gestionnaire>.desktop contenu dans /opt/kde/share/apps/kdm/sessions.
Il existe un fichier par gestionnaire de fenêtres, ces fichiers contiennent des informations diverses, mais celle qui permet de savoir si le gestionnaire de fenêtres doit être affiché dans la liste des gestionnaires de fenêtres disponibles est le nom de l'exécutable à lancer pour lancer le gestionnaire de fenêtres. Si cet exécutable existe sur le système alors le gestionnaire de fenêtres fera partie de la liste.
A savoir aussi que KDM utilise son propre fichier Xsession, /opt/kde/share/config/kdm/Xsession.
Remarque à propos des sessions
Dans les différentes entrées qui existent déjà, l'une d'elle se nomme failsafe
cette entrée n'est pas faite pour lancer un gestionnaire de fenêtre, son comportement par défaut est de lancer un terminal sans gestionnaire de fenêtre, vous pouvez essayer, pour voir. Si vous voulez dans ce mode lancer un gestionnaire de fenêtre, c'est très simple, il suffit de lancer dans ce terminal le gestionnaire de fenêtre (en tapant par exemple : enlightenment & ou kwm &). Ce mode permet de tester la commande qu'il convient de lancer pour activer tel ou tel gestionnaire de fenêtre. Il permet aussi de démarrer une session quand quelque chose ne fonctionne plus.
Maintenant il faut dire à KDM ce qu'il doit faire quand on a choisi tel ou tel gestionnaire de fenêtres. Historiquement, cela se fait en créant/modifiant le fichier /etc/X11/xdm/Xsession. Un fichier exemple commenté se trouve en fin d'article.
Mais comme nous l'avons vu ci-dessus, KDM utilise son propre fichier Xsession.
Utilisons GDM
Pour installer gnome, rien de trés compliqué.
Vous devez installer tous les paquets de la série gnome, bien qu'ils ne soient pas tous nécessaires je vous conseille toutefois de tous les installer.
Configurons GDM
La configuration de gdm est trés simple. Utilisez en tant que root l'utilitaire gnome prévu à cet effet: gdmsetup que vous trouverez dans le menu applications , outils système, configuration de l'écran de connexion (ou tapez gdmsetup dans un terminal).
Onglet Général
Dans cette partie vous configurez les paramètres de base de gdm. Vous pouvez choisir une invite de login graphique (c'est à dire avec arriére plan etc...) ou standard (toujours graphique mais beaucoup plus simple) pour les connexions locales ou distantes ; le format de l'heure (12 ou 24) ; le message de bienvenue local et distant ainsi que connecter automatiquement un utilisateur immédiatement ou après un certain nombre de secondes.
Onglet Bannière standard
Vous définissez ici l'allure générale de la bannière dite standard.
Onglet bannière graphique
Vous choisissez ici le thème de la bannière dite graphique. Vous pouvez aussi installer de nouveaux thèmes.
Onglet securité
C'est ici que se trouvent les paramètres de sécurité de gdm. Vous autorisez ou non les logins root locaux et/ou distants, les connexions différées à distance, l'affichage du menu action (qui permet l'arrêt / redémarrage de la machine), et les connexions à distance.
Onglet Accessibilité
Pour activer les aides graphiques et sonores pour les personnes handicapées.
Onglet XDMCP
Ici vous configurez les connexions distantes via le protocole XDMCP, c'est à dire son activation, son port réseau UDP, le nombre de tentatives autorisées, les délais d'attentes, etc...
Les sessions
Les sessions se configurent normalement dans /etc/X11/gdm/Xsession. Le paragraphe qui suit vous montre un exemple de fichier.
Le fichier /etc/X11/gdm/Xsession.
Voici le mien :
# On est en train de se loguer, donc on le dit à bash !
# On envoie les erreurs dans un des fichiers suivants
# (le premier trouvé !)
for errfile in "$HOME/.xsession-errors" \
"${TMPDIR-/tmp}/xses-$USER" \
"/tmp/xses-$USER"
do
if ( cp /dev/null "$errfile" 2> /dev/null )
then
chmod 600 "$errfile"
exec > "$errfile" 2>&1
break
fi
done
# ici on trouve les fichiers de ressources
# par défaut et ceux de l'utilisateur
# qui vient de se loguer
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/Xresources
sysmodmap=/etc/X11/xinit/Xmodmap
# pour être compatible avec les anciennes
# version de X :
oldsysresources=/etc/X11/xinit/.Xresources
oldsysmodmap=/etc/X11/xinit/.Xmodmap
# on active ces différentes ressources :
if [ -f $oldsysresources ]; then
xrdb -merge $oldsysresources
fi
if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi
if [ -f $userresources ]; then
xrdb -merge $userresources
fi
# on active un autre clavier
# si c'est précisé dans les variables
# $sysxkbmap et $userxkbmap :
# a priori ca sert à rien
# mais comme ça vient du Xsession
# initial je l'ai laissé.
if [ -f $sysxkbmap ]; then
setxkbmap `cat $sysxkbmap`
XKB_IN_USE=yes
fi
if [ -f $userxkbmap ]; then
setxkbmap `cat $userxkbmap`
XKB_IN_USE=yes
fi
if [ -z $XKB_IN_USE -a ! -L /etc/X11/X ]; then
if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 \
&& [ -f /etc/X11/XF86Config ]; then
xkbsymbols= \
`sed -n -e 's/^[ ]*XkbSymbols[ ]*"\(.*\)".*$/\1/p'`
if [ -n "$xkbsymbols" ]; then
setxkbmap -symbols "$xkbsymbols"
XKB_IN_USE=yes
fi
fi
fi
# xkb et xmodmap ne sont pas vraiment compatibles
if [ -z $XKB_IN_USE ]; then
if [ -f $oldsysmodmap ]; then
xmodmap $oldsysmodmap
fi
if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi
if [ -f $usermodmap ]; then
xmodmap $usermodmap
fi
fi
unset XKB_IN_USE
# on lance tous les scripts exécutables de
# /etc/X11/xinit/xinitrc.d/
for i in /etc/X11/xinit/xinitrc.d/* ; do
if [ -x $i ]; then
. $i
fi
done
# Voilà la partie qui nous intéresse :
# lorsque kdm lance ce script, il lui
# passe en premier paramètre l'une
# des entrées que vous avez validées
# dans kdmconfig (respect des majuscules
# et des minuscules)
# donc, pour chacune des entrées vous
# devez ajouter quelque chose comme ce
# qui est en gras :
case $# in
1) # il y a bien au moins un paramètre
case $1 in
gnome)
# ici vous pouvez mettre n'importe
# quelle commande
exec gnome-session
# ce n'est pas comme un case C !
;;
kde)
exec startkde
;;
*)
# par defaut on lance un terminal :
exec xterm -geometry 80x24-0-0
;;
esac
esac
# Si le dm n'est pas kdm, il peut
# ne pas renvoyer de paramètre
# dans ce cas on lance le premier
# des fichiers suivant :
if [ -x "$HOME/.xsession" ]; then
exec "$HOME/.xsession"
elif [ -x "$HOME/.Xclients" ]; then
exec "$HOME/.Xclients"
elif [ -x /etc/X11/xinit/Xclients ]; then
exec /etc/X11/xinit/Xclients
else
# normalement on ne devrait
# jamais arriver ici, mais
# au cas ou ...
exec xsm
fi
Comment ça marche ?
Ce n'est pas très complexe, lorsque vous validez votre login et votre mot de passe depuis KDM, celui-ci vérifie que ceux-ci sont bien valides. Lorsque c'est fait, il lance (tôt ou tard) le script /etc/X11/xdm/Xsession, ou /opt/kde/share/config/kdm/Xsession pour KDE, (qui doivent être exécutables) en lui passant comme paramètre le nom du gestionnaire de fenêtre choisi par l'utilisateur (c'est la petite liste déroulante en bas à gauche de la fenêtre de KDM). Il suffit donc, dans ce script, de faire un test (ce sont les deux case) et d'exécuter en conséquence les bonnes actions pour lancer le bon gestionnaire de fenêtre.
Donc, pour chaque gestionnaire de fenêtre, vous pouvez ajouter un test de plus dans le case ainsi que les commandes qui lancent ce nouveau gestionnaire de fenêtre. Puis, vous redémarrez X par [CTRL]+[ALT]+[BACKSPACE]
si vous êtes sous X, ou startx si vous êtes en mode texte.
@ Retour à la rubrique Environnement graphique
Copyright
Copyright © 10/03/2000, Frédéric Bonnaud
![]() ![]() ![]() ![]() |
Ce document est publié sous licence Creative Commons Attribution, Partage à l'identique, Contexte non commercial 2.0 : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ |