J'ai trouvé trois fichiers de configuration.
.xinitrc
.xsession
.xsessionrc
Je sais que le premier sert à utiliser startx
et les deuxième et troisième sont utilisés lors de l'utilisation d'un gestionnaire d'affichage. Mais quelle est la différence entre les deux derniers?
~/.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 sur une console texte, puis vous démarrez l'interface graphique avec startx
. Le rôle de .xinitrc
consiste à démarrer la partie GUI de la session, généralement en définissant certains paramètres liés à l'interface graphique tels que les raccourcis clavier (avec xmodmap
ou xkbcomp
), les ressources X (avec xrdb
), etc., et pour 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 le gestionnaire d'affichage invoque le type de session "personnalisé". (Avec le gestionnaire d'affichage historique xdm, .xsession
est toujours exécuté, mais avec les gestionnaires d'affichage modernes qui donnent à l'utilisateur le choix du type de session, vous devez généralement choisir "personnalisé" pour .xsession
à exécuter.) Son rôle est à la fois de définir les paramètres de temps de connexion (tels que les variables d'environnement) et de démarrer la session GUI. Un .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 GUI, 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'a pas de .xinitrc
, car dans ce cas, startx
retombe sur les mêmes scripts de démarrage de session que ceux utilisés pour la connexion à l'interface graphique. Il est exécuté relativement tôt, après le chargement des ressources mais avant de démarrer un programme tel qu'un agent clé, un démon D-Bus, etc. Il définit généralement des variables qui peuvent être utilisées par des scripts de démarrage ultérieurs. Il n'a pas de documentation officielle à ma connaissance, 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, .xsessionrc
est une fonctionnalité Debian et les distributions qui ne sont pas basées sur Debian ne l'ont pas à moins d'avoir 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), donc il n'est lu que si vous vous connectez avec GDM.
Selon une autre discussion, startx + ~/.xsession et no ~/.xinitrc, réduit les fonctionnalités (xfce4, sid)
D'abord:
.xsessionrc
est destiné à contenir environnement global variables. L'accent est sur moi.Deuxièmement:
40x11-common_xsessionrc
dans/etc/X11/Xsession.d
provient avant50x11-common_determine-startup
. Donc.xsessionrc
est lu avant.xsession
et toutes les variables d'environnement définies seront disponibles pour les applications exécutées par les commandes dans.xsession
.
Lectures complémentaires: