A ferramenta de linha de comando do linux wmctrl
permite listar todas as janelas ou todos os desktops, entre outras coisas. No modo de listagem da área de trabalho, a área de trabalho atual é marcada com um asterisco.
Preciso de uma ferramenta que possa descobrir o título da janela atualmente ativa. Infelizmente, wmctrl
não tem um ajudante que faça isso - apesar de saber qual janela está ativa no momento (consulte o :ACTIVE:
marcador).
Existe outra ferramenta de linha de comando que pode me fornecer o ID da janela e / ou o título da janela atual?
linux
command-line
xorg
Dave Vogt
fonte
fonte
wmctrl
, você pode fazer :,wmctrl -i -r `xdotool getwindowfocus` -e 0,10,10,-1,-1
onde-i
diz ao wmctrl que espere o ID da janela em vez do título da janela.Isso é mais direto e usa apenas
xprop
ecut
:Esses comandos são apenas uma extração de propriedades da janela raiz e da janela do aplicativo, mas conforme a solicitação de Lorenzo von Matterhorn:
Primeiro,
Extrai a
_NET_ACTIVE_WINDOW
propriedade da raiz, que fornece o XID da janela ativa. O32x '\t$0'
dizxprop
para formatar a saída de uma maneira quecut
possa ser analisada facilmente mais tarde.Em seguida, extraia apenas o XID da saída com
cut -f 2
Em seguida, passe o XID como parâmetro para
Que imprime o nome dessa janela.
fonte
Existe, mas nenhuma resposta ou solução curta.
resultado:
Em uso:
fonte
Isto é o que funcionou para mim:
xprop -id $(xprop -root _NET_ACTIVE_WINDOW | cut -d ' ' -f 5) WM_NAME
Dá:
WM_NAME(STRING) = "~"
Então, talvez você faça um pouco de feiúra para obter o nome por si só:
xprop -id $(xprop -root _NET_ACTIVE_WINDOW | cut -d ' ' -f 5) WM_NAME | sed -e 's/.*"\(.*\)".*/\1/'
Dá:
~
Qual é o meu nome de janela atualmente focado, por si só.
Ou, evite o sed com o menos feio:
xprop -id $(xprop -root _NET_ACTIVE_WINDOW | cut -d ' ' -f 5) WM_NAME | awk -F '"' '{print $2}'
fonte
xprop -id $(xprop -root _NET_ACTIVE_WINDOW | cut -d ' ' -f 5) WM_NAME | cut -d '"' -f 2
Relativamente curto e lida com nomes de janelas que contêm aspas corretamente:
fonte