X-Git-Url: https://git.alrj.org/?p=zsh.d.git;a=blobdiff_plain;f=S61_konsoletabs;h=1185d79a8023ff6cbbd6a8cde9d660c37a75090c;hp=8af1f116354e80b597bb566c74d81fb8e11dc32f;hb=HEAD;hpb=b7882ea427761943820b1b1f8d28b1aa22927ecc diff --git a/S61_konsoletabs b/S61_konsoletabs index 8af1f11..1185d79 100644 --- a/S61_konsoletabs +++ b/S61_konsoletabs @@ -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 }