.xsession. .xinitrc, xmonad e lightdm

16

Deixe-me começar minha pergunta com o seguinte: Tenho certeza de que posso hackear uma solução modificando o /usr/share/xsessions/somesessionfile.desktop e fazê-lo executar o / etc / X11 / Xsession, e fazê-lo funcionar dessa maneira, mas eu ainda gostaria de esclarecer poucas coisas.

Configuraçã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, ou melhor, confuso sobre qual programa está fazendo o quê, em relação a X, unidade, gerenciadores de login (ou o que eles são chamados) e gerenciadores de janela. Eu estou usando xmonad como meu gerenciador de janelas, eu sei disso. E quando eu logar, ou talvez até mais cedo, eu quero meus monitores duplos para ser configurado corretamente usando um script que executa xrandr (que eu já tenho trabalhando). Todos com quem falo ou cujas perguntas eu leio online falam 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 não posso, durante a minha vida, encontrar qualquer documentação sobre isso.

Onde está a consistência neste sistema? O que, exatamente, devo fazer se eu quiser fazer isso corretamente? Alguns gerenciadores de janelas parecem fazer isso (o KDE e o gnome parecem ter algo chamado apenas de 'autostart'). Eu deveria deixar meu gerenciador de janelas lidar com isso, X ou lightdm? Eu entendo que provavelmente há dezenas de arquivos no processo de inicialização que eu poderia colocar isso, mas estou pedindo a convenção apropriada. 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 X ou isso depende inteiramente da combinação de gerenciadores de janela e gerenciadores de login que estou usando?

    
por foobarbaz 01.10.2012 / 23:07

2 respostas

11

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

Supondo que isso seja apenas para você e esteja 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 do seu comando xrandr (semelhante ao seguinte item de teste):

xrandr --output LVDS --mode 1280x854

Você pode encontrar mais informações em O que acontece embaixo das capas para me conectar e iniciar o Unity ou outra Interface Gráfica com o Usuário? . Ele cobre um pouco do que acontece com os gerenciadores de janelas não-unitários.

    
por John S Gruber 08.10.2012 / 01:34
3

Muito obrigado pelo link "O que acontece debaixo da capa ...", uma leitura obrigatória!

~ / .xprofile acontece cedo demais, 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á está ativado 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 isso ajude.

    
por jissouille 20.10.2012 / 19:47