web-dev-qa-db-fra.com

Obtenez une liste de fenêtres ouvertes sous Linux

pS AX montre tous les processus en cours d'exécution. Je veux faire quelque chose de similaire, mais au lieu des noms des processus réels, je souhaite que les noms de fenêtre énumérés à la place. Quelle commande Linux fera-t-elle cela?

25
tony_sid

wmctrl -l peut être ce que vous recherchez. Le programme ( WMCTRL Le programme peut également effectuer des actions simples sur les fenêtres comme la déplacer et la définition de leurs propriétés.

xlsclients montre les clients en cours d'exécution et xwininfo -root -children montre tous les enfants de la fenêtre racine. Cela inclut également des éléments de votre gestionnaire de fenêtres ou des rendants de bureau.

18
Aaron Digulla

Voici le moyen de montrer des noms uniquement:

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

car wmctrl -l montre un peu d'informations supplémentaires plutôt que des noms nécessaires dans la question:

comme ça:

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

et le filtrer par awk Nous n'obtenons que des noms de fenêtres ouvertes:

   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
4
Ruslan Gerasimov

Si vous voulez simplement les titres et aucune autre information (pas même blancheur), vous pouvez utiliser ceci:

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

Résultat:

[.____] Linux - Comment grep et remplacer - Overflow de pile - lune pâle [.____] Comment puis-je utiliser une variable dans SED? | Forums Unix Linux | Programmation et script de coquille - Pale Moon [.____] Supprimer tout après des personnages * ou # ou dans un fichier texte avec grep - Overflow de pile - Pale Moon 
 Video.mp4 - Vlc Media Player [.____]
2
Smile4ever