diff --git a/apps/fastfetch.nix b/apps/fastfetch.nix index 56cf0c9..d8abd8f 100644 --- a/apps/fastfetch.nix +++ b/apps/fastfetch.nix @@ -46,20 +46,20 @@ SEP="" # Background colors - BG_BLUE="$(echo -e '\033[48;5;33m')" - BG_PURPLE="$(echo -e '\033[48;5;98m')" - BG_GREEN="$(echo -e '\033[48;5;35m')" - BG_CYAN="$(echo -e '\033[48;5;37m')" + BG_BLUE="\001$(echo -e '\033[48;5;33m')\002" + BG_PURPLE="\001$(echo -e '\033[48;5;98m')\002" + BG_GREEN="\001$(echo -e '\033[48;5;35m')\002" + BG_CYAN="\001$(echo -e '\033[48;5;37m')\002" # Foreground colors for separators - FG_BLUE="$(echo -e '\033[38;5;33m')" - FG_PURPLE="$(echo -e '\033[38;5;98m')" - FG_GREEN="$(echo -e '\033[38;5;35m')" - FG_CYAN="$(echo -e '\033[38;5;37m')" + FG_BLUE="\001$(echo -e '\033[38;5;33m')\002" + FG_PURPLE="\001$(echo -e '\033[38;5;98m')\002" + FG_GREEN="\001$(echo -e '\033[38;5;35m')\002" + FG_CYAN="\001$(echo -e '\033[38;5;37m')\002" # White text and reset - WHITE="$(echo -e '\033[97m')" - RESET="$(echo -e '\033[0m')" + WHITE="\001$(echo -e '\033[97m')\002" + RESET="\001$(echo -e '\033[0m')\002" # Function to build path with colored segments build_path_prompt() { @@ -70,10 +70,12 @@ local colors=("''${BG_GREEN}" "''${BG_CYAN}" "''${BG_BLUE}") local fg_colors=("''${FG_GREEN}" "''${FG_CYAN}" "''${FG_BLUE}") local i=0 + local last_color_idx=0 for part in "''${parts[@]}"; do local color_idx=$((i % 3)) local next_color_idx=$(((i + 1) % 3)) + last_color_idx=$color_idx if [ -n "$part" ]; then output+="''${colors[$color_idx]}''${WHITE} $part " @@ -84,16 +86,20 @@ fi done - echo -n "$output" + echo -n "$output''${RESET}''${fg_colors[$last_color_idx]}''${SEP}" } # Function to get git branch parse_git_branch() { local branch=$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/') if [ -n "$branch" ]; then - echo -n "''${BG_PURPLE}''${FG_CYAN}''${SEP}''${BG_PURPLE}''${WHITE} $branch ''${RESET}''${FG_PURPLE}''${SEP}" - else - echo -n "''${RESET}''${FG_BLUE}''${SEP}" + local path="''${PWD/#$HOME/~}" + local IFS='/' + local parts=($path) + local last_color_idx=$(( (''${#parts[@]} - 1) % 3 )) + local fg_colors=("''${FG_GREEN}" "''${FG_CYAN}" "''${FG_BLUE}") + + echo -n "''${BG_PURPLE}''${fg_colors[$last_color_idx]}''${SEP}''${BG_PURPLE}''${WHITE} $branch ''${RESET}''${FG_PURPLE}''${SEP}" fi }