Respostas:
wmctrl -l
pode ser o que você está procurando. O programa wmctrl também pode executar algumas ações simples nas janelas, como movê-las e definir suas propriedades.
xlsclients
mostra os clientes em execução e xwininfo -root -children
mostra todos os filhos da janela raiz. Isso também inclui algumas coisas que o gerenciador de janelas ou a área de trabalho processa.
Aqui está a maneira de mostrar apenas nomes:
wmctrl -l|awk '{$3=""; $2=""; $1=""; print $0}'
porque wmctrl -l
mostra algumas informações extras, em vez de apenas os nomes necessários na pergunta:
como isso:
0x020002c6 0 ruslan-Latitude-E6410 fromscratch
0x04600007 0 ruslan-Latitude-E6410 Psensor - Temperature Monitor
0x01600007 0 ruslan-Latitude-E6410 Top Expanded Edge Panel
0x01600017 0 ruslan-Latitude-E6410 Bottom Expanded Edge Panel
0x0200000a -1 ruslan-Latitude-E6410 Desktop
0x05a0000c 0 ruslan-Latitude-E6410 ruslan@ruslan-Latitude-E6410: /var/lib/apt
0x05600085 0 ruslan-Latitude-E6410 index.html (~/Dropbox/cpucraft.com/fromscratch) - gedit
e filtrando, awk
obtemos apenas nomes de janelas abertas:
fromscratch
Psensor - Temperature Monitor
Top Expanded Edge Panel
Bottom Expanded Edge Panel
Desktop
ruslan@ruslan-Latitude-E6410: /var/lib/apt
index.html (~/Dropbox/cpucraft.com/fromscratch) - gedit
ubuntu - Get a list of open windows in Linux - Super User - Mozilla Firefox
cpucraft@cpucraft.com - FileZilla
Se você quiser simplesmente os títulos e nenhuma outra informação (nem mesmo espaço em branco), use:
wmctrl -l | grep -o "$HOSTNAME.*" | sed "s/$HOSTNAME //g"
Resultado:
linux - Como grep e substituir - Stack Overflow - Pale Moon Como posso usar uma variável no sed? | Fóruns do Unix Linux | Programação e script de shell - Pale Moon Exclua tudo depois dos caracteres * ou # ou & no arquivo de texto com o GREP - Stack Overflow - Pale Moon Video.mp4 - VLC Media Player