I've been working hard over the last few months pulling together some big changes in the 4.x series, culminating in yesterday's release. I gave an early preview during a lightning talk (31:02 mark) at the Ubuntu Developer Summit in Orlando, Florida a couple of months ago.
The Byobu project started a little over 3 years ago as a set of best practices and configuration profiles for GNU Screen with the screen-profiles package. Byobu builds on top of existing text-based window managers and adds real-time dynamic status reporting, helper configuration utilities, and convenient keybindings.
Earlier this year, we started to reach the limits of what we could do with GNU Screen within Byobu. The GNU Screen project hasn't been officially released in over 3 years, and Ubuntu is currently carrying nearly 20,000 lines in 48 patches to the upstream source. I started looking into alternatives and learned a bit about Tmux, a newly redesigned and actively maintained window manager springing from the OpenBSD project. The code is modern and elegant, and has an excellent programmable interface. In June, I polled some Byobu users, asking of their interest in Tmux and the response was overwhelming! I started porting Byobu to Tmux almost immediately.
New in 5.0
The most significant change that Byobu 5.0 introduces is a shift from GNU Screen to Tmux as the default backend. You can still run Byobu in Screen-mode, but the default experience now uses Tmux.
Selecting your Back end
You can select your default back end using:
$ byobu-select-backend Select the byobu backend: 1. tmux 2. screen Choose 1-2 :
After which, just running byobu will use your selected back end. Alternatively, you can run byobu-screen or byobu-tmux at any time, to launch Byobu with a particular back end.
The New Byobu Look
When you start Byobu 5.0, you may notice a couple of immediate changes. For starters, there's only one line of status at the bottom. Your windows and status items are all in the same line. You can set multiple status combinations in your ~/.byobu/status line, and cycle through them using Shift-F5. Personally, I run Byobu maximized and use horizontal and vertical splits for efficiency (more on that in a minute!).
Tmux offers several advantages in the status line, namely: UTF8 characters and 256 colors. If you look at the lower left of the screen shot, you should see the Ubuntu brandmark, u, as well as other nice symbols in the status bar, such as "▴2.0Mb ▾53kb". Also, with 256 colors, we can get much closer to the right aubergine and orange.
The Help Menu
You can bring up Byobu's new help menu any time by pressing Shift-F1, with which you can find a comprehensive list of Byobu's keybindings.
Creating Windows, Splits, and Sessions
All of the "creation" actions are conveniently found under the F2 key.
- Create new windows with F2
- Create new horizontal splits with Shift-F2
- Create new vertical splits with Ctrl-F2
- Create new sessions with Ctrl-Shift-F2
Navigating Windows, Splits, and Sessions
As in previous versions, you can use F3 and F4 to move right and left among windows.
But far more intuitively, you can also use the up/down/left/right arrow keys with the alt/ctrl/shift modifiers.
- Move between windows with Ctrl-Shift-Left and Ctrl-Shift-Right
- Move between sessions with Alt-Up and Alt-Down
- Move focus among splits with Shift-Up, Shift-Down, Shift-Left, and Shift-Right
- Note that the split with the focus will be highlighted in purple
- Re-size a split using Ctrl-Up, Ctrl-Down, Ctrl-Left, and Ctrl-Right
- Move a split using Ctrl-F3 and Ctrl-F4
- Move a window using Ctrl-Shift-F3 and Ctrl-Shift-F4
As usual, the F5 key deals with your status line.
- Refresh all status and reload your profile with F5
- Toggle through multiple status configurations with Shift-F5
- Reconnect ssh, gpg, dbus, and X sessions with Ctrl-F5
- sometimes, these connections become stale on session disconnect/reconnect
- Randomly select the background color of the status line with Ctrl-Shift-F5
- visually identify each system by its unique color
The F6 key handles disconnecting and detaching.
- Detach the current session and logout with F6
- Detach the current session, but do not logout with Shift-F6
- Kill the current split with Ctrl-F6
$ byobu-select-session Byobu sessions... 1. tmux: 0: 8 windows (created Sun Dec 25 09:59:05 2011) [170x42] 2. tmux: 1: 1 windows (created Sun Dec 25 10:00:46 2011) [170x42] 3. tmux: 3: 2 windows (created Sun Dec 25 12:30:55 2011) [136x36] 4. Create a new Byobu session (tmux) 5. Run a shell without Byobu (/bin/bash) Choose 1-5 :
Each window and each split has an independent history buffer that can be scrolled and even searched, as usual with F7.
- Enter scroll back with F7
- Enter and navigate scroll back with Alt-PageUp and Alt-PageDown
- Exit scroll back with Enter
- Search scroll back with / and ? and then typing your search term
As in previous versions, you can change a window's name with F8, but F8 also provides some advanced features around split arrangements.
- Rename a window with F8
- Cycle through preset split arrangements with Shift-F8
- Restart a saved split layout with Ctrl-F8
- Save the current split layout with Ctrl-Shift-F8
Full Screen, Joining, and Breaking Out Splits
The F11 key is probably used by your X window manager to toggle a window from full screen and back. Byobu uses Alt, Shift, and Ctrl and F11 to provide a few other features.
- Break the current split out into a full window of its own with Alt-F11
- Join the current window into a horizontal split with Shift-F11
- Join the current window into a vertical split with Ctrl-F11
- The F12 key is actually an alias for the escape sequence
- Toggle on and off Byobu's key bindings with Shift-F12
- this is useful when running programs that conflict with Byobu's keys, such as mc
- For Piet Mondrian inspired fun, press Ctrl-Shift-F12