Créez un nouveau fichier /user/share/xsessions/default.desktop
(le nom dépend de vous, mais il doit avoir le .desktop
suffixe):
[Desktop Entry]
Name=Default
Comment=This runs user session and logs you into Ubuntu
Exec=default
Icon=
Maintenant, lorsque vous sélectionnez cette session lightdm
et vous connectez, votre ~/.xsession
fichier, s'il existe, sera exécuté.
Notez que le fichier de l'utilisateur qui est exécuté est ~/.xsession
, et non ~/.xinitrc
, ce qui a été mentionné dans la question. ( ~/.xinitrc
est utilisé lorsque la session X est démarrée à l'aide du startx
script à partir d'une ligne de commande.)
Quelques explications: L' Name
entrée est ce lightdm
qui s'afficherait pour cette session. L' Exec
entrée est la chose importante, et ce devrait être le nom du programme qui démarre la session proprement dite. Lorsque vous vous connectez, lightdm
appelle le /etc/X11/Xsession
script, lui transmet la valeur de Exec
comme argument et Xsession
, éventuellement, exécute ce programme (par exemple, il peut s'agir startxfce4
du démarrage d'une xfce4
session). Si l' Exec
entrée est la chaîne spéciale default
, alors Xsession
exécutera le ~/.xsession
fichier de l'utilisateur . ( Xsession
serait également exécuté ~/.xsession
s'il est appelé sans argument.)
Désolé, je suis nouveau ici et ne peux donc pas commenter les réponses des autres, mais je voudrais commenter la réponse acceptée, pour clarifier les choses. Selon mon explication ci-dessus, ce qui se passera avec la méthode de cette réponse est que ce Xsession
serait appelé par lightdm
un argument qui est (le chemin complet de) Xsession
. Alors Xession
s'exécutera puis s'appellera, cette fois sans arguments. Le second Xsession
, appelé sans argument, exécutera l'utilisateur ~/.xsession
. Ainsi, l'action souhaitée sera finalement prise, mais de manière un peu maladroite.