ホスト名に基づいてtmuxステータス行の色を設定する

ホスト名に基づいてtmuxステータス行の色を設定する

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-fgcolour113status-bgcolour240$(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")

おすすめ記事