Mercurial > dotfiles
changeset 526:852565046ed0 default tip
zsh: fidget with screen/tmux message
This should speed things up very slightly by avoiding some `grep` action
in the common case of no detached screens/tmuxes.
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Mon, 14 Nov 2022 11:02:35 -0500 |
parents | b0fa9e7cadac |
children | |
files | .zshrc |
diffstat | 1 files changed, 10 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/.zshrc +++ b/.zshrc @@ -10,26 +10,33 @@ if [ ! "$SHOWED_SCREEN_MESSAGE" = "true" # Use /bin/which explicitly because we have a shell function # that confuses the zsh built-in which. if sh -c 'which screen' 2> /dev/null > /dev/null; then - detached_screens=`screen -list | grep Detached | sed -e 's/ (Detached)//'` - if [ ! -z "$detached_screens" ]; then + SCREENS_OUTPUT="$(screen -list)" + if [[ "${SCREENS_OUTPUT}" =~ Detached ]] ; then + detached_screens=`echo "${SCREENS_OUTPUT}" | grep Detached | sed -e 's/ (Detached)//'` echo "+---------------------------------------+" echo "| Detached screens are available: |" echo "$detached_screens" echo "+---------------------------------------+" fi + unset SCREENS_OUTPUT + unset detached_screens fi export SHOWED_SCREEN_MESSAGE="true" fi if [ ! "$SHOWED_TMUX_MESSAGE" = "true" ]; then if which tmux 2> /dev/null > /dev/null; then - detached_screens=$(tmux ls 2> /dev/null | grep -v attached) + detached_screens="$(tmux ls 2> /dev/null)" + if [ ! -z "$detached_screens" ]; then + detached_screens="$(echo "$detached_screens" | grep -v attached)" + fi if [ ! -z "$detached_screens" ]; then echo "+-----------------------------------------------------------+" echo "| Detached tmux sessions are available: |" echo "$detached_screens" echo "+-----------------------------------------------------------+" fi + unset detached_screens fi export SHOWED_TMUX_MESSAGE="true" fi