Cree un nuevo archivo /user/share/xsessions/default.desktop
(el nombre depende de usted, pero tiene que tener .desktop
sufijo):
[Desktop Entry]
Name=Default
Comment=This runs user session and logs you into Ubuntu
Exec=default
Icon=
Ahora, cuando seleccione esta sesión lightdm
e inicie sesión, su ~/.xsession
archivo, 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. ( ~/.xinitrc
se utiliza cuando se inicia la sesión X utilizando el startx
script desde una línea de comando).
Algunas explicaciones: la Name
entrada es lo que lightdm
se mostrará para esta sesión. La Exec
entrada es lo importante, y debe ser el nombre del programa que inicia la sesión real. Cuando inicia sesión, lightdm
llama al /etc/X11/Xsession
script, le pasa el valor de Exec
como argumento y Xsession
, eventualmente, ejecutará este programa (por ejemplo, podría ser startxfce4
para comenzar una xfce4
sesión). Si la Exec
entrada es la cadena especial default
, Xsession
ejecutará el ~/.xsession
archivo del usuario . ( Xsession
también se ejecutaría ~/.xsession
si 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 Xsession
se llamaría lightdm
con un argumento que es (la ruta completa de) Xsession
. Entonces Xession
se 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.