1

ホスト名ごとにRGBカラーを提供する簡単なソリューションを探しています。

これをiTerm2のタブの色の設定に使用する予定なので、カラーピケットに基づいて正しいホストを簡単に見つけることができます。

現在、3バイトすべてを使用することはできません。これは、違いが微妙すぎる場合があり、暗すぎて明るすぎる色を禁止する必要があるためです。

これに基づいて、各色に5ビットを安全に使用できると想定することしかできません。これにより、2 ^ 15=128色のようなものを選択できます。数値をR、G、B値に変換するための式を処理できます;)

したがって、必要なのは、文字列(ホスト名)の15ビットハッシュを取得する単純なコードです。

これがbashで実行可能であれば、それは完璧ですが、Pythonのバリアントも受け入れます。 

このソリューションは、追加のutilsやライブラリをインストールしなくても、Debian、RedHat、OSXで動作する必要があります。

4

2 に答える 2

1
#!/bin/bash
MD5="md5sum"
if [[ $OS == 'darwin' ]]; then MD5="md5" ; fi
HASH=`hostname -s | ${MD5}`
echo -n -e     "\033]6;1;bg;red;brightness;$((0x${HASH:0:2}))\a\033]6;1;bg;green;brightness;$((0x${HASH:2:2}))\a\033]6;1;bg;blue;brightness;$((0x${HASH:4:2}))\a"
于 2012-11-01T15:38:15.463 に答える
0

color引数なしで使用するときにランダムな色を自動的にサポートする

~/.profileまたはに次の行を追加します~/.zshrc

PRELINE="\r\033[A"

function random {
    echo -e "\033]6;1;bg;red;brightness;$((1 + $RANDOM % 255))\a"$PRELINE
    echo -e "\033]6;1;bg;green;brightness;$((1 + $RANDOM % 255))\a"$PRELINE
    echo -e "\033]6;1;bg;blue;brightness;$((1 + $RANDOM % 255))\a"$PRELINE
}

function color {
    case $1 in
    green)
    echo -e "\033]6;1;bg;red;brightness;57\a"$PRELINE
    echo -e "\033]6;1;bg;green;brightness;197\a"$PRELINE
    echo -e "\033]6;1;bg;blue;brightness;77\a"$PRELINE
    ;;
    red)
    echo -e "\033]6;1;bg;red;brightness;270\a"$PRELINE
    echo -e "\033]6;1;bg;green;brightness;60\a"$PRELINE
    echo -e "\033]6;1;bg;blue;brightness;83\a"$PRELINE
    ;;
    orange)
    echo -e "\033]6;1;bg;red;brightness;227\a"$PRELINE
    echo -e "\033]6;1;bg;green;brightness;143\a"$PRELINE
    echo -e "\033]6;1;bg;blue;brightness;10\a"$PRELINE
    ;;
    *)
    random
    esac
}

#color    #uncomment to enable automatically set random color when tab created

新しいiterm2タブが作成されるたびに、コマンドcolorを使用して自動的に新しい/ランダムな色を付けます。

iterm2-tabの色を作成するたびに自動的に設定する場合は、.justを追加し、 /colorの最後または直後に追加します。.zshrc.profilefunction color

Host 1color行がcolor red;に変わります。にhost 2color行がに変わりますcolor blue; ホストが多い場合は、例のように色設定を追加するだけです。

次に、対応するホストsshターミナルを開くたびに、タブの色が必要に応じて変わります。

于 2021-12-14T10:08:22.540 に答える