Append rather than replace terminal-overrides.
[profile.git] / .profile.d / screen.bashrc
index 90b3707..e6a8b1e 100644 (file)
@@ -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