byobu: Add new package and dependencieslilik-openwrt-22.03
@ -0,0 +1,128 @@ | |||
# | |||
# Copyright (C) 2006-2011 OpenWrt.org | |||
# Copyright (C) 2011 SMBPhone Inc. | |||
# Copyright (C) 2019 Jeffery To | |||
# | |||
# This is free software, licensed under the GNU General Public License v2. | |||
# See /LICENSE for more information. | |||
# | |||
include $(TOPDIR)/rules.mk | |||
PKG_NAME:=newt | |||
PKG_VERSION:=0.52.20 | |||
PKG_RELEASE:=1 | |||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz | |||
PKG_SOURCE_URL:=https://releases.pagure.org/newt | |||
PKG_HASH:=8d66ba6beffc3f786d4ccfee9d2b43d93484680ef8db9397a4fb70b5adbb6dbc | |||
PKG_LICENSE:=LGPL-2.0 | |||
PKG_LICENSE_FILES:=COPYING | |||
PKG_CPE_ID:=cpe:/a:fedorahosted:newt | |||
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com> | |||
PKG_BUILD_PARALLEL:=1 | |||
PKG_INSTALL:=1 | |||
include $(INCLUDE_DIR)/package.mk | |||
include ../../lang/python/python3-package.mk | |||
define Package/newt/Default | |||
TITLE:=Newt | |||
URL:=https://pagure.io/newt | |||
endef | |||
define Package/newt/Default/description | |||
Newt is a programming library for color text mode, widget based user | |||
interfaces. Newt can be used to add stacked windows, entry widgets, | |||
checkboxes, radio buttons, labels, plain text fields, scrollbars, etc., | |||
to text mode user interfaces. Newt is based on the slang library. | |||
endef | |||
define Package/libnewt | |||
$(call Package/newt/Default) | |||
SECTION:=libs | |||
CATEGORY:=Libraries | |||
TITLE+= library | |||
DEPENDS:=+libslang2 | |||
endef | |||
define Package/libnewt/description | |||
$(call Package/newt/Default/description) | |||
endef | |||
define Package/whiptail | |||
$(call Package/newt/Default) | |||
SECTION:=utils | |||
CATEGORY:=Utilities | |||
TITLE:=Display dialog boxes from shell scripts | |||
DEPENDS:=+libnewt +libpopt +libslang2 | |||
endef | |||
define Package/whiptail/description | |||
A lightweight replacement for the dialog command (dialog boxes from shell | |||
scripts), based on libnewt. | |||
endef | |||
define Package/python3-newt | |||
$(call Package/newt/Default) | |||
SECTION:=lang | |||
CATEGORY:=Languages | |||
SUBMENU:=Python | |||
TITLE+= module for Python | |||
DEPENDS:=+libnewt +python3-light | |||
VARIANT:=python3 | |||
endef | |||
define Package/python3-newt/description | |||
$(call Package/newt/Default/description) | |||
This is the Newt module for Python 3. | |||
endef | |||
TARGET_CFLAGS+= $(FPIC) | |||
CONFIGURE_ARGS+= \ | |||
--enable-largefile \ | |||
--with-python \ | |||
--without-tcl \ | |||
--without-gpm-support \ | |||
--with-colorsfile=/etc/newt/palette | |||
CONFIGURE_VARS+= PYTHONVERS="python$(PYTHON3_VERSION)" | |||
MAKE_VARS+= PYTHON_CONFIG_PATH="$(STAGING_DIR)/usr/bin" | |||
Build/Compile=$(call Build/Compile/Default,) | |||
define Build/InstallDev | |||
$(INSTALL_DIR) $(1)/usr/include | |||
$(CP) $(PKG_INSTALL_DIR)/usr/include/newt.h $(1)/usr/include/ | |||
$(INSTALL_DIR) $(1)/usr/lib | |||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libnewt.{a,so*} $(1)/usr/lib/ | |||
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig | |||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libnewt.pc $(1)/usr/lib/pkgconfig/ | |||
endef | |||
define Package/libnewt/install | |||
$(INSTALL_DIR) $(1)/usr/lib | |||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libnewt.so* $(1)/usr/lib/ | |||
endef | |||
define Package/whiptail/install | |||
$(INSTALL_DIR) $(1)/usr/bin | |||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/whiptail $(1)/usr/bin/ | |||
endef | |||
# Don't install files from usr/bin | |||
Py3Package/python3-newt/install:=: | |||
$(eval $(call BuildPackage,libnewt)) | |||
$(eval $(call BuildPackage,whiptail)) | |||
$(eval $(call Py3Package,python3-newt)) | |||
$(eval $(call BuildPackage,python3-newt)) | |||
$(eval $(call BuildPackage,python3-newt-src)) |
@ -0,0 +1,10 @@ | |||
--- a/configure | |||
+++ b/configure | |||
@@ -3957,7 +3957,6 @@ if test "x$with_python" = "xno"; then | |||
$as_echo "skipped" >&6; } | |||
PYTHONVERS= | |||
else | |||
- PYTHONVERS=$(ls /usr/include/python*/Python.h 2> /dev/null | sed 's|.*\(python[0-9]*\.[0-9]*\).*|\1|g' | tr '\n' ' ') | |||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHONVERS" >&5 | |||
$as_echo "$PYTHONVERS" >&6; } | |||
fi |
@ -0,0 +1,25 @@ | |||
--- a/Makefile.in | |||
+++ b/Makefile.in | |||
@@ -84,12 +84,7 @@ showkey: showkey.o $(LIBNEWT) | |||
_snack.$(SOEXT): snack.c $(LIBNEWTSH) | |||
@[ -n "$(PYTHONVERS)" ] && for ver in $(PYTHONVERS); do \ | |||
- pyconfig=$$ver-config; \ | |||
- if ! $$pyconfig --cflags > /dev/null 2>&1 && \ | |||
- python-config --cflags > /dev/null 2>&1; then \ | |||
- echo $$pyconfig not found, using python-config; \ | |||
- pyconfig=python-config; \ | |||
- fi; \ | |||
+ pyconfig=$(PYTHON_CONFIG_PATH)/$$ver-config; \ | |||
mkdir -p $$ver; \ | |||
PCFLAGS=`$$pyconfig --cflags`; \ | |||
PIFLAGS=`$$pyconfig --includes`; \ | |||
@@ -109,7 +104,7 @@ whiptcl.$(SOEXT): $(WHIPTCLOBJS) $(LIBNE | |||
$(CC) -shared $(SHCFLAGS) $(LDFLAGS) -o whiptcl.$(SOEXT) $(WHIPTCLOBJS) -L. -lnewt $(LIBTCL) -lpopt $(LIBS) | |||
$(LIBNEWT): $(LIBOBJS) | |||
- ar rv $@ $^ | |||
+ $(AR) rv $@ $^ | |||
newt.o $(SHAREDDIR)/newt.o: newt.c Makefile | |||
@ -0,0 +1,24 @@ | |||
Author: Alastair McKinstry <mckinstry@debian.org> | |||
Description: newtInit() should only be called once | |||
Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=557960 | |||
Forwarded: no | |||
Last-Updated: 2014-06-11 | |||
--- a/snack.c | |||
+++ b/snack.c | |||
@@ -377,10 +377,15 @@ static snackWidget * snackWidgetNew (voi | |||
} | |||
static PyObject * initScreen(PyObject * s, PyObject * args) { | |||
+ static int init_newt = 1; | |||
suspend.cb = NULL; | |||
suspend.data = NULL; | |||
newtInit(); | |||
+ if (init_newt) { | |||
+ newtInit(); | |||
+ init_newt = 0; | |||
+ } | |||
newtCls(); | |||
Py_INCREF(Py_None); |
@ -0,0 +1,35 @@ | |||
Author: Thomas Viehmann <tv@beamnet.de> | |||
Description: Fix for python memory handling | |||
Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=445392 | |||
Last-Updated: 2014-06-11 | |||
Forwarded: no | |||
--- a/snack.c | |||
+++ b/snack.c | |||
@@ -366,7 +366,7 @@ static PyTypeObject snackWidgetType = { | |||
static snackWidget * snackWidgetNew (void) { | |||
snackWidget * widget; | |||
- widget = PyObject_NEW(snackWidget, &snackWidgetType); | |||
+ widget = PyObject_New(snackWidget, &snackWidgetType); | |||
if (!widget) | |||
return NULL; | |||
@@ -937,7 +937,7 @@ static snackForm * formCreate(PyObject * | |||
if (help == Py_None) | |||
help = NULL; | |||
- form = PyObject_NEW(snackForm, &snackFormType); | |||
+ form = PyObject_New(snackForm, &snackFormType); | |||
form->fo = newtForm(NULL, help, 0); | |||
return form; | |||
@@ -949,7 +949,7 @@ static snackGrid * gridCreate(PyObject * | |||
if (!PyArg_ParseTuple(args, "ii", &cols, &rows)) return NULL; | |||
- grid = PyObject_NEW(snackGrid, &snackGridType); | |||
+ grid = PyObject_New(snackGrid, &snackGridType); | |||
grid->grid = newtCreateGrid(cols, rows); | |||
return grid; |
@ -0,0 +1,176 @@ | |||
# | |||
# Copyright (C) 2006-2011 Openwrt.org | |||
# Copyright (C) 2011 SMBPhone Inc. | |||
# Copyright (C) 2019 Jeffery To | |||
# | |||
# This is free software, licensed under the GNU General Public License v2. | |||
# See /LICENSE for more information. | |||
# | |||
include $(TOPDIR)/rules.mk | |||
PKG_NAME:=slang | |||
PKG_VERSION:=2.3.2 | |||
PKG_RELEASE:=1 | |||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 | |||
PKG_SOURCE_URL:=https://www.jedsoft.org/releases/slang \ | |||
https://www.jedsoft.org/releases/slang/old | |||
PKG_HASH:=fc9e3b0fc4f67c3c1f6d43c90c16a5c42d117b8e28457c5b46831b8b5d3ae31a | |||
PKG_LICENSE:=GPL-2.0+ | |||
PKG_LICENSE_FILES:=COPYING | |||
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com> | |||
PKG_BUILD_PARALLEL:=1 | |||
SLANG_MODULES:= base64 chksum csv fcntl fork histogram iconv json pcre png \ | |||
rand select slsmg socket stats sysconf termios varray zlib | |||
include $(INCLUDE_DIR)/package.mk | |||
define Package/libslang2/Default | |||
SECTION:=libs | |||
CATEGORY:=Libraries | |||
TITLE:=S-Lang Programmer's Library | |||
URL:=https://www.jedsoft.org/slang/ | |||
endef | |||
define Package/libslang2/Default/description | |||
Multi-platform programmer's library providing facilities for interactive | |||
applications. Includes such things as display/screen management, | |||
keyboard input, keymaps, etc. Includes the embeddable S-Lang interpreter. | |||
endef | |||
define Package/libslang2 | |||
$(call Package/libslang2/Default) | |||
DEPENDS:=+terminfo | |||
endef | |||
define Package/libslang2/description | |||
$(call Package/libslang2/Default/description) | |||
endef | |||
define Package/libslang2-modules | |||
$(call Package/libslang2/Default) | |||
TITLE+= (all modules) | |||
DEPENDS:=$(foreach mod,$(SLANG_MODULES),+libslang2-mod-$(mod)) | |||
endef | |||
define Package/libslang2-modules/description | |||
$(call Package/libslang2/Default/description) | |||
This installs all of S-Lang's bundled modules. | |||
endef | |||
define Package/libslang2-mod-pcre | |||
$(call Package/libslang2/Default) | |||
TITLE+= (pcre module) | |||
DEPENDS:=+libpcre | |||
endef | |||
define Package/libslang2-mod-png | |||
$(call Package/libslang2/Default) | |||
TITLE+= (png module) | |||
DEPENDS:=+libpng | |||
endef | |||
define Package/libslang2-mod-zlib | |||
$(call Package/libslang2/Default) | |||
TITLE+= (zlib module) | |||
DEPENDS:=+zlib | |||
endef | |||
define Package/slsh | |||
SECTION:=lang | |||
CATEGORY:=Languages | |||
TITLE:=S-Lang shell | |||
URL:=https://www.jedsoft.org/slang/slsh.html | |||
DEPENDS:=+libslang2 +libslang2-modules | |||
endef | |||
define Package/slsh/description | |||
This is a shell which is mostly just a wrapper around the S-Lang Interpreter, | |||
which is part of the S-Lang Library. | |||
endef | |||
TARGET_CFLAGS+= $(FPIC) | |||
CONFIGURE_ARGS+= \ | |||
--enable-largefile \ | |||
--enable-warnings \ | |||
--with-terminfo=default \ | |||
--with-readline=slang \ | |||
--with-pcre="$(STAGING_DIR)/usr" \ | |||
--with-png="$(STAGING_DIR)/usr" \ | |||
--with-z="$(STAGING_DIR)/usr" \ | |||
--without-onig \ | |||
--without-x | |||
define Build/Compile | |||
$(call Build/Compile/Default,) | |||
$(call Build/Compile/Default,static) | |||
endef | |||
# Default install last, so that the dynamic slsh is installed | |||
define Build/Install | |||
$(call Build/Install/Default,install-static) | |||
$(call Build/Install/Default,) | |||
endef | |||
define Build/InstallDev | |||
$(INSTALL_DIR) $(1)/usr/include | |||
$(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/ | |||
$(INSTALL_DIR) $(1)/usr/lib | |||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libslang.{a,so*} $(1)/usr/lib/ | |||
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig | |||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/slang.pc $(1)/usr/lib/pkgconfig/ | |||
endef | |||
define Package/libslang2/install | |||
$(INSTALL_DIR) $(1)/usr/lib | |||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libslang.so* $(1)/usr/lib/ | |||
endef | |||
Package/libslang2-modules/install:=: | |||
define Package/slsh/install | |||
$(INSTALL_DIR) $(1)/etc | |||
$(CP) $(PKG_INSTALL_DIR)/etc/slsh.rc $(1)/etc/ | |||
$(INSTALL_DIR) $(1)/usr/bin | |||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/slsh $(1)/usr/bin/ | |||
$(INSTALL_DIR) $(1)/usr/share | |||
$(CP) $(PKG_INSTALL_DIR)/usr/share/slsh/ $(1)/usr/share/ | |||
endef | |||
define BuildModule | |||
ifndef Package/libslang2-mod-$(1) | |||
define Package/libslang2-mod-$(1) | |||
$$(call Package/libslang2/Default) | |||
TITLE+= ($(1) module) | |||
endef | |||
endif | |||
define Package/libslang2-mod-$(1)/description | |||
$$(call Package/libslang2/Default/description) | |||
This contains the $(1) module. | |||
endef | |||
define Package/libslang2-mod-$(1)/install | |||
$$(INSTALL_DIR) $$(1)/usr/lib/slang/v2/modules | |||
$$(CP) $$(PKG_INSTALL_DIR)/usr/lib/slang/v2/modules/$(1)-module.so $$(1)/usr/lib/slang/v2/modules/ | |||
endef | |||
$$(eval $$(call BuildPackage,libslang2-mod-$(1))) | |||
endef | |||
$(foreach mod,$(SLANG_MODULES),$(eval $(call BuildModule,$(mod)))) | |||
$(eval $(call BuildPackage,libslang2)) | |||
$(eval $(call BuildPackage,libslang2-modules)) | |||
$(eval $(call BuildPackage,slsh)) |
@ -0,0 +1,11 @@ | |||
--- a/configure | |||
+++ b/configure | |||
@@ -7029,7 +7029,7 @@ TERMCAP=-ltermcap | |||
for terminfo_dir in $JD_Terminfo_Dirs | |||
do | |||
- if test -d $terminfo_dir | |||
+ if true | |||
then | |||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | |||
$as_echo "yes" >&6; } |
@ -0,0 +1,11 @@ | |||
--- a/src/Makefile.in | |||
+++ b/src/Makefile.in | |||
@@ -73,7 +73,7 @@ INSTALL_DATA = @INSTALL_DATA@ | |||
MKINSDIR = @CONFIG_DIR@/autoconf/mkinsdir.sh | |||
RM = rm -f | |||
RM_R = rm -rf | |||
-AR_CR = ar cr | |||
+AR_CR = $(AR) cr | |||
RMDIR = rmdir | |||
LN = /bin/ln -sf | |||
CP = cp |
@ -0,0 +1,102 @@ | |||
# | |||
# Copyright (C) 2009 Sharim At Work, Ltd. | |||
# Copyright (C) 2019 Jeffery To | |||
# Author: Xiangfu Liu <xiangfu@sharism.cc> | |||
# | |||
# This is free software, licensed under the GNU General Public License v2. | |||
# See /LICENSE for more information. | |||
# | |||
include $(TOPDIR)/rules.mk | |||
PKG_NAME:=byobu | |||
PKG_VERSION:=5.127 | |||
PKG_RELEASE:=1 | |||
PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz | |||
PKG_SOURCE_URL:=https://launchpad.net/byobu/trunk/$(PKG_VERSION)/+download | |||
PKG_HASH:=4bafc7cb69ff5b0ab6998816d58cd1ef7175e5de75abc1dd7ffd6d5288a4f63b | |||
PKG_LICENSE:=GPL-3.0 | |||
PKG_LICENSE_FILES:=COPYING | |||
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com> | |||
PKG_BUILD_PARALLEL:=1 | |||
PKG_INSTALL:=1 | |||
include $(INCLUDE_DIR)/package.mk | |||
define Package/byobu/Default | |||
SECTION:=utils | |||
CATEGORY:=Utilities | |||
URL:=http://byobu.org/ | |||
PKGARCH:=all | |||
endef | |||
define Package/byobu | |||
$(call Package/byobu/Default) | |||
TITLE:=Text-based window manager and terminal multiplexer | |||
DEPENDS:=+python3-light +python3-newt | |||
endef | |||
define Package/byobu-utils | |||
$(call Package/byobu/Default) | |||
TITLE:=Utilities included with byobu | |||
endef | |||
define Package/byobu/description | |||
Byobu is a GPLv3 open source text-based window manager and terminal | |||
multiplexer. It was originally designed to provide elegant enhancements | |||
to the otherwise functional, plain, practical GNU Screen, for the Ubuntu | |||
server distribution. Byobu now includes an enhanced profiles, convenient | |||
keybindings, configuration utilities, and toggle-able system status | |||
notifications for both the GNU Screen window manager and the more modern | |||
Tmux terminal multiplexer, and works on most Linux, BSD, and Mac | |||
distributions. | |||
endef | |||
define Package/byobu-utils/description | |||
$(call Package/byobu/description) | |||
These are the "bikeshed" utilities bundled with byobu: | |||
* col1..col9, NF | |||
* ctail | |||
* manifest | |||
* purge-old-kernels | |||
* vigpg | |||
* wifi-status | |||
endef | |||
define Package/byobu/install | |||
$(INSTALL_DIR) $(1)/etc | |||
$(CP) $(PKG_INSTALL_DIR)/etc/* $(1)/etc/ | |||
$(INSTALL_DIR) $(1)/usr/bin | |||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/byobu* $(1)/usr/bin/ | |||
$(LN) byobu $(1)/usr/bin/byobu-screen | |||
$(LN) byobu $(1)/usr/bin/byobu-tmux | |||
$(INSTALL_DIR) $(1)/usr/lib | |||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/byobu $(1)/usr/lib/ | |||
$(INSTALL_DIR) $(1)/usr/share/byobu | |||
for i in keybindings profiles status windows; do \ | |||
$(CP) $(PKG_INSTALL_DIR)/usr/share/byobu/$$$$i $(1)/usr/share/byobu/ ; \ | |||
done | |||
$(INSTALL_DIR) $(1)/usr/share/doc | |||
$(CP) $(PKG_INSTALL_DIR)/usr/share/doc/byobu $(1)/usr/share/doc/ | |||
endef | |||
define Package/byobu-utils/install | |||
$(INSTALL_DIR) $(1)/usr/bin | |||
for i in col1 ctail manifest purge-old-kernels vigpg wifi-status; do \ | |||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$$$$i $(1)/usr/bin/ ; \ | |||
done | |||
for i in col2 col3 col4 col5 col6 col7 col8 col9 NF; do \ | |||
$(LN) col1 $(1)/usr/bin/$$$$i ; \ | |||
done | |||
endef | |||
$(eval $(call BuildPackage,byobu)) | |||
$(eval $(call BuildPackage,byobu-utils)) |
@ -0,0 +1,11 @@ | |||
--- a/usr/bin/byobu.in | |||
+++ b/usr/bin/byobu.in | |||
@@ -46,7 +46,7 @@ if [ -z "${BYOBU_PREFIX}" ]; then | |||
. "$HOME/.byoburc" | |||
fi | |||
fi | |||
-export BYOBU_CHARMAP=$(locale charmap) | |||
+export BYOBU_CHARMAP=UTF-8 | |||
[ -r "$HOME/.byoburc" ] && . "$HOME/.byoburc" | |||
[ -z "${BYOBU_PREFIX}" ] && export BYOBU_PREFIX="@prefix@" || export BYOBU_PREFIX | |||
. "${BYOBU_PREFIX}/lib/${PKG}/include/common" |
@ -0,0 +1,24 @@ | |||
--- a/usr/bin/byobu.in | |||
+++ b/usr/bin/byobu.in | |||
@@ -62,7 +62,7 @@ esac | |||
export BYOBU_BACKEND | |||
# Store the parent tty | |||
-export BYOBU_TTY=$(tty) | |||
+export BYOBU_TTY=$(readlink /proc/$$/fd/0) | |||
# Get the default window name | |||
[ -n "$BYOBU_WINDOW_NAME" ] || BYOBU_WINDOW_NAME=- | |||
--- a/usr/bin/byobu-launch.in | |||
+++ b/usr/bin/byobu-launch.in | |||
@@ -30,8 +30,8 @@ | |||
# or edit your sshd_config, ssh_config, and set: | |||
# $HOME/.bashrc: export BYOBU_DISABLE=1 | |||
-_tty=$(tty) | |||
-if [ "${_tty#/dev/ttyS}" != "$_tty" ]; then | |||
+_tty=$(readlink /proc/$$/fd/0) | |||
+if [ "${_tty#/dev/ttyS}" != "$_tty" ] && [ "${_tty#/dev/ttyAMA}" != "$_tty" ]; then | |||
# Don't autolaunch byobu on serial consoles | |||
# You can certainly run 'byobu' manually, though | |||
echo |
@ -0,0 +1,11 @@ | |||
--- a/usr/bin/byobu-janitor.in | |||
+++ b/usr/bin/byobu-janitor.in | |||
@@ -41,7 +41,7 @@ DEFAULT_PROFILE="light" | |||
PROFILE="$BYOBU_CONFIG_DIR/profile" | |||
# Create byobu-exchange buffer file, with secure permissions, if it doesn't exist | |||
-[ -e "$BYOBU_RUN_DIR/printscreen" ] || install -m 600 /dev/null "$BYOBU_RUN_DIR/printscreen" | |||
+[ -e "$BYOBU_RUN_DIR/printscreen" ] || { cp /dev/null "$BYOBU_RUN_DIR/printscreen"; chmod 600 "$BYOBU_RUN_DIR/printscreen"; } | |||
# Affects: users who launched using sudo, such that their config dir | |||
# is not writable by them |
@ -0,0 +1,10 @@ | |||
--- a/usr/lib/byobu/include/constants | |||
+++ b/usr/lib/byobu/include/constants | |||
@@ -58,6 +58,7 @@ $BYOBU_SED --follow-symlinks "s///" /dev | |||
eval $BYOBU_TEST ulimit >/dev/null 2>&1 && export BYOBU_ULIMIT="ulimit" || export BYOBU_ULIMIT="false" | |||
# Find a suitable python interpreter, if undefined | |||
+export BYOBU_PYTHON="python3" | |||
if [ -z "$BYOBU_PYTHON" ]; then | |||
if python3 -c "import snack" >/dev/null 2>&1; then | |||
export BYOBU_PYTHON="python3" |
@ -0,0 +1,28 @@ | |||
--- a/usr/lib/byobu/disk | |||
+++ b/usr/lib/byobu/disk | |||
@@ -26,7 +26,10 @@ __disk_detail() { | |||
__disk() { | |||
local out="" MP="" size="" pct="" unit="" | |||
# Default to /, but let users override | |||
- [ -z "$MONITORED_DISK" ] && MP="/" || MP="$MONITORED_DISK" | |||
+ MP="$MONITORED_DISK" | |||
+ [ -n "$MP" ] || { | |||
+ grep -q ' /overlay ' /proc/mounts && MP=/overlay || MP=/ | |||
+ } | |||
case $MP in | |||
/dev/*) MP=$(awk '$1 == m { print $2; exit(0); }' "m=$MP" /proc/mounts);; | |||
esac | |||
--- a/usr/lib/byobu/disk_io | |||
+++ b/usr/lib/byobu/disk_io | |||
@@ -42,7 +42,10 @@ getdisk() { | |||
__disk_io() { | |||
local part= i= | |||
# Default to disk providing /, but let users override with MONITORED_DISK | |||
- [ -z "$MONITORED_DISK" ] && mount_point="/" || mount_point="$MONITORED_DISK" | |||
+ local mount_point="$MONITORED_DISK" | |||
+ [ -n "$mount_point" ] || { | |||
+ grep -q ' /overlay ' /proc/mounts && mount_point=/overlay || mount_point=/ | |||
+ } | |||
# By default, we won't bug the user with the display of network traffic | |||
# below DISK_IO_THRESHOLD in kB/s; override in $BYOBU_CONFIG_DIR/status | |||
[ -n "$DISK_IO_THRESHOLD" ] || DISK_IO_THRESHOLD=50 |
@ -0,0 +1,13 @@ | |||
--- a/usr/lib/byobu/services | |||
+++ b/usr/lib/byobu/services | |||
@@ -24,7 +24,9 @@ __services_detail() { | |||
} | |||
service_running() { | |||
- if [ -f "/etc/init/$1.conf" ]; then | |||
+ if pgrep "$1" >/dev/null; then | |||
+ true | |||
+ elif [ -f "/etc/init/$1.conf" ]; then | |||
# Use upstart | |||
case "$(status $1 2>/dev/null)" in | |||
*running*) |
@ -0,0 +1,33 @@ | |||
--- a/usr/lib/byobu/users | |||
+++ b/usr/lib/byobu/users | |||
@@ -22,20 +22,26 @@ | |||
# along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
__users_detail() { | |||
- ps -ef | grep "sshd:.*@" | grep -v grep | |||
+ ps -ef 2>/dev/null | grep "sshd:.*@" | grep -v grep | |||
} | |||
__users() { | |||
- local count=0 | |||
+ local count=0 f pid | |||
+ for f in /var/run/dropbear.*.pid; do | |||
+ read pid < "$f" | |||
+ count=$(($count + $(pgrep -P "$pid" | wc -l))) | |||
+ done | |||
+ if [ $count -eq 0 ]; then | |||
if [ "$USERS_DISTINCT" = "1" ]; then | |||
count=$(pgrep -fl 'sshd:.*@' | cut -f3 -d\ | cut -f1 -d@ | sort -u | wc -l) | |||
else | |||
# Note: we'd like to use pgrep -c, however, this isn't available in | |||
# busybox and some distro's pgrep (and it doesn't exit non-zero). | |||
- count=$(pgrep -f "^sshd:.*@|^/usr/sbin/sshd -i" | wc -l) || return | |||
+ count=$(pgrep -f "^sshd:.*@|^/usr/sbin/sshd -i" | wc -l) | |||
+ fi | |||
fi | |||
if [ $count -gt 0 ]; then | |||
- color b w r; printf "%d" "$count"; color -; color w r; printf "#"; color -- | |||
+ color b w r; printf "%d" "$count"; color -; color w r; printf "##"; color -- | |||
else | |||
rm -f "$BYOBU_RUN_DIR/status.$BYOBU_BACKEND/users"* | |||
fi |
@ -0,0 +1,22 @@ | |||
--- a/usr/bin/byobu-export.in | |||
+++ b/usr/bin/byobu-export.in | |||
@@ -22,7 +22,7 @@ PKG="byobu" | |||
[ -z "${BYOBU_PREFIX}" ] && export BYOBU_PREFIX="@prefix@" || export BYOBU_PREFIX | |||
. "${BYOBU_PREFIX}/lib/${PKG}/include/common" | |||
-gettext " | |||
+echo " | |||
The byobu-export utility is now deprecated. | |||
To install byobu on a system for which byobu is not packaged, or | |||
--- a/usr/lib/byobu/menu | |||
+++ b/usr/lib/byobu/menu | |||
@@ -35,7 +35,7 @@ __menu() { | |||
else | |||
key="F9" | |||
fi | |||
- text=$(gettext "Menu" 2>/dev/null) || text="Menu" | |||
+ text="Menu" | |||
color k w; printf "%s:<" "$text"; color -; color b k w; printf "%s" "$key"; color k w; printf ">" | |||
} | |||
@ -0,0 +1,29 @@ | |||
--- a/usr/bin/byobu-disable-prompt.in | |||
+++ b/usr/bin/byobu-disable-prompt.in | |||
@@ -17,6 +17,8 @@ | |||
# You should have received a copy of the GNU General Public License | |||
# along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
+[ -w "$HOME/.bashrc" ] || exit 1 | |||
+ | |||
PKG="byobu" | |||
[ -r "$HOME/.byoburc" ] && . "$HOME/.byoburc" | |||
[ -z "${BYOBU_PREFIX}" ] && export BYOBU_PREFIX="@prefix@" || export BYOBU_PREFIX | |||
--- a/usr/bin/byobu-janitor.in | |||
+++ b/usr/bin/byobu-janitor.in | |||
@@ -112,6 +112,7 @@ killall -u $USER byobu-statusd >/dev/nul | |||
rm -f "$FLAG" "/var/run/screen/S-$USER/$PKG.reload-required" | |||
# Affects: Upgrades from <= byobu 5.50, install byobu prompt if using stock bashrc | |||
+if [ -r /etc/skel/.bashrc ] && [ -r "$HOME/.bashrc" ] && [ -w "$HOME/.bashrc" ]; then | |||
if ! (grep -qs "#byobu-prompt#$" "$HOME/.bashrc") && ! [ -e "$BYOBU_CONFIG_DIR/prompt" ]; then | |||
if eval $BYOBU_TEST diff >/dev/null 2>&1; then | |||
if diff /etc/skel/.bashrc "$HOME/.bashrc" >/dev/null 2>&1; then | |||
@@ -123,6 +124,7 @@ if ! (grep -qs "#byobu-prompt#$" "$HOME/ | |||
fi | |||
fi | |||
fi | |||
+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: Upgrades from <= byobu 5.126, clear out ec2/rcs cost statuses |
@ -0,0 +1,34 @@ | |||
--- a/usr/share/byobu/keybindings/f-keys.tmux | |||
+++ b/usr/share/byobu/keybindings/f-keys.tmux | |||
@@ -26,8 +26,8 @@ source $BYOBU_PREFIX/share/byobu/keybind | |||
# Byobu's Keybindings | |||
# Documented in: $BYOBU_PREFIX/share/doc/byobu/help.tmux.txt | |||
-bind-key -n F1 new-window -k -n config byobu-config | |||
-bind-key -n S-F1 new-window -k -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}" | |||
bind-key -n S-F2 display-panes \; split-window -v -c "#{pane_current_path}" | |||
@@ -54,7 +54,7 @@ bind-key -n M-S-Left resize-pane -L | |||
bind-key -n M-S-Right resize-pane -R | |||
bind-key -n F5 source $BYOBU_PREFIX/share/byobu/profiles/tmuxrc | |||
bind-key -n M-F5 run-shell '$BYOBU_PREFIX/lib/byobu/include/toggle-utf8' \; source $BYOBU_PREFIX/share/byobu/profiles/tmuxrc | |||
-bind-key -n S-F5 new-window -k "$BYOBU_PREFIX/lib/byobu/include/cycle-status" \; source $BYOBU_PREFIX/share/byobu/profiles/tmuxrc | |||
+bind-key -n S-F5 new-window "$BYOBU_PREFIX/lib/byobu/include/cycle-status" \; source $BYOBU_PREFIX/share/byobu/profiles/tmuxrc | |||
bind-key -n C-F5 send-keys ". $BYOBU_PREFIX/bin/byobu-reconnect-sockets" \; send-keys Enter | |||
bind-key -n C-S-F5 new-window -d "byobu-select-profile -r" | |||
bind-key -n F6 detach | |||
@@ -68,9 +68,9 @@ bind-key -n M-PPage copy-mode \; send-ke | |||
bind-key -n F8 command-prompt -p "(rename-window) " "rename-window '%%'" | |||
bind-key -n C-F8 command-prompt -p "(rename-session) " "rename-session '%%'" | |||
bind-key -n S-F8 next-layout | |||
-bind-key -n M-S-F8 new-window -k "byobu-layout restore; clear; $SHELL" | |||
+bind-key -n M-S-F8 new-window "byobu-layout restore; clear; $SHELL" | |||
bind-key -n C-S-F8 command-prompt -p "Save byobu layout as:" "run-shell \"byobu-layout save '%%'\"" | |||
-bind-key -n F9 new-window -k -n config byobu-config | |||
+bind-key -n F9 new-window -n config byobu-config | |||
bind-key -n S-F9 command-prompt -p "Send command to all panes:" "run-shell \"$BYOBU_PREFIX/lib/byobu/include/tmux-send-command-to-all-panes '%%'\"" | |||
bind-key -n C-F9 command-prompt -p "Send command to all windows:" "run-shell \"$BYOBU_PREFIX/lib/byobu/include/tmux-send-command-to-all-windows '%%'\"" | |||
bind-key -n M-F9 display-panes \; setw synchronize-panes |
@ -0,0 +1,10 @@ | |||
--- a/usr/lib/byobu/disk_io | |||
+++ b/usr/lib/byobu/disk_io | |||
@@ -53,6 +53,7 @@ __disk_io() { | |||
/dev/*) part="${mount_point}";; | |||
*) part=$(awk '$2 == mp { print $1 ; exit(0); }' "mp=$mount_point" /etc/mtab);; | |||
esac | |||
+ [ -e "$part" ] || return | |||
getdisk "$part" | |||
local disk=${_RET} | |||
local t2=$(date +%s) t1= |
@ -0,0 +1,21 @@ | |||
--- a/usr/lib/byobu/hostname | |||
+++ b/usr/lib/byobu/hostname | |||
@@ -20,12 +20,16 @@ | |||
# along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
__hostname_detail() { | |||
- hostname -f | |||
+ hostname -f 2>/dev/null | |||
} | |||
__hostname() { | |||
local h= | |||
- h=$(hostname -s 2>/dev/null || hostname) | |||
+ if eval $BYOBU_TEST hostname >/dev/null 2>&1; then | |||
+ h=$(hostname -s 2>/dev/null || hostname) | |||
+ elif [ -r /proc/sys/kernel/hostname ]; then | |||
+ read h < /proc/sys/kernel/hostname | |||
+ fi | |||
if metadata_available; then | |||
local cache="$BYOBU_RUN_DIR/cache.$BYOBU_BACKEND/hostname" | |||
# Background a retrieval of our public hostname |
@ -0,0 +1,13 @@ | |||
--- a/usr/lib/byobu/logo | |||
+++ b/usr/lib/byobu/logo | |||
@@ -111,6 +111,10 @@ __logo() { | |||
logo=" lm " | |||
$MARKUP && printf "$(color g w)$logo$(color -)$(color g w)$(color -) " || printf "$logo" | |||
;; | |||
+ *openwrt*) | |||
+ logo="OWrt" | |||
+ $MARKUP && printf "$(color b colour66 W)%s$(color -)" "$logo" || printf "$logo" | |||
+ ;; | |||
*red*hat*|*rhel*) | |||
logo=" RH " | |||
$MARKUP && printf "$(color R k)%s$(color -)" "$logo" || printf "$logo" |
@ -0,0 +1,21 @@ | |||
--- a/usr/lib/byobu/processes | |||
+++ b/usr/lib/byobu/processes | |||
@@ -20,15 +20,15 @@ | |||
# along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
__processes_detail() { | |||
- ps -ej | |||
+ ps -ej 2>/dev/null | |||
} | |||
__processes() { | |||
local count= | |||
if [ -r /proc ]; then | |||
- count=$(ls -d /proc/[0-9]* 2>/dev/null| wc -l) | |||
+ count=$(ls -d /proc/[0-9]* 2>/dev/null | wc -l) | |||
else | |||
- count=$(ps -ef | wc -l | awk '{print $1}') | |||
+ count=$(ps -ef | wc -l) | |||
fi | |||
[ -n "$count" ] || return | |||
color b y w; printf "%s" "$count"; color -; color y w; printf "&"; color -- |
@ -0,0 +1,11 @@ | |||
--- a/usr/lib/byobu/release | |||
+++ b/usr/lib/byobu/release | |||
@@ -30,7 +30,7 @@ __release() { | |||
true | |||
elif [ -r "/etc/os-release" ]; then | |||
# lsb_release is *really* slow; try to use /etc/os-release | |||
- release=$(. /etc/os-release && echo "$VERSION_ID") | |||
+ RELEASE=$(. /etc/os-release && echo "$VERSION_ID") | |||
elif [ -r "/etc/issue" ]; then | |||
# next try /etc/issue first | |||
local issue |
@ -0,0 +1,11 @@ | |||
--- a/usr/lib/byobu/services | |||
+++ b/usr/lib/byobu/services | |||
@@ -45,7 +45,7 @@ service_running() { | |||
} | |||
__services() { | |||
- local services= | |||
+ local services="$SERVICES" | |||
# Users can define a list of services to monitor in $BYOBU_CONFIG_DIR/status | |||
if [ -z "$services" ]; then | |||
if [ -f "/etc/eucalyptus/eucalyptus.conf" ]; then |
@ -0,0 +1,39 @@ | |||
--- a/usr/lib/byobu/updates_available | |||
+++ b/usr/lib/byobu/updates_available | |||
@@ -67,9 +67,16 @@ ___update_cache() { | |||
elif eval $BYOBU_TEST pacman >/dev/null; then | |||
# If pacman (Archlinux) exists, use it | |||
LC_ALL=C flock -xn "$flock" pacman -Sup | grep -vc "^\(::\| \)" >$mycache 2>/dev/null & | |||
+ elif eval $BYOBU_TEST opkg >/dev/null; then | |||
+ # If opkg (OpenWrt) exists, use it, also background if flock exists | |||
+ if eval $BYOBU_TEST flock >/dev/null; then | |||
+ flock -xn "$flock" opkg list-upgradable | wc -l >$mycache 2>/dev/null & | |||
+ else | |||
+ opkg list-upgradable | wc -l >$mycache & | |||
+ fi | |||
elif eval $BYOBU_TEST brew >/dev/null; then | |||
# If homebrew (Mac OSX) exists, use it, also background if flock exists | |||
- if eval $BYOBU_TEST flock; then | |||
+ if eval $BYOBU_TEST flock >/dev/null; then | |||
flock -xn "$flock" brew outdated | wc -l >$mycache 2>/dev/null & | |||
else | |||
brew outdated | wc -l >$mycache & | |||
@@ -106,6 +113,18 @@ ___update_needed() { | |||
[ "$db" -nt "$mycache" ] && return 0 | |||
done | |||
return 1 | |||
+ elif eval $BYOBU_TEST opkg >/dev/null; then | |||
+ # OpenWrt | |||
+ [ ! -e /var/lock/opkg.lock ] || return 1 | |||
+ if [ -d /var/opkg-lists ]; then | |||
+ [ /var/opkg-lists -nt "$mycache" ] | |||
+ return $? | |||
+ else | |||
+ local u s | |||
+ read u s < "$mycache" | |||
+ [ "$u" -gt 0 ] | |||
+ return $? | |||
+ fi | |||
elif eval $BYOBU_TEST brew >/dev/null; then | |||
# Mac OSX | |||
# check if any new versions have been installed since |
@ -0,0 +1,33 @@ | |||
--- a/usr/lib/byobu/whoami | |||
+++ b/usr/lib/byobu/whoami | |||
@@ -19,12 +19,28 @@ | |||
# You should have received a copy of the GNU General Public License | |||
# along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
+___get_user() { | |||
+ if eval $BYOBU_TEST whoami >/dev/null 2>&1; then | |||
+ whoami | |||
+ elif eval $BYOBU_TEST id >/dev/null 2>&1; then | |||
+ id -un | |||
+ fi | |||
+} | |||
+ | |||
__whoami_detail() { | |||
- getent -- passwd "$USER" | |||
+ local user=$(___get_user) | |||
+ [ -n "$user" ] || return | |||
+ if eval $BYOBU_TEST getent >/dev/null 2>&1; then | |||
+ getent -- passwd "$user" | |||
+ else | |||
+ grep "^$user:" /etc/passwd | |||
+ fi | |||
} | |||
__whoami() { | |||
- color bold2; printf "%s@" "$(whoami)"; color - | |||
+ local user=$(___get_user) | |||
+ [ -n "$user" ] || return | |||
+ color bold2; printf "%s@" "$user"; color - | |||
} | |||
# vi: syntax=sh ts=4 noexpandtab |
@ -0,0 +1,82 @@ | |||
--- a/usr/lib/byobu/wifi_quality | |||
+++ b/usr/lib/byobu/wifi_quality | |||
@@ -19,32 +19,61 @@ | |||
# You should have received a copy of the GNU General Public License | |||
# along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
+___get_dev_list() { | |||
+ if [ -n "$MONITORED_NETWORK" ]; then | |||
+ echo "$MONITORED_NETWORK" | |||
+ else | |||
+ iw dev | grep Interface | cut -f2 -d\ | |||
+ fi | |||
+} | |||
+ | |||
__wifi_quality_detail() { | |||
- /sbin/iwconfig 2>/dev/null | |||
+ if eval $BYOBU_TEST iw >/dev/null 2>&1; then | |||
+ local dev | |||
+ for dev in $(___get_dev_list); do | |||
+ iw dev "$dev" info | |||
+ iw dev "$dev" link | |||
+ echo | |||
+ done | |||
+ elif eval $BYOBU_TEST iwconfig >/dev/null 2>&1; then | |||
+ iwconfig 2>/dev/null | |||
+ fi | |||
} | |||
__wifi_quality() { | |||
local out bitrate quality | |||
- # iwconfig is expected to output lines like: | |||
- # Bit Rate=54 Mb/s Tx-Power=15 dBm | |||
- # Link Quality=60/70 Signal level=-50 dBm | |||
- # the awk below tokenizes the output and prints shell evalable results | |||
- out=`iwconfig $MONITORED_NETWORK 2>/dev/null | | |||
- awk '$0 ~ /[ ]*Link Quality./ { | |||
- sub(/.*=/,"",$2); split($2,a,"/"); | |||
- printf "quality=%.0f\n", 100*a[1]/a[2] }; | |||
- $0 ~ /[ ]*Bit Rate/ { sub(/.*[:=]/,"",$2); printf("bitrate=%s\n", $2); } | |||
- '` | |||
- eval "$out" | |||
- [ -z "$bitrate" ] && bitrate="0" | |||
- if [ -z "$quality" ] || [ "$quality" = "0" ]; then | |||
- quality="0" | |||
+ if eval $BYOBU_TEST iw >/dev/null 2>&1; then | |||
+ local dev | |||
+ for dev in $(___get_dev_list); do | |||
+ # signal to quality: https://superuser.com/a/1360447 | |||
+ out=`iw dev "$dev" link 2>/dev/null | | |||
+ awk '$0 ~ /^\s*signal:/ { a = 100 * ($2 + 110) / 70; | |||
+ printf "quality=%.0f\n", (a > 100) ? 100 : ((a < 0) ? 0 : a); } | |||
+ $0 ~ /^\s*tx bitrate:/ { printf "bitrate=%s\n", $3; } | |||
+ '` | |||
+ eval "$out" | |||
+ [ -z "$bitrate" ] || [ -z "$quality" ] || break | |||
+ done | |||
+ elif eval $BYOBU_TEST iwconfig >/dev/null 2>&1; then | |||
+ # iwconfig is expected to output lines like: | |||
+ # Bit Rate=54 Mb/s Tx-Power=15 dBm | |||
+ # Link Quality=60/70 Signal level=-50 dBm | |||
+ # the awk below tokenizes the output and prints shell evalable results | |||
+ out=`iwconfig $MONITORED_NETWORK 2>/dev/null | | |||
+ awk '$0 ~ /[ ]*Link Quality./ { | |||
+ sub(/.*=/,"",$2); split($2,a,"/"); | |||
+ printf "quality=%.0f\n", 100*a[1]/a[2] }; | |||
+ $0 ~ /[ ]*Bit Rate/ { sub(/.*[:=]/,"",$2); printf("bitrate=%s\n", $2); } | |||
+ '` | |||
+ eval "$out" | |||
fi | |||
- if [ "$bitrate" = "0" ] || [ "$quality" = "0" ] || [ -z "$bitrate" ] || [ -z "$quality"]; then | |||
+ [ -n "$bitrate" ] || bitrate=0 | |||
+ [ -n "$quality" ] || quality=0 | |||
+ if [ "$bitrate" -gt 0 ] && [ "$quality" -gt 0 ]; then | |||
+ printf "${ICON_WIFI}"; color b C k; printf "%s" "$bitrate"; color -; color C k; printf "%s" "$ICON_MBPS"; color -; color b C k; printf "%s" "$quality"; color -; color C k; printf "%s" "$PCT"; color -- | |||
+ else | |||
rm -f "$BYOBU_RUN_DIR/status.$BYOBU_BACKEND/wifi_quality"* | |||
- return | |||
fi | |||
- printf "${ICON_WIFI}"; color b C k; printf "%s" "$bitrate"; color -; color C k; printf "%s" "$ICON_MBPS"; color -; color b C k; printf "%s" "$quality"; color -; color C k; printf "%s" "$PCT"; color -- | |||
} | |||
# vi: syntax=sh ts=4 noexpandtab |
@ -0,0 +1,10 @@ | |||
--- a/usr/lib/byobu/raid | |||
+++ b/usr/lib/byobu/raid | |||
@@ -24,6 +24,7 @@ __raid_detail() { | |||
} | |||
__raid() { | |||
+ [ -r /proc/mdstat ] || return | |||
while read line; do | |||
local p msg | |||
# Errors in your raid |
@ -0,0 +1,11 @@ | |||
--- a/usr/lib/byobu/session | |||
+++ b/usr/lib/byobu/session | |||
@@ -34,7 +34,7 @@ __session() { | |||
fi | |||
;; | |||
screen) | |||
- local count=$(screen -ls | grep "^ .*\)$" | wc -l) | |||
+ local count=$(screen -ls | grep "^\s\+.*)$" | wc -l) | |||
if [ $count -gt 1 ]; then | |||
color u W k; printf "${ICON_SESSION}%S"; color -- | |||
else |