Problema nell'impostazione dei limiti della finestra del terminale con AppleScript

3

Problema che sta cercando di risolvere

Uso più finestre di terminale per sviluppare applicazioni web. Avrò un terminale aperto per vim , un terminale aperto per git e un terminale aperto per i comandi di base file / directory. L'applicazione terminale non ricorda le impostazioni della finestra, quindi ogni volta che esco dal terminale o devo riavviare devo ridimensionare manualmente e posizionare le finestre del terminale. Mi piacerebbe automatizzare questo processo usando AppleScript.

  • 1 finestra, grande, riempie la metà sinistra dello schermo ( vim )
  • 2 finestre, più piccole, impilate l'una sull'altra, riempiendo l'altra metà dello schermo

La mia soluzione tentata

tell application "Terminal"

    activate
    set the bounds of the front window to {5, 0, 1000, 950}
    do script "clear" -- opens up the second window
    set the bounds of the front window to {1105, 0, 400, 500}
    -- haven't gotten to third window yet   

end tell

Il problema

La seconda finestra, quella creata da do script "clear" , è posizionata in modo strano. La sinistra, la cima e l'altezza si stanno comportando come previsto. Tuttavia, la finestra è impostata sulla larghezza minima, indipendentemente dal valore passato nel parametro width. Potrebbe essere 1000 ed è ancora impostato al minimo. Ho cercato in alto e in basso su Google, SO, Super User e Ask Different senza fortuna.

Qualche consiglio su cosa sto facendo male o cosa potrebbe causare questo problema con la strana larghezza sulla finestra creata da do script "clear" ?

responsabilità

Sono un principiante di AppleScript. La sintassi è diversa da qualsiasi altra cosa con cui abbia mai lavorato (PHP, VBA, JavaScript) e sono quasi sicuro che questo non sia il modo migliore, o addirittura corretto, di fare ciò che voglio fare. Tuttavia, non conosco abbastanza AppleScript per poterlo realmente dire, a parte l'istinto.

    
posta Charles Sprayberry 26.07.2011 - 05:25
fonte

1 risposta

5

I limiti della finestra sono un elenco di coordinate {left, top, right, bottom}. Probabilmente hai inteso "400" come larghezza, ma è la posizione del bordo destro della finestra e 400 è a sinistra del 1105, quindi ottieni una finestra con larghezza minima. Cambia da 400 a 1105 più la larghezza desiderata, ad es. 1505.

Ma prima di proseguire ulteriormente, Terminal ha una soluzione migliore per questo: Window Groups. Se imposti un gruppo di finestre e le salvi come gruppo finestre, ogni volta che apri quel gruppo creerà finestre con lo stesso layout e aspetto.

Window > Save Windows as Group…

Puoi anche dire a Terminal di aprire un gruppo di finestre selezionato all'avvio:

Terminal > Preferences > Startup > On startup, open: > Window group:

(Come scorciatoia, quando crei un gruppo di finestre c'è una casella di controllo per renderlo il gruppo di avvio.)

Per eseguire automaticamente determinati comandi in quelle finestre, puoi creare profili di impostazioni personalizzate e specificare il comando con

Terminal > Preferences > Settings > [profile] > Shell > Startup > Run command:

quindi crea ciascuna finestra con il profilo appropriato.

Se vai oltre, in Mac OS X Lion 10.7 puoi avere gruppi di finestre che ripristinano automaticamente i comandi senza creare profili personalizzati, creando i terminali usando

Shell > New Command

invece di eseguire il comando all'interno della shell del terminale. Quando si crea il gruppo di finestre, è possibile selezionare "Ripristina tutti i comandi". (Per impostazione predefinita, ripristinerà un piccolo insieme di comandi "sicuri", ma devi dirlo esplicitamente se vuoi che riesca a rieseguire tutti i comandi quando apri il gruppo.)

Inoltre, Lion Terminal supporta Resume e ripristinerà automaticamente tutte le finestre ogni volta che apri Terminal. Ripristina anche i comandi "sicuri" per i terminali creati con New Command.

    
risposta data 11.08.2011 - 07:54
fonte

Leggi altre domande sui tag