web-dev-qa-db-fra.com

Comment puis-je faire en sorte que tmux utilise mon shell par défaut?

Sur une nouvelle configuration, tmux utilise bash au lieu de ma valeur par défaut (zsh).

Comment puis-je le forcer à utiliser zsh?

143
re5et
set-option -g default-Shell /bin/zsh

dans ~/.tmux.conf ou /etc/tmux.conf. Fonctionne sur Fedora.

Vous devrez peut-être redémarrer tmux avec killall tmux; tmux

186
Alex Hammel

Tout d’abord, assurez-vous que votre shell par défaut est correctement défini sur zsh en l’exécutant dans la ligne de commande:

chsh -s $(`which zsh`) $USER

Placer le texte suivant dans ~/.tmux.conf est une option plus robuste pour n’importe quel shell.

set-option -g default-Shell $Shell
39
DebugXYZ

Placez cette ligne au bas de votre ~/.tmux.conf

set-option -g default-command "reattach-to-user-namespace -l zsh"

Après avoir ajouté cela, tuez et redémarrez votre serveur tmux et tout devrait fonctionner.

20
wyattdanger

Si vous voulez forcer tmux à utiliser le même shell que celui spécifié dans votre variable d'environnement, vous pouvez utiliser:

# force Shell ENV variable as Shell
set-option -g default-Shell ${Shell}

dans votre ~/.tmux.conf ou /etc/tmux.conf.

Pour que les modifications prennent effet, il vous faudra peut-être tmux kill-server puis tmux pour redémarrer tmux.

3
mareoraft

Utilisez chsh(1):

chsh -s /bin/zsh $USER
2
amphetamachine

La déconnexion et la connexion à nouveau ont résolu mon problème. Quand echoed $Shell il était toujours /bin/bash mais après la déconnexion il a été changé en /usr/bin/zsh

2
Patrick Cho

La réponse acceptée n'a pas fonctionné pour moi.

Je devais écrire les deux

set -g default-Shell "/bin/bash"

et

set -g default-commanmd "/bin/bash"

dans mon ~/.tmux.conf - N'oubliez pas de tmux kill-server; tmux, pour recharger le fichier tmux.conf


J'utilise tmux -V 2.6 sous Ubuntu 18 dans l'émulateur gnome-Shell.

J'ai également amélioré tmux avec https://github.com/samoshkin/tmux-config . Check it out, c'est vraiment cool.

1
anarchist912

Ajoutez ceci dans votre ~/.tmux.conf

set -g default-command /usr/local/bin/fish
1
IanVaughan

tmux semble utiliser la variable d'environnement Shell, les éléments suivants devraient donc fonctionner:

Shell=/usr/bin/zsh tmux

ou

env Shell=/usr/bin/zsh tmux
1
blueyed