Sposta le finestre tra i display senza trascinare

1

Sto utilizzando un iMac del 2011 con MacOS Sierra con un'uscita HDMI collegata a un proiettore. Quando voglio guardare un film sul proiettore, trascino semplicemente iTunes sul secondo display e guardo. Se dimentico di trascinare indietro iTunes, finisce bloccato sull'altro display. Questo perché il Mac vede ancora il secondo display quando il proiettore è spento. Ciò significa che l'unico modo per ripristinare iTunes sul display principale di iMac è di riattivare il progetto in modo da poter vedere la finestra di iTunes e trascinarla di nuovo sul display principale. Questo succede anche a qualsiasi altra app che "mi lascia indietro" sul display esterno e dimentico di tornare indietro. Quello che ho provato:

  • Chiudere e riavviare l'app. Questo non funziona, in quanto MacOS ricorda quale visualizzazione l'app era in precedenza e la riavvia su quel display
  • Ricerca dell'app in Controllo missione. Questo non funziona, perché ogni display ha il proprio Controllo missione. Pertanto non posso vedere gli spazi sul display esterno per afferrare la finestra di iTunes e trascinarla in uno spazio sul display integrato
  • Fare clic con il pulsante destro del mouse sull'icona dell'app nel dock e selezionare "Mostra tutte le finestre". Questo mostra solo il mio sfondo con un messaggio al centro che dice "Nessuna finestra disponibile" (presumibilmente perché la finestra si trova sul display esterno).

Spero che ci sia una combinazione di tasti o qualche altro trucco per forzare le finestre dell'applicazione a spostarsi sul display corrente.

    
posta mashers 28.08.2017 - 14:26
fonte

3 risposte

0

Il seguente script di Applica fa il lavoro:

tell application "iTunes"
    set position of windows to {100, 100}
    activate
end tell

Ho provato ad aggiungere del testo in modo da poterlo usare anche per altre app, come questa:

set theApp to the text returned of (display dialog "Which app do you want to bring back?" default answer "")

tell application theApp
    set position of windows to {100, 100}
    activate
end tell

Purtroppo non riconosce più l'attributo 'posizione' di 'windows'. Ho preso in considerazione il wrapping del tell block in using terms from application theApp , ma questo non ha funzionato in quanto using terms from application sembra richiedere un'app con nome, non una variabile. Forzandolo con using terms from application "iTunes" funziona se digiti "iTunes" nel prompt di testo, ma qualsiasi altra app causa un errore nell'abbinare la proprietà position .

Ho messo a punto un'app rapida in XCode che fornisce l'input di testo per il nome dell'app, quindi la incorpora in un oggetto Applescript. Applescript sposta tutte le finestre dell'app specificata nella posizione specificata da xOffset e yOffset , sul display correntemente selezionato. L'app potrebbe essere migliorata aggiungendo un menu di selezione delle app attualmente in esecuzione o anche un modo per specificare la posizione in cui spostare le finestre. Questo non sarebbe difficile da fare, quindi potrei giocarci un po 'di tempo.

Ad ogni modo, il codice sorgente per l'app è su GitHub, quindi se qualcun altro lo trova utile, eccolo qui.

link

    
risposta data 29.08.2017 - 12:02
fonte
0

Se vuoi un trucco, puoi scollegare brevemente il cavo HDMI da iMac. Questo dovrebbe segnalare a Mac OS che c'è solo un display e che sposterà tutte le finestre sull'unico display rimanente.

    
risposta data 28.08.2017 - 16:20
fonte
0

Anche se al momento non sono in grado di testarli, dato che non ho un secondo schermo in mano in questo momento, ho avuto alcune idee:

  • Esiste un'opzione in Impostazioni di controllo missione denominata "Display usa spazi separati". Riesci a vedere gli spazi del tuo proiettore in Mission Control sul tuo Mac, con questa opzione deselezionata?
  • Se utilizzi iTunes in modalità schermo intero, lo vedi in Controllo missione sul tuo Mac?
  • "Magnet" dal Mac App Store ti offre una scorciatoia da tastiera per spostare finestre tra i display. Attualmente è ridotto (almeno nel MAS austriaco) e costa 1,09 € / ~ 1 $.
risposta data 29.08.2017 - 17:36
fonte

Leggi altre domande sui tag