Na minha máquina principal, tenho um desktop Ubuntu aberto e conectado. Também estou logando nesta máquina a partir de um computador remoto, usando o X2go, que cria uma nova sessão X. Eu tenho um arquivo do libreoffice aberto na sessão original . Quero salvar este arquivo e fechá-lo - mas a partir da máquina remota! (Ambas as sessões têm o mesmo usuário logado; posso sudo, se necessário)
Eu tentei usar, xdotool search
mas isso não consegue encontrar a janela. Existe uma maneira de fazer o que eu quero desta segunda sessão? Eu posso ver o processo com ps -A
Eu posso até ver o arquivo aberto com lsof
! Como faço para "salvar e fechar" nele?
DISPLAY=:0
(ou qualquer outra exibição em que sua outra conta esteja) e, em seguida, inicie o servidor e acesse-o pelo cliente. Mas isso pode ser excessivo. LibreOffice pode ter um protocolo de mensagem - Eu não sou terrivelmente familiarizado com ele porque eu usar tanto arquivos do Google Docs ou texto simples no Vim (incluindo látex) ...DISPLAY:1
e inicie qualquer programa X (xeyes para teste) e execute no VNC. O mesmo se aplica aos servidores vncs remotos. SSH na máquina e, em seguida, execute a exportação de DISPLAY: 1 antes de usar.Respostas:
Assumindo a configuração padrão, xdpyinfo em "original" mostraria uma exibição de ": 0.0", por exemplo
Se a sua variável de ambiente DISPLAY em "x2go" for ": 1.0", deve ser assim.
Em um terminal no "x2go", tente encontrar o ID da janela:
É possível que o controle de acesso esteja configurado para que não funcione, mas acho que deveria acontecer se você for o mesmo usuário no mesmo host (por exemplo, acesso a ~ / .Xauthority). Verifique a saída "lista xauth" se não houver acesso.
Se funcionar, use sua ferramenta favorita para controlá-la. Adicione "-int" ao xwininfo acima para imprimir o windowid em decimal se sua ferramenta exigir dessa maneira, o xdotool não:
ou você pode ter mais sorte com eles em vez de "ctrl + s" / "ctrl + q"
Você pode precisar de "alt +" em vez de "meta +", eu tenho mapeamentos meta / alt / super não padrão. meta funciona para mim, testado usando um Xnest. Estou assumindo o layout e aceleradores inalterados do menu em inglês.
É possível que exista um pop-up no seu caminho; nesse caso, vale a pena tentar:
algumas vezes e tente novamente salvar e fechar. Lembre-se de que o xdotool é exigente quanto ao caso exato dos nomes das "chaves".
Você deve poder tentar tudo isso iniciando o libreoffice no x2go e NÃO modificando seu DISPLAY. Você deve salvar os comandos em um arquivo de script de shell para que as alterações de foco não atrapalhem.
lsof deve mostrar que o arquivo não está mais aberto se funcionou :-)
fonte
xdotool key "Escape"
sobre nomes, mas não tentou nomes longos: DParece que existem alguns requisitos possíveis. aparentemente o host precisa estar no arquivo xhosts (foi marcado como resposta) e o valor DISPLAY apropriado exportado. Esta publicação aqui deve ajudá-lo a fazer o que você deseja, permitindo que o xdotool encontre a janela remota do x11 .
fonte