Execute um comando ao efetuar login com o xmonad

1

Eu tenho um script simples que quero executar toda vez que o x é iniciado.

#! /bin/sh
/home/kevin/.dropbox-dist/dropboxd &

Eu executei o chmod 755 nele, então é totalmente executável. E isso apenas acontecerá. não. trabalho.

Se eu colocar o script como .xsession, o gerenciador de exibição (testando com SLiM e LightDM) repetidamente solicitará informações de login, a menos que a área de trabalho específica seja selecionada (xmonad). Ele carrega xmonad fine como a sessão padrão quando não há nenhum arquivo .xsession. Não importa o que aconteça, o script nunca é executado.

Devo mencionar que tentei variantes do script. Carregando um plano de fundo da área de trabalho em vez de uma caixa de depósito, com e sem instruções "exec xmonad". Eu não tentei uma instrução de caso de switch com base no argumento de sessão, porque xmonad é minha única sessão possível neste momento.

Coloquei-o (sem instruções executáveis) no .xprofile, adicionei uma linha em /etc/X11/xinit/xinitrc informando-a ao meu usuário, executei o script e saí. Eu também fiz o meu .xinitrc, desinstalei todos os meus gerenciadores de exibição e tentei startx. Ele jogou erros em mim que foram embora somente quando todas as linhas foram comentadas ou o arquivo foi excluído / movido.

Eu sei que o script em si é bom, porque eu posso executá-lo uma vez que eu estou logado e ele roda, faz tudo o que deve fazer.

Eu estou executando um Debian 8 com o xmonad. Nada mais de mérito está instalado no meu sistema.

    
por Kevin 25.07.2015 / 23:19

1 resposta

1

Você pode colocar comandos que deseja executar antes de iniciar o xmonad em ~/.xmonad/xmonad-session-rc .

Se você tem um ~/.xsession , seu trabalho é iniciar toda a sua sessão X. Quando esse script retorna, sua sessão acabou. Então, se você quiser usar este arquivo, você precisa iniciar o xmonad dele.

#! /bin/sh
/home/kevin/.dropbox-dist/dropboxd &
exec xmonad

Observe que, para que .xsession seja executado, você precisa selecionar uma sessão personalizada no gerenciador de exibição, não xmonad.

~/.xinitrc é semelhante a ~/.xsession quando sai, sua sessão X acabou. A diferença é que ~.xsession é executado a partir de um gerenciador de exibição que acabou de efetuar seu login, enquanto /xinitrc é executado para sessões X iniciadas de fora do X com startx .

Alternativamente, você pode executar o programa de startupHook , mas isso tem o lado negativo disso ' Será executado novamente se você reiniciar o xmonad.

    
por 25.07.2015 / 23:50