Compare commits

...

41 commits

Author SHA1 Message Date
Dustin Kirkland
34ca6fec92 releasing 6.13 2025-03-29 19:56:22 -05:00
Dustin Kirkland
d647ef2138 fix PS1 ANSI escape sequences causing line wrap errors 2025-03-29 19:54:52 -05:00
Dustin Kirkland
2ca86a554d Description: strip time EPOCHREALTIME by digit not decimal separator
original code stripped only by period defined decimal.
Some locales separate by comma. The goal is to strip to a
non-decimal, so instead only allowing digits,
and using start of string ensures safety.

Author: Jakub Skopal <jakub.skopal@bindworks.eu>
Origin: uptream, https://github.com/dustinkirkland/byobu/pull/71
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/byobu/+bug/2052610
Reviewed-by: John Chittum <john.chittum@canonical.com>
Last-Update: 2025-03-03
2025-03-29 11:20:07 -05:00
Dustin Kirkland
d315ccbd89 added help/version option to most executables 2025-03-29 11:19:22 -05:00
Dustin Kirkland
cd253f0229 releasing 2024-02-17 07:29:21 -06:00
Dustin Kirkland
0366c573a3 added git branch to bash ps1 prompt 2024-02-17 06:19:29 -06:00
Dustin Kirkland
946c975277 opening 6.12 2024-02-10 11:24:14 -06:00
Dustin Kirkland
fc1b4580a8 added support for dnf package manager
https://code.launchpad.net/~sanjay-ankur/byobu/byobu/+merge/415959
2024-02-10 11:04:14 -06:00
Dustin Kirkland
63df0a8c8e Fix for VSCode, fish and byobu installations
f917d2169a (commitcomment-137955113)
2024-02-10 10:56:56 -06:00
Dustin Kirkland
0514e53ba1 fix BYOBU_RUN_DIR and BYOBU_PREFIX issue
https://github.com/dustinkirkland/byobu/pull/62
https://launchpad.net/bugs/2051995 LP: #2051995
2024-02-10 10:50:34 -06:00
Dustin Kirkland
24cf51c2ad opening 6.11 2024-01-23 09:43:10 -06:00
Dustin Kirkland
237d811ad8 fix timer string logic 2024-01-23 09:03:34 -06:00
Dustin Kirkland
a38bfe0925 fix debhelper warnings 2024-01-22 10:29:34 -06:00
Dustin Kirkland
a8e7ee7cbd bump compat, fix vcs lintian warning 2024-01-22 10:26:02 -06:00
Dustin Kirkland
7c1b47c560 opening 6.10 2024-01-22 09:45:50 -06:00
Dustin Kirkland
6308b188ce removing, unused, never finished 2024-01-22 09:39:23 -06:00
Dustin Kirkland
4cf9c16930 opening 6.9 2024-01-22 09:26:44 -06:00
Dustin Kirkland
00fe8ca7e8 mark unreleased 2024-01-22 09:03:42 -06:00
Dustin Kirkland
bbded71918 have F1 pull up the keybindings text
+
+
2024-01-20 21:28:05 -06:00
Dustin Kirkland
cf44bfc895 releasing 6.7 2024-01-20 21:16:06 -06:00
Dustin Kirkland
3f60f2527c if we're in a busybox/ash shell, but real bash is available, use bash
+
+
2024-01-20 20:50:42 -06:00
Dustin Kirkland
03a0ccea03 releasing 6.6 2024-01-16 20:11:20 -06:00
Dustin Kirkland
0603036501 add a bash timer, that shows the runtime of the previous command
+      at the beginning of the prompt
2024-01-16 20:10:53 -06:00
Dustin Kirkland
e9c1ff5c37 add byobu prompt to .bashrc in Wolfi 2024-01-16 19:14:44 -06:00
Dustin Kirkland
d670c33554 export PS1
+
+
2024-01-16 13:04:42 -06:00
Dustin Kirkland
a4af10201f releasing 6.5 2024-01-09 07:33:16 -06:00
Dustin Kirkland
4a2ebccb62 need a -l login shell to source profiles and colorize PS1 2024-01-09 07:32:18 -06:00
Dustin Kirkland
26528f1998 drastically simplify the conditional logic 2024-01-09 07:23:00 -06:00
Dustin Kirkland
39e6bc7c6d drop debian chroot from wolfi ps1 2024-01-08 21:31:45 -06:00
Dustin Kirkland
ae62fbf6a2 opening 6.5 for development 2024-01-07 16:10:57 -06:00
Dustin Kirkland
8c30d81207 releasing 6.4 2024-01-07 16:09:47 -06:00
Dustin Kirkland
8f88171a6d enable colorized prompt for Wolfi ash shells 2024-01-07 16:09:26 -06:00
Dustin Kirkland
9b42ffb922 add missing trailing whitespace 2024-01-04 13:32:53 -06:00
Dustin Kirkland
ad32052231 support ash for colorized prompt 2024-01-02 19:22:31 -06:00
Dustin Kirkland
18467fff88 silence apk update 2024-01-02 19:10:18 -06:00
Dustin Kirkland
5e3944666c within Wolfi, default to our 2nd status line 2024-01-02 19:09:04 -06:00
Dustin Kirkland
773af0ddde releasing 6.2 2023-12-31 09:05:44 -06:00
Dustin Kirkland
b2f15f9ca5 add a package count status item, useful for minimal containers 2023-12-25 06:59:26 -06:00
Dustin Kirkland
d894c95e7e added support for apk / Wolfi in updates_available 2023-12-25 06:21:38 -06:00
Dustin Kirkland
ba50b0ede8 added a status line customized for containers 2023-12-25 06:06:09 -06:00
Dustin Kirkland
dab56999d5 add wolfi color schemed PS1 prompt 2023-12-24 11:38:55 -06:00
19 changed files with 298 additions and 83 deletions

