|
|
@@ -27,6 +27,7 @@ DELAY_MS=0 # 0 = 随机 80-400
|
|
|
TYPE_EFFECT=0
|
|
|
SILENT=0
|
|
|
COLOR_RATIO=35 # 0-100, 命中语义的行的实际上色概率(降彩色密度)
|
|
|
+EXPLICIT_COLOR=0 # 显式传 -c 时置 1, 视为显式彩色意图
|
|
|
|
|
|
show_usage() {
|
|
|
sed -n '1,24p' "$0"
|
|
|
@@ -59,6 +60,7 @@ while [ $# -gt 0 ]; do
|
|
|
;;
|
|
|
esac
|
|
|
[ "$COLOR_RATIO" -gt 100 ] && { echo "color ratio must be 0-100" >&2; exit 1; }
|
|
|
+ EXPLICIT_COLOR=1
|
|
|
shift 2
|
|
|
;;
|
|
|
--help | -h) show_usage ;;
|
|
|
@@ -70,10 +72,11 @@ while [ $# -gt 0 ]; do
|
|
|
esac
|
|
|
done
|
|
|
|
|
|
-# ---- 颜色自动检测:仅 TTY 或 FORCE_COLOR=1 才上色;NO_COLOR 显式禁用 ----
|
|
|
+# ---- 颜色自动检测:TTY / FORCE_COLOR=1 / 显式传 -c 才上色;NO_COLOR 显式禁用 ----
|
|
|
# 文件模式不上色(见 run_once),此处仅决定随机内容是否套用 ANSI 主题色
|
|
|
+# 默认值(35)不触发强制, 仅显式传 -c 视为用户想要彩色(即使非 TTY)
|
|
|
COLOR=0
|
|
|
-if [ -z "${NO_COLOR:-}" ] && { [ "${FORCE_COLOR:-0}" = "1" ] || [ -t 1 ]; }; then
|
|
|
+if [ -z "${NO_COLOR:-}" ] && { [ "${FORCE_COLOR:-0}" = "1" ] || [ -t 1 ] || [ "$EXPLICIT_COLOR" = "1" ]; }; then
|
|
|
COLOR=1
|
|
|
fi
|
|
|
|