¿Abriendo una nueva ventana/pestaña de Terminal.app con un determinado perfil desde la línea de comandos o AppleScript?

Cuando inicio sesión en mi Mac, quiero abrir automáticamente una nueva ventana de Terminal.app con un perfil determinado, por ejemplo Monitor, que tiene un comando de inicio y varias configuraciones de apariencia. Pensé que sería muy fácil hacer esto desde AppleScript o la línea de comandos (a través de osascript), por lo que puedo agregar un script a mis elementos de inicio de sesión, pero resulta que esto no es tan trivial después de varios intentos.

Mi mejor manera actual es el siguiente AppleScript:

tell application "Terminal"
    set origSettings to default settings
    set default settings to settings set "Monitor"
    activate
    tell application "System Events" to keystroke "n" using command down
    set default settings to origSettings
end tell

Sin embargo, quiero saber si hay una forma más sencilla de hacer esto sin depender de las secuencias de comandos de la interfaz de usuario (con eventos del sistema) o jugar con mi terminal default settings.

applescript (osascript) para cambiar el perfil de Terminal.app parecía prometedor, pero es para cuando ya hay una ventana de Terminal abierta. No tengo idea de cómo crear una nueva pestaña o ventana de Terminal con su current settingsespecificación. El do scriptcomando, que crea una nueva ventana, lamentablemente ignora el comando de inicio establecido en el perfil, lo que me hace recurrir a las secuencias de comandos de la interfaz de usuario.

También encontré este script: http://blog.azizlight.me/have-fun-with-applescript-and-terminal-app/ que nuevamente se basa en scripts de interfaz de usuario. Debido a que algunas de mis máquinas usan una configuración regional que no está en inglés, prefiero ceñirme a las pulsaciones de teclas en lugar de las etiquetas de menú.

Respuestas (2)

Es posible que me esté perdiendo el punto, pero ¿no puede exportar el perfil como un .terminalarchivo y agregarlo a sus elementos de inicio de sesión?

Exportar:

ingrese la descripción de la imagen aquí

Agregue el archivo exportado a Elementos de inicio de sesión:

ingrese la descripción de la imagen aquí

Genial, @beroe! Recuerdo haber abierto un archivo .terminal usado para crear entradas de perfil duplicadas en el pasado, pero aparentemente, ese comportamiento ha cambiado al menos en la última versión de OS X, 10.8 Mavericks. Aunque esto no responde cómo lograrlo en AppleScript, elijo esto como la respuesta porque en realidad resuelve mi problema original. ¡Gracias!
Me alegro de que haya ayudado. Creo que el problema de AppleScript se abordará mejor con la otra respuesta vinculada en los comentarios.
En mi experiencia actual, esta solución crea perfiles completos duplicados. Ojalá supiera una forma de evitar eso, pero no lo sé.

¿Puede simplemente ejecutar el comando de inicio con do script?

tell application "Terminal"
    do script "emacs"
    set current settings of selected tab of window 1 to settings set "Grass"
end tell

Si alguien más no necesita ejecutar ningún comando de inicio, puede usar do script ""para abrir una nueva ventana:

tell application "Terminal"
    do script ""
    set current settings of selected tab of window 1 to settings set "Grass"
end tell

O también podría usar do script ""al cambiar default settings:

tell application "Terminal"
    set old to default settings
    set default settings to settings set "Grass"
    do script ""
    set default settings to old
    activate
end tell
El problema do script ""es que ignora el comando de inicio ya ingresado en el perfil. Por cierto, porque do scriptdevuelve la pestaña que creó, podríamos acortarla aún más a algo como: set newTab to do script ...luegoset current settings of newTab to ...