112
debian/changelog vendored
View file

@ -1,3 +1,115 @@
byobu (6.13-0ubuntu1) plucky; urgency=medium
* usr/lib/byobu/include/common:
- added -v|--version and -h|--help to most executables
* usr/share/byobu/profiles/bashrc:
- fix PS1 ANSI escape sequences causing line wrap errors
-- Dustin Kirkland <kirkland@ubuntu.com> Sat, 29 Mar 2025 19:55:23 -0500
byobu (6.12-0ubuntu1) noble; urgency=medium
* usr/share/byobu/profiles/bashrc:
- added git branch to bash ps1 prompt
-- Dustin Kirkland <kirkland@ubuntu.com> Sat, 17 Feb 2024 07:25:02 -0600
byobu (6.11-0ubuntu1) noble; urgency=medium
* usr/share/byobu/profiles/bashrc:
- fix BYOBU_RUN_DIR and BYOBU_PREFIX issue
- https://github.com/dustinkirkland/byobu/pull/62
- https://launchpad.net/bugs/2051995 LP: #2051995
* usr/bin/byobu-launcher-install.in:
- Fix for VSCode, fish and byobu installations
- https://github.com/dustinkirkland/byobu/commit/f917d2169afdec623f5b32723d93bfd91d34b92f#commitcomment-137955113
* usr/lib/byobu/updates_available:
- added support for dnf package manager
- https://code.launchpad.net/~sanjay-ankur/byobu/byobu/+merge/415959
-- Dustin Kirkland <kirkland@ubuntu.com> Sat, 10 Feb 2024 11:24:04 -0600
byobu (6.10-0ubuntu1) noble; urgency=medium
* debian/compat, debian/control:
- bump compat, fix vcs lintian warning, fix debhelper warnings
* usr/share/byobu/profiles/bashrc:
- fix timer string logic
-- Dustin Kirkland <kirkland@ubuntu.com> Tue, 23 Jan 2024 09:43:03 -0600
byobu (6.9-0ubuntu1) noble; urgency=medium
* snap:
- removing, unused, never finished
-- Dustin Kirkland <kirkland@ubuntu.com> Mon, 22 Jan 2024 10:25:11 -0600
byobu (6.8-0ubuntu1) noble; urgency=medium
* usr/share/byobu/keybindings/f-keys.tmux:
- have F1 pull up the keybindings text
-- Dustin Kirkland <kirkland@ubuntu.com> Mon, 22 Jan 2024 09:26:40 -0600
byobu (6.7) released; urgency=medium
* usr/bin/byobu.in:
- if we're in a busybox/ash shell, but real bash is available, use bash
-- Dustin Kirkland <kirkland@ubuntu.com> Sat, 20 Jan 2024 21:15:53 -0600
byobu (6.6) released; urgency=medium
* usr/share/byobu/profiles/bashrc:
- export PS1
* usr/bin/byobu-janitor.in:
- add byobu prompt to .bashrc in Wolfi
* usr/share/byobu/profiles/bashrc, usr/share/man/man1/byobu-prompt.1:
- add a bash timer, that shows the runtime of the previous command
at the beginning of the prompt
-- Dustin Kirkland <kirkland@ubuntu.com> Tue, 16 Jan 2024 20:11:10 -0600
byobu (6.5) released; urgency=medium
* usr/share/byobu/profiles/bashrc:
- drop debian chroot from wolfi ps1
- drastically simplify the conditional logic
* usr/bin/byobu-shell.in:
- need a -l login shell to source profiles and colorize PS1
-- Dustin Kirkland <kirkland@ubuntu.com> Tue, 16 Jan 2024 13:04:06 -0600
byobu (6.4) released; urgency=medium
* usr/lib/byobu/packages:
- add missing trailing whitespace
* usr/bin/byobu-janitor.in:
- enable colorized prompt for Wolfi ash shells
-- Dustin Kirkland <kirkland@ubuntu.com> Sun, 07 Jan 2024 16:09:39 -0600
byobu (6.3) released; urgency=medium
* usr/bin/byobu-janitor.in, usr/share/byobu/status/status:
- within Wolfi, default to our 2nd status line
* usr/lib/byobu/updates_available:
- silence apk update
* usr/share/byobu/profiles/bashrc:
- support ash for colorized prompt
-- Dustin Kirkland <kirkland@ubuntu.com> Tue, 02 Jan 2024 19:23:28 -0600
byobu (6.2) released; urgency=medium
* add a package count status item, useful for minimal containers
* added support for apk / Wolfi in updates_available
* added a status line customized for containers
* add wolfi color schemed PS1 prompt
-- Dustin Kirkland <kirkland@ubuntu.com> Tue, 02 Jan 2024 19:08:03 -0600
byobu (6.1) released; urgency=medium
* usr/lib/byobu/include/shutil:

