Rufen Sie eine Liste der geöffneten Fenster in Linux ab

24

ps ax zeigt alle laufenden Prozesse an. Ich möchte etwas Ähnliches tun, aber anstelle der Namen der eigentlichen Prozesse sollen stattdessen die Fensternamen aufgelistet werden. Welcher Linux-Befehl macht das?

tony_sid
quelle

Antworten:

35

wmctrl -lVielleicht ist es das, wonach Sie suchen. Das Programm wmctrl kann auch einige einfache Aktionen für die Fenster ausführen, z. B. das Verschieben und Festlegen ihrer Eigenschaften.

Gilles 'SO - hör auf böse zu sein'
quelle
18

xlsclientsZeigt die laufenden Clients und xwininfo -root -childrenalle untergeordneten Elemente des Stammfensters an. Dazu gehört auch einiges, was Ihr Fenstermanager oder Desktop rendert.

Aaron Digulla
quelle
Dies ist die Ausgabe von wmctrl -l und einige weitere.
Smile4ever
4

Hier ist die Möglichkeit, nur Namen anzuzeigen:

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

weil wmctrl -lzeigt ein bisschen mehr Infos als nur die Namen in der Frage erforderlich:

so was:

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

und filtern nach awkbekommen wir nur Namen von geöffneten Fenstern:

   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
quelle
2

Wenn Sie nur die Titel und keine anderen Informationen (nicht einmal Leerzeichen) möchten, können Sie dies verwenden:

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

Ergebnis:

Linux - Grepen und Ersetzen - Stack Overflow - Pale Moon
Wie kann ich eine Variable in sed verwenden? | Unix-Linux-Foren | Shell-Programmierung und Skripterstellung - Pale Moon
Löschen Sie alles nach den Zeichen * oder # oder & in der Textdatei mit GREP - Stack Overflow - Pale Moon
Video.mp4 - VLC Media Player
Smile4ever
quelle