¿Cómo puedo usar LightDM para sesiones definidas por el usuario?

22

Si lo entiendo correctamente, LightDM ha reemplazado GDM por defecto. Me pregunto si es posible hacer que ejecute las cosas que puse en mi archivo .xinitrc ... lo que necesito es una opción debajo de "Unity" y "Unity 2D" que dice "Ejecutar una sesión definida por el usuario".

¿Es eso posible? Debería ser lo más fácil, pero hasta ahora no tenía ni idea. Exporte y defino y ejecuto muchas cosas en este archivo, por lo que es bastante importante para mí tener control sobre eso.

Lo que NO quiero es una sesión personalizada en / usr / some / where, solo quiero que ejecute el material desde xinitrc de cada usuario (o similar).

Philipp
fuente

Respuestas:

21

Crea un nuevo archivo /usr/share/xsessions/custom.desktopcon:

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

Ahora debería tener una nueva opción de sesión durante el inicio de sesión, Xsession cargará el usuario ~/.xinitrc.

João Pinto
fuente
2
Ubuntu solo considera ~ / .xsession o tal vez ~ / .xsessionrc y ~ / .Xsession ahora (12.04)
guigouz
¿Es necesario reiniciar X o simplemente cerrar sesión para que esto surta efecto?
tshepang el
1

Para usar olvwm:

1) Escriba sudo apt-get install olvwmuna consola

2) Crear esta sesión:

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

Cree un nuevo archivo /user/share/xsessions/default.desktop(el nombre depende de usted, pero tiene que tener .desktopsufijo):

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

Ahora, cuando seleccione esta sesión lightdme inicie sesión, su ~/.xsessionarchivo, si existe, se ejecutará.

Tenga en cuenta que el archivo del usuario que se ejecuta es ~/.xsession, y no ~/.xinitrc, que se mencionó en la pregunta. ( ~/.xinitrcse utiliza cuando se inicia la sesión X utilizando el startxscript desde una línea de comando).

Algunas explicaciones: la Nameentrada es lo que lightdmse mostrará para esta sesión. La Execentrada es lo importante, y debe ser el nombre del programa que inicia la sesión real. Cuando inicia sesión, lightdmllama al /etc/X11/Xsessionscript, le pasa el valor de Execcomo argumento y Xsession, eventualmente, ejecutará este programa (por ejemplo, podría ser startxfce4para comenzar una xfce4sesión). Si la Execentrada es la cadena especial default, Xsessionejecutará el ~/.xsessionarchivo del usuario . ( Xsessiontambién se ejecutaría ~/.xsessionsi se llama sin argumentos).

Lo siento, soy nuevo aquí y, por lo tanto, no puedo comentar las respuestas de otras personas, pero me gustaría comentar la respuesta aceptada para aclarar las cosas. Según mi explicación anterior, lo que sucederá con el método de esa respuesta es que Xsessionse llamaría lightdmcon un argumento que es (la ruta completa de) Xsession. Entonces Xessionse ejecutará y luego se llamará a sí mismo, esta vez sin argumentos. El segundo Xsession, que se llama sin argumentos, ejecutará el usuario ~/.xsession. Entonces, la acción deseada, eventualmente, se tomará, pero de una manera un poco incómoda.

amitr
fuente