diff --git a/README.md b/README.md index f5cd8e1..26eed3a 100644 --- a/README.md +++ b/README.md @@ -110,6 +110,7 @@ set -g @tmux2k-yellow '#f8c800' # change yellow color - `battery`: Show battery stats and percentage - `git`: Show Git branch and status information - `cpu`: Show CPU usage information +- `cwd`: Show current working directory - `gpu`: Show GPU usage information - `ram`: Show RAM usage information - `network`: Show network status and statistics diff --git a/scripts/cwd.sh b/scripts/cwd.sh index 8e91928..301bb61 100755 --- a/scripts/cwd.sh +++ b/scripts/cwd.sh @@ -1,54 +1,54 @@ #!/usr/bin/env bash # return current working directory of tmux pane -getPaneDir() { - nextone="false" - ret="" - for i in $(tmux list-panes -F "#{pane_active} #{pane_current_path}"); do - [ "$i" == "1" ] && nextone="true" && continue - [ "$i" == "0" ] && nextone="false" - [ "$nextone" == "true" ] && ret+="$i " - done - echo "${ret%?}" +get_pane_dir() { + nextone="false" + ret="" + for i in $(tmux list-panes -F "#{pane_active} #{pane_current_path}"); do + [ "$i" == "1" ] && nextone="true" && continue + [ "$i" == "0" ] && nextone="false" + [ "$nextone" == "true" ] && ret+="$i " + done + echo "${ret%?}" } # truncate the path if it's longer than 30 characters -truncatePath() { - local path="$1" - local limit=30 - - if [ ${#path} -gt $limit ]; then - # Split the path into an array by '/' - IFS='/' read -r -a path_array <<< "$path" - truncated_path="" +truncate_path() { + local path="$1" + local limit=30 - for ((i=0; i<${#path_array[@]}-1; i++)); do - if [ ${#path_array[i]} -gt 1 ]; then - truncated_path+="${path_array[i]:0:1}/" - else - truncated_path+="${path_array[i]}/" - fi - done + if [ ${#path} -gt $limit ]; then + # Split the path into an array by '/' + IFS='/' read -r -a path_array <<<"$path" + truncated_path="" - # Add the last component of the current directory path - truncated_path+="${path_array[-1]}" + for ((i = 0; i < ${#path_array[@]} - 1; i++)); do + if [ ${#path_array[i]} -gt 1 ]; then + truncated_path+="${path_array[i]:0:1}/" + else + truncated_path+="${path_array[i]}/" + fi + done - echo "$truncated_path" - else - echo "$path" - fi + # Add the last component of the current directory path + truncated_path+="${path_array[-1]}" + + echo "$truncated_path" + else + echo "$path" + fi } main() { - path=$(getPaneDir) + path=$(get_pane_dir) - # change '/home/user' to '~' - cwd="${path/"$HOME"/'~'}" - - # Truncate path if it's too long - truncated_cwd=$(truncatePath "$cwd") + # change '/home/user' to '~' + cwd="${path/"$HOME"/'~'}" - echo "$truncated_cwd" + # Truncate path if it's too long + truncated_cwd=$(truncate_path "$cwd") + + echo " $truncated_cwd" } #run main driver program