xinit (Français)

État de la traduction:
Cet article est la version francophone de
Xinit
. Date de la dernière traduction: 2022-10-03. Vous pouvez aider à synchroniser la traduction s'il y a eu des
changements
dans la version anglaise.
Related articles
Display manager (Français)
Xorg (Français)
xprofile
Xresources
Selon
Wikipédia
:
Le programme
xinit
permet à un utilisateur de démarrer manuellement un serveur d'affichage
Xorg
. Le script
startx(1)
est une interface pour
xinit(1)
.
xinit
est typiquement utilisé pour démarrer les
gestionnaires de fenêtres
ou les
environnements de bureau
. Bien que vous puissiez également utiliser
xinit
pour exécuter des applications GUI sans gestionnaire de fenêtres, de nombreuses applications graphiques attendent un gestionnaire de fenêtres conforme à la norme
EWMH
. Les
gestionnaires de fenêtres
démarrent
Xorg
pour vous et «sourcent»
xprofile
.
Installation
Installez le paquet
xorg-xinit
.
Configuration
xinit
et
startx
prennent un argument optionnel pour le programme client, consultez
#Outrepasser xinitrc
.  Si vous n'en fournissez pas, ils chercheront
~/.xinitrc
à exécuter comme un script shell pour démarrer les programmes clients.
xinitrc
~/.xinitrc
est pratique pour exécuter les programmes dépendant de X et définir les variables d'environnement au démarrage du serveur X. S'il est présent dans le répertoire personnel d'un utilisateur,
startx
et
xinit
l'exécutent. Sinon,
startx
exécutera le programme par défaut
/etc/X11/xinit/xinitrc
.
Note
Xinit
a son propre comportement par défaut au lieu d'exécuter le fichier. Consultez
xinit(1)
pour plus de détails.
Ce xinitrc par défaut démarrera un environnement de base avec
twm
,
xorg-xclock
et
xterm
(en supposant que les paquets nécessaires sont installés). Par conséquent, pour démarrer un gestionnaire de fenêtres ou un environnement de bureau différent, créez d'abord une copie de la
xinitrc
par défaut dans votre répertoire personnel :
$ cp /etc/X11/xinit/xinitrc ~/.xinitrc
Puis
modifiez
le fichier et remplacez les programmes par défaut par les commandes souhaitées. N'oubliez pas que les lignes suivant une commande utilisant
exec
seront ignorées. Par exemple, pour lancer
xscreensaver
en arrière-plan et ensuite lancer
openbox
, utilisez ce qui suit :
~/.xinitrc
...
xscreensaver &
exec openbox-session
Note
Au minimum, assurez-vous que le dernier bloc
if
de
/etc/X11/xinit/xinitrc
est présent dans votre fichier
~/.xinitrc
pour garantir que les scripts de
/etc/X11/xinit/xinitrc.d
sont sourcés.
Les programmes à longue durée d'exécution lancés avant le gestionnaire de fenêtres, tels que l'économiseur d'écran et l'application de papier peint, doivent soit se bifurquer eux-mêmes, soit être exécutés en arrière-plan en ajoutant un signe
&
. Sinon, le script s'arrêterait et attendrait que chaque programme se termine avant d'exécuter le gestionnaire de fenêtres ou l'environnement de bureau. Notez que certains programmes ne devraient pas être bifurqués, afin d'éviter les concurrences, comme c'est le cas de
xrdb
. Le fait de faire précéder
exec
remplacera le processus de script par le processus du gestionnaire de fenêtres, de sorte que X ne se termine pas même si ce processus bifurque vers l'arrière-plan.
xserverrc
Le fichier
xserverrc
est un script shell responsable du démarrage du serveur X.
startx
et
xinit
exécutent tous deux
~/.xserverrc
s'il existe, sinon
startx
utilisera
/etc/X11/xinit/xserverrc
.
Afin de maintenir une
session authentifiée
avec
logind
et d'éviter de contourner le verrouillage de l'écran en changeant de terminal,
Xorg
doit être lancé sur le même terminal virtuel que celui où la connexion a eu lieu
[1]
. Il est donc recommandé de spécifier
vt$XDG_VTNR
dans le fichier
~/.xserverrc
:
~/.xserverrc
#!/bin/sh

