Comment puis-je utiliser LightDM pour les sessions définies par l'utilisateur?

22

Si je le comprends correctement, LightDM a remplacé GDM par défaut. Je me demande s'il est possible de lui faire exécuter les choses que je mets dans mon fichier .xinitrc ... ce dont j'ai besoin est une option sous "Unity" et "Unity 2D" qui dit "Exécuter une session définie par l'utilisateur".

Est-ce possible? Ça devrait être la chose la plus simple, mais je n'ai pas encore eu la moindre idée. J'exporte et définit et exécute beaucoup de choses dans ce fichier, il est donc assez important pour moi d'avoir le contrôle sur cela.

Ce que je ne veux PAS, c'est une session personnalisée dans / usr / some / where, je veux seulement qu'elle exécute le truc à partir de chaque utilisateur xinitrc (ou similaire).

Philipp
la source

Réponses:

21

Créez un nouveau fichier /usr/share/xsessions/custom.desktopavec:

[Desktop Entry]
Name=Xsession
Exec=/etc/X11/Xsession

Vous devriez maintenant avoir une nouvelle option de session lors de la connexion, Xsession chargera l'utilisateur ~/.xinitrc.

João Pinto
la source
2
Ubuntu ne considère que ~ / .xsession ou peut-être ~ / .xsessionrc et ~ / .Xsession maintenant (12.04)
guigouz
Faut-il redémarrer X, ou simplement se déconnecter, pour que cela prenne effet?
tshepang
1

Pour utiliser olvwm:

1) Tapez sudo apt-get install olvwmune console

2) Créez cette session:

/usr/share/xsessions/olvwm.desktop
[Desktop Entry]
Name=Open Look
Exec=olvwm
Type=Application
Malix
la source
1

Créez un nouveau fichier /user/share/xsessions/default.desktop(le nom dépend de vous, mais il doit avoir le .desktopsuffixe):

[Desktop Entry]
Name=Default
Comment=This runs user session and logs you into Ubuntu
Exec=default
Icon=

Maintenant, lorsque vous sélectionnez cette session lightdmet vous connectez, votre ~/.xsessionfichier, 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. ( ~/.xinitrcest utilisé lorsque la session X est démarrée à l'aide du startxscript à partir d'une ligne de commande.)

Quelques explications: L' Nameentrée est ce lightdmqui s'afficherait pour cette session. L' Execentrée est la chose importante, et ce devrait être le nom du programme qui démarre la session proprement dite. Lorsque vous vous connectez, lightdmappelle le /etc/X11/Xsessionscript, lui transmet la valeur de Execcomme argument et Xsession, éventuellement, exécute ce programme (par exemple, il peut s'agir startxfce4du démarrage d'une xfce4session). Si l' Execentrée est la chaîne spéciale default, alors Xsessionexécutera le ~/.xsessionfichier de l'utilisateur . ( Xsessionserait également exécuté ~/.xsessions'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 Xsessionserait appelé par lightdmun argument qui est (le chemin complet de) Xsession. Alors Xessions'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.

amitr
la source