2
debian/compat vendored
View file

@ -1 +1 @@
9
13

4
debian/control vendored
View file

@ -4,9 +4,9 @@ Priority: optional
Maintainer: Dustin Kirkland <kirkland@ubuntu.com>
Uploaders: Antoine Beaupré <anarcat@koumbit.org>
Standards-Version: 4.1.3
Build-Depends: debhelper (>= 7.0.50~), gettext-base, automake, autoconf, dh-python, python3
Build-Depends: debhelper (>= 13), gettext-base, automake, autoconf, dh-python, python3
Homepage: https://byobu.org
Vcs-Bzr: https://github.com/dustinkirkland/byobu
Vcs-Git: https://github.com/dustinkirkland/byobu
Package: byobu
Architecture: all

View file

@ -1,26 +0,0 @@
name: byobu
version: 5.124
summary: text window manager, shell multiplexer, integrated DevOps environment
description: >
Byobu is Ubuntu's powerful text-based window manager, shell multiplexer, and
integrated DevOps environment.
Using Byobu, you can quickly create and move between different windows
over a single SSH connection or TTY terminal, split each of those windows into
multiple panes, monitor dozens of important statistics about your system,
detach and reattach to sessions later while your programs continue to run in
the background.
confinement: classic
grade: stable
parts:
byobu:
plugin: nil
stage-packages: [byobu]
stage:
- -bin/byobu
snap:
- -bin/byobu
apps:
byobu:
command: byobu

View file

