乱数でプロンプトの色決めると、ログインのたびに違ったりしてしまい紛らわしい。同じユーザ、ホストなら同じ色で表示されるようにしたい。
↑これは↓こんなかんじ(zsh で動作確認済み)
colors=(
## 気に入らない色はコメントアウト
# $'%{\e[0;30m%}' # black
$'%{\e[0;31m%}' # red
$'%{\e[0;32m%}' # green
$'%{\e[0;33m%}' # brown
$'%{\e[0;34m%}' # blue
$'%{\e[0;35m%}' # purple
$'%{\e[0;36m%}' # cyan
# $'%{\e[0;37m%}' # gray
## light colors
# $'%{\e[1;30m%}' # black
$'%{\e[1;31m%}' # red
$'%{\e[1;32m%}' # green
$'%{\e[1;33m%}' # brown
$'%{\e[1;34m%}' # blue
$'%{\e[1;35m%}' # purple
$'%{\e[1;36m%}' # cyan
# $'%{\e[1;37m%}' # gray
)
colored_user=$colors[$((`echo "$USER" | sum | cut -f1 -d' '`%${#colors}))+1]$USER
colored_host=$colors[$((`echo "$HOST" | sum | cut -f1 -d' '`%${#colors}))+1]$HOST
PROMPT="$colored_user"$'%{\e[1;39m%}'"@$colored_host"$'%{\e[1;39m%}'"%% "
色が被って仕方ないって時は、$SALT
みたいな変数用意して sum
に与える文字列を変えるといいかも。