startxs'exécute xinitet démarre un serveur X et une session client. La session client est ~/.xinitrcsi 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/xinitrcs'exécute /etc/X11/Xsessionqui à 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-managersi aucun [gestionnaire de session] est installé, retombant à x-terminal-emulatordans 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 ~/.xsessionou ~/.xinitrc. Le fichier ~/.xsessionest é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 ~/.xinitrcest spécifique à xinitet startx. Utiliser ~/.xsessionpasse par là /etc/X11/Xsessiondonc 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 ~/.xinitrcpour spécifier ce qui sera exécuté lorsque vous exécutez startxou xinitest universelle.
Que vous utilisiez ~/.xinitrcou ~/.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/startlxdecomme 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 ~/.xsessionfichier 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 . ~/.profilevers 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 startxlui - même. Le startxprogramme a une bizarrerie: vous devez utiliser le chemin d'accès complet au programme.
startx /usr/bin/startkde
La startxcommande 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
startxla session Xfce4 par défaut démarre. Depuis la connexion utilisateur de ma femme sur tty1 ou tty2. Sastartxcommande 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$DISPLAYcomme indiqué dans la dernière partie de votre réponse. Bien que cela fonctionne certainement. Il en fait automatiquement le deuxième,$DISPLAYetc. 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!