@ -4,6 +4,7 @@
# environtment and smooth upgrades
#
# Copyright (C) 2009 Canonical Ltd.
# Copyright (C) 2024 Dustin Kirkland
#
# Authors: Dustin Kirkland <kirkland@byobu.org>
#
@ -89,6 +90,8 @@ for f in status statusrc; do
if [ ! -r "$BYOBU_CONFIG_DIR/$f" ]; then
# Copy from skeleton, if possible
cp -f "$BYOBU_PREFIX/share/$PKG/status/$f" "$BYOBU_CONFIG_DIR/$f"
# If we're running in Wolfi for the first time, cycle to the 2nd status
[ "$f" = "status" ] && [ "$BYOBU_DISTRO" = "Wolfi" ] && $BYOBU_PREFIX/lib/byobu/include/cycle-status
fi
done
@ -133,6 +136,18 @@ if [ -r /etc/skel/.bashrc ] && [ -r "$HOME/.bashrc" ] && [ -w "$HOME/.bashrc" ]
fi
[ -r "$BYOBU_CONFIG_DIR/prompt" ] || printf "[ -r ${BYOBU_PREFIX}/share/${PKG}/profiles/bashrc ] && . ${BYOBU_PREFIX}/share/${PKG}/profiles/bashrc #byobu-prompt#\n" > "$BYOBU_CONFIG_DIR/prompt"
# Affects: New Wolfi installs -- add colorized prompt to local .profile
if [ "$BYOBU_DISTRO" = "Wolfi" ]; then
# Wolfi defaults to "ash", which uses .profile
if ! (grep -qs "#byobu-prompt#$" "$HOME/.profile"); then
printf "[ -r $BYOBU_CONFIG_DIR/prompt ] && . $BYOBU_CONFIG_DIR/prompt #byobu-prompt#\n" >> "$HOME/.profile"
fi
# Wolfi also has bash, which uses .bashrc
if ! (grep -qs "#byobu-prompt#$" "$HOME/.bashrc"); then
printf "[ -r $BYOBU_CONFIG_DIR/prompt ] && . $BYOBU_CONFIG_DIR/prompt #byobu-prompt#\n" >> "$HOME/.bashrc"
fi
fi
# Affects: Upgrades from <= byobu 5.126, clear out ec2/rcs cost statuses
rm -f "$BYOBU_RUN_DIR"/cache.tmux/ec2_cost* "$BYOBU_RUN_DIR"/cache.tmux/rcs_cost* "$BYOBU_RUN_DIR"/status.tmux/ec2_cost* "$BYOBU_RUN_DIR"/status.tmux/rcs_cost*

View file

@ -49,8 +49,8 @@ install_launcher() {
install_launcher_fish() {
$PKG-launcher-uninstall "$1" || true
printf "if not set -q VSCODE_CWD" >> "$1"
printf " status --is-login; and status --is-interactive; and exec byobu-launcher" >> "$1"
printf "if not set -q VSCODE_CWD; " >> "$1"
printf " status --is-login; and status --is-interactive; and exec byobu-launcher;" >> "$1"
printf "end" >> "$1"
}

View file

@ -41,6 +41,8 @@ if [ ! -e "$FLAG" ]; then
touch "$FLAG"
fi
[ -n "$SHELL" -a -x "$SHELL" ] && exec "$SHELL" || exec /bin/sh
# This needs to be a -l login shell, in order to source profiles
# and colorize the prompt
[ -n "$SHELL" -a -x "$SHELL" ] && exec "$SHELL" -l || exec /bin/sh -l
# vi: syntax=sh ts=4 noexpandtab

View file

@ -2,7 +2,7 @@
#
# byobu - wrapper script
# Copyright (C) 2008-2009 Canonical Ltd.
# Copyright (C) 2008-2014 Dustin Kirkland
# Copyright (C) 2008-2024 Dustin Kirkland
#
# Authors: Dustin Kirkland <kirkland@byobu.org>
#
@ -18,7 +18,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
VERSION=5.134
VERSION=6.12
PKG="byobu"
# All sorts of things go wrong if you don't own your $HOME dir.
@ -32,6 +32,13 @@ if [ ! -O "$HOME" ]; then
exit 1
fi
# If we're in a busybox/ash shell (or shell is undefined),
# and a full bash shell is available, then please let's use bash in byobu.
# Other shells are supported, but your mileage may vary...
if [ "$SHELL" = "/bin/ash" ] || [ "$SHELL" = "ash" ] || [ -z "$SHELL" ]; then
[ -x "/bin/bash" ] && export SHELL="/bin/bash"
fi
# Source local byobu config
if [ -r "$HOME/.byoburc" ]; then
# Ensure that this configuration is usable

View file

@ -1,3 +1,3 @@
libdirdir = $(prefix)/lib/@PACKAGE@
libdir_SCRIPTS = apport arch battery cpu_count cpu_freq cpu_temp color custom date disk disk_io distro entropy fan_speed hostname ip_address load_average logo mail memory menu network processes raid reboot_required release services session swap time time_binary time_utc trash updates_available uptime users whoami wifi_quality
libdir_SCRIPTS = apport arch battery cpu_count cpu_freq cpu_temp color custom date disk disk_io distro entropy fan_speed hostname ip_address load_average logo mail memory menu network packages processes raid reboot_required release services session swap time time_binary time_utc trash updates_available uptime users whoami wifi_quality

View file

@ -53,3 +53,8 @@ if [ -z "${BYOBU_INCLUDED_LIBS}" ]; then
export BYOBU_DISTRO="$_RET"
BYOBU_INCLUDED_LIBS=1
fi
case "$1" in
-v|--version) [ "$(basename $0)" != "byobu" ] && exec byobu -v ;;
-h|--help) exec man $(basename $0) ;;
esac

