Quali sono le variabili necessarie per accedere alle proprietà di messa a fuoco nella visualizzazione a schermo diviso?

1

Quali sono i nomi delle variabili (in termini di variabili di Applescript o altrimenti) che tracciano l'applicazione attualmente focalizzata, il layout delle applicazioni negli spazi, lo spazio attualmente focalizzato e se due applicazioni condividono uno spazio in una vista divisa piuttosto di 2 applicazioni che appaiono in un desktop?

In che modo uno (data una variabile che identifica un'applicazione) assegna il focus ad una particolare finestra di quell'applicazione se quella finestra risiede in una vista a schermo diviso?

Per rendere concreto il motivo di questa domanda: l'obiettivo è scrivere un Applescript (o un altro tipo di script) che assegni una scorciatoia da tastiera che consenta rapidamente lo scambio di focus tra due applicazioni che condividono una visualizzazione a schermo diviso?

L'algoritmo più semplice a cui riesco a pensare di farlo (dato che sembra non essere un'impostazione integrata) è

  1. ottieni l'elenco degli spazi correnti (inclusi desktop, applicazioni a schermo intero e applicazioni con schermo diviso)
  2. ottenere lo spazio attualmente focalizzato
  3. se lo spazio attualmente focalizzato viene assegnato alle applicazioni a schermo diviso, ottenere l'elenco di tali applicazioni e finestre dell'applicazione (ciascuna dovrebbe essere la lunghezza 2).
  4. scarica l'applicazione attualmente focalizzata
  5. assegna lo stato attivo al prossimo elemento nell'elenco delle finestre delle applicazioni nella vista dello schermo diviso attualmente focalizzata (che dovrebbe essere l'altra finestra dell'applicazione nello schermo diviso attualmente focalizzato)

Non sono sicuro se questo potrebbe funzionare altrettanto bene per risolvere il problema indicato in Cambia focus in visualizzazione divisa per quanto riguarda due finestre della stessa applicazione, ma almeno questo sarebbe un inizio.

    
posta mpacer 24.11.2015 - 23:28
fonte

1 risposta

2

Ho cercato questa risposta per anni, e sono diventato molto bravo a rintracciare funzionalità nascoste ... inutilmente sfortunatamente. Apple non ha alcun meccanismo per fare qualcosa con gli spazi a livello di programmazione. L'unica funzione che ho trovato è quella di eseguire il comando defaults e (sotto uno dei default il cui nome non riesco a ricordare al momento) c'è un'area che ti darà numeri di finestre criptici e gli spazi a cui appartengono. Il problema è che la lista non è aggiornata dal vivo, quindi non è davvero così utile. Sto ancora cercando, ma sono abbastanza sicuro che non ci sia alcun modo approvato da Apple per interagire con gli spazi, o con lo schermo diviso o con una qualsiasi delle sue altre manifestazioni.

EDIT: Oh sì, è "com.apple.spaces". Esegui il comando defaults read com.apple.spaces nel terminale per ottenere ciò di cui stavo parlando.

EDIT2: Inoltre, c'è un modo per attivare gli spazi con un po 'di codice C:

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

Ciascuna di queste linee farà sì che il controllo della missione faccia cose, non che sia così utile. Ci sono altri modi per farlo ...

    
risposta data 25.11.2015 - 01:07
fonte

Leggi altre domande sui tag