1 votos

¿Cuáles son las variables necesarias para acceder a las propiedades de enfoque en la vista de pantalla dividida?

¿Cuáles son los nombres de las variables (en términos de variables de Applescript o de otro tipo) que rastrean la aplicación actualmente enfocada, la disposición de las aplicaciones en espacios, el espacio actualmente enfocado y si dos aplicaciones comparten un espacio en una vista dividida en lugar de que 2 aplicaciones aparezcan en un escritorio?

¿Cómo se asigna el enfoque a una ventana en particular de esa aplicación si esa ventana reside en una vista de pantalla dividida?

Para hacer la razón de hacer esta pregunta concreta: el objetivo es escribir un Applescript (o cualquier otro tipo de script) que asigna un atajo de teclado que permite intercambiar rápidamente el enfoque entre dos aplicaciones que comparten una vista dividida?

El algoritmo más simple que se me ocurre para lograr esto (ya que parece que no es una configuración integrada) es

  1. Obtener la lista de espacios actuales (incluyendo escritorios, aplicaciones de pantalla completa y aplicaciones de pantalla dividida)
  2. Obtener el espacio actualmente enfocado
  3. si el espacio actualmente enfocado está asignado a aplicaciones de pantalla dividida, obtener la lista de esas aplicaciones y ventanas de aplicaciones (cada una debe tener una longitud de 2).
  4. Obtener la aplicación actualmente enfocada
  5. asignar el enfoque al siguiente elemento de la lista de ventanas de la aplicación en la vista de pantalla dividida actualmente enfocada (que debería ser la otra ventana de la aplicación en la pantalla dividida actualmente enfocada)

No estoy seguro de si esto funcionaría tan bien para resolver el problema señalado en Cambiar el enfoque en la vista dividida con respecto a dos ventanas de la misma aplicación, pero al menos esto sería un comienzo.

2voto

William T Froggard Puntos 2862

Llevo años buscando esta respuesta, y me he vuelto muy bueno rastreando funcionalidades ocultas... Sin éxito desafortunadamente. Apple no tiene un mecanismo para hacer nada con espacios de forma programática. La única facilidad que encontré es ejecutando el comando defaults y (bajo uno de los valores predeterminados cuyo nombre no puedo recordar en este momento) hay un área que te dará números de ventanas crípticas y los espacios a los que pertenecen. El problema es que esa lista no se actualiza en tiempo real, así que no es realmente útil. Sigo buscando, pero estoy bastante seguro de que no hay una manera aprobada por Apple de interactuar con los espacios, o la pantalla dividida, o cualquiera de sus otras manifestaciones.

EDITAR: Oh sí, es "com.apple.spaces". Ejecuta el comando defaults read com.apple.spaces en la terminal para llegar a lo que estaba hablando.

EDITAR2: Además, hay una forma de activar los espacios con un poco de código en C:

CoreDockSendNotification(CFSTR("com.apple.expose.awake"));
CoreDockSendNotification(CFSTR("com.apple.expose.front.awake"));
CoreDockSendNotification(CFSTR("com.apple.showdesktop.awake"));

Cada una de estas líneas hará que Mission Control haga algo, aunque no es tan útil. Hay otras formas de hacerlo...

0 votos

defaults read com.apple.spaces funciona como una llamada de línea de comandos (así que edité la respuesta para reflejar eso en caso de que alguien más no sepa intentarlo). Proporciona cierta información, y hace un buen trabajo al mostrar las vistas divididas actuales, incluida la información de la aplicación (lo cual podría ser suficiente para escribir algo para KM). Pero sí, no sé acerca de la información en vivo. ¿Podrías decir un poco más sobre parte de la infraestructura (archivos de encabezado, etc.) que necesitarías para hacer algo con ese código en C? ¿O al menos un enlace a algún documento de soporte de Apple o un ejemplo de código que haga algo similar?

0 votos

CoreDockSendNotification no está documentado, lamentablemente. El código C funciona con la importación predeterminada de Foundation, aunque lanza una advertencia, probablemente porque la función no está expuesta públicamente. Si quisieras rastrear las cabeceras faltantes (lo cual podría hacer si tuviera tiempo, pero...), podrías eliminar la advertencia, pero no hay una razón real para hacerlo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X