view .zshrc @ 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 b78aa03c0c00
children
line wrap: on
line source

# Augie Fackler's zshrc file

for file in $(ls $HOME/.shell.d/*.{,z}sh) ; do
    source $file
done

# Login greeting ------------------

if [ ! "$SHOWED_SCREEN_MESSAGE" = "true" ]; then
        # 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
                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)"
    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

# If available, source private extensions stored in a different repo
if [[ -a ~/.private/zshrc ]]; then
    source ~/.private/zshrc
fi

if [[ -a ~/.zshrc-machine ]]; then
        source ~/.zshrc-machine
fi