startx
s'exécute xinit
et démarre un serveur X et une session client. La session client est ~/.xinitrc
si présente et autrement /etc/X11/xinit/xinitrc
(l'emplacement peut varier entre les distributions). Ce que fait ce script varie selon les distributions. Sur Debian (y compris les dérivés tels que Raspbian), /etc/X11/xinit/xinitrc
s'exécute /etc/X11/Xsession
qui à son tour exécute les scripts /etc/X11/Xsession.d
. Les scripts Debian cherchent une session utilisateur dans d' autres fichiers ( ~/.xsession
, ~/.xsessionrc
, ~/.Xsession
) et, si aucun paramètre utilisateur est applicable, fonctionne x-session-manager
( se replient à x-window-manager
si aucun [gestionnaire de session] est installé, retombant à x-terminal-emulator
dans le cas peu probable qu'aucun gestionnaire de fenêtres est installée).
Si vous souhaitez contrôler ce qui sera exécuté, vous pouvez créer l'un des fichiers utilisateur, soit ~/.xsession
ou ~/.xinitrc
. Le fichier ~/.xsession
est également utilisé si vous vous connectez à un gestionnaire d'affichage (c'est-à-dire si vous saisissez votre mot de passe dans une fenêtre GUI). Le fichier ~/.xinitrc
est spécifique à xinit
et startx
. Utiliser ~/.xsession
passe par là /etc/X11/Xsession
donc il configure des choses comme les méthodes de saisie, les ressources, les agents de mot de passe, etc. Si vous utilisez .xinitrc
, vous devrez tout faire manuellement. Encore une fois, je décris Debian ici, d'autres variantes d'Unix pourraient configurer les choses différemment. L'utilisation de ~/.xinitrc
pour spécifier ce qui sera exécuté lorsque vous exécutez startx
ou xinit
est universelle.
Que vous utilisiez ~/.xinitrc
ou ~/.xsession
, ce fichier (généralement un script shell, mais il ne doit pas l'être si vous voulez vraiment utiliser autre chose) doit préparer tout ce qui doit être préparé (par exemple, les paramètres du clavier, les ressources, les applets qui ne sont pas démarrés). par le gestionnaire de fenêtres, etc.), puis exécutez à la fin le programme qui gère la session. Une fois le script terminé, la session se termine. En règle générale, vous utiliseriez exec
à la fin du script, pour remplacer le script par le gestionnaire de session ou le gestionnaire de fenêtres.
Votre système a probablement /usr/bin/startlxde
comme gestionnaire de session par défaut à l'échelle du système. Sur Debian et dérivés, vous pouvez vérifier les gestionnaires de session disponibles avec
update-alternatives --list x-session-manager
ou obtenez une description plus détaillée indiquant laquelle est à jour
update-alternatives --display x-session-manager
Si LXDE n'était pas la valeur par défaut à l'échelle du système et que vous vouliez en faire la valeur par défaut pour votre compte, vous pouvez utiliser le ~/.xsession
fichier suivant :
#!/bin/sh
exec startlxde
Sur certaines variantes Unix, cela ne fonctionnerait que pour les connexions graphiques, pas pour startx
, vous devez donc également créer un identifiant identique ~/.xinitrc
. (Ou pas identique: dans ~/.xsession
, vous voudrez peut-être faire d'autres choses, car c'est le premier fichier qui est exécuté dans une session graphique; par exemple, vous pouvez placer . ~/.profile
vers le haut, pour définir certaines variables d'environnement.)
Si vous souhaitez essayer d'autres environnements comme un seul, vous pouvez spécifier un programme différent à exécuter sur la ligne de commande de startx
lui - même. Le startx
programme a une bizarrerie: vous devez utiliser le chemin d'accès complet au programme.
startx /usr/bin/startkde
La startx
commande vous permet également de spécifier des arguments à transmettre au serveur. Par exemple, si vous souhaitez exécuter plusieurs sessions GUI en même temps, vous pouvez passer un numéro d'affichage différent à chaque fois. Passez les arguments du serveur après --
sur la ligne de commande de startx
.
startx /usr/bin/startkde -- :1
startx
la session Xfce4 par défaut démarre. Depuis la connexion utilisateur de ma femme sur tty1 ou tty2. Sastartx
commande est configurée pour exécuter Cinnamon (spécifié dans~/.xsession
). Pour le deuxième serveur X, je n'ai pas besoin de spécifier le$DISPLAY
comme indiqué dans la dernière partie de votre réponse. Bien que cela fonctionne certainement. Il en fait automatiquement le deuxième,$DISPLAY
etc. La configuration est cependant excellente. Il n'y a pas de connexion et de déconnexion à une session graphique, juste un raccourci clavier pour changer de profil utilisateur. Merci pour cette réponse utile!