7 votos

Cuál es el comando de Applescript para mostrar u ocultar la ventana de iTerm2

¿Alguien conoce el comando Applescript para mostrar u ocultar una ventana de terminal iTerm2? Utilizo iTerm2 en una ventana de comandos estilo guake y actualmente uso una ventana y muchas pestañas.

Mi caso de uso: He conseguido abrir una nueva pestaña de iTerm2 desde Forklift (ver aquí ) pero todavía tengo que activar iTerm2 manualmente con mi atajo de mostrar/ocultar.

16voto

user53233 Puntos 66

Aquí hay varias opciones (ninguna de ellas ha sido probada, así que prueba y ve cuál te funciona):

Opción 1:

tell application "iTerm2" to activate
tell application "System Events" to tell process "iTerm2" to keystroke "h" using command down

Nota: La pulsación de la tecla puede ser sustituida por m si quieres que iTerm2 sea minimizado al muelle con el efecto Genie.

Opción 2:

tell application "Finder"
set visible of process "iTerm2" to false
end tell 

Opción 3:

tell application "System Events" to tell process "iTerm2" to set visible to false

Nota: El nombre del proceso puede ser simplemente iTerm en lugar de iTerm2. Abrí iTerm en mi Mac y luego Activity Monitor y el Process Name que muestra es iTerm . Por favor, cambie en consecuencia si no le funciona.

Enlaces y recursos

Aquí hay un gran Enlace a WikiBooks que describe exactamente lo que necesita.

Por favor, hazme saber qué opción te funciona para que pueda editar la pregunta e incluir sólo la opción que funciona.

Editar:

Si hace que la ventana de iTerm sea la aplicación más importante (tenga cuidado de no hacer que la ventana de AppleScript sea la aplicación más importante), pruebe este script:

tell application "System Events"
    set frontProcess to first process whose frontmost is true
    set visible of frontProcess to false
end tell

0 votos

Probó ambos. Ambos no funcionan. iTerm2 está activado pero la ventana de la terminal sólo se muestra después de pulsar la tecla de acceso directo. Gracias por el intento.

0 votos

¿Qué versión de OS X estás utilizando?

4voto

tell application "System Events" to tell (process 1 where frontmost is true)
    if name is "iTerm" then
        set visible to false
        return
    end if
end tell
tell application "iTerm"
    reopen -- open a default window if there are no open windows
    activate -- make frontmost
end tell

Si otros buscaban una forma de mostrar u ocultar iTerm en general, puedes establecer un acceso directo para ello en las preferencias o utilizar Alfred:

1voto

Guest Puntos 63

He probado todas estas soluciones. Ninguna de ellas funcionó como se esperaba. Todas abrieron una terminal completamente nueva o no funcionaron. La única solución que me funcionó en la Ventana de Teclas de Acceso Rápido de iTerm a pantalla completa fue simular la pulsación de teclas.

Asegúrese de desactivar Hotkey toggles a dedicated window with profile en la configuración o necesitas simular incluso esa pulsación de tecla de acceso rápido que causó el mayor dolor para mi problema.

enter image description here

Aquí está el archivo /Applications/ForkLift.app/Contents/Resources/OpenInTerminal.applescript que:

  • abre mi aplicación de terminal a pantalla completa, abre una nueva ventana de sesión (mi sesión se llama Hot , cámbialo por Default o el tipo de sesión que desee desde los perfiles)
  • espera 1 segundo (de lo contrario no se reconoce la nueva sesión)
  • cambia el directorio y borra la pantalla

tell application "iTerm"
    activate

    try
        tell application "System Events" to tell process "Terminal" to keystroke "t" using command down
        delay 1
        set _session to current session of current terminal
    on error
        set _term to (make new terminal)
        tell _term
            launch session "Hot"
            set _session to current session
        end tell
    end try

    tell _session
        write text "cd _forklift_path_placeholder_;clear;"
    end tell
end tell

1voto

Michael Dimmitt Puntos 149

tell application "iTerm2" to activate set miniaturized of window 1 to true end tell http://macscripter.net/viewtopic.php?id=12501

la redacción de su pregunta me hace pensar que quiere que Windows individual se quite de en medio. La función de ocultar en mac ocultará todo. Necesitaba una ventana fuera de la vista. la url de arriba fue útil.

su solución puede no ser ocultar una sola ventana sino minimizar una sola ventana.

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