Una sessione SSH può essere incapsulata per apparire come app distinta?

2

Fluido può creare un wrapper .app attorno a un'istanza webkit per trasformare qualsiasi pagina web in un'applicazione OSX. Questo script può svolgere un lavoro meno approfondito con Chrome. C'è qualcosa che può fare questo per una sessione ssh, possibilmente attraverso un terminale o un profilo iTerm2, o un client SSH standalone?

Per elaborare:

Apro Safari, quindi apro una seconda finestra di Safari per un sito Web specifico. Ora cmd + tab e force quit e controllo missione e il dock e molte altre funzionalità OSX trattano queste due finestre come parte della stessa app.

Invece, dopo aver aperto Safari, posso aprire il mio account personalizzato creato con Fluid per il sito web specifico. Questo mi dà tutte le funzionalità native del sistema operativo di avere due app separate in esecuzione.

Analogamente, in Terminal o iTerm2 o in un client SSH standalone (ad esempio CyberDuck o SecureCRT) posso aprire una seconda finestra con un profilo particolare caricato che eseguirà ssh su un determinato server. Quella finestra sarà, di nuovo, trattata dal sistema operativo come parte della singola app in esecuzione.

Spero in qualcosa come Fluid che creerà un wrapper .app attorno a qualsiasi metodo di apertura di una sessione SSH su un server particolare, che sarà quindi indipendente da qualsiasi altro SSHing che sto facendo nel mio normale utilizzo.

    
posta Sparr 18.09.2014 - 05:11
fonte

1 risposta

1

L'unico modo per eseguire più istanze separate di Terminal è avviarli con la riga di comando open -n -a "Terminal" - capire che questo non è un ottimo modo per eseguire cose che non sono pensate per essere eseguite in questo modo. Ci sono preferenze condivise e file plist utilizzati da queste istanze, quindi potresti correre nei guai.

La ragione per cui Fluid funziona così bene è che ogni app è un'istanza del browser WebKit separata, con uno spazio dei nomi di preferenze univoco e senza le normali decorazioni delle finestre del browser. È un pasticcio per non dire altro.

È possibile eseguire lo script Terminal con AppleScript e quindi salvare l'AppleScript come applicazione. Questo script impone una nuova istanza di Terminal al foreground e quindi esegue un comando ssh al suo interno:

do shell script "open -n -a Terminal"
tell application "Terminal"
   set currentTab to do script ("ssh user@server;")
   # Additional commands can be sent using...
   # delay 6
   # do script ("do something remote") in currentTab
end tell

Inseriscilo nell'editor AppleScript, personalizzalo secondo le tue esigenze, quindi seleziona File > Save... e dove dice Type: nella finestra di dialogo Salva seleziona Application .

Questo creerà un file non firmato .app che puoi distribuire come applicazione per avviare ssh sessioni. Se hai un certificato di sviluppatore e vuoi firmare il codice .app in modo che gli utenti non ricevano un avviso sull'esecuzione di codice non affidabile, usa l'opzione di menu File > Export... , seleziona Application per Type e assicurati che% co_de Opzione% nella finestra di dialogo che punta a un certificato sviluppatore anziché Code Sign: .

È preferibile firmare il codice dell'app se vuoi dare l'app ad altri utenti.

Se lo si esegue, si avvieranno Terminali interamente nuovi, indipendenti l'uno dall'altro, che è possibile chiudere Cmd-Q senza chiudere le altre istanze. Sostituisci Don't Code Sign nello script con Terminal se lo preferisci per il tuo lavoro da riga di comando.

    
risposta data 18.09.2014 - 05:29
fonte

Leggi altre domande sui tag