web-dev-qa-db-fra.com

Comment utiliser LightDM pour des sessions définies par l'utilisateur?

Si je le comprends bien, LightDM a remplacé GDM par défaut. Je me demande s’il est possible de faire exécuter ce que j’ai mis dans mon fichier .xinitrc ... ce dont j’ai besoin, c’est une option située sous "Unity" et "Unity 2D" qui indique "Exécuter une session définie par l’utilisateur".

Est-ce possible? Ça devrait être la chose la plus facile, mais je n’ai pas eu la moindre idée pour le moment. J'exporte, définit et exécute beaucoup de choses dans ce fichier, il est donc très important pour moi de contrôler 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 contenu depuis le xinitrc de chaque utilisateur (ou similaire).

22
Philipp

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

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

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

21
João Pinto

Pour utiliser olvwm:

1) Tapez Sudo apt-get install olvwm dans une console

2) Créer cette session:

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

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

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

Maintenant, lorsque vous sélectionnez cette session dans lightdmet que vous vous connectez, votre fichier ~/.xsession, s'il existe, sera exécuté.

Notez que le fichier de l'utilisateur qui est exécuté est ~/.xsession et non pas ~/.xinitrc, comme indiqué dans la question. (~/.xinitrc est utilisé au démarrage de la session X à l'aide du script startxà partir d'une ligne de commande.)

Quelques explications: L’entrée Namecorrespond à ce que lightdmafficherait pour cette session. L'entrée Execest la chose la plus importante. Ce doit être le nom du programme qui démarre la session. Lorsque vous vous connectez, lightdmappelle le script /etc/X11/Xsession en lui transmettant la valeur de Execen tant qu'argument et Xsessionexécutera éventuellement ce programme (par exemple, il pourrait s'agir de startxfce4 pour démarrer une session xfce4. Si l'entrée Execest la chaîne spéciale defaultname__, alors Xsessionexécutera le fichier ~/.xsession de l'utilisateur. (Xsessionexécuterait également ~/.xsession s'il est appelé sans aruments.)

Désolé, je suis nouveau ici et je ne peux donc pas commenter les réponses des autres personnes, mais j'aimerais commenter la réponse acceptée, pour que les choses soient plus claires. Comme expliqué ci-dessus, ce qui va se passer avec la méthode de cette réponse est que Xsessionserait appelé par lightdmavec un argument qui est (le chemin complet de) Xsessionname__. Donc, Xessionsera exécuté puis appelé, cette fois sans arguments. La seconde Xsessionname__, appelée sans arguments, exécutera le ~/.xsession de l'utilisateur. Ainsi, l'action souhaitée sera éventuellement prise, mais d'une manière un peu délicate.

0
amitr