Che cos'è il comando Applescript per mostrare o nascondere la finestra di iTerm2

5

Qualcuno conosce il comando Applescript per mostrare o nascondere una finestra terminale iTerm2? Io uso iTerm2 in una finestra di comando stile guake e attualmente utilizzo una finestra e molte schede.

Il mio caso d'uso: sono riuscito ad aprire una nuova scheda iTerm2 da Forklift (vedi qui ) ma io ancora è necessario attivare iTerm2 manualmente con il mio collegamento show / hide.

    
posta therealmarv 06.08.2013 - 20:05
fonte

4 risposte

1

Ho provato tutte queste soluzioni. Nessuno se hanno funzionato come previsto. Hanno tutti aperto un terminale completamente nuovo o non hanno funzionato. L'unica soluzione che ha funzionato per me nella finestra a schermo intero di iTerm era simulare i tasti premuti.

Assicurati di disabilitare Hotkey toggles a dedicated window with profile nelle impostazioni o devi simulare anche la pressione di un tasto di scelta rapida che ha causato il maggior dolore per il mio problema.

Eccoilfile/Applications/ForkLift.app/Contents/Resources/OpenInTerminal.applescriptche:

  • aprelamiaappterminaleaschermointero,apreunanuovafinestradisessione(lamiasessioneèdenominataHot,lamodificainDefaultoiltipodisessionedesideratodaiprofili)
  • attende1secondo(altrimentilanuovasessionenonvienericonosciuta)
  • cambialadirectoryecancellaloschermo
tellapplication"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
    
risposta data 02.09.2014 - 01:02
fonte
8

Ecco diverse opzioni (nessuna di queste è stata testata, quindi prova e vedi quale funziona per te):

Opzione 1:

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

Nota: il tasto può essere sostituito con m se vuoi che iTerm2 sia minimizzato sul dock con l'effetto Genie.

Opzione 2:

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

Opzione 3:

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

Nota: il nome del processo potrebbe essere iTerm anziché iTerm2. Ho aperto iTerm sul mio Mac e poi Activity Monitor , e Process Name che mostra è iTerm . Per favore cambia di conseguenza se non funziona per te.

Collegamenti e risorse

Ecco un ottimo link WikiBooks che descrive esattamente ciò che ti serve.

Per favore fammi sapere quale opzione funziona per te, così posso modificare la domanda e includere solo l'opzione che funziona.

Modifica:

Se fai in modo che la finestra di iTerm sia l'applicazione in primo piano (fai attenzione a non voler rendere la finestra di AppleScript l'applicazione in primo piano), prova questo script:

tell application "System Events"
    set frontProcess to first process whose frontmost is true
    set visible of frontProcess to false
end tell
    
risposta data 06.08.2013 - 20:44
fonte
4
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

Se altri cercavano un modo per mostrare o nascondere iTerm in generale, puoi impostarne una scorciatoia nelle preferenze o usare Alfred:

    
risposta data 07.08.2013 - 09:21
fonte
1

tell application "iTerm2" to activate set miniaturized of window 1 to true end tell link

la formulazione della tua domanda mi fa pensare che vuoi che le singole finestre vengano tolte. La funzione Nascondi su Mac nasconderà tutto. Avevo bisogno di una finestra lontana dalla vista. l'url sopra è stato utile.

la tua soluzione potrebbe non nascondere una sola finestra, ma piuttosto ridurre a icona una singola finestra.

    
risposta data 23.04.2017 - 01:19
fonte

Leggi altre domande sui tag