tmux
コンピュータのホスト名に基づいて色を動的に選択したいと思います。複数のコンピュータでホストを共有しているため、tmux.conf
特に複数のホストで同時に作業するときは、各ホストに独自の色を割り当てるのが視覚的に便利です。これは可能ですか?
ベストアンサー1
私は次のようなシェル機能を思いついた。
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
}
$HOST
この関数は次のように使用できます(はいの場合、結果はtrueですLOL
)。
$hash_string256 $HOST
113
$hash_string256 $HOST 127
240
接続するには、起動スクリプトtmux
と設定スクリプトを使用できます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
ホスト名の場合とに設定されLOL
ます。数字127があるため、背景色は前景色と同じではなく、互いに離れています。status-fg
colour113
status-bg
colour240
$(hash_string256 $HOST 127)
GNU以外のシステムの場合
システムにmd5
交換md5sum
ラインがある場合
hash_value=$(printf "%s" "$1" | md5sum |tr -d " -"| tr "a-f" "A-F")
に取り替えることができる
hash_value=$(printf "%s" "$1" | md5 | tr "a-f" "A-F")