Byobu: Behind the folding screen
Multiplex
The Byobu window manager and terminal multiplexer lets you open multiple screens to compartmentalize tasks performed at the command line and helps keep track of the status of your systems.
Byobu [1] is a hybrid utility. On one hand, it provides a practical setup for those who need to work from more than one command prompt at a time. On the other hand, it provides a wealth of basic system information in abbreviated form. With this double benefit, Byobu solves two problems with screen space at the same time.
Originally conceived at the 2008 Ubuntu Developer Summit, Byobu is intended primarily for administrators who need to view multiple servers. In addition to providing multiple prompts within the same window, Byobu also displays two customizable status lines for monitoring systems. The program runs as a text-based window manager on top of either tmux [2] or GNU Screen [3], two earlier multiplexers, making it usable without a desktop (Figure 1). The name comes from the Japanese word for a folding screen, a metaphor whose origin becomes obvious the first time you see Byobu in use.
Basic Orientation
Byobu is available from the repositories of major distributions. It starts with the command byobu
, which includes no options of its own. You might configure it to run the options of either tmux or GNU screen, but most of these options are either obsolete on a modern system – on which, for example, you can usually take UTF-8 character support for granted – or conflict with Byobu's own configuration settings.
Instead of command options, Byobu uses a cluster of commands with similar names. In particular, if you want Byobu to run at each text login, use the command byobu-enable
(Figure 2). If Byobu is already is enabled, you disable it with byobu-disable
or suppress it for remote sessions with:
ssh -T REMOTEHOST bash
Along the bottom of the screen are two status lines. The Ubuntu documentation [4] refers to the top status line as the Caption and the bottom as Hard Stats, although these terms are not used in the Byobu man page or anywhere on the interface. Whatever you call the status lines, the top line lists multiple prompts – called windows – on the left, numbering them by default, as well as such information as the username and hostname. By contrast, the bottom line shows symbols and abbreviations that give information about the local machine, such as the operating system, uptime, and cores.
You can hide the bottom status line by running byobu-quiet
and hide both lines with byobu-silent
. Adding the option --undo
to either of these commands reverses the command, toggling the hidden status lines.
You manipulate Byobu's windows (multiple prompts) entirely with keystrokes. The basic commands are shown in Table 1; for a complete list of key-based commands, see the Ubuntu community help [4] or press F9 and select the Quick Start Guide.
Table 1
Working with Byobu Windows
Keystroke | Action |
---|---|
F3 |
Go to the previous window |
F4 |
Go to the next window |
F5 |
Refresh status notifications |
Shift-F6 |
Display window separately |
F8 |
Rename current window in status line |
Alt-Pageup |
Scroll through window's history |
Alt-Pagedown |
Scroll forward through this window's history |
Shift-F2 |
Split current window horizontally |
Ctrl-F2 |
Split current window vertically |
Shift-F3 |
Close all windows, leaving one |
Ctrl-F5 |
Reconnect SSH/GPG sockets or agents |
Collections of windows in Byobu are called screens. You can save screens with the command byobu-layout save [NAME]
. To open a layout at any time, including when starting Byobu, use byobu-layout restore [NAME]
.
Configuring Status Lines
Byobu began as a collection of status indicators. Its multiplexing quickly became just as important, but the status lines are still in use, mainly because you can customize Byobu's status lines with 39 different status indicators. Obviously, you cannot use as many as half of the indicators before they become illegible, so choose the ones you prefer or need. Even then, memorizing colors and other elements of the indicators will make using them easier.
To edit, press F9 to get the Configuration Menu (Figure 3), select Toggle status notifications, and choose the desired indicators from the list (Figure 4). Table 2 shows the available indicators, but refer to the Byobu manual [5] for full details, especially about indicators that have custom settings.
Table 2
Status Notifications
Option | Description | Color and Location |
---|---|---|
Lower Status Bar |
||
apport |
A pending crash report is available. |
To the left, black on orange. |
arch |
System architecture |
To the left, default colors. |
battery |
Battery power |
On the right, green, yellow, and red indicate battery state. |
cpu_temp |
CPU temperature |
Toward the right, yellow on black. |
cpu_count |
The number of CPUs or cores on the system |
Displayed in default colors toward the right. |
cpu_freq |
CPU frequency |
Toward the right, white on blue. |
custom |
User-defined custom scripts |
Default colors unless indicated in script. |
date |
Date in YYYY-MM-DD format |
Far right in the default colors. |
disk |
Total disk space available and total used on root directory |
Displayed on far right, white on purple. |
disk_io |
Instantaneous read/write throughput in kBps or MBps over the last three seconds |
Displayed toward the right, white on purple in white. |
distro |
Distribution |
Black on gray. |
ec2_cost |
Estimation of the cost of the current system boot using Amazon EC2 billing model |
Toward the right, green on black. |
entropy |
System's current entropy in bytes |
Toward the right, yellow on dark gray. |
fan_speed |
CPU or system fan speed |
Toward the right, black on gray. |
load_average |
System load average over the last one minute |
Toward the right, black on yellow. |
logo |
Current operating system's logo |
Far left. |
|
System mail for current user |
Toward the left, black on gray. |
memory |
Percentage of memory available and used |
Toward the right, white on green. |
menu |
Indicates menu |
Far right. |
network |
Upload/download bandwidth over last three seconds |
Toward the left, white text on purple. |
notify_osd |
Send on-screen notification messages to screen's notification buffer |
|
processes |
Number of processes running on system |
White text on dark yellow. |
raid |
Blinks at RAID failure |
Red on white. |
rcs_cost |
Cost of the current boot of the system in terms of the Rackspace Cloud Server billing model |
Toward the right, green on black. |
reboot_required |
Whether rebooted needed after system update |
White on blue. |
release |
Name of distro's current release |
Black on gray. |
services |
User-defined list of services to monitor users can configure a list of services to monitor |
Toward the center, cyan on white, |
session |
Byobu session name (with tmux only) |
On the left, underlined black on white. |
swap |
Swap space used |
Toward the right, white on light green. |
time |
Time in HH:MM:SS format |
On the far right, default colors. |
time_binary |
Time in binary (GNU Screen) |
Far right, default colors background colors. |
time_utc |
The UTC system time in HH:MM format |
Far right, dark text on a light background. |
updates_available |
Number of updates available |
Toward the right, white on red. |
uptime |
System uptime |
Toward the right, blue on gray. |
users |
Number of remote users logged in via sshd |
Toward the right, red on gray. |
wifi_quality |
Connection rate and signal quality of WiFi connection |
Toward the right, black on cyan. |
Top Status Bar* |
||
hostname |
Hostname |
Far right, black on gray. |
ip_address |
IPv4 address of the system in dotted decimal form |
Far right, black on gray. |
ip_address6 |
IPv6 address of the system |
Far right, black text on gray background. |
whoami |
Current user |
Far right, black on gray. |
*Note: The far left of the status bar is reserved for windows (prompts), with the current window highlighted in gray. |
Many indicators have set colors and approximate positions on the status bars defined. Other settings used by indicators are detected automatically or defined in the file ~/.byobu/statusrc
(Figure 5), or, occasionally, another file under ~/.byobu
, and can be altered in a text editor.
Similarly, to edit the background color of the status line, edit ~/.byobu/color
when running Byobu with GNU Screen or ~/color.tmux
when running Byobu with tmux. Colors are defined in hexademical web format. The key combination Ctrl+Shift+F5 changes the background to a randomly selected color when Byobu uses tmux. To return to the default colors, delete the file in which the color is set.
Ordinarily, Byobu defaults to using tmux, using GNU Screen only if tmux is not installed. However, you can edit its configuration to use GNU Screen, either with the command byobu-select-backend
, or by editing directly the line BYOBU_BACKEND=tmux
in the file ~/.byobu/backend
. Use the back-end file if you want to run either tmux or GNU Screen with options, although every option for the two commands may not be relevant in a modern system or have any noticeable effect
Multiplexers or Status-Seekers
In my experience, users of Byobu fall into two categories: those who want multiple prompts, and those who want a quick system summary. Both groups benefit from as large a monitor as possible because after a few divisions into more than a few prompts, the screens quickly become too small to be useful. Similarly, those who want information need as wide a screen as possible to squeeze as many indicators onto the status lines while keeping each legible.
That point aside, Byobu is an elegant program, similar to Gnome tools in the simplicity of its multiplexing, yet similar to KDE in the completeness of its status indicators. It combines the best of both design philosophies, guaranteeing its usefulness.
Infos
- Byobu: http://byobu.co/
- tmux: http://tmux.sourceforge.net/
- GNU Screen: https://www.gnu.org/software/screen/
- Key bindings: https://help.ubuntu.com/community/Byobu#Key_Bindings
- Manual: http://manpages.ubuntu.com/manpages/utopic/en/man1/byobu.1.html
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
AlmaLinux OS Kitten 10 Gives Power Users a Sneak Preview
If you're looking to kick the tires of AlmaLinux's upstream version, the developers have a purrfect solution.
-
Gnome 47.1 Released with a Few Fixes
The latest release of the Gnome desktop is all about fixing a few nagging issues and not about bringing new features into the mix.
-
System76 Unveils an Ampere-Powered Thelio Desktop
If you're looking for a new desktop system for developing autonomous driving and software-defined vehicle solutions. System76 has you covered.
-
VirtualBox 7.1.4 Includes Initial Support for Linux kernel 6.12
The latest version of VirtualBox has arrived and it not only adds initial support for kernel 6.12 but another feature that will make using the virtual machine tool much easier.
-
New Slimbook EVO with Raw AMD Ryzen Power
If you're looking for serious power in a 14" ultrabook that is powered by Linux, Slimbook has just the thing for you.
-
The Gnome Foundation Struggling to Stay Afloat
The foundation behind the Gnome desktop environment is having to go through some serious belt-tightening due to continued financial problems.
-
Thousands of Linux Servers Infected with Stealth Malware Since 2021
Perfctl is capable of remaining undetected, which makes it dangerous and hard to mitigate.
-
Halcyon Creates Anti-Ransomware Protection for Linux
As more Linux systems are targeted by ransomware, Halcyon is stepping up its protection.
-
Valve and Arch Linux Announce Collaboration
Valve and Arch have come together for two projects that will have a serious impact on the Linux distribution.
-
Hacker Successfully Runs Linux on a CPU from the Early ‘70s
From the office of "Look what I can do," Dmitry Grinberg was able to get Linux running on a processor that was created in 1971.