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

12

Existe um comando shell para trazer um programa já iniciado no gnome na frente de outro.

ou seja:

Gedit e Nautilus são iniciados. O Nautilus está em segundo plano e o Gedit em primeiro plano.

Como trazer o Nautilus para a frente com um comando shell?

NES
fonte
1
Outros: superuser.com/questions/183680/…
karthick87;

Respostas:

14

Nota:

  • Mais informações sobre o xdotool podem ser encontradas aqui .
karthick87
fonte
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

frabjous
fonte
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.
Sylvain Leroux
fonte