Comando Shell para trazer uma janela de programa na frente de outra?


Respostas:


14

Nota:

  • Mais informações sobre o xdotool podem ser encontradas aqui .

Claro editar seu post, assim como eu estou compondo meu ... :()
frabjous

Você pode encontrar o seu nome janela com wmctrl -l O nome é o texto após o último travessão: <window ID> <ID de mesa> <máquina do cliente> <título da janela>
jorfus

8

Outra opção é o xdotool :

xdotool search --class Nautilus windowactivate


2
Falha para mim comXGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)
Tino

Provavelmente o bug aqui - na minha experiência --classname ou --name (se conhecido) funciona algumas vezes quando --class não.
frabjous

No meu caso, foi possível abrir uma janela usando o ID xwininfoe emitindo vários xdotoolcomandos adicionais adicionais (dos quais não me lembro mais). Quando tentei automatizar isso (para me livrar xwininfo), obtive artefatos visuais devido a janelas ocultas que também foram selecionadas. Simplesmente não encontrei uma maneira genérica de abordar janelas arbitrárias corretamente. Depois de mudar para wmctrl -atudo, imediatamente funcionou perfeitamente da caixa, sem mais ajustes. Observe que eu gosto xdotool, mas parece difícil elevar a janela correta com ela.
Tino

2

Ao usar xdotool, parece difícil exibir todas as janelas de um determinado aplicativo ou classe usando apenas um comando. Acabo tendo melhores resultados envolvendo-o em um forloop no nível do shell. Usando o Bash:

for WINDOW in $(xdotool search --desktop 0 Firefox); do
   xdotool windowactivate ${WINDOW}
done

Poucas observações:

  • Por padrão, xdotool searchprocurará o padrão (aqui Firefox) no nome da janela, classe e nome da classe. Se você quiser restringir o seu espaço de busca, use as relevantes --class, --nameou --classnameopções.
  • A --desktop 0opção limita a pesquisa à primeira área de trabalho. Isso parece ser uma solução alternativa para evitar o XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)mencionado em alguns comentários.
  • No momento da redação deste artigo, o xdotoolprojeto está paralisado desde 2015. Ainda permanece sendo minha ferramenta de escolha. Por motivos pessoais, Jordan Sissel (o autor original) não é tão ativo quanto era, então não hesite em contribuir com o projeto.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.