Gnome (Ubuntu): como trazer uma janela de programa para a frente usando uma linha de comando do terminal?


14

Eu tenho um certo ambiente de trabalho com dezenas de janelas abertas. Como posso trazer para a frente uma janela com um nome / título conhecido programaticamente ou usando a linha de comando?

Respostas:


12

Eu costumava usar wmctrl -a <name>, o que funciona bem, mas recentemente mudei para xdotool, por exemplo:

xdotool search --name <name-or-regex-for-name> windowraise

Também tem muitos outros recursos.

Para instalar:

sudo apt-get install xdotool


5
xdotool windowraisetraz a janela para a frente, mas não dá foco à janela nem muda para a área de trabalho com a janela. em vez disso, windowactivatefará todos os três.
Jozxyqk

6

Bem, depois de sudo apt-get install wmctrl-ing, você pode jogar com este script bash:

#! /bin/bash

WINTITLE="Mail/News" # Main Thunderbird window has this in titlebar
PROGNAME="mozilla-thunderbird" # This is the name of the binary for t-bird

# Use wmctrl to list all windows, count how many contain WINTITLE,
# and test if that count is non-zero:

if [ `wmctrl -l | grep -c "$WINTITLE"` != 0 ]
then
wmctrl -a "$WINTITLE" # If it exists, bring t-bird window to front
else
$PROGNAME & # Otherwise, just launch t-bird
fi
exit 0

Que eu encontrei aqui


4
Não há necessidade de suportes e espaldares:if ! wmctrl -l | grep -q "$WINTITLE"
Pausado até novo aviso.

wmctrltem uma -iopção, que suporta trabalhar com a janela com seu identificador hexadecimal. E assim você pode fazer isso wmctrl -lp|grep 'whatever incomplete name'|cut -d' ' -f1|xargs wmctrl -ai- o que iria fazer algo semelhante
Vlad-ardelean

0

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. Continua sendo minha ferramenta de escolha. Por motivos pessoais, Jordan Sissel (o autor original) não é tão ativo quanto era no passado, portanto, não hesite em contribuir com o projeto.


Esta é uma cópia de uma resposta que eu publiquei no AskUbuntu , mas acho que é independente do Linux, por isso pode ser útil aqui também.

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.