Portanto, supondo que você possa registrar uma mensagem do syslog do jogo mencionado, existe uma maneira de fazer todo o trabalho.
No HostA e no HostB, é executada uma linha simples em um usuário desprivilegiado (ou seja, não é root)
Para HostA
tail -fn0 /var/log/syslog | awk '/CHANGE-FOCUSE/ { print | "sshpass -p PASSWORD ssh USER@DisplayHost killall -9 vncviewer && DISPLAY=:0 vncviewer -display 0 HostA:12345 && exit" }'
Para o HostB
tail -fn0 /var/log/syslog | awk '/CHANGE-FOCUSE/ { print | "sshpass -p PASSWORD ssh USER@DisplayHost killall -9 vncviewer && DISPLAY=:0 vncviewer -display 0 HostB:12345 && exit" }'
onde:
- CHANGE-FOCUSE - é uma mensagem gerada pelo seu jogo
- DisplayHost - nome IP ou DNS do seu host com projetor
- USER - uma conta de usuário na qual o XSession está sendo executado (ou seja, cuja área de trabalho você está usando para projetar)
- PASSORD - uma senha desse usuário (não é a configuração mais segura, mas é mais simples testar
- HostA - endereço IP ou nome DNS de um HostA
- HostB - endereço IP ou nome DNS de um HostB
P.S. Você pode jogar com os parâmetros do vncviewer para tornar a janela em tela cheia mais ou menos.
Além disso, recomendo vivamente que faça a autenticação de certificados através do SSH para não usar senhas de texto simples veja aqui para detalhes .
-
sshpass é um utilitário autônomo que você precisa instalar para que a senha de texto sem formatação funcione com o SSH, pois agora ele está obsoleto.