Tabla de Contenidos
wmctrl
Es una herramienta de línea de comandos para sistemas Linux que permite interactuar con el gestor de ventanas (window manager) de tu entorno gráfico (como GNOME, KDE, Xfce, etc.). Su nombre significa “Window Manager Control”.
- http://tripie.sweb.cz/utils/wmctrl/: web del desarrollador original (no funciona)
Casos de uso
- Controlar ventanas: Mover, redimensionar, minimizar, maximizar o cerrar ventanas.
- Gestionar escritorios virtuales: Cambiar entre ellos, mover ventanas de un escritorio a otro.
- Obtener información: Listar ventanas abiertas, sus IDs, geometría o títulos.
- Integrar con scripts: Automatizar flujos de trabajo (ej: organizar ventanas al iniciar el sistema).
Funciona mejor con gestores de ventanas compatibles con el estándar EWMH/NetWM (como la mayoría de los entornos modernos).
Uso
Listar ventanas abiertas
wmctrl -l
Si queremos que muestre la geometría actual de cada ventana, utilizamos la opción -G:
wmctrl -l -G
Redimensionar una ventana
wmctrl -r Firefox -e 0,0,0,640,480
El comando anterior hará que la ventana que contiene Firefox se redimensione a 640 píxeles de ancho por 480 de alto.
La opción -e espera los siguientes argumentos:
- gravity
- X
- Y
- ancho
- alto
Podemos elegir la ventana a la que aplicar el redimensionamiento pasándole :SELECT: a la opción -r. De esa manera, usaremos el ratón para elegir la ventana.
wmctrl -r ':SELECT:' -e 0,0,0,640,480
Mover a escritorio virtual
wmctrl -r "Documento LibreOffice" -t 1
El comando anterior moverá la ventaja con el título Documento LibreOffice al segundo escritorio virtual (los números empiezan en 0).
Cerrar ventanas
wmctrl -c "Alerta del sistema"
Simula hacer clic en el botón de cerrar.
Buscar y enfocar ventana
wmctrl -l | grep "Firefox" | awk '{print $1}' | xargs -I{} wmctrl -i -a {}
El comando anterior, lista las ventanas abiertas, usa grep para filtrar por título y wmctrl -i -a para enfocar usando el ID de la ventana.
