Adicione isso ao seu ~/.tmux.conf
:
set-option -g default-shell /bin/bash
unbind Up
unbind Down
unbind Right
unbind Left
bind Up run-shell "if [ $(tmux display-message -p '#{pane_at_top}') -ne 1 ]; then tmux select-pane -U; fi"
bind Down run-shell "if [ $(tmux display-message -p '#{pane_at_bottom}') -ne 1 ] ; then tmux select-pane -D; fi"
bind Right run-shell "if [ $(tmux display-message -p '#{pane_at_right}') -ne 1 ]; then tmux select-pane -R; fi"
bind Left run-shell "if [ $(tmux display-message -p '#{pane_at_left}') -ne 1 ]; then tmux select-pane -L; fi"
Basicamente, isso deve ser executado com o tmux versões 2.6 + (após o qual eles adicionaram as variáveis de ambiente pane_at_top, pane_at_bottom, pane_at_left, pane_at_right. Para o tmux < v2.6, não tenho certeza de como você poderia implementar isso. / p>
Além disso, se você deseja iniciar um shell personalizado, faça isso através de set-option -g default-command fish
(ou zsh ou csh ou qualquer outro). Como alternativa, se você quiser usar um shell não bash como seu shell padrão do tmux, defina-o como tal ( set-option -g default-shell
) e, em seguida, codifique a lógica acima no script de shell de sua escolha. No entanto, (como no meu caso) o uso de certos shells não lhe dá a conveniência do one-liner se comandos (ou pode ser apenas que eu não sei o suficiente sobre certos shells, ou talvez várias linhas funcionem em run- concha.