.xsession. .xinitrc, xmonad e lightdm

16

Permitam-me que anteceda minha pergunta com o seguinte: Tenho certeza de que posso hackear uma solução modificando /usr/share/xsessions/somesessionfile.desktop e executá-la / etc / X11 / Xsession, e fazê-la funcionar dessa maneira , mas ainda gostaria de esclarecer algumas coisas.

Instalação: 12.04, instalação completamente nova (3 horas, talvez). Deseja usar o xmonad como meu WM. Configuração de cabeça dupla.

Minha pergunta: eu estou completamente confuso, ou melhor, completamente sobre qual programa está fazendo o que, com relação ao X, unidade, gerenciadores de login (ou como eles são chamados) e gerenciadores de janelas. Estou usando o xmonad como meu gerenciador de janelas, eu sei disso. E quando eu entrar, ou talvez até mais cedo, quero que meus monitores duplos sejam configurados corretamente usando um script que execute xrandr (que eu já tenho trabalhando). Todo mundo com quem converso ou cujas perguntas eu li on-line fala sobre xinitrc, ~ / .xsession ou / etc / X11 / xsession, mas nenhum desses arquivos está sendo executado. Os arquivos em / usr / share / xsesssions parecem ser os únicos arquivos que estão sendo executados e, durante toda a minha vida, não consigo encontrar nenhuma documentação sobre nada disso.

Onde está a consistência neste sistema? O que exatamente devo fazer se quiser fazer isso corretamente? Alguns gerenciadores de janelas parecem fazer isso (o KDE e o gnome parecem ter algo chamado 'autostart'). Devo deixar meu gerenciador de janelas lidar com isso, X ou lightdm? Entendo que provavelmente existam dezenas de arquivos no processo de inicialização em que eu poderia colocar isso, mas estou pedindo a convenção adequada. Qual é a solução, para algo assim?

TL; DR; Existe uma maneira consistente de executar um script automaticamente para cada gerenciador de janelas executado em cima do X, ou isso depende inteiramente da combinação de gerenciadores de janelas e gerenciadores de login que estou usando?

foobarbaz
fonte

Respostas:

11

Eu acredito que você pode achar que isso funcionará para você. Ele será originado pelo script de traço / usr / sbin / lightdm-session, que posteriormente executará o exec para o gerenciador de janelas.

Supondo que isso seja apenas para você, e por estar relacionado ao X, sugiro colocá-lo em ~ / .xprofile. Se for aplicável a todos os usuários do sistema, o / etc / xprofile pode ser mais apropriado.

Crie um arquivo ~ / .xprofile e edite-o para conter algo que seu comando xrandr (semelhante ao seguinte item de teste):

xrandr - saída LVDS --modo 1280x854

Você pode encontrar mais informações em O que acontece sob as capas para efetuar login e iniciar o Unity ou outra interface gráfica do usuário? . Ele cobre parte do que acontece com os gerenciadores de janelas que não são de unidade.

John S Gruber
fonte
3

Muito obrigado pelo link "O que acontece por baixo da capa ...", é necessário ler!

~ / .xprofile acontece muito cedo, as configurações do xrandr são perdidas.

Uma solução é criar um script e executá-lo nos "aplicativos na inicialização". No entanto, como o nautilus já foi lançado e decidirá exibir os ícones no monitor secundário (após o comando xrandr), adicionei no final:

killall -1 nautilus
nautilus -n

Sujo, mas funciona. Espero que isto ajude.

jissouille
fonte