diff options
Diffstat (limited to 'segments/pwd.sh')
-rwxr-xr-x | segments/pwd.sh | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/segments/pwd.sh b/segments/pwd.sh new file mode 100755 index 0000000..2499762 --- /dev/null +++ b/segments/pwd.sh @@ -0,0 +1,39 @@ +# Print the current working directory (trimmed to max length). +# NOTE The trimming code's stolen from the web. Courtesy to who ever wrote it. + +# Source lib to get the function get_tmux_pwd +source "${TMUX_POWERLINE_DIR_LIB}/tmux_adapter.sh" + +TMUX_POWERLINE_SEG_PWD_MAX_LEN_DEFAULT="40" + +generate_segmentrc() { + read -d '' rccontents << EORC +# Maximum length of output. +export TMUX_POWERLINE_SEG_PWD_MAX_LEN="${TMUX_POWERLINE_SEG_PWD_MAX_LEN_DEFAULT}" +EORC + echo "$rccontents" +} + +__process_settings() { + if [ -z "$TMUX_POWERLINE_SEG_PWD_MAX_LEN" ]; then + export TMUX_POWERLINE_SEG_PWD_MAX_LEN="${TMUX_POWERLINE_SEG_PWD_MAX_LEN_DEFAULT}" + fi +} + +run_segment() { + __process_settings + # Truncate from the left. + tcwd=$(get_tmux_cwd) + trunc_symbol="ยทยทยท" + dir=${tcwd##*/} + local max_len="$TMUX_POWERLINE_SEG_PWD_MAX_LEN" + max_len=$(( ( max_len < ${#dir} ) ? ${#dir} : max_len )) + ttcwd=${tcwd/#$HOME/\~} + pwdoffset=$(( ${#ttcwd} - max_len )) + if [ ${pwdoffset} -gt "0" ]; then + ttcwd=${ttcwd:$pwdoffset:$max_len} + ttcwd=${trunc_symbol}/${ttcwd#*/} + fi + echo "$ttcwd" + return 0 +} |