Browse Source

Use shorter $PWD title info in some dirs

Alois Mahdal 6 years ago
parent
commit
5260f85770
1 changed files with 18 additions and 3 deletions
  1. 18
    3
      dotfiles/bash/post.bashrc

+ 18
- 3
dotfiles/bash/post.bashrc View File

@@ -83,17 +83,32 @@ __bashum__set_title() {
83 83
             ;;
84 84
         "")
85 85
             echo -ne "\033]0;$(__bashum__mkicon) "
86
-            echo -n    "$(__bashum__lastrv)$(__bashum__mkhostid)${PWD/$HOME/\~}\$"
86
+            echo -n    "$(__bashum__lastrv)$(__bashum__mkhostid)$(__bashum__wdir normal)\$"
87 87
             echo -ne "\007"
88 88
             ;;
89 89
         *)
90 90
             echo -ne "\033]0;$(__bashum__mkicon) "
91
-            echo -n    "${BASH_COMMAND} ($(__bashum__mkhostid)${PWD/$HOME/\~})"
91
+            echo -n    "${BASH_COMMAND} ($(__bashum__mkhostid)$(__bashum__wdir normal))"
92 92
             echo -ne "\007"
93 93
             ;;
94 94
     esac
95 95
 }
96 96
 
97
+__bashum__wdir() {
98
+    #
99
+    # Create abbreviated form of workdir
100
+    #
101
+    local mode=${1:-normal}
102
+    case $mode:$PWD in
103
+        normal:*)               echo "${PWD/$HOME/\~}" ;;
104
+        short:$HOME)            echo "~" ;;
105
+        short:$HOME/??????????) echo "${PWD/$HOME/\~}" ;;
106
+        short:$HOME/*/*)        echo "…${PWD##*/}" ;;
107
+        short:$HOME/*)          echo "${PWD/$HOME/\~}" ;;
108
+        short:*)                echo "$PWD" ;;
109
+    esac
110
+}
111
+
97 112
 #shellcheck disable=SC2016
98 113
 __bashum__mkpc() {
99 114
     #
@@ -106,7 +121,7 @@ __bashum__mkpc() {
106 121
             echo -n   "$(__bashum__mkicon) "
107 122
             echo -n   '$(__bashum__lastrv)'
108 123
             echo -n   "$(__bashum__mkhostid)"
109
-            echo -n   '${PWD/$HOME/\~}'
124
+            echo -n   '$(__bashum__wdir short)'
110 125
             echo -n   '\$'
111 126
             echo -n '\007"'
112 127
             ;;