3 votos

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

Problema que se intenta resolver

Utilizo varios terminales Windows para desarrollar aplicaciones web. Tengo un terminal abierto para vim un terminal abierto para git y un terminal abierto para los comandos básicos de archivo/directorio. La aplicación de la terminal no recuerda la configuración de las ventanas, por lo que cada vez que salgo de la terminal o tengo que reiniciar debo redimensionar y posicionar manualmente las ventanas de mi terminal. Me gustaría automatizar este proceso utilizando AppleScript.

  • 1 ventana, grande, llena la mitad izquierda de la pantalla ( vim )
  • 2 ventanas, más pequeñas, apiladas una encima de 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 creada por do script "clear" se está posicionando de forma extraña. La izquierda, la parte superior y la altura se comportan como se espera. Sin embargo, la ventana se ajusta a su anchura mínima, independientemente del valor pasado en el parámetro de anchura. Podría ser 1000 y sigue estando al mínimo. He buscado por todas partes en Google, SO, Super User y Ask Different sin suerte.

Cualquier consejo sobre lo que estoy haciendo mal o lo que 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 es diferente a todo lo que he trabajado (PHP, VBA, JavaScript) y estoy casi seguro de que esta no es la mejor, o incluso correcta, manera de hacer lo que quiero hacer. Sin embargo, no conozco AppleScript lo suficiente como para saberlo, aparte de mi intuición.

5voto

Yasmine Mustafa Puntos 21

Los límites de la ventana son una lista de coordenadas {izquierda, arriba, derecha, abajo}. Probablemente pretendías 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 obtienes una ventana de ancho mínimo. Cambia 400 por 1105 más el ancho deseado, por ejemplo, 1505.

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

Ventana > Guardar ventanas como grupo

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

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

(Como atajo, al crear un grupo de ventanas hay una casilla para convertirlo en el grupo de inicio).

Para ejecutar automáticamente determinados comandos en esos Windows, puede crear perfiles de configuración personalizados y especificar el comando con

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

y luego crear cada ventana con el perfil adecuado.

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

Shell > Nuevo comando

en lugar de ejecutar el comando dentro del shell de la terminal. Al crear el grupo de ventanas, puede marcar "Restaurar todos los comandos". (Por defecto, restaurará un pequeño conjunto de comandos "seguros", pero debes decirle explícitamente si quieres que vuelva a ejecutar todos los comandos al abrir el grupo).

Además, Lion Terminal soporta Reanudar y restaurará automáticamente todos tus Windows cada vez que abras Terminal. Incluso restaurará los comandos "seguros" para los terminales creados con Nuevo Comando.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X