Problema al establecer los límites de la ventana del terminal con AppleScript

Problema tratando de resolver

Uso múltiples ventanas de terminal para desarrollar aplicaciones web. Tendré una terminal abierta para vim, una terminal abierta para gity una terminal abierta para comandos básicos de archivo/directorio. La aplicación de terminal no recuerda la configuración de la ventana, por lo que cada vez que salgo de la terminal o tengo que reiniciar, debo cambiar el tamaño y la posición de las ventanas de mi terminal manualmente. Me gustaría automatizar este proceso usando AppleScript.

  • 1 ventana, grande, ocupa la mitad izquierda de la pantalla ( vim)
  • 2 ventanas, más pequeñas, apiladas una encima de la otra, ocupando la otra mitad de la pantalla

Mi intento de solución

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

El problema

La segunda ventana, la que está creando do script "clear", está colocada de manera extraña. La izquierda, la parte superior y la altura se comportan como se esperaba. Sin embargo, la ventana se establece en su ancho mínimo, independientemente del valor pasado en el parámetro de ancho. Podría ser 1000 y todavía está configurado al mínimo. He buscado alto y bajo en Google, SO, Super User y Ask Different sin suerte.

¿Algún consejo sobre lo que estoy haciendo mal o qué podría estar causando este problema con el ancho extraño en la ventana creada por do script "clear"?

Descargo de responsabilidad

Soy un principiante de AppleScript. La sintaxis no se parece a nada con lo que haya trabajado (PHP, VBA, JavaScript) y estoy casi seguro de que esta no es la mejor manera, o incluso la correcta, de hacer lo que quiero hacer. Sin embargo, no sé AppleScript lo suficiente como para decirlo realmente, aparte de la intuición.

Respuestas (1)

Los límites de la ventana son una lista de coordenadas {izquierda, arriba, derecha, abajo}. Probablemente pretendía que "400" fuera el ancho, pero es la posición del borde derecho de la ventana y 400 está a la izquierda de 1105, por lo que obtiene una ventana de ancho mínimo. Cambie 400 a 1105 más el ancho deseado, por ejemplo, 1505.

Pero antes de continuar con esto, Terminal tiene una mejor solución para esto: Grupos de ventanas. Si configura un grupo de ventanas y las guarda como un grupo de ventanas, cada vez que abra ese grupo se crearán ventanas con el mismo diseño y apariencia.

Ventana > Guardar ventanas como grupo…

Incluso puede decirle a Terminal que abra un grupo de ventanas seleccionado al inicio:

Terminal > Preferencias > Inicio > Al iniciar, abra: > Grupo de ventanas:

(Como acceso directo, al crear un grupo de ventanas hay una casilla de verificación para convertirlo en el grupo de inicio).

Para ejecutar automáticamente comandos particulares en esas ventanas, puede crear perfiles de configuración personalizados y especificar el comando con

Terminal > Preferencias > Configuración > [perfil] > Shell > Inicio > Ejecutar comando:

luego cree cada ventana con el perfil apropiado.

Yendo más allá, en Mac OS X Lion 10.7 puede hacer que los grupos de ventanas restauren automáticamente los comandos sin crear perfiles personalizados, creando los terminales usando

Shell > Nuevo comando

en lugar de ejecutar el comando dentro del shell del terminal. Al crear el grupo de ventanas, puede marcar "Restaurar todos los comandos". (De forma predeterminada, restaurará un pequeño conjunto de comandos "seguros", pero debe indicarle explícitamente si desea que vuelva a ejecutar todos los comandos al abrir el grupo).

Además, Lion Terminal es compatible con Resume y restaurará automáticamente todas sus ventanas cada vez que abra Terminal. Incluso restaurará comandos "seguros" para terminales creados con New Command.