iterm2の背景色を変更するシェルスクリプトをつくってみた

10月 4, 2023

どもども。断捨離により部屋着が枯渇しそうなsaisaiです。


皆さんはどのようなターミナルを使用しておりますでしょうか。


僕はiterm2を利用しています。昨日も多いし使い勝手もいいですよね!


iterm2に限ったことではないですが、ターミナルを使用する上で注意しないといけないのは"このターミナル画面でどの環境を操作しているか"を見間違えないことだと思います。


とくに僕は複数のターミナルで様々な環境を開きっぱなしにしてしまうことがあり、いつか自分が操作するターミナルを間違え大きな事故を起こさないかと不安になってしまいました。


そこで今回はiterm2の背景色を変更するシェルスクリプトを作成し、コマンド一つで背景色を変更できるようにしてターミナルを識別できるようにしたいと思います。

背景色を変更するスクリプト

今回作成したスクリプトはこちらです。

#!/bin/bash

while getopts rgbn arg; do
    case "$arg" in
        r) echo -ne '\033]1337;SetColors=bg=200\a';;
        g) echo -ne '\033]1337;SetColors=bg=003300\a';;
        b) echo -ne '\033]1337;SetColors=bg=003366\a';;
        n) echo -ne '\033]1337;SetColors=bg=000\a';;
        *) echo -e "choose from -r(red) -g(green) -b(blue) -n(black)";;
    esac
done

背景色を変更するコマンドに関してはこちらのサイトを参考にさせていただきました。


もともとiterm2の背景色は下記のコマンドで変更できます。

$ echo -ne '\033]1337;SetColors=bg=カラーコード\a';;

こちらを応用し、指定するオプションに応じて背景色を変更できるようにしています。


シェルスクリプトにオプションを使用できるようにするには"getopts"を使用します。詳しくは下記記事を参照ください。

【shellscript】getoptsでシェルスクリプトに引数機能を実装!【Linux】


.bashrc(.zshrc)などにaliasコマンドを設定してお使いください!例としては以下のようになります。

alias change-bgc='スクリプトへのパス'

使用方法はこんな感じ。(背景色を赤色に変更する場合)

change-bgc -r

背景色を変更するコマンド、設定するオプションを変更してお好み通りにお使いいただければと思います。

まとめ

参考記事ではSSH接続した際にターミナルの背景色を変更していたりしていますし、カスタム次第で様々な挙動を実装できそうです。


実際今回のスクリプトはSSH接続などしてローカル外に出てしまうと使用できません。まだまだ改善の余地がありそうです。


皆さんの事故を防止する一助となりますように…。


最後まで読んでいただきありがとうございました!


↓シェルスクリプト

shellscript

Posted by CY