X-Git-Url: http://git.iain.cx/?p=profile.git;a=blobdiff_plain;f=.profile.d%2Fscreen.bashrc;h=e6a8b1e3beb02bc7fb8b643030c48c4e88b2d059;hp=90b37074695dcbc9f3dfab8825660dd8e2f8efec;hb=88bb919af5a85d1d7f791408058f9eee96140907;hpb=b82d709dee82b7e05ae8b9fa87e0eea488da6a3d diff --git a/.profile.d/screen.bashrc b/.profile.d/screen.bashrc index 90b3707..e6a8b1e 100644 --- a/.profile.d/screen.bashrc +++ b/.profile.d/screen.bashrc @@ -1,17 +1,22 @@ # 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="$HOME/.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 - - alias session='bigscreen -rx -S session || kscreen bigscreen -S session' + unset krenew fi unset screen