Se eu quiser usar o wmctrl para outro monitor, qual é a linha de comando para fazer isso?
Algo como: su nome de usuário -c "DISPLAY:50 wmtrl -r:ACTIVE: -b toggle,fullscreen" não funcionou
Obrigado - estou executando o Ubuntu 12.04
Responder1
Existem vários motivos pelos quais o comando acima não funciona.
Deveria ser
wmctrl
, não wmtrl.Deveria ser
su -c command username
em vez de
su username-c command
Pode havernãoser uma janela ativa na sessão do outro usuário.
Mas o mais importante
su
é que foi projetado para alternar o usuário da janela de texto atual dentro de uma GUI, e não de qualquer outra janela. Por exemplo, oseu manualafirma:
... quando su é usado em uma janela de terminal (ou seja, uma janela somente texto em uma GUI), apenas aquela janela de terminal e os programas iniciados a partir dela são executados com a conta do novo usuário (por exemplo, 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, entretanto, todas as sessões X estão bem equipadas. Por exemplo, se você estiver conectado ssh
em uma máquina remota como usuário A, B deverá 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
vai funcionar.
Se tudo o que você deseja é compartilhar um terminal com outro usuário, para que ele possa ver o que você está digitando, então você deve instalar screen
, iniciar uma sessão com screen
, pressionar a sequência de escape Ctrl+A, depois dar os dois comandos multiuser on
e acladd B
. Agora o usuário B pode ingressar na sua sessão de tela por meio de screen -x A/
.
Por último, sua pergunta parece estar relacionada a um multi seat arrangement
arquivo .Eles são extremamente raros e não tenho nenhum para testar a solução. Você está realmente em uma dessas situações? Nesse caso, provavelmente valeria a pena especificá-lo no título do seu OP, pois isso requer o conhecimento de uma configuração não tão frequente.
Mas em qualquer caso,provavelmente(= não tenho um arranjo multiassento para testar isso), você pode conseguir isso pelo mesmo método da ssh
conexão, exceto que neste caso o usuário B deve emitir o comando:
xhost +SI:localuser:A
concedendo a você acesso ao display dele.