]> git.alrj.org Git - zsh.d.git/blobdiff - S61_konsoletabs
Add a wrapper for mc to stay in current directory upon exit
[zsh.d.git] / S61_konsoletabs
index 8af1f116354e80b597bb566c74d81fb8e11dc32f..1185d79a8023ff6cbbd6a8cde9d660c37a75090c 100644 (file)
@@ -1,39 +1,41 @@
-#! /usr/binn/zsh
+#! /usr/bin/zsh
 
 # Change konsole tab to current path
 konsole-rename-path () {
-    if [ "$KONSOLE_DCOP_SESSION" ]
+    if [ -n "$KONSOLE_DCOP_SESSION" -o -n "$KONSOLE_DBUS_SESSION" ]
     then
         local DIR
-        DIR=${PWD/#${HOME}/\~}
-        SDIR="${DIR[-28,-1]}"
-        if [[ "$SDIR" != "$DIR" ]]
+        DIR=`print -P "%28<...<%~"`
+        if [ -n "$KONSOLE_DCOP_SESSION" ]
         then
-           SDIR="...${DIR[-25,-1]}"
-        else
-           SDIR="$DIR"
+          dcop ${KONSOLE_DCOP_SESSION} renameSession "$DIR"
+        elif [ -n "$KONSOLE_DBUS_SESSION" ]
+        then
+          qdbus ${KONSOLE_DBUS_SERVICE} ${KONSOLE_DBUS_SESSION} setTitle 0 "$DIR" > /dev/null 2>&1
+          qdbus ${KONSOLE_DBUS_SERVICE} ${KONSOLE_DBUS_SESSION} setTitle 1 "$DIR" > /dev/null 2>&1
         fi
-        dcop ${KONSOLE_DCOP_SESSION} renameSession "$SDIR"
     fi
 }
 
 # Change konsole tab to current command
 konsole-rename-cmd () {
-    if [ "$KONSOLE_DCOP_SESSION" ]
+    if [ -n "$KONSOLE_DCOP_SESSION" -o -n "$KONSOLE_DBUS_SESSION" ]
     then
         # We don't need to change tab to "cd xyz" or precmd redefinition
         # Yes, this is a dirty hack
         if [[ "$1" != \ cd\ \"* && "$1" != \ precmd* ]]
         then
-            local TXT
-            TXT="${1[0,33]}"
-            if [[ "$1" != "$TXT" ]]
+            local CMD
+            CMD=`print -P "%30>...>$1"`
+
+            if [ -n "$KONSOLE_DCOP_SESSION" ]
+            then
+              dcop ${KONSOLE_DCOP_SESSION} renameSession "$CMD"
+            elif [ -n "$KONSOLE_DBUS_SESSION" ]
             then
-                TXT="${1[0,30]}..."
-            else
-                TXT="$1"
+              qdbus ${KONSOLE_DBUS_SERVICE} ${KONSOLE_DBUS_SESSION} setTitle 0 "$CMD" > /dev/null 2>&1
+              qdbus ${KONSOLE_DBUS_SERVICE} ${KONSOLE_DBUS_SESSION} setTitle 1 "$CMD" > /dev/null 2>&1
             fi
-            dcop ${KONSOLE_DCOP_SESSION} renameSession "$TXT"
         fi
     fi
 }