Lorsque vous démarrez le système X Window sur Debian, une session X sera créée. Il y a différents types de sessions ; cette page décrit celle de Debian par défaut, et comment travailler avec.

Les pages de manuel Xsession(5) et Xsession.options(5) offrent des descriptions techniques.

Démarrer la session X Debian

La manière standard d'exécuter une session X Debian est d'exécuter startx depuis une console de connexion, ou de se connecter par le biais d'un Gestionnaire d'Affichage tels que LightDM, GDM3 ou XDM.

Certains gestionnaires d'affichage peuvent offrir un choix de types de session. Si vous sélectionnez autre chose qu'une session X Debian, le reste de cette page peut ne pas s'appliquer complètement.

Configuration

Configuration du System-wide

La configuration du System-wide d'une session X Debian consiste principalement à gérer des options dans le fichier /etc/X11/Xsession.options, et des scripts à l'intérieur du répertoire /etc/X11/Xsession.d. Ces scripts pointent tous vers le shell /bin/sh, dans un ordre déterminé en triant leurs noms. Les administrateurs peuvent éditer ces scripts ; la prudence est conseillée, si vous n'êtes pas à l'aise avec la programmation shell.

Le manuel de référence Debian décrit le fonctionnement :

  1. Si l'utilisateur a un fichier ~/.xsessionrc, le lire.

  2. Si une session spécifique a été choisie dans le Gestionnaire d'affichage (GDM, KDM, WDM, LightDM, ...), l'exécuter.
  3. Autrement, si l'utilisateur a un fichier ~/.xsession ou ~/.Xsession, l'exécuter.

  4. Autrement, si la commande /usr/bin/x-session-manager existe, l'exécuter.

  5. Autrement, si la commande /usr/bin/x-window-manager existe, l'exécuter.

  6. Autrement, si la commande /usr/bin/x-terminal-emulator existe, l'exécuter.

Configuration Utilisateur

La configuration utilisateur peut être faite de différentes manières. La plus simple est de créer un fichier ~/.xsessionrc , qui sera utilisé par tous les types de session X. Il est lu par un shell POSIX (/bin/sh, typiquement fourni par dash). Vous devriez éviter d'utiliser des fonctionnalités non supportées dans le shell POSIX.

Il y a typiquement trois sortes de commandes que vous voudrez peut-être utiliser dans le fichier :

Si vous choisissez de pointer vers un de vos fichiers shell, assurez-vous qu'il n'utilise pas de fonctionnalités spécifiques à bash, zsh, ksh, etc...

Si vous choisissez d'exécuter un programme client X, assurez-vous qu'il termine rapidement ses propres commandes (par exemple, xmodmap, xset ou xsetbg), ou de l'exécuter en arrière plan en terminant la commande avec l'opérateur shell &. De même, notez que puisque le fichier /.xsessionrc est lu très tôt, tout paramètre que vous placez dedans seront surchargés par ceux du gestionnaire de fenêtres ou l'environnement de bureau, plus tard dans la séquence de connexion.

Si vous sélectionnez une session GNOME, une configuration additionnelle sera lu depuis le fichier ~/.gnomerc, s'il existe.

Une alternative plus advancée est d'utiliser le fichier ~/.xsession. Ce fichier, s'il existe, est lu à la place du System-Wide par défaut du gestionnaire de session X (x-session-manager) ou du gestionnaire de fenêtres X (x-window-manager). Toutefois, si vous l'utilisez, vous devez vous assurer qu'il exécute votre gestionnaire de fenêtres (WM) ou votre environnement de bureau (DE) souhaité.

Voici un exemple simpliste du fichier ~./xsession :

xsetroot -solid gray
xmodmap -e "keysym Super_L = Multi_key"
xset s off; xset dpms 0 1800 0
exec fvwm

Tout comme avec le fichier ~/.xsessionrc, tout client X que vous exécutez avant le WM ou le DE devrait soit être naturellement de courte durée, soit exécuté explicitement en arrière plan. La commande finale dans le script devrait être une exec qui exécutera la commande de démarrat de votre WM ou DE. (Si vous n'êtes pas sûr de savoir le faire, consultez la documentation de votre WM ou DE, ou copiez le simple fichier ~/.xsessionrc.)

Finallement, notez que le fichier ~/.xsession est en lecture seule si vous utilisez une session X Debian. Si vous vous connectez avec GDM3 et choisissez une session GNOME, le fichier ~/.xsession sera complétement ignoré. (Mais vous pouvez toujours utiliser ~/.xsessionrc.)

Lire aussi


CategoryBootProcess CategoryDesktop