Réponses:
~/.xinitrc
est exécuté par xinit
, qui est généralement appelé via startx
. Ce programme est exécuté après la connexion: vous vous connectez d'abord à une console de texte, puis vous lancez l'interface graphique avec startx
. Le rôle de .xinitrc
consiste à démarrer la partie graphique de la session, généralement en définissant certains paramètres, tels que les raccourcis clavier (avec xmodmap
ou xkbcomp
), les ressources X (avec xrdb
), etc., et de lancer un gestionnaire de session ou un gestionnaire de fenêtres ( éventuellement dans le cadre d'un environnement de bureau).
~/.xsession
est exécuté lorsque vous vous connectez en mode graphique (sur un gestionnaire d'affichage ) et que celui-ci appelle le type de session «personnalisé». (Avec le gestionnaire d'affichage historique xdm, il .xsession
est toujours exécuté, mais avec les gestionnaires d'affichage modernes qui offrent à l'utilisateur un choix de type de session, vous devez généralement choisir «personnalisé» pour l' .xsession
exécution.) Son rôle est de définir les paramètres de connexion (telles que les variables d’environnement) et pour démarrer la session graphique. Un typique .xsession
est
#!/bin/sh
. ~/.profile
. ~/.xinitrc
~/.xsessionrc
est exécuté sur Debian (et des dérivés tels que Ubuntu, Linux Mint, etc.) par les scripts de démarrage X sur une connexion utilisateur graphique, pour tous les types de session et (je pense) de tous les gestionnaires d'affichage. Il est également exécuté à partir de startx
si l'utilisateur n'en possède pas .xinitrc
, car dans ce cas, il startx
utilise les mêmes scripts de démarrage de session que ceux utilisés pour la connexion à l'interface graphique. Il s'exécute relativement tôt, après le chargement des ressources, mais avant le démarrage de tout programme tel qu'un agent de clé, un démon D-Bus, etc. Il définit généralement des variables pouvant être utilisées par des scripts de démarrage ultérieurs. Je ne connais aucun document officiel à ce sujet, vous devez fouiller dans la source pour voir ce qui fonctionne.
.xinitrc
et .xsession
sont des caractéristiques historiques du système X11 Window, elles devraient donc être disponibles et avoir un comportement similaire sur tous les systèmes Unix. D'autre part, il .xsessionrc
existe une fonctionnalité Debian et les distributions qui ne sont pas basées sur Debian ne l'utilisent que si elles ont implémenté quelque chose de similaire.
.xprofile
est très similaire à .xsessionrc
, mais cela fait partie du script de démarrage de session de GDM (le gestionnaire d’affichage GNOME), il est donc lu uniquement si vous vous connectez avec GDM.
Selon une autre discussion, startx + ~ / .xsession et no ~ / .xinitrc entraînent une fonctionnalité réduite (xfce4, sid)
Premièrement:
.xsessionrc
est destiné à contenir des variables d' environnement globales . L'accent est à moi.Deuxièmement:
40x11-common_xsessionrc
dans/etc/X11/Xsession.d
est recherché avant50x11-common_determine-startup
. Ainsi.xsessionrc
est lu avant.xsession
et toutes les variables d'environnement définies seront disponibles pour les applications exécutées par les commandes de.xsession
.
Lectures complémentaires: