xinit (Français)
La commande startx
permet de démarrer un environnement graphique sous Xorg sans gestionnaire de connexions. Elle prends le chemin d'un exécutable comme argument.
Installation
Installez le paquet xorg-xinit.
Utilisation
startx
est une commande qui prend comme argument un fichier exécutable. Dans ce cas startx lance ce programme comme client unique d'un serveur X.
Par exemple:
startx /bin/gnome-session
Sans argument, et sans configuration préalable. La commande startx
tentera de lancer xorg-twm, xorg-xclock et xterm.
startx
Configuration
La configuration par défaut est contenue dans le fichier /etc/X11/xinit/xinitrc
.
Pour votre utilisateur vous aurez besoin de recopier ce fichier dans son HOME et de le modifier:
cp /etc/X11/xinit/xinitrc ~/.xinitrc
Le principe est simple, il suffit de conserver l'ensemble de son contenu et de commenter ou supprimer les lignes suivants twm jusqu'à la fin puis de rajouter ce dont vous avez besoin en dernier. Par exemple :
~/.xinitrc
(...) # start some nice programs if [ -d /etc/X11/xinit/xinitrc.d ] ; then for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do [ -x "$f" ] && . "$f" done unset f fi #twm & #xclock -geometry 50x50-1+1 & #xterm -geometry 80x50+494+51 & #xterm -geometry 80x20+494-0 & #exec xterm -geometry 80x66+0+0 -name login exec openbox-session
if [ -d /etc/X11/xinit/xinitrc.d ] ; then for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do [ -x "$f" ] && . "$f" done unset f fi
permet de lancer le contenu de /etc/X11/xinit/xinitrc.d/
, dbus entre autre (/etc/X11/xinit/xinitrc.d/30-dbus.sh
). Mais selon le mélange environnement / application, la session DBus n'est pas toujours reconnue. Pour y remédier, et en prenant Openbox en exemple, modifier le contenu de ~/.xinitrc
par:
exec dbus-launch openbox-session
Trucs & astuces
Démarrer votre environnement automatiquement
Créez un fichier /etc/systemd/system/startx@.service
:
/etc/systemd/system/startx@.service
[Unit] Description=startx automatique pour l'utilisateur %I After=graphical.target systemd-user-sessions.service [Service] User=%I WorkingDirectory=%h PAMName=login Type=simple ExecStart=/bin/bash -l -c startx [Install] WantedBy=graphical.target
Pour tester :
systemctl start startx@votre_utilisateur.service
Pour activer :
systemctl enable startx@votre_utilisateur.service
Démarrer X de façon semi automatique à l'identification
Vous pouvez, si vous le souhaitez, lancer automatiquement startx
juste après vous être authentifié sur la console/tty, par exemple uniquement à partir du tty1. Rajoutez ce bout de code à la fin de $HOME/.bash_profile
:
[[ $(tty) == '/dev/tty1' ]] && startx
Pour poser une question si on est dans une console et qu'aucune instance de X n'est détectée :
if [[ -t 0 && $(tty) =~ /dev/tty ]] && ! pgrep -u $USER startx &> /dev/null;then echo "Aucune session X11 détectée, voulez vous en lancer une ? [O|n]" read -n 1 start_x if [[ $start_x == "n" ]];then echo "X11 ne sera pas lancé." else startx fi fi
Si aucune session X n'est démarrée, il vous sera alors proposer d'en lancer une lorsque vous vous identifiez. Saisissez «n
» pour empêcher cela, ou appuyez sur n'importe quelle autre touche sinon.