38

I've become addicted to Byobu and I've recently shifted from bash to zsh; Now I want to combine the two, however I have a one initial pre-requisite:

I cannot make zsh the default shell for my user as it's a shared account and the rest of the team aren't as zsh happy as I am - That rules out the 'chsh -s /bin/zsh' option.

So, I discovered you can set a default-shell for tmux (which should follow across to byobu right?). That would be perfect as I'm also the only one really using Byobu on the server.

Problem is, I can't work out where to enable this option in the confusion of config files that's created in the tmux/byobu mix.

Any hints?

Ashimema
  • 1,965
  • 3
  • 19
  • 19

2 Answers2

68

Put the following in your $HOME/.byobu/.tmux.conf:

set -g default-shell /usr/bin/zsh
set -g default-command /usr/bin/zsh

Full disclosure: I'm the author and maintainer of Byobu.

Dustin Kirkland
  • 14,458
  • 3
  • 69
  • 93
  • 4
    Thanks Dustin, I'm always super impressed that you hang around here! It's was the 'set -g default-command' bit I was missing in the end.. I didn't realise you needed the second configuration parameter for it to work. – Ashimema May 16 '13 at 19:21
  • 7
    No problem ;-) It's 1000x more useful when someone asks a good question like this, here in AskUbuntu or StackExchange, so that others can benefit from the answer :-) I just wish I could get all of the people who use IRC and Launchpad Questions over here... – Dustin Kirkland May 16 '13 at 19:47
  • I found that this loads two shells of the desired type, one clobbering the other. Setting just `default-shell` results in bash clobbering the shell I'm trying to set, but setting `default-command` results in exactly one of the desired shells being started. I guess having the same shell clobber itself is fine, but this could incur a bit of a start time hit as some shells take a while longer to start. – nedned May 17 '16 at 09:25
  • Is it possible to run a command instead? For example, will `set -g default-shell sudo su` work? – Dev Sep 12 '16 at 04:24
  • 1
    Why not the `byobu-select-backend` command? – Pablo Bianchi Feb 15 '17 at 13:19
  • 1
    Note that the settings file may be `~/.config/byobu/.tmux.conf`, depending how your linux is configured. – ostrokach Jun 23 '17 at 04:55
  • 1
    `export SHELL=/usr/bin/zsh; byobu` @Dev – Zhang LongQI Apr 20 '21 at 09:59
1

For me, Dustin's solution didn't seem to take at first.

I used to have a working setup where gnome-terminal launched zsh as a login shell, which then launched byobu with my window (split) setup and a couple of zsh instances in there. After a distro reinstall, the shell instances in the splits were suddenly bash, for whatever reason, even with the above fix.

Whenever I launched zsh in those splits I'd get a message from oh-my-zsh that a plugin was missing.

I installed the missing package for the plugin and configured it correctly, and now all stages of the setup execute correctly. I suspect that the error message from the sourcing process within oh-my-zsh may have caused a fallback to bash (possibly within tmux?).

Pablo Bianchi
  • 14,308
  • 4
  • 74
  • 117