View file

@ -25,6 +25,9 @@ PKG="byobu"
PCT="%"
# Some shell(s) don't set the USER environment value (looking at you, ash)
[ -z "$USER" ] && export USER=$(whoami)
# Support two different backends (screen/tmux)
if [ -z "$BYOBU_BACKEND" ]; then
[ -r "/etc/byobu/backend" ] && . "/etc/byobu/backend"

View file

@ -258,6 +258,7 @@ status_freq() {
menu) _RET=9999991 ;;
network) _RET=3 ;;
notify_osd) _RET=9999991 ;;
packages) _RET=211 ;;
processes) _RET=7 ;;
raid) _RET=59 ;;
reboot_required) _RET=5 ;;

53
usr/lib/byobu/packages Executable file
View file

@ -0,0 +1,53 @@
#!/bin/sh -e
#
# packages: count the number of packages installed
#
# Copyright (C) 2023 Dustin Kirkland
#
# Authors: Dustin Kirkland <kirkland@byobu.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
__packages_detail() {
if eval $BYOBU_TEST dpkg >/dev/null 2>&1; then
dpkg -l | grep ^ii
fi
if eval $BYOBU_TEST snap >/dev/null 2>&1; then
snap list
fi
if eval $BYOBU_TEST apk >/dev/null 2>&1; then
apk info
fi
return
}
__packages() {
local packages=0
if eval $BYOBU_TEST dpkg >/dev/null 2>&1; then
count=$(dpkg -l | grep -c ^ii)
packages=$((packages+count))
fi
if eval $BYOBU_TEST snap >/dev/null 2>&1; then
count=$(snap list | grep -c -v "^Name\s")
packages=$((packages+count))
fi
if eval $BYOBU_TEST apk >/dev/null 2>&1; then
count=$(apk info | wc -l)
packages=$((packages+count))
fi
[ -n "$packages" ] || return
color w y; printf "[%s]" "$count"; color --;
}
# vi: syntax=sh ts=4 noexpandtab

View file

@ -3,7 +3,7 @@
# updates_available: calculate and cache the number of updates available
#
# Copyright (C) 2008 Canonical Ltd.
# Copyright (C) 2011-2014 Dustin Kirkland
# Copyright (C) 2011-2023 Dustin Kirkland
#
# Authors: Dustin Kirkland <kirkland@byobu.org>
#
@ -81,6 +81,13 @@ ___update_cache() {
else
brew outdated | wc -l >$mycache &
fi
elif eval $BYOBU_TEST apk >/dev/null; then
# Wolfi updates are cheap (~1s); so update cache every time
apk update 2>&1 >/dev/null
apk upgrade --simulate | grep -c " Upgrading " >$mycache 2>/dev/null &
elif eval $BYOBU_TEST dnf >/dev/null; then
# If dnf exists, use it
flock -xn "$flock" dnf list --upgrades -q -y | grep -vc "Available Upgrades" >$mycache 2>/dev/null &
fi
}
@ -137,6 +144,9 @@ ___update_needed() {
# formulae database was updated
[ "$(brew --prefix)/Library/Formula" -nt "$mycache" ]
return $?
elif [ -e "/var/cache/dnf/packages.db" ]; then
[ "/var/cache/dnf/packages.db" -nt "$mycache" ]
return $?
fi
return 1
}

View file

