Compare commits

...

25 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
12 changed files with 145 additions and 45 deletions

75
debian/changelog vendored
View file

@ -1,3 +1,76 @@
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 byobu (6.5) released; urgency=medium
* usr/share/byobu/profiles/bashrc: * usr/share/byobu/profiles/bashrc:
@ -6,7 +79,7 @@ byobu (6.5) released; urgency=medium
* usr/bin/byobu-shell.in: * usr/bin/byobu-shell.in:
- need a -l login shell to source profiles and colorize PS1 - need a -l login shell to source profiles and colorize PS1
-- Dustin Kirkland <kirkland@ubuntu.com> Tue, 09 Jan 2024 07:32:57 -0600 -- Dustin Kirkland <kirkland@ubuntu.com> Tue, 16 Jan 2024 13:04:06 -0600
byobu (6.4) released; urgency=medium byobu (6.4) released; urgency=medium

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> Maintainer: Dustin Kirkland <kirkland@ubuntu.com>
Uploaders: Antoine Beaupré <anarcat@koumbit.org> Uploaders: Antoine Beaupré <anarcat@koumbit.org>
Standards-Version: 4.1.3 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 Homepage: https://byobu.org
Vcs-Bzr: https://github.com/dustinkirkland/byobu Vcs-Git: https://github.com/dustinkirkland/byobu
Package: byobu Package: byobu
Architecture: all 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

@ -142,6 +142,10 @@ if [ "$BYOBU_DISTRO" = "Wolfi" ]; then
if ! (grep -qs "#byobu-prompt#$" "$HOME/.profile"); then if ! (grep -qs "#byobu-prompt#$" "$HOME/.profile"); then
printf "[ -r $BYOBU_CONFIG_DIR/prompt ] && . $BYOBU_CONFIG_DIR/prompt #byobu-prompt#\n" >> "$HOME/.profile" printf "[ -r $BYOBU_CONFIG_DIR/prompt ] && . $BYOBU_CONFIG_DIR/prompt #byobu-prompt#\n" >> "$HOME/.profile"
fi 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 fi
# Affects: Upgrades from <= byobu 5.126, clear out ec2/rcs cost statuses # Affects: Upgrades from <= byobu 5.126, clear out ec2/rcs cost statuses

View file

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

View file

@ -2,7 +2,7 @@
# #
# byobu - wrapper script # byobu - wrapper script
# Copyright (C) 2008-2009 Canonical Ltd. # Copyright (C) 2008-2009 Canonical Ltd.
# Copyright (C) 2008-2014 Dustin Kirkland # Copyright (C) 2008-2024 Dustin Kirkland
# #
# Authors: Dustin Kirkland <kirkland@byobu.org> # Authors: Dustin Kirkland <kirkland@byobu.org>
# #
@ -18,7 +18,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
VERSION=5.134 VERSION=6.12
PKG="byobu" PKG="byobu"
# All sorts of things go wrong if you don't own your $HOME dir. # All sorts of things go wrong if you don't own your $HOME dir.
@ -32,6 +32,13 @@ if [ ! -O "$HOME" ]; then
exit 1 exit 1
fi 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 # Source local byobu config
if [ -r "$HOME/.byoburc" ]; then if [ -r "$HOME/.byoburc" ]; then
# Ensure that this configuration is usable # Ensure that this configuration is usable

View file

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

View file

@ -85,6 +85,9 @@ ___update_cache() {
# Wolfi updates are cheap (~1s); so update cache every time # Wolfi updates are cheap (~1s); so update cache every time
apk update 2>&1 >/dev/null apk update 2>&1 >/dev/null
apk upgrade --simulate | grep -c " Upgrading " >$mycache 2>/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 fi
} }
@ -141,6 +144,9 @@ ___update_needed() {
# formulae database was updated # formulae database was updated
[ "$(brew --prefix)/Library/Formula" -nt "$mycache" ] [ "$(brew --prefix)/Library/Formula" -nt "$mycache" ]
return $? return $?
elif [ -e "/var/cache/dnf/packages.db" ]; then
[ "/var/cache/dnf/packages.db" -nt "$mycache" ]
return $?
fi fi
return 1 return 1
} }

View file

@ -1,7 +1,7 @@
############################################################################### ###############################################################################
# byobu's tmux f-key keybindings # 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> # Authors: Dustin Kirkland <kirkland@byobu.org>
# #
@ -26,7 +26,7 @@ source $BYOBU_PREFIX/share/byobu/keybindings/f-keys.tmux.disable
# Byobu's Keybindings # Byobu's Keybindings
# Documented in: $BYOBU_PREFIX/share/doc/byobu/help.tmux.txt # 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 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 F2 new-window -c "#{pane_current_path}" \; rename-window "-"
bind-key -n C-F2 display-panes \; split-window -h -c "#{pane_current_path}" bind-key -n C-F2 display-panes \; split-window -h -c "#{pane_current_path}"

View file

@ -25,12 +25,43 @@ case "$TERM" in
esac esac
[ -n "$BYOBU_CHARMAP" ] || BYOBU_CHARMAP=$(locale charmap 2>/dev/null || echo) [ -n "$BYOBU_CHARMAP" ] || BYOBU_CHARMAP=$(locale charmap 2>/dev/null || echo)
[ -z "$USER" ] && export USER=$(whoami) [ -z "$USER" ] && export USER=$(whoami)
byobu_prompt_status() { local e=$?; [ $e != 0 ] && echo -e " $e "; } [ -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_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 case "$BYOBU_DISTRO" in
"Ubuntu") "Ubuntu")
# Use Ubuntu colors (grey / orange / aubergine) # 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 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_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 export LESS_TERMCAP_md=$(printf '\e[01;38;5;180m') # enter double-bright mode bold light orange
@ -46,14 +77,14 @@ case "$BYOBU_DISTRO" in
fi fi
;; ;;
"Wolfi") "Wolfi")
# Use Wolfi colors (pink / purple / grey) # Use Wolfi colors (pink / purple / blue)
# For reference: https://upload.wikimedia.org/wikipedia/commons/1/15/Xterm_256color_chart.svg # 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 # 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 # Use Wolfi colors (pink=170 / purple=98 / blue=63); flashing error code on previous command non-zero exit
PS1="\[\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) " 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 ) # Use primary colors (blue / yellow / 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\] " 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 esac

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 .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 .SH SYNOPSIS
\fBbyobu-prompt\fP \fBbyobu-prompt\fP
@ -11,7 +11,7 @@ byobu-prompt, byobu-enable-prompt, byobu-disable-prompt \- add and remove a nice
.SH DESCRIPTION .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. \fBbyobu-enable-prompt\fP will add one line to your \fI~/.bashrc\fP.