Como posso usar o LightDM para sessões definidas pelo usuário?

22

Se eu o entender corretamente, o LightDM substituirá o GDM por padrão. Gostaria de saber se é possível fazê-lo executar as coisas que coloquei no meu arquivo .xinitrc ... o que preciso é de uma opção abaixo de "Unity" e "Unity 2D" que diz "Executar uma sessão definida pelo usuário".

Isso é possível? Deveria ser a coisa mais fácil, mas eu não tinha uma pista até agora. Eu exporto, defino e executo muitas coisas neste arquivo, por isso é muito importante para mim ter controle sobre isso.

O que eu NÃO quero é uma sessão personalizada em / usr / some / where, eu só quero que ela execute o material do xinitrc de cada usuário (ou similar).

Philipp
fonte

Respostas:

21

Crie um novo arquivo /usr/share/xsessions/custom.desktopcom:

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

Agora você deve ter uma nova opção de sessão durante o login, o Xsession carregará o usuário ~/.xinitrc.

João Pinto
fonte
2
Ubuntu considera apenas ~ / .xsession ou talvez ~ / .xsessionrc e ~ / .xsession agora (12,04)
guigouz
É necessário reiniciar o X, ou simplesmente sair, para que isso tenha efeito?
tshepang
1

Para usar o olvwm:

1) Digite sudo apt-get install olvwmum console

2) Crie esta sessão:

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

Crie um novo arquivo /user/share/xsessions/default.desktop(o nome é seu, mas deve conter o .desktopsufixo):

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

Agora, quando você seleciona esta sessão lightdme efetua login, seu ~/.xsessionarquivo, se existir, será executado.

Observe que o arquivo do usuário que é executado é ~/.xsession, e não ~/.xinitrc, mencionado na pergunta. ( ~/.xinitrcé usado quando a sessão X é iniciada usando o startxscript em uma linha de comando.)

Algumas explicações: A Nameentrada é o que lightdmseria exibido para esta sessão. A Execentrada é importante e deve ser o nome do programa que inicia a sessão real. Quando você efetua login, lightdmchama o /etc/X11/Xsessionscript, passando o valor de Execcomo argumento e Xsession, eventualmente, executará este programa (por exemplo, poderia ser startxfce4para iniciar uma xfce4sessão). Se a Execentrada for a sequência especial default, Xsessiono ~/.xsessionarquivo do usuário será executado . ( Xsessiontambém seria executado ~/.xsessionse for chamado sem argumentos).

Desculpe, sou novo aqui e, portanto, não posso comentar as respostas de outras pessoas, mas gostaria de comentar a resposta aceita, para tornar as coisas mais claras. Conforme minha explicação acima, o que acontecerá com o método dessa resposta é que Xsessionseria chamado lightdmcom um argumento que é (o caminho completo de) Xsession. Então, Xessionserá executado e depois se chamará, desta vez sem argumentos. O segundo Xsession, sendo chamado sem argumentos, executará o usuário ~/.xsession. Portanto, a ação desejada será, eventualmente, tomada, mas de uma maneira um pouco estranha.

amitr
fonte