Update fastfetch.nix

This commit is contained in:
ediblerope 2025-12-21 14:13:58 +00:00 committed by GitHub
parent 1754e702de
commit 62871253c2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -42,37 +42,63 @@
# Set up bash with fastfetch and a nice prompt # Set up bash with fastfetch and a nice prompt
programs.bash.promptInit = '' programs.bash.promptInit = ''
# Powerline-style prompt with background colors # Powerline-style prompt with background colors
# Color definitions
RESET="\[\033[0m\]"
# Powerline separator # Powerline separator
SEP="" SEP=""
# Background colors with foreground text # Background colors
BG_BLUE="\[\033[48;5;33m\]" # Blue background BG_BLUE="$(echo -e '\033[48;5;33m')"
BG_PURPLE="\[\033[48;5;98m\]" # Purple background BG_PURPLE="$(echo -e '\033[48;5;98m')"
BG_GREEN="\[\033[48;5;35m\]" # Green background BG_GREEN="$(echo -e '\033[48;5;35m')"
BG_CYAN="$(echo -e '\033[48;5;37m')"
# Foreground colors for separators # Foreground colors for separators
FG_BLUE="\[\033[38;5;33m\]" FG_BLUE="$(echo -e '\033[38;5;33m')"
FG_PURPLE="\[\033[38;5;98m\]" FG_PURPLE="$(echo -e '\033[38;5;98m')"
FG_GREEN="\[\033[38;5;35m\]" FG_GREEN="$(echo -e '\033[38;5;35m')"
FG_CYAN="$(echo -e '\033[38;5;37m')"
# White text # White text and reset
WHITE="\[\033[97m\]" WHITE="$(echo -e '\033[97m')"
RESET="$(echo -e '\033[0m')"
# Function to build path with colored segments
build_path_prompt() {
local path="''${PWD/#$HOME/~}"
local IFS='/'
local parts=($path)
local output=""
local colors=("''${BG_GREEN}" "''${BG_CYAN}" "''${BG_BLUE}")
local fg_colors=("''${FG_GREEN}" "''${FG_CYAN}" "''${FG_BLUE}")
local i=0
for part in "''${parts[@]}"; do
local color_idx=$((i % 3))
local next_color_idx=$(((i + 1) % 3))
if [ -n "$part" ]; then
output+="''${colors[$color_idx]}''${WHITE} $part "
if [ $i -lt $((''${#parts[@]} - 1)) ]; then
output+="''${colors[$next_color_idx]}''${fg_colors[$color_idx]}''${SEP}"
fi
((i++))
fi
done
echo -n "$output"
}
# Function to get git branch # Function to get git branch
parse_git_branch() { parse_git_branch() {
local branch=$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/') local branch=$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/')
if [ -n "$branch" ]; then if [ -n "$branch" ]; then
echo -e "''${BG_PURPLE}''${FG_GREEN}''${SEP}''${BG_PURPLE}''${WHITE} $branch ''${RESET}''${FG_PURPLE}''${SEP}" echo -n "''${BG_PURPLE}''${FG_CYAN}''${SEP}''${BG_PURPLE}''${WHITE} $branch ''${RESET}''${FG_PURPLE}''${SEP}"
else else
echo -e "''${RESET}''${FG_GREEN}''${SEP}" echo -n "''${RESET}''${FG_BLUE}''${SEP}"
fi fi
} }
# Powerline prompt # Set prompt command to rebuild on each prompt
PS1="''${BG_GREEN}''${WHITE} \w ''${RESET}\$(parse_git_branch)''${RESET} " PROMPT_COMMAND='PS1="$(build_path_prompt)$(parse_git_branch)''${RESET} "'
''; '';
programs.bash.interactiveShellInit = '' programs.bash.interactiveShellInit = ''
# Run fastfetch on terminal start # Run fastfetch on terminal start