Uzyskaj listę otwartych okien w systemie Linux

24

ps ax pokazuje wszystkie uruchomione procesy. Chcę zrobić coś podobnego, ale zamiast nazw rzeczywistych procesów chcę zamiast tego wymienić nazwy okien. Jakie polecenie Linuksa to zrobi?

tony_sid
źródło

Odpowiedzi:

35

wmctrl -lmoże być tym, czego szukasz. Program wmctrl może także wykonywać proste czynności w oknach, takie jak przenoszenie ich i ustawianie ich właściwości.

Gilles „SO- przestań być zły”
źródło
18

xlsclientspokazuje działających klientów i xwininfo -root -childrenpokazuje wszystkie elementy potomne okna głównego. Obejmuje to również niektóre funkcje renderowane przez menedżera okien lub pulpit.

Aaron Digulla
źródło
To jest wynik wmctrl -l plus trochę więcej.
Smile4ever,
4

Oto sposób wyświetlania tylko nazw:

wmctrl -l|awk '{$3=""; $2=""; $1=""; print $0}'

ponieważ wmctrl -lpokazuje trochę dodatkowych informacji, a nie tylko nazwy wymagane w pytaniu:

lubię to:

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

i filtrując je awk, otrzymujemy tylko nazwy otwartych okien:

   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
   [email protected] - FileZilla
Ruslan Gerasimov
źródło
2

Jeśli chcesz po prostu tytułów i żadnych innych informacji (nawet białych znaków), możesz użyć tego:

wmctrl -l | grep -o "$HOSTNAME.*" | sed "s/$HOSTNAME //g"

Wynik:

linux - Jak grep i wymienić - Przepełnienie stosu - Pale Moon
Jak mogę użyć zmiennej w sed? | Fora Unix Linux | Programowanie i tworzenie skryptów powłoki - Pale Moon
Usuń wszystko po znakach * lub # lub & w pliku tekstowym za pomocą GREP - Stack Overflow - Pale Moon
Video.mp4 - VLC Media Player
Smile4ever
źródło