Compare commits

..

No commits in common. "master" and "6.2" have entirely different histories.

15 changed files with 88 additions and 221 deletions

105
debian/changelog vendored
View file

@ -1,106 +1,3 @@
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
@ -108,7 +5,7 @@ byobu (6.2) released; urgency=medium
* 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
-- Dustin Kirkland <kirkland@ubuntu.com> Sun, 31 Dec 2023 09:00:42 -0600
byobu (6.1) released; urgency=medium

2
debian/compat vendored
View file

@ -1 +1 @@
13
9

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 (>= 13), gettext-base, automake, autoconf, dh-python, python3
Build-Depends: debhelper (>= 7.0.50~), gettext-base, automake, autoconf, dh-python, python3
Homepage: https://byobu.org
Vcs-Git: https://github.com/dustinkirkland/byobu
Vcs-Bzr: https://github.com/dustinkirkland/byobu
Package: byobu
Architecture: all

26
snap/snapcraft.yaml Normal file
View file

@ -0,0 +1,26 @@
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,7 +4,6 @@
# environtment and smooth upgrades
#
# Copyright (C) 2009 Canonical Ltd.
# Copyright (C) 2024 Dustin Kirkland
#
# Authors: Dustin Kirkland <kirkland@byobu.org>
#
@ -90,8 +89,6 @@ 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
@ -136,18 +133,6 @@ 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,8 +41,6 @@ if [ ! -e "$FLAG" ]; then
touch "$FLAG"
fi
# 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
[ -n "$SHELL" -a -x "$SHELL" ] && exec "$SHELL" || exec /bin/sh
# vi: syntax=sh ts=4 noexpandtab

View file

@ -2,7 +2,7 @@
#
# byobu - wrapper script
# Copyright (C) 2008-2009 Canonical Ltd.
# Copyright (C) 2008-2024 Dustin Kirkland
# Copyright (C) 2008-2014 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=6.12
VERSION=5.134
PKG="byobu"
# All sorts of things go wrong if you don't own your $HOME dir.
@ -32,13 +32,6 @@ 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

@ -53,8 +53,3 @@ 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

@ -46,7 +46,7 @@ __packages() {
packages=$((packages+count))
fi
[ -n "$packages" ] || return
color w y; printf "[%s]" "$count"; color --;
color w y; printf "[%s]" "$count"; color -;
}

View file

@ -83,11 +83,8 @@ ___update_cache() {
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 update
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
}
@ -144,9 +141,6 @@ ___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-2024 Dustin Kirkland <kirkland@byobu.org>
# Copyright (C) 2011-2014 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 help "sh -c '$BYOBU_PAGER $BYOBU_PREFIX/share/doc/byobu/help.tmux.txt'"
bind-key -n F1 new-window -n config byobu-config
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,6 +1,6 @@
# byobu's bashrc -- colorize the prompt
# Copyright (C) 2014 Dustin Kirkland
# Copyright (C) 2023, 2024 Dustin Kirkland
# Copyright (C) 2023 Dustin Kirkland
#
# Authors: Dustin Kirkland <kirkland@byobu.org>
#
@ -23,45 +23,22 @@ 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)
[ -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
byobu_prompt_symbol() {
if [ "$USER" = "root" ]; then
printf "%s" "#";
else
printf "%s" "\$"
fi
}
# 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)
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) "
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 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
@ -77,14 +54,16 @@ case "$BYOBU_DISTRO" in
fi
;;
"Wolfi")
# Use Wolfi colors (pink / purple / blue)
# Use Wolfi colors (pink / purple / grey)
# 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) "
PS1="${debian_chroot:+($debian_chroot)}\[\e[03;5;15;54m\]\$(byobu_prompt_status)\[\e[00m\]\[\e[38;5;170m\]\u\[\e[00m\]@\[\e[38;5;98m\]\h\[\e[00m\]:\[\e[38;5;63m\]\w\[\e[00m\]\$(byobu_prompt_symbol) "
;;
*)
# 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) "
# 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\] "
;;
esac
fi
fi

View file

@ -33,7 +33,7 @@ screen_lower_right="color network #disk_io custom #entropy raid reboot_required
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 #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 uptime processes packages load_average cpu_count cpu_freq memory disk date time" # Tailored for inside of containers
#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 "16 January 2024" byobu "byobu"
.TH byobu-prompt 1 "26 July 2013" byobu "byobu"
.SH NAME
byobu-prompt, byobu-enable-prompt, byobu-disable-prompt \- add and remove a nice color prompt with a previous command timer to your shell configuration
byobu-prompt, byobu-enable-prompt, byobu-disable-prompt \- add and remove a nice color prompt 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 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.
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.
\fBbyobu-enable-prompt\fP will add one line to your \fI~/.bashrc\fP.