GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Hacer que Wmctrl ignore las ventanas de Workspace que no sean las actuales?

Confío mucho en wmctrl para cambiar entre ventanas, básicamente para evitar escribir alt-tab muchas veces. Siempre he usado un espacio de trabajo, pero ahora quiero comenzar a usar más de uno.

Me preguntaba si es posible modificar el contexto de wmctrl para que cuando escriba wmctrl -l , solo se muestran las ventanas del espacio de trabajo actual, en lugar de todas las ventanas de todos los espacios de trabajo.

Por ejemplo, suponiendo que tengo una ventana de Firefox abierta en el espacio de trabajo 1. Tengo un atajo de teclado en ctrl+alt+f que ejecuta wmctrl -a firefox , que cambia a Firefox. Si abro una nueva ventana de Firefox en el espacio de trabajo 2 y escribo ctrl+alt+f , cambiará a la ventana del espacio de trabajo 1, que no es lo que quiero.

¿Alguna sugerencia/idea sobre cómo solucionar esto?

EDITAR :estoy usando compiz (Unity)

Respuesta aceptada:

Si está utilizando Compiz (ejecute wmctrl -m si no está seguro), wmctrl solo ve 1 escritorio (segundo campo de wmctrl -l, es decir, 0) pero puede usar la opción de geometría (-G) para saber qué ventana está en qué escritorio virtual. Todas las ventanas de su escritorio actual tendrán una posición x entre 0 y el ancho de su pantalla. Lo mismo para la posición y entre 0 y la altura de la pantalla.
Así que puedes usar algo así

#!/bin/bash

SCREEN_W=$(xwininfo -root | sed -n 's/^  Width: (.*)$/1/p')
SCREEN_H=$(xwininfo -root | sed -n 's/^  Height: (.*)$/1/p')

NAME='Navigator.Firefox'

wmctrl -xlG | awk -v W="$SCREEN_W" -v H="$SCREEN_H" -v NAME="$NAME" '$7==NAME && $3>=0 && $3<W && $4>=0 && $4<H {print $1}' | while read WINS; do wmctrl -ia "$WINS"; done

exit 0

Puede codificar el ancho y el alto de su pantalla si lo desea, y NOMBRE si desea una sola línea.
No estoy seguro de cómo desea manejar varias ventanas que coincidan con NOMBRE. Eso los enfocará a todos.

Para metacity, el número de ventanas del escritorio se puede encontrar usando wmctrl -l y grepping el segundo campo.


Ubuntu
  1. Cómo hacer un servidor de Minecraft con Hostinger, Ubuntu, Windows y macOS

  2. ¿Cómo hacer que un montaje Cifs/smb ignore Umask?

  3. ¿Cómo hacer que Ibus no ignore ~/.xcompose?

  4. ¿Cómo hacer que un Lenovo Ideapad Z510 sea de arranque dual?

  5. ¿Cómo hacer el paquete de prueba de Travis CI para Linux, OS X, Windows?

Haga que Plasma se parezca a la guía de Windows 10

Haga que Linux se parezca a Windows - edición 2021

Cómo hacer que Ubuntu 20.04 LTS se parezca a Windows 10 o 7

Cómo hacer que Ubuntu se parezca a Windows 10 o 7

¿Es posible hacer que Indicator-appmenu ignore una aplicación específica?

¿Cómo hacer que el archivo de texto creado en Ubuntu sea compatible con el Bloc de notas de Windows?