~ / .xinitrc não está sendo executado

14

Não consigo executar meus scripts ~/.xinitrc( ~/.xsession) ao fazer login no meu computador. Estou usando o Xubuntu 12.10 com vanilla lightgm como o gerenciador de login. Ambos os arquivos têm a permissão correta (executável). Eu tenho no meu ~/.xinitrc, o seguinte:

#!/usr/bin/env bash 

# read ~/.Xmodmap if it exists
if [[ -f "${HOME}/.Xmodmap" ]]; then
    xmodmap "${HOME}/.Xmodmap"
fi

# read ~/.Xresources if it exists
if [[ -f "${HOME}/.Xresources" ]]; then
    xrdb -load "${HOME}/.Xresources"
fi

# use gnome-keyring-daemon to manage keys
/usr/bin/gnome-keyring-daemon --start --components=gpg
/usr/bin/gnome-keyring-daemon --start --components=ssh

Qualquer outro comando (como date >> "$HOME/did_start") também não está sendo executado.

Agora, aparentemente, mesmo que eu exclua meus arquivos ~/.xinitrce ~/.xsession, xmodmapparece estar lendo ~/.Xmodmape ~/.Xresourcestambém está sendo parcialmente lido. Fiz o check-in /etc/X11/Xsessionpara ver se há algum comando que o faça ler esses dois arquivos e não encontrei nenhum. O que poderia estar acontecendo?

EDIT: Como o Gilles perguntou, estou usando uma sessão personalizada durante o login através do lightdm ( /usr/share/xsessions/custom.desktop):

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

Mas, aparentemente, isso ainda inicia o XFCE via startxfce4mesmo que eu não o tenha no meu ~/.xinitrc.

E, como Ulrich Dangel apontou, há uma linha na /usr/xdg/xfce4/xinitrcqual lê ~/.Xmodmape ~/.Xresources, e esse script é executado por startxfce4. Então esse "mistério" agora está resolvido. Mas, novamente, as cores (para xterm, urxvtetc.) de ~/.xinitrcainda não estão sendo carregadas.

metwarp
fonte
Como está indo o seu processo de logon? Quais sessões estão disponíveis (se houver)?
tijagi
Que tipo de sessão você escolhe no lightdm?
Gilles 'SO- stop be evil'
@Gilles Estou usando uma sessão personalizada. Atualizei minha pergunta com mais informações sobre isso.
metwarp

Respostas:

6

Para sua primeira pergunta, normalmente depende da sua sessão, ou seja, o arquivo no seu exemplo não é necessariamente suficiente, pois não inicia o seu WM / DE. Normalmente, ~/.xsessionou ~/.xinitrcinicie o ambiente inteiro e não seja usado apenas para iniciar automaticamente alguns programas, ou seja, eles devem conter uma linha como exec x-window-managera global, mas xsessionapenas o arquivo.

Para sua outra pergunta, o Debian (e provavelmente o Ubuntu) tem o /etc/X11/Xsession.dque, por exemplo, carrega ~/.Xresources. Esses arquivos também são responsáveis ​​por carregar e encontrar o gerenciador de janelas padrão.

Para depurar seus problemas, você deve dar uma olhada ~/.xsession-errorsou iniciar o xserver em um console e ver as mensagens de erro diretamente lá, ou seja,startx -- /etc/X11/Xsession

Ulrich Dangel
fonte
Para a primeira parte, mesmo que eu não tenha uma exec startxfce4linha no meu ~/.xinitrc, o XFCE inicia (é estranho, algo mais deve estar acontecendo). Para a segunda parte, sim, o que você disse parece ser o caso. O /etc/xdg/xfce4/xinitrcscript fez com que os dois arquivos fossem lidos.
metwarp
@metwarp ok atualizou o comentário
Ulrich Dangel