Ecco come impostare tmux per l'avvio con gnome-terminal :
- Avvia gnome-terminal
- Menu> Modifica> Preferenze profilo> Titolo e comando (scheda)
- Seleziona Esegui un comando personalizzato invece della mia shell
- Popola Comando personalizzato con tmux
Queste istruzioni funzionano per me su Ubuntu 11.04. L'equivalente dovrebbe funzionare per gnome-terminal per qualsiasi versione di Linux.
Avviare qualsiasi cosa da .zshenv
è decisamente l'approccio sbagliato. Questo file viene eseguito da ogni istanza di zsh
, anche durante l'esecuzione di uno script. Usa .zshrc
per le cose che dovrebbero essere fatte nelle shell interattive, e .profile
(o .zprofile
, se hai impostato zsh come shell di login) per cose che dovrebbero essere fatte quando accedi.
Se vuoi tmux in ogni terminale, avvia tmux direttamente sotto il terminale, ad esempio gnome-terminal -e tmux
(cambia il tuo programma di avvio della GUI per passare questi argomenti). Puoi passare argomenti anche con -e
(anche se fai attenzione con le citazioni), ad es. gnome-termminal -e 'tmux -s ~/.alternate.tmux.conf'
.
Se vuoi avviare tmux anche quando accedi tramite ssh, dovrai avviarlo dal tuo ~/.profile
. Fai questo solo se il processo padre della shell di login è sshd
:
parent_process_name=$(ps -o comm= -p $PPID`)
case ${parent_process_name##*/} in
sshd) type tmux >/dev/null 2>/dev/null && exec tmux;;
esac
Un altro approccio per avviare tmux su ssh sarebbe quello di ottenere un nome di sessione dall'ambiente. In questo modo puoi collegarti a una sessione esistente. Il modo più semplice è scrivere un piccolo script sul lato server, ad es. ~/bin/tmux-login-session
:
#!/bin/sh
if tmux has-session -t "$1"; then
exec tmux attach-session -t "$1"
else
. ~/.profile
exec tmux new-session -s "$1"
fi
Quindi usa un comando ssh come il seguente:
ssh -t hostname.example.com bin/tmux-login-session SESSION_NAME
Esegui i seguenti comandi nel terminale per ottenere tmux da eseguire ogni volta che avvii gnome-terminal :
gconftool --type string --set /apps/gnome-terminal/profiles/Default/custom_command "tmux"
gconftool --type bool --set /apps/gnome-terminal/profiles/Default/use_custom_command "true"
Questi set di comandi fanno in modo che gnome-terminal avvii tmux all'avvio del terminale.
- Ciò comporterà l'uscita da gnome-terminal quando chiudi tmux.
- Non interferirà comunque con ssh o login in quanto è un'impostazione di gnome-terminal.
- Inoltre, puoi utilizzare tutte le scorciatoie di gnome-terminal che hai bloccato sul desktop e avviarlo dalla riga di comando con tmux in esecuzione, quindi non avrai bisogno di creare una scorciatoia personalizzata per questo comportamento.