@ -1,7 +1,7 @@
###############################################################################
# byobu's tmux f-key keybindings
#
# Copyright (C) 2011-2014 Dustin Kirkland <kirkland@byobu.org>
# Copyright (C) 2011-2024 Dustin Kirkland <kirkland@byobu.org>
#
# Authors: Dustin Kirkland <kirkland@byobu.org>
#
@ -26,7 +26,7 @@ source $BYOBU_PREFIX/share/byobu/keybindings/f-keys.tmux.disable
# Byobu's Keybindings
# Documented in: $BYOBU_PREFIX/share/doc/byobu/help.tmux.txt
bind-key -n F1 new-window -n config byobu-config
bind-key -n F1 new-window -n help "sh -c '$BYOBU_PAGER $BYOBU_PREFIX/share/doc/byobu/help.tmux.txt'"
bind-key -n S-F1 new-window -n help "sh -c '$BYOBU_PAGER $BYOBU_PREFIX/share/doc/byobu/help.tmux.txt'"
bind-key -n F2 new-window -c "#{pane_current_path}" \; rename-window "-"
bind-key -n C-F2 display-panes \; split-window -h -c "#{pane_current_path}"

View file

@ -1,5 +1,6 @@
# byobu's bashrc -- colorize the prompt
# Copyright (C) 2014 Dustin Kirkland
# Copyright (C) 2023, 2024 Dustin Kirkland
#
# Authors: Dustin Kirkland <kirkland@byobu.org>
#
@ -22,22 +23,45 @@ case "$TERM" in
export TERM="xterm-256color"
;;
esac
if [ -n "$TMUX" ] || [ "${TERMCAP#*screen}" != "${TERMCAP}" ]; then
# Ensure that we're in bash, in a byobu environment
if [ -n "$BYOBU_BACKEND" ] && [ -n "$BASH" ]; then
byobu_prompt_status() { local e=$?; [ $e != 0 ] && echo -e "$e "; }
[ -n "$BYOBU_CHARMAP" ] || BYOBU_CHARMAP=$(locale charmap 2>/dev/null || echo)
byobu_prompt_symbol() {
if [ "$USER" = "root" ]; then
printf "%s" "#";
else
printf "%s" "\$"
fi
[ -z "$USER" ] && export USER=$(whoami)
[ -d "$BYOBU_PREFIX" ] || BYOBU_PREFIX="/usr"
[ -r "$BYOBU_PREFIX/lib/byobu/include/dirs" ] && . "$BYOBU_PREFIX/lib/byobu/include/dirs"
byobu_prompt_git() { git branch 2>/dev/null | sed -e "/^[^*]/d" -e "s/* \(.*\)/ (\1)/"; }
byobu_prompt_status() { printf "%s" "[$?]"; }
byobu_prompt_symbol() { [ "$USER" = "root" ] && printf "%s" "#" || printf "%s" "\$"; }
byobu_prompt_runtime() {
# Calculate the approximate runtime of the previous command
# Uses bash 5.0's EPOCHREALTIME
local starttime endtime duration days hours minutes seconds microseconds nanoseconds str
[ ! -r $BYOBU_RUN_DIR/timer.$$ ] && printf "[0.000s]" && return
read starttime < $BYOBU_RUN_DIR/timer.$$ 2>/dev/null || true
# strip to non-decimal time. avoids LP: #2052610
endtime=${EPOCHREALTIME/[^0-9]/}
starttime=${starttime/[^0-9]/}
duration=$((endtime - starttime))
days=$((duration/1000000/60/60/24))
hours=$((duration/1000000/60/60%24))
minutes=$((duration/1000000/60%60))
seconds=$((duration/1000000%60))
nanoseconds=$((duration-days*1000000*60*60*24-hours*1000000*60*60-minutes*1000000*60-seconds*1000000))
nanoseconds=$(printf "%.6d" ${nanoseconds})
microseconds=${nanoseconds:0:3}
# Shorten our string as much as possible
[ "$days" = "0" ] && days= || days="${days}d "
[ "$hours" = "0" ] && hours= || hours="${hours}h "
[ "$minutes" = "0" ] && minutes= || minutes="${minutes}m "
str="${days}${hours}${minutes}${seconds}.${microseconds}s"
printf "[%s]" "$str" 1>&2
}
# Requires Bash 4.x
export PS0='$(printf "%s" ${EPOCHREALTIME/[^0-9]/} >"$BYOBU_RUN_DIR/timer.$$")'
case "$BYOBU_DISTRO" in
"Ubuntu")
# Use Ubuntu colors (grey / orange / aubergine)
PS1="${debian_chroot:+($debian_chroot)}\[\e[38;5;202m\]\$(byobu_prompt_status)\[\e[38;5;245m\]\u\[\e[00m\]@\[\e[38;5;172m\]\h\[\e[00m\]:\[\e[38;5;5m\]\w\[\e[00m\]\$(byobu_prompt_symbol) "
export PS1="\$(byobu_prompt_runtime) --> \$(byobu_prompt_status)\n\[\e[38;5;245m\]\u\[\e[00m\]@\[\e[38;5;172m\]\h\[\e[00m\]:\[\e[38;5;5m\]\w\[\e[00m\]\$(byobu_prompt_git)\$(byobu_prompt_symbol) "
export GREP_COLORS="ms=01;38;5;202:mc=01;31:sl=:cx=:fn=01;38;5;132:ln=32:bn=32:se=00;38;5;242"
export LESS_TERMCAP_mb=$(printf '\e[01;31m') # enter blinking mode red
export LESS_TERMCAP_md=$(printf '\e[01;38;5;180m') # enter double-bright mode bold light orange
@ -52,10 +76,15 @@ if [ -n "$TMUX" ] || [ "${TERMCAP#*screen}" != "${TERMCAP}" ]; then
. "$BYOBU_RUN_DIR/dircolors"
fi
;;
"Wolfi")
# Use Wolfi colors (pink / purple / blue)
# For reference: https://upload.wikimedia.org/wikipedia/commons/1/15/Xterm_256color_chart.svg
# Convert hex to 256: https://gist.githubusercontent.com/MicahElliott/719710/raw/73d047f0a3ffc35f0655488547e7f24fa3f04ea6/colortrans.py
# Use Wolfi colors (pink=170 / purple=98 / blue=63); flashing error code on previous command non-zero exit
export PS1="\$(byobu_prompt_runtime) --> \$(byobu_prompt_status)\n\[\e[38;5;170m\]\u\[\e[00m\]@\[\e[38;5;98m\]\h\[\e[00m\]:\[\e[38;5;63m\]\w\[\e[00m\]\$(byobu_prompt_git)\$(byobu_prompt_symbol) "
;;
*)
# Use Googley colors (blue / red / yellow / blue / green / red )
PS1="${debian_chroot:+($debian_chroot)}\[\e[31m\]\$(byobu_prompt_status)\[\e[38;5;69m\]\u\[\e[38;5;214m\]@\[\e[38;5;167m\]\h\[\e[38;5;214m\]:\[\e[38;5;71m\]\w\[\e[38;5;214m\]\$(byobu_prompt_symbol)\[\e[00m\] "
# Use primary colors (blue / yellow / red )
export PS1="\$(byobu_prompt_runtime) --> \$(byobu_prompt_status)\n\[\e[38;5;69m\]\u\[\e[00m\]@\[\e[38;5;214m\]\h\[\e[00m\]:\[\e[38;5;167m\]\w\[\e[00m\]\$(byobu_prompt_git)\$(byobu_prompt_symbol) "
;;
esac
fi
fi

