osascript "set bounds of window" non funziona dopo l'upgrade di Mavericks

2

Ho un numero di funzioni bash che eseguo all'inizio di ogni giornata per iniziare a lavorare. Sembrano tutti più o meno così:

mind() {
  osascript -e 'tell app "Terminal"
    do script "ssh -A [email protected]"
    set bounds of window 1 to {50, 50, 1200, 900}
  end tell'
}

Dopo l'aggiornamento a Mavericks, questo è principalmente funzionante, ma non posiziona l'angolo in basso a destra della finestra. Cioè, posiziona l'angolo in alto a sinistra della nuova finestra in 50, 50 , ma non riesce a ridimensionare la finestra.

Ho reinstallato XQuartz e l'ho fatto girare. Come posso farlo ridimensionare correttamente? I Mavericks hanno cambiato il modo in cui bash parla con AppleScript / XQuartz?

    
posta acobster 23.10.2013 - 20:39
fonte

4 risposte

4

Prova invece a cambiare le dimensioni e posizionare gli attributi o usando gli Eventi di sistema:

tell application "Terminal"
    tell window 1
        set size to {1150, 850}
        set position to {50, 50}
    end tell
end tell
tell application "System Events" to tell process "Terminal"
    tell window 1
        set size to {1150, 850}
        set position to {50, 50}
    end tell
end tell
    
risposta data 25.10.2013 - 17:43
fonte
2

La risposta di Lauri ha quasi funzionato per me, ma ho dovuto eseguire la sceneggiatura due volte. Impostazione della posizione prima della dimensione fissata. Sembra che tu abbia impostato una dimensione tale da far sì che la finestra lasci lo schermo ...

tell application "System Events" to tell process "Terminal"
    tell window 1
        set position to {50, 50}
        set size to {1150, 850}
    end tell
end tell

Inoltre, la prima volta che esegui questo messaggio dovresti ricevere un messaggio sulla sicurezza, assicurati di andare in Preferenze di Sistema - > Sicurezza e amp; Privacy - > Privacy - > Accessibilità e verifica "Terminal.app"

    
risposta data 30.01.2014 - 16:20
fonte
0

Ho risolto temporaneamente il problema ripetendo il comando set bounds tre volte di seguito.

  1. La prima chiamata ha spostato la finestra (Terminal nel mio caso) nella giusta posizione e gli ha dato l'altezza giusta, ma la larghezza era misteriosamente uguale al peso.
  2. La seconda chiamata ha ingrandito la finestra, ma a 1,5 la larghezza richiesta (occhio).
  3. La terza chiamata lo ha reso giusto.

Questo è leggermente diverso dal tuo problema ma abbastanza vicino da far funzionare la correzione. Ripetere il comando due volte potrebbe essere sufficiente per te.

    
risposta data 24.10.2013 - 23:44
fonte
0

Sposto il mio portatile su più scrivanie con monitor esterni. Uno di questi, tutte le posizioni sono ora (Mavericks) valutate in relazione a "qualunque schermo la finestra capiti di essere uno". Sugli altri, non è così.

    
risposta data 13.02.2014 - 18:50
fonte

Leggi altre domande sui tag