Tôi đã đưa ra chức năng shell sau:
hash_string256() {
# Hash $1 into a number
hash_value=$(printf "%s" "$1" | md5sum |tr -d " -"| tr "a-f" "A-F")
# Add the hash with $2 and modulo 256 the result
# if $2 == "" it is 0
printf "ibase=16; (%s + %X) %% 100\n" $hash_value "$2" | bc
}
Hàm này có thể được sử dụng như thế này (Kết quả là đúng nếu $HOSTcó LOL):
$hash_string256 $HOST
113
$hash_string256 $HOST 127
240
Để kết nối nó với tmuxbạn có thể sử dụng một tập lệnh bắt đầu và cấu hình tmux.
#!/bin/sh
SESSION=$USER
hash_string256() {
hash_value=$(printf "%s" "$1" | md5sum |tr -d " -"| tr "a-f" "A-F")
printf "ibase=16; (%s + %X) %% 100 \n" $hash_value "$2" | bc
}
tmux -2 new-session -d -s $SESSION
tmux set -g status-fg colour$(hash_string256 $HOST)
tmux set -g status-bg colour$(hash_string256 $HOST 127)
# Attach to session
tmux -2 attach-session -t $SESSION
Đối với hostname LOLnó sẽ thiết lập status-fgđể colour113và status-bgđể colour240. Số 127 trong $(hash_string256 $HOST 127)đó là có nên nền sẽ không giống với màu nền trước và cách xa nhau.
Đối với không có hệ thống GNU
Nếu hệ thống của bạn có md5thay vì md5sumdòng
hash_value=$(printf "%s" "$1" | md5sum |tr -d " -"| tr "a-f" "A-F")
có thể được thay thế bằng
hash_value=$(printf "%s" "$1" | md5 | tr "a-f" "A-F")
.tmux.confđã nhận được"cut -c3- ~/.tmux.conf | bash -s apply_configuration" returned 1. Tuy nhiên, thanh trạng thái của tôi thực sự chuyển sang màu đỏ !!!