View file

@ -5,6 +5,7 @@
# and $HOME/.byobu otherwise.
#
# Copyright (C) 2009-2011 Canonical Ltd.
# Copyright (C) 2023 Dustin Kirkland
#
# Authors: Dustin Kirkland <kirkland@byobu.org>
#
@ -26,12 +27,13 @@
screen_upper_left="color"
screen_upper_right="color whoami hostname ip_address menu"
screen_lower_left="color logo distro release #arch session"
screen_lower_right="color network #disk_io custom #entropy raid reboot_required updates_available #apport #services #mail users uptime #fan_speed #cpu_temp battery wifi_quality #processes load_average cpu_count cpu_freq memory #swap disk #time_utc date time"
screen_lower_right="color network #disk_io custom #entropy raid reboot_required updates_available #apport #services #mail users uptime #fan_speed #cpu_temp battery wifi_quality #processes #packages load_average cpu_count cpu_freq memory #swap disk #time_utc date time"
# Tmux has one status line, with 2 halves for status
tmux_left="logo #distro release #arch session"
# You can have as many tmux right lines below here, and cycle through them using Shift-F5
tmux_right="#network #disk_io #custom #entropy raid reboot_required updates_available #apport #services #mail #users uptime #fan_speed #cpu_temp #battery #wifi_quality #processes load_average cpu_count cpu_freq memory #swap disk #whoami #hostname #ip_address #time_utc date time"
#tmux_right="network #disk_io #custom entropy raid reboot_required updates_available #apport #services #mail users uptime fan_speed cpu_temp battery wifi_quality #processes load_average cpu_count cpu_freq memory #swap #disk whoami hostname ip_address #time_utc date time"
#tmux_right="network #disk_io custom #entropy raid reboot_required updates_available #apport #services #mail users uptime #fan_speed #cpu_temp battery wifi_quality #processes load_average cpu_count cpu_freq memory #swap #disk #whoami #hostname ip_address #time_utc date time"
#tmux_right="#network disk_io #custom entropy #raid #reboot_required #updates_available #apport #services #mail #users #uptime fan_speed cpu_temp #battery #wifi_quality #processes #load_average #cpu_count #cpu_freq #memory #swap whoami hostname ip_address #time_utc disk date time"
tmux_right="#network #disk_io #custom #entropy raid reboot_required updates_available #apport #services #mail #users uptime #fan_speed #cpu_temp #battery #wifi_quality #processes #packages load_average cpu_count cpu_freq memory #swap disk #whoami #hostname #ip_address #time_utc date time"
#tmux_right="network disk_io uptime processes packages load_average cpu_count cpu_freq memory disk date time"
#tmux_right="network #disk_io #custom entropy raid reboot_required updates_available #apport #services #mail users uptime fan_speed cpu_temp battery wifi_quality #processes #packages load_average cpu_count cpu_freq memory #swap #disk whoami hostname ip_address #time_utc date time"
#tmux_right="network #disk_io custom #entropy raid reboot_required updates_available #apport #services #mail users uptime #fan_speed #cpu_temp battery wifi_quality #processes #packages load_average cpu_count cpu_freq memory #swap #disk #whoami #hostname ip_address #time_utc date time"
#tmux_right="#network disk_io #custom entropy #raid #reboot_required #updates_available #apport #services #mail #users #uptime fan_speed cpu_temp #battery #wifi_quality #processes #packages #load_average #cpu_count #cpu_freq #memory #swap whoami hostname ip_address #time_utc disk date time"

