# bashclub OS: Prompt, Farben und Vervollständigung für
# interaktive Shells. Geladen am Ende von ~/.bashrc (bashclub-install).
# Die Farben folgen dem Hintergrund des Terminals (hell oder dunkel):
#   BASHCLUB_THEME=dark|light  fest vorgeben (z. B. in ~/.bashrc davor)
#   COLORFGBG                  setzen manche Terminals (z. B. „15;0“)
#   OSC 11                     sonst das Terminal fragen (0,3 s Zeitlimit)
case $- in *i*) ;; *) return 0 ;; esac

# Vervollständigung wie unter Debian üblich, auch für root
if ! shopt -oq posix && [ -z "${BASH_COMPLETION_VERSINFO:-}" ] && [ -f /usr/share/bash-completion/bash_completion ]; then
	. /usr/share/bash-completion/bash_completion
fi

case "${TERM:-}" in
xterm* | *-256color | screen* | tmux* | linux | alacritty | foot* | wezterm*) ;;
*) return 0 ;;
esac

_bashclub_theme() {
	local reply r g b
	case "${BASHCLUB_THEME:-}" in dark | light)
		echo "$BASHCLUB_THEME"
		return
		;;
	esac
	# Linux-Konsole: Grafit-Palette der Edition, immer dunkel
	[ "$TERM" = linux ] && { echo dark; return; }
	if [ -n "${COLORFGBG:-}" ]; then
		case "${COLORFGBG##*;}" in 7 | 9 | 1[0-5]) echo light ;; *) echo dark ;; esac
		return
	fi
	if [ -t 0 ] && [ -t 1 ]; then
		printf '\033]11;?\033\\' >/dev/tty
		IFS= read -r -s -t 0.3 -d '\' reply </dev/tty
		if [[ $reply =~ rgb:([0-9a-fA-F]{2})[0-9a-fA-F]*/([0-9a-fA-F]{2})[0-9a-fA-F]*/([0-9a-fA-F]{2}) ]]; then
			r=$((16#${BASH_REMATCH[1]})) g=$((16#${BASH_REMATCH[2]})) b=$((16#${BASH_REMATCH[3]}))
			if [ $(((299 * r + 587 * g + 114 * b) / 1000)) -gt 140 ]; then echo light; else echo dark; fi
			return
		fi
	fi
	echo dark
}

# Einmal je Sitzung ermitteln; Unter-Shells erben das Ergebnis
if [ -z "${BASHCLUB_BG:-}" ]; then
	BASHCLUB_BG=$(_bashclub_theme)
	export BASHCLUB_BG
fi
unset -f _bashclub_theme

# bashclub-Orange #f07d1a; auf hellem Grund dunkler für Kontrast
if [ "$BASHCLUB_BG" = light ]; then
	_accent='38;5;166' _path='38;5;240' _root='38;5;160'
else
	_accent='38;5;208' _path='38;5;250' _root='38;5;203'
fi
case "${COLORTERM:-}" in truecolor | 24bit)
	if [ "$BASHCLUB_BG" = light ]; then _accent='38;2;179;84;0'; else _accent='38;2;240;125;26'; fi
	;;
esac
if [ "$(id -u)" -eq 0 ]; then _user=$_root; else _user=$_accent; fi
PS1="\[\033[${_user}m\]\u\[\033[0m\]@\[\033[${_accent}m\]\h\[\033[0m\]:\[\033[${_path}m\]\w\[\033[0m\]\\$ "
unset _accent _path _root _user

if [ -x /usr/bin/dircolors ]; then
	[ -n "${LS_COLORS:-}" ] || eval "$(dircolors -b)"
	alias ls='ls --color=auto'
	alias grep='grep --color=auto'
	alias diff='diff --color=auto'
	alias ip='ip -color=auto'
fi
export GREP_COLORS='mt=01;38;5;208'

# newt-Programme (nmtui, whiptail …) in bashclub-Farben: nur die 16
# Terminalfarben, deshalb dunkler Grund mit Akzenten in Gelb/Orange
# (brown) statt des Grafit-Blaus aus dem Installer, das dort die
# Konsolenpalette umfärbt; per SSH wäre „blue“ knallblau
export NEWT_COLORS='root=lightgray,black roottext=brown,black window=white,black border=brown,black shadow=black,black title=brown,black textbox=white,black button=black,lightgray actbutton=black,brown compactbutton=white,black listbox=white,black actlistbox=black,brown sellistbox=brown,black actsellistbox=black,brown checkbox=white,black actcheckbox=black,brown entry=white,black disentry=gray,black label=white,black emptyscale=,black fullscale=,brown helpline=lightgray,black'
