Existem vários motivos pelos quais o comando acima não funciona.
-
Deve ser
wmctrl
, não wmtrl. -
Deve ser
su -c command username
em vez de
su username-c command
-
Poderia não ser uma janela ativa na sessão do outro usuário.
-
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.