Use tmux for sessions.
authorIain Patterson <me@iain.cx>
Fri, 1 Oct 2010 12:55:27 +0000 (13:55 +0100)
committerIain Patterson <me@iain.cx>
Thu, 13 Jan 2011 11:39:10 +0000 (11:39 +0000)
Use tmux with the Kerberos helper for the session alias.

.profile.d/screen.bashrc
.profile.d/tmux.bashrc [new file with mode: 0644]
opt/bin/bigtmux [new file with mode: 0755]

index c2b1014..e6a8b1e 100644 (file)
@@ -18,7 +18,5 @@ if [ $? = 0 ]; then
     alias kscreen=''
   fi
   unset krenew
-
-  alias session='bigscreen -rx -S session || kscreen bigscreen -S session'
 fi
 unset screen
diff --git a/.profile.d/tmux.bashrc b/.profile.d/tmux.bashrc
new file mode 100644 (file)
index 0000000..458c94f
--- /dev/null
@@ -0,0 +1,9 @@
+# profile-requires: screen.bashrc
+# XXX: Use a module.
+tmux=$(PATH=$PATH:/comm/tmux/stable/bin find_working tmux 2>/dev/null)
+if [ $? = 0 ]; then
+  alias session="bigtmux $tmux has -t session 2>/dev/null && tmux attach -t session || ktmux -T $tmux -s session"
+  if [ -n "$TMUX" ]; then
+    $tmux run-shell ktmux_helper ';' detach 2>/dev/null
+  fi
+fi
diff --git a/opt/bin/bigtmux b/opt/bin/bigtmux
new file mode 100755 (executable)
index 0000000..b3d083a
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/bash
+#
+# bigtmux: Start tmux, resizing the current window to allow a status line in
+#          addition to an 87x24 display.
+# Usage: bigtmux [args]
+#
+
+# Resize only if we're at the default size.
+size=$(stty size)
+oldcols=${size##* }
+cols=${oldcols:-80}
+oldlines=${size%% *}
+lines=${oldlines:-24}
+
+[ ${lines:-24} -lt 25 ] && lines=25
+[ ${cols:-80} -lt 87 ] && cols=87
+[ $cols = $oldcols -a $lines = $oldlines ] || usize $cols $lines
+
+exec ${1+"$@"}
+