X-Git-Url: http://git.iain.cx/?p=profile.git;a=blobdiff_plain;f=.profile.d%2Fscreen.bashrc;h=beba50523d67d2de94cb5555fb83014ee14063f1;hp=90b37074695dcbc9f3dfab8825660dd8e2f8efec;hb=b0dc723863560322fab286f028e09d51981d174c;hpb=b82d709dee82b7e05ae8b9fa87e0eea488da6a3d diff --git a/.profile.d/screen.bashrc b/.profile.d/screen.bashrc index 90b3707..beba505 100644 --- a/.profile.d/screen.bashrc +++ b/.profile.d/screen.bashrc @@ -1,16 +1,23 @@ # Fixup screen and define ``session'' if available. -screen=$(which screen 2>/dev/null) -if [ ! -z "$screen" ]; then - # Override SCREENDIR iff screen is not setuid. - if ! ls -l "$screen" | cut -d ' ' -f 1 | grep s >/dev/null; then - export SCREENDIR="$HOME/.screen/$HOSTNAME" +screen=$(find_working screen 2>/dev/null) +if [ $? = 0 ]; then + # Override SCREENDIR iff screen is not setgid (but not under sudo). + if [ ! -g "$screen" ]; then + if [ -n "$SUDO_USER" ]; then + unset SCREENDIR + else + export SCREENDIR="~/.screen/$HOSTNAME" + mkdir -p "$SCREENDIR" + fi fi - if which krenew 2>/dev/null | grep ^/ >/dev/null; then - alias kscreen='krenew --' + krenew=$(find_working krenew 2/dev/null) + if [ $? = 0 ]; then + alias kscreen="$krenew --" else alias kscreen='' fi + unset krenew alias session='bigscreen -rx -S session || kscreen bigscreen -S session' fi