Obtenga una lista de ventanas abiertas en Linux

24

ps ax muestra todos los procesos en ejecución. Quiero hacer algo similar, pero en lugar de los nombres de los procesos reales, quiero que se muestren los nombres de las ventanas. ¿Qué comando de Linux hará esto?

tony_sid
fuente

Respuestas:

35

wmctrl -lpuede ser lo que estás buscando. El programa wmctrl también puede realizar algunas acciones simples en las ventanas, como moverlas y configurar sus propiedades.

Gilles 'SO- deja de ser malvado'
fuente
18

xlsclientsmuestra los clientes en ejecución y xwininfo -root -childrenmuestra todos los elementos secundarios de la ventana raíz. Eso también incluye algunas cosas que representa tu administrador de ventanas o escritorio.

Aaron Digulla
fuente
Esta es la salida wmctrl -l y algo más.
Smile4ever
4

Aquí está la forma de mostrar solo nombres:

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

porque wmctrl -lmuestra un poco de información adicional en lugar de solo los nombres requeridos en la pregunta:

Me gusta esto:

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

y al filtrarlo awksolo obtenemos nombres de ventanas abiertas:

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

Si desea simplemente los títulos y ninguna otra información (ni siquiera espacios en blanco), puede usar esto:

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

Resultado:

linux - Cómo grep y reemplazar - Desbordamiento de pila - Luna pálida
¿Cómo puedo usar una variable en sed? El | Foros de Unix Linux | Programación y secuencias de comandos de Shell - Pale Moon
Elimine todo después de los caracteres * o # o & en el archivo de texto con GREP - Desbordamiento de pila - Luna pálida
Video.mp4 - VLC Media Player
Smile4ever
fuente