¿Cómo bloquear los espacios de trabajo que se muestran en wayland/evitar que otras aplicaciones cambien el espacio de trabajo?

¿Cómo bloquear los espacios de trabajo que se muestran en wayland/evitar que otras aplicaciones cambien el espacio de trabajo?

Tenga en cuenta que esta pregunta es completamente diferente de

Porque esta pregunta aquí NO trata sobre cómo

  • abrir un programa en el espacio de trabajo actual. Yo sé eso.
  • abra un programa en un espacio de trabajo diferente. Yo sé eso.
  • evitar que una ventana se mueva a algún espacio de trabajo. Sé cómo manejar eso.
  • Evite cambiar de espacio de trabajo al hacer clic en un icono o utilice el selector de tareas.

Esta pregunta tampoco se trata de cromo. Chromium es sólo la aplicación más destacada entre muchas aplicaciones que se comportan mal.

La pregunta es cómo evitar que Wayland cambie el espacio de trabajo actual cuando otra aplicación intenta cambiar el foco hacia sí misma (como Chrome u otras) sin interacción directa del usuario. Esto es algo así como robar foco, lo cual es bastante molesto cuando sucede en el espacio de trabajo actual.

Si elijo un espacio de trabajo con Compiz, este espacio de trabajo no debe cambiarse hasta que elija uno diferente, independientemente de lo que otras aplicaciones intenten hacer en segundo plano.

¿Existe tal vez una manera de decirle a Wayland que solo obedezca un comando de cambio de ciertas aplicaciones como Compiz y wmctrl? Quizás se pueda lograr esto con algún dbusfiltro (aunque sé cómo piratear el código de los módulos del kernel de Linux como CIFS o ZFS según mis necesidades, realmente no asimilo dbusni a Wayland ni a SystemD todavía, lo siento). LD_PRELOAD? ¿Algún firewall de protocolo X0 (existente)? ¿Cualquier cosa?

Mi solución actual es ejecutar

while sleep .01; do DISPLAY=:0 wmctrl -s 2; done

De esta manera, si chromium (o una de las otras aplicaciones) cambia el espacio de trabajo, Wayland vuelve inmediatamente al espacio en el que trabajo. Sin embargo, este parpadeo constante de la pantalla durante un minuto debido a este cambio de ida y vuelta es irritante. Además, a veces el enfoque del mouse se pierde (o sucede algo completamente diferente, como dejar caer algo en el escritorio equivocado debido a la condición de carrera expuesta) debido al parpadeo.

Tenga en cuenta que el cromo es el más molesto. La mayoría de las otras aplicaciones simplemente cambian el espacio de trabajo una sola vez. Chromium, sin embargo, aparentemente hace esto para cada ventana que abre cuando se inicia. Con varios miles de ventanas abiertas a mi lado, el inicio completo de Chrome lleva unos minutos (mi máquina tiene suficiente RAM y CPU, por lo que esto no es un problema de intercambio), y mientras se inicia, intenta constantemente cambiar el espacio de trabajo hasta que esté listo. . Sin embargo, la pregunta también es cómo evitar que Firefox, IDE y otras ventanas roben el foco de esta manera.

Tenga en cuenta que esta pregunta no se trata del robo de enfoque en sí. Se trata simplemente de robar el foco cambiando el espacio de trabajo, porque esto es algo completamente diferente al robo de foco normal observado.

Por lo tanto, no quiero evitar que las ventanas salten, se muevan a otro espacio de trabajo o roben el foco en el espacio de trabajo actual. Por lo tanto, las aplicaciones todavía pueden arruinar la ubicación de mi ventana.

Todo lo que quiero es "bloquear" el espacio de trabajo actual de modo que nada más pueda cambiarlo hasta que decida pasar a otro espacio de trabajo.


Algunas reflexiones sobre esto:

Wayland sólo presenta una determinada parte (el espacio de trabajo) de un lienzo mucho más grande (que contiene todos los espacios de trabajo). Entonces cambiar el espacio de trabajo es simplemente cambiar el origen desde donde se muestra el lienzo. Y las visualizaciones son zonas relativas a este origen. (Por supuesto, hay algo más en juego, ya que el foco de entrada también debe moverse).

AFAICS debería ser fácil evitar que se mueva el origen (y, por lo tanto, también evitar el cambio de enfoque). Eso es exactamente lo que quiero archivar. Quizás esto ya esté integrado en Wayland en alguna parte. O podría piratearse el código, algo así como un firewall que impide que aplicaciones no autorizadas cambien el origen. Esto es algo que podría implementar, si pudiera encontrar la ubicación correcta donde ocurre este cambio de origen en Wayland.

Pero antes de profundizar en esto (que probablemente lleve varios días), quiero saber si quizás existe alguna forma mejor o estándar de archivarlo.


Una nota final:

Necesito usar Ubuntu y Wayland, ya que mi configuración de pantalla/hardware/pila HWE no es compatible con X11 simple. (No puede controlar correctamente uno de mis monitores. Tenga en cuenta que es muy probable que tenga la capacidad de encontrar este error y repararlo, sin embargo, me falta tiempo para hacerlo).

Así que alejarme de Wayland no ayuda a mi lado. Por supuesto, ejecuto LTS, por lo que Ubuntu 22.04 también está configurado, por lo que cambiar el sistema operativo tampoco sirve de ayuda.

información relacionada