exec /usr/bin/Xorg -nolisten tcp "$@" vt$XDG_VTNR
Consultez
Xserver(1)
pour une liste de toutes les options de ligne de commande.
Astuce
-nolisten local
peut être ajouté après
-nolisten tcp
pour désactiver les sockets abstraits de X11 afin d'aider à l'isolation.  Il existe un
récapitulatif
sur la façon dont cela affecte potentiellement la sécurité de X11.
Alternativement, si vous souhaitez avoir l'affichage X sur une console séparée de celle où le serveur est invoqué, vous pouvez le faire en utilisant le wrapper du serveur X fourni par
/usr/lib/systemd/systemd-multi-seat-x
. Par commodité,
xinit
et
startx
peuvent être configurés pour utiliser ce wrapper en modifiant votre
~/.xserverrc
.
Note
Pour réactiver la redirection de la sortie de la session X dans le fichier journal Xorg, ajoutez l'option
-keeptty
. Consultez
Xorg (Français)#Redirection du journal de session
pour plus de détails.
Utilisation
Pour lancer Xorg en tant qu'utilisateur normal, lancez :
$ startx
Ou si
#xserverrc
est configuré :
$ xinit -- :1
Note
xinit
ne gère pas les affichages multiples lorsqu'un autre serveur X est déjà lancé. Pour cela, vous devez spécifier l'affichage en ajoutant
-- :
display_number
, où
display_number
est
1
ou plus.
Le gestionnaire de fenêtres (ou l'environnement de bureau) de votre choix devrait maintenant démarrer correctement.
Pour quitter X, exécutez la fonction de sortie de votre gestionnaire de fenêtres (s'il en possède une). S'il ne dispose pas d'une telle fonction, exécutez :
$ pkill -15 Xorg
Note
pkill
tuera toutes les instances X en cours d'exécution. Pour tuer spécifiquement le gestionnaire de fenêtres sur le terminal virtuel actuel, exécutez :
$ pkill -15 -t tty "$XDG_VTNR" Xorg
Consultez également
signal(7)
.
Trucs et astuces
Outrepasser xinitrc
Si vous avez un
~/.xinitrc
fonctionnel mais que vous voulez simplement essayer un autre gestionnaire de fenêtres ou un autre environnement de bureau, vous pouvez le lancer en tapant
startx
suivi du chemin du gestionnaire de fenêtres, par exemple :
$ startx /usr/bin/i3
Si le binaire prend des arguments, ils doivent être cités pour être reconnus comme faisant partie du premier paramètre de
startx
:
$ startx "/usr/bin/
application
--
valeur de la clé
"
Notez que le chemin complet est
requis
. Vous pouvez également spécifier des options personnalisées pour le script
#xserverrc
en les ajoutant après le signe double tiret
--
:
$ startx /usr/bin/enlightenment -- -br +bs -dpi 96
Consultez également
startx(1)
.
Note
Puisque les scripts sous
/etc/X11/xinit/xinitrc.d/
sont ignorés, la variable d'environnement
DISPLAY
peut devoir être définie. Vous pouvez essayer
i3
sur l'écran souhaité en exécutant
DISPLAY=:
display_number
startx /usr/bin/i3
.
Astuce
Ceci peut être utilisé pour démarrer des programmes GUI ordinaires mais sans aucune des fonctionnalités de base du gestionnaire de fenêtres. Consultez également
#Démarrer des applications sans gestionnaire de fenêtres
et
Exécuter un programme dans un affichage X distinct
.
Démarrage automatique de X à la connexion
Assurez-vous que
startx
est correctement
configuré
.
Placez les éléments suivants dans votre fichier d'initialisation du
shell de connexion
(par exemple,
~/.bash_profile
pour
Bash
ou
~/.zprofile
pour
Zsh
) :
if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ] ; then
  exec startx
fi
Vous pouvez remplacer la comparaison
-eq
par une comparaison du genre
-le 3
(pour vt1 à vt3) si vous voulez utiliser les connexions graphiques sur plus d'un terminal virtuel.
Les conditions alternatives pour détecter le terminal virtuel incluent
"$(tty)" = "/dev/tty1"
, qui ne permet pas la comparaison avec
-le
, et
"$(fgconsole 2>/dev/null || echo -1)" -eq 1
, qui ne fonctionne pas dans les
consoles série
.
La commande
exec
garantit que l'utilisateur est déconnecté lorsque le serveur X quitte, se bloque ou est tué par un attaquant. Si vous voulez prendre le risque de rester connecté à la fin de la session X, supprimez
exec
.
Consultez également
Fish#Start X at login
et
Systemd/User#Automatic login into Xorg without display manager
[
broken link
: invalid section]
.
Astuce
Cette méthode peut être combinée avec
connexion automatique à la console virtuelle
.
Basculer entre les environnements de bureau/gestionnaires de fenêtres
Si vous passez fréquemment d'un environnement de bureau ou d'un gestionnaire de fenêtres à un autre, il est pratique d'utiliser un
gestionnaire d'affichage
ou d'étendre
~/.xinitrc
pour rendre la commutation possible.
L'exemple suivant montre comment démarrer un environnement de bureau ou un gestionnaire de fenêtres particulier avec un argument :
~/.xinitrc
...

# Here Xfce is kept as default
session=${1:-xfce}

case $session in
    i3|i3wm           ) exec i3;;
    kde               ) exec startplasma-x11;;
    xfce|xfce4        ) exec startxfce4;;
    # No known session, try to run it as command
    *                 ) exec $1;;
esac
Pour passer l'argument
session
:
$ xinit
session
ou
$ startx ~/.xinitrc
session
Démarrer des applications sans gestionnaire de fenêtres
Il est possible de démarrer uniquement des applications spécifiques sans gestionnaire de fenêtres, bien que cela ne soit probablement utile qu'avec une seule application affichée en mode plein écran. Par exemple :
~/.xinitrc
...

exec chromium
Alternativement, le binaire peut être appelé directement depuis l'invite de commande comme décrit dans
#Outrepasser xinitrc
.
Avec cette méthode, vous devez définir la géométrie des fenêtres de chaque application par le biais de ses propres fichiers de configuration (si cela est possible).
Astuce
Cela peut être utile pour lancer des jeux graphiques, où l'exclusion de l'overhead d'un compositeur peut aider à améliorer les performances du jeu.
Consultez également
Display manager (Français)#Lancement d'applications sans gestionnaire de fenêtres
.
Redirection de sortie à l'aide de startx
Consultez
Xorg (Français)#Redirection du journal de session
pour plus de détails.