View file

@ -1,6 +1,6 @@
.TH byobu-prompt 1 "26 July 2013" byobu "byobu"
.TH byobu-prompt 1 "16 January 2024" byobu "byobu"
.SH NAME
byobu-prompt, byobu-enable-prompt, byobu-disable-prompt \- add and remove a nice color prompt to your shell configuration
byobu-prompt, byobu-enable-prompt, byobu-disable-prompt \- add and remove a nice color prompt with a previous command timer to your shell configuration
.SH SYNOPSIS
\fBbyobu-prompt\fP
@ -11,7 +11,7 @@ byobu-prompt, byobu-enable-prompt, byobu-disable-prompt \- add and remove a nice
.SH DESCRIPTION
Byobu provides a special PS1 prompt command, compatible with Bash shells. It will display the previous command's exit code, if it's not zero. It will use 3 separate colors for the local username, hostname, and the current working directory.
Byobu provides a special PS0 and PS1 prompt command, compatible with Bash shells. It will display the previous command's total runtime and exit code, if it's not zero. It will use 3 separate colors for the local username, hostname, and the current working directory.
\fBbyobu-enable-prompt\fP will add one line to your \fI~/.bashrc\fP.

View file

@ -79,6 +79,8 @@ The background colors of the \fBbyobu\fP status lines can be adjusted by editing
\fBnotify_osd\fP \- Send on-screen notification messages to screen's notification buffer
\fBpackages\fP \- total number of packages installed on the system; displayed in the lower bar in yellow text on a white background inside of square brackets, '[xxx]'
\fBprocesses\fP \- total number of processes running on the system; displayed in the lower bar in white text on a dark yellow background with a trailing '&' indicating 'background processes'
\fBreboot_required\fP \- symbol present if a reboot is required following a system update; displayed in the lower bar white text on a blue background by the symbol '(R)'; additionally, reboot_required will print '<F5>' in white text on a blue background, if Byobu requires you to reload your profile to affect some changes; it will also detect if your system is currently in \fBpowernap\fP(8) state and if so print '.zZ'; if your system is currently performing an \fBunattended-upgrade\fP(1) you will see a white warning sign on a red background.