2 votos

AppleScript: fallo al crear nuevos iTerm2

Tengo el siguiente código AppleScript en una acción Ejecutar AppleScript en Automator:

 on run {input, parameters}
    set appName to "iTerm"
    if application appName is not running then
        tell application appName to activate
    end if
    tell application "iTerm"
        tell current session of current tab of current window
            write text "cd Desktop"
            split horizontally with default profile
            split vertically with default profile
        end tell
        tell second session of current tab of current window
            write text "whoami"
        end tell
        tell third session of current tab of current window
            write text "ls -al"
            split vertically with default profile
        end tell
        tell fourth session of current tab of current window
            write text "echo Hello World"
        end tell
    end tell
    return input
end run
 

Sin embargo, la aplicación se ejecuta correctamente solo si ya hay una instancia de iTerm abierta. No abrirá uno nuevo para mí.

¿Cómo debo modificarlo para que haga girar una nueva ventana iTerm y ejecute la división de cuatro sesiones y la ejecución de comandos?

3voto

user3439894 Puntos 5883

Justo después de tell application "iTerm" agregar:

if (window count) is equal to 0 then reopen

Esto va a abrir una nueva ventana , si no hay ninguna abierta, pero iTerm se está ejecutando.


También puede utilizar el siguiente ejemplo de AppleScript código para asegurarse window 1 existe antes de continuar, si uno no estaba ya abierto.

if (window count) is equal to 0 then
    reopen
    repeat until exists window 1
        delay 0.01
    end repeat
end if

Por cierto, si window 1 existe pero es mínimo, su código se va a ejecutar en la ventana minimizada. Si eso es un problema, entonces usted necesitará el código para que el escenario o simplemente siempre abra una nueva ventana para ejecutar el código en, e.g:

set myWindow to (create window with default profile)
repeat until exists myWindow
    delay 0.01
end repeat

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