Voici comment configurer tmux pour qu'il se lance avec gnome-terminal :
- Lancer gnome-terminal
- Menu > Édition > Préférences du profil > Titre et commande (onglet)
- Cochez Exécuter une commande personnalisée au lieu de mon shell
- Remplir la commande personnalisée avec tmux
Ces instructions fonctionnent pour moi sur Ubuntu 11.04. L'équivalent devrait fonctionner pour gnome-terminal pour n'importe quelle version de Linux.
Lancer n'importe quoi depuis .zshenv
est certainement la mauvaise approche. Ce fichier est exécuté par chaque instance de zsh
, même lors de l'exécution d'un script. Utilisez .zshrc
pour les choses qui doivent être faites dans des shells interactifs, et .profile
(ou .zprofile
, si vous avez défini zsh comme shell de connexion) pour les choses à faire lorsque vous vous connectez.
Si vous voulez tmux dans chaque terminal, démarrez tmux directement sous le terminal, par exemple, gnome-terminal -e tmux
(modifiez votre lanceur d'interface graphique pour passer ces arguments). Vous pouvez passer des arguments même avec -e
(mais attention aux citations), par ex. gnome-termminal -e 'tmux -s ~/.alternate.tmux.conf'
.
Si vous souhaitez également démarrer tmux lorsque vous vous connectez en ssh, vous devrez le lancer depuis votre ~/.profile
. Faites cela uniquement si le processus parent du shell de connexion est 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
Une autre approche pour démarrer tmux sur ssh serait d'obtenir un nom de session à partir de l'environnement. De cette façon, vous pourriez vous attacher à une session existante. Le moyen le plus simple consiste à écrire un petit script côté serveur, par ex. ~/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
Utilisez ensuite une commande ssh comme celle-ci :
ssh -t hostname.example.com bin/tmux-login-session SESSION_NAME
Exécutez les commandes suivantes sur le terminal pour obtenir tmux pour s'exécuter à chaque fois que vous lancez 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"
Cet ensemble de commandes permet à gnome-terminal de lancer tmux au démarrage du terminal.
- Cela entraînera la fermeture de gnome-terminal lorsque vous quitterez tmux.
- Cela n'interférera pas avec ssh ou la connexion de toute façon car il s'agit d'un paramètre gnome-terminal.
- Vous pouvez également utiliser tous les raccourcis de gnome-terminal que vous avez épinglés sur le bureau et le lancer à partir de la ligne de commande avec tmux en cours d'exécution, vous n'aurez donc pas besoin de créer un raccourci personnalisé pour ce comportement.