Xinitrc est-il exécuté lors de la connection?

J'ai un ~/.xinitrc avec le contenu suivant

 xrdb -merge $HOME/.Xdefaults 

ce xinitrc est fondamentalement inutile car il n'est pas chargé quand l'user se connecte, je ne pense pas que je fasse quelque chose de mal car la même command fonctionne sur le bash , ma question est: xinitrc reconnaît-il les variables d'environnement?

~/.xinitrc est seulement lu si vous démarrez X11 avec startx (ou tout ce qui appelle xinit ). Si vous vous connectez en mode graphique, le gestionnaire d'affichage choisit une session pour démarrer. Chaque gestionnaire de session ou environnement de bureau possède ses propres scripts de démarrage, le cas échéant.

La plupart des systèmes chargent automatiquement des ressources à partir de ~/.Xresources dans le cadre des scripts de démarrage X11 par défaut. Essayez de renommer votre file de ressources vers ~/.Xresources .

.xinitrc est exectué lorsque vous exécutez explicitement xinit ( startx appelle finalement xinit ) pour démarrer un server X. La plupart du time, cela ne se produit pas car les Linux utilisent des gestionnaires de bureau qui lancent directement un X-Server, puis exécutent /etc/X11/Xsession <desktopenvironment> , où <desktopenvironment> est la valeur de n'importe quelle ligne Exec= /usr/share/xsessions , par exemple

 Exec=startxfce4 

si vous avez sélectionné XFCE comme sessiontype.

Sur les systèmes basés sur Debian au less, les scripts dans /etc/X11/Xsession.d/ sont fournis (!) Dans l'ordre. La plupart du time, tous ces scripts règlent des choses et / ou modifient une variable STARTUP qui est finalement utilisée dans la ligne

 exec $STARTUP 

Donc, techniquement, vous pouvez écrire un file /usr/share/xsession/xinitrc.desktop qui vous permet de sélectionner une session qui exécutera ~/.xinitrc .