wmctrl para um display remoto

1

Se eu quiser usar wmctrl para outra exibição, qual é a linha de comando para fazer isso?

Algo como: su username -c "DISPLAY: 50 wmtrl -r: ATIVO: -b toggle, fullscreen" não funcionou

Obrigado - Estou executando o Ubuntu 12.04

    
por john 30.09.2015 / 07:09

1 resposta

2

Existem vários motivos pelos quais o comando acima não funciona.

  1. Deve ser wmctrl , não wmtrl.

  2. Deve ser

           su -c command username
    

    em vez de su username-c command

  3. Poderia não ser uma janela ativa na sessão do outro usuário.

  4. Mas o mais importante é que su foi criado para alternar o usuário da janela de texto atual para uma GUI, não para qualquer outra janela. Por exemplo, o su manual afirma:

... when su is used in a terminal window (i.e., a text-only window in a GUI), only that terminal window and programs that are started from it are run with the new user's account (e.g., root), ...

A maneira correta de realizar algo parecido com o que você tem em mente é conversar com o servidor X do outro usuário, algo contra o qual, no entanto, todas as sessões do X estão bem equipadas. Por exemplo, se você está logado via ssh em uma máquina remota como usuário A, B deve permitir que você faça isso por meio de

     xhost +

e então você pode acessar sua sessão X por meio de

    export DISPLAY=:0.0 

e agora seu comando,

     wmctrl -r :ACTIVE: -b toggle,fullscreen

funcionará.

Se tudo o que você quer é compartilhar um terminal com outro usuário, para que ele possa ver o que está digitando, instale screen , inicie uma sessão com screen , pressione a seqüência de escape Ctrl + A, em seguida, forneça os dois comandos multiuser on e acladd B . Agora, o usuário B pode participar da sua sessão de tela por meio de screen -x A/ .

Por fim, sua pergunta parece estar relacionada a um multi seat arrangement . Eles são extremamente raros e eu não tenho um para testar a solução. Você está realmente em uma dessas situações? Se assim for, provavelmente valeria a pena especificá-lo no título do seu OP, pois isso requer conhecimento de uma configuração não tão frequente.

Mas, em qualquer caso, provavelmente (= não tenho um acordo de múltiplos lugares para testar isso), você pode conseguir isso pelo mesmo método que para a ssh connection, execpt que neste caso o usuário B deve emitir o comando:

     xhost +SI:localuser:A

garantindo acesso à exibição dele.

    
por 30.09.2015 / 08:24

Tags