Por que meu xprop-command falha no login, se eu o executar de ~ / .profile?

1

Estou executando o Lubuntu 16.04. Está usando o openbox como gerenciador de janelas. Eu queria configurar os desktops virtuais para estar em um arranjo de grade em vez de uma linha, o que eu posso fazer executando este comando:

xprop -root -f _NET_DESKTOP_LAYOUT 32cccc -set _NET_DESKTOP_LAYOUT 0,3,2,0

Isso funciona bem quando executado manualmente. Então eu coloquei esse comando no meu ~/.profile , esperando que ele fosse executado em cada login.

Mas não é. :( O Lubuntu inicializa, eu faço o login e o pager ainda está configurado em uma linha. Eu tenho que executar manualmente esse comando para recuperar o layout da área de trabalho.

.profile está sendo executado quando eu entro. Posso dizer isso porque os ajustes de PATHS feitos nele estão tendo um efeito.

  1. Como funciona quando executado em um terminal, mas não em .profile? (Eu até fiz source ~/.profile em vez de digitar / copiar o comando para garantir que está correto no arquivo)
  2. Onde está o arquivo apropriado para colocar tal comando para que seja executado corretamente?

Procurando por qualquer comando 'xprop' subsequente que possa estar sobrescrevendo, eu corri

grep -r xprop  .

e encontrou uma referência a uma falha xprop no arquivo run.log . O log parece ser gerado em cada login:

pod@lubuntu-vm:~$ grep -C3 xprop  ~/.cache/lxsession/Lubuntu/run.log 
** Message: utils.vala:79: Config system location : /etc/xdg/lxsession/Lubuntu
** Message: utils.vala:85: System system path location : /etc/xdg/lxsession/Lubuntu/conffiles.conf
** Message: utils.vala:89: Final file used : /etc/xdg/lxsession/Lubuntu/conffiles.conf
xprop:  no such property "_NET_NUMBER_OF_DESKTOPS"
xprop:  no such property "_NET_DESKTOP_NAMES"
** Message: options.vala:164: Activate xsettings_manager build-in
** Message: utils.vala:68: User config used : /home/pod/.config/lxsession/Lubuntu/desktop.conf
** Message: utils.vala:89: Final file used : /home/pod/.config/lxsession/Lubuntu/desktop.conf

Mas essa é a única referência, e não é a mesma propriedade que estou tentando ajustar.

    
por Pod 25.01.2017 / 22:18

1 resposta

3

O problema

Como já mencionei nos comentários, o problema é tempo . (comandos para-) A configuração de desktops é tipicamente algo que irá quebrar se a área de trabalho não estiver pronta para isso, e seu comando simplesmente perderá o alvo. Isso geralmente acontece ao executar comandos na configuração de monitores, teclados e mouse, por exemplo.

Para resolver

Para resolver o problema, você precisa adicionar uma pequena pausa antes que o comando seja executado. Eu não uso Lubuntu , mas de acordo com esta postagem , você deve ser capaz de adicionar um comando para iniciar (login na verdade) aqui: Menu Iniciar → Preferências → Aplicativos padrão para LXSession → AutoStart. O comando para adicionar uma pequena pausa é então:

/bin/bash -c "sleep 5 && xprop -root -f _NET_DESKTOP_LAYOUT 32cccc -set _NET_DESKTOP_LAYOUT 0,3,2,0"

Como alternativa, (testado por você :)), você pode adicioná-lo a ~/.profile e adicionar um & para garantir que ele seja executado em segundo plano e não segure o processo de login.

    
por Jacob Vlijm 26.01.2017 / 06:48