Come posso inviare la finestra attualmente attiva sul retro?

10

C'è una scorciatoia o qualcosa di simile a cui inviare la finestra attualmente attiva sul retro dello schermo mantenendola aperta (in modo che finisca "sotto" tutte le altre finestre aperte)?

    
posta Tetsujin 04.04.2016 - 12:11
fonte

2 risposte

6

Risposta breve: No , Apple non fornisce un'API che ti permetta di modificare un indice della finestra dell'applicazione, tranne portando una finestra in primo piano (indice 1). Non ci sono soluzioni eleganti . Ma:

Risposta lunga: , puoi utilizzare AppleScript per efficace spostare una finestra sul retro di una pila di finestre compatibili con AppleScript tramite raccogliendo un elenco di finestre, quindi spostandole rapidamente ciascuna ( tranne la prima) in primo piano, lasciando la finestra scelta sul retro.

Ecco un esempio di un AppleScript che invia la finestra del Finder in primo piano sul retro.

tell application "Finder"
    set winList to every window whose visible is true
    if not winList = {} then
        repeat with oWin in (items 1 through -2 of reverse of winList)
            set index of oWin to 1
        end repeat
    end if
end tell

Questo script è basato su soluzione di JMichaelTX discussa sul forum KeyboardMaestro.

Il rimescolamento è incredibilmente veloce, ma nello Script Editor puoi controllare come funziona, lasciando "506" in basso e scoppiando "502-505" in un modo che ne preserva l'ordine:

get every window whose visible = true
    --> {Finder window id 506, Finder window id 505, Finder window id 504, Finder window id 503, Finder window id 502}
set index of Finder window id 502 to 1
    --> 1
set index of Finder window id 503 to 1
    --> 1
set index of Finder window id 504 to 1
    --> 1
set index of Finder window id 505 to 1
    --> 1

Puoi mappare questo AppleScript a un servizio o a una scorciatoia da tastiera, a) inserendo lo script in un'azione Esegui AppleScript all'interno di un servizio di Automator, oppure b) utilizzando un launcher (Alfred, Keyboard Maestro ecc.). Per i dettagli sull'assegnazione della tastiera di Applescript vedere: Come posso assegnare una scorciatoia da tastiera ad un AppleScript che ho scritto?

Questo può soddisfare le esigenze dell'OP: non è chiaro dal post originale. Questa soluzione può anche essere estesa a più applicazioni compatibili con AppleScript. Sono non , tuttavia, a conoscenza di una soluzione per farlo funzionare in modo efficace con un mix di finestre scriptable e non scriptable, perché in AppleScript, System Events finestre indirizzabili per non-scriptable le applicazioni non hanno un verbo / proprietà set index . Esiste un'azione "AXRaise" per alcune finestre quando i dispositivi di assistenza / accessibilità sono attivati, ma anche questo non si applica a tutte le finestre. Esistono hack elaborati che implicano l'attraversamento di ogni applicazione attiva e mostrano / nascondono o minimizzano / ripristinano le finestre, ma sono un disastro.

Discussioni correlate:

risposta data 29.11.2016 - 02:26
fonte
3

La tua domanda non è molto chiara, ma se quello che vuoi è una scorciatoia per scorrere tutte le finestre dell'app attualmente attiva, dovresti riuscire a farlo con il comando ~ scorciatoia da tastiera.

La chiave ~ si trova di solito a sinistra della chiave 1 .

Giusto per chiarire, ciò che la scorciatoia da tastiera Command ~ fa scorrere tutte le finestre dell'app corrente in cui ti trovi. Ad esempio, se stai usando MS Word e hanno tre documenti aperti, scorrerà tra questi tre documenti.

Tuttavia, la scorciatoia da tastiera Command ~ non scorre tra le Tab. Ad esempio, se hai Safari aperto con tre finestre e ogni finestra ha cinque schede aperte, l'uso di questo collegamento scorrerà ciclicamente le tre finestre, non attraverso le singole schede.

Un'altra opzione che può ottenere ciò che vuoi è la scorciatoia da tastiera Comando M . Tuttavia questo minimizza la finestra attualmente attiva sul Dock, quindi sospetto che non sia quello che vuoi.

Se ho frainteso completamente la tua domanda, ti preghiamo di chiarire.

    
risposta data 24.11.2016 - 01:10
fonte

Leggi altre domande sui tag