iTerm2のステータスバーに寿司を流す
はじめに
iTerm2ではステータスバーを追加することができます。
Preferences > Profiles > Session > Status bar enabled > Configure Status Bar
からオンにできて、バッテリーの情報やGitのブランチ名などを表示することができます。
さらにver 3.3.0 から、iTerm2を操作するインターフェースとしてPythonのAPIがサポートされるようになり、独自のステータスバーをPythonを使って開発できるようになりました。
これは寿司を流す必要がある案件です(?)。
iTerm2 Python API
Python APIを使うとPythonからiTerm2を制御したりカスタマイズすることができるようになります。
今まではAppleScriptからのみ可能でしたが、Pythonから呼び出すためのAPIが提供されるようになりました。
Status Bar APIを使うことでカスタムのステータスバーを作成することが可能なので今回はこれを使って寿司を流します。
Scriptsの作成
Scripts > Manage > New Python Script
からPython Scriptを作成します。
Scriptsの種類は
- Full Environment
- Long-Running Daemon
にします。
~/Library/ApplicationSupport/iTerm2/Scripts/
配下にpyenv環境を含んだディレクトリが作成されるのでこれを編集していきます。
pyファイルの編集
SushiStatusBarという名前にしたので、下記のファイルを編集します。
~/Library/ApplicationSupport/iTerm2/Scripts/SushiStatusBar/SushiStatusBar/SushiStatusBar.py
まずはStatusBarComponentのオブジェクトを作成します。
knobs = []
component = iterm2.StatusBarComponent(
short_description="Sushi Status Bar",
detailed_description="This is my first iterm2 status bar using python api",
knobs=knobs,
exemplar="Sushi Emoji",
update_cadence=0.5,
identifier="com.github.n-someya.sushi-status-bar")
knobs
はStatusBarの設定を司るクラスの配列を受け取ります。
特に何も指定しなければ、単純にStringを表示するStatusBarとなるようです。
指定することでCheckBoxやSelectBoxのようなものを作ることも可能なようです(試してはいませんが)。
update_cadence
はStatusBarの内容の更新間隔を[s]単位で指定します。
次に、StatusBarの内容を返却するFunctionを定義します。
このFunctionがupdate_cadence
ごとに呼び出されるようです。
@iterm2.StatusBarRPC
async def coro(knobs) -> str:
l_status_count : int = get_count()
l_space : str = ""
for i in range(0, l_status_count):
l_space += " "
return l_space + "🍣"
今回は単純に呼び出し回数をカウントして、その分だけ空白を挿入することで流れている感を出しています。
他のAPIを組み合わせることで、Keyboardイベントごとに呼び出したりもできそうです。
動作確認
~/Library/ApplicationSupport/iTerm2/Scripts/SushiStatusBar/iterm2env/versions/3.7.2/bin/python ~/Library/ApplicationSupport/iTerm2/Scripts/SushiStatusBar/SushiStatusBar/SushiStatusBar.py
で実行してみます。
すると、
Preferences > Profiles > Session > Status bar enabled > Configure Status Bar
で選べるステータスバーに、 Sushi Status Bar
が増えています。
設定してみれば寿司が流れるようになるはずです!
Install
iTerm2が起動したらScriptが実行されるようにします。
mkdir ~/Library/ApplicationSupport/iTerm2/Scripts/AutoLaunch
ln -s ~/Library/ApplicationSupport/iTerm2/Scripts/SushiStatusBar/ ~/Library/ApplicationSupport/iTerm2/Scripts/AutoLaunch/SushiStatusBar
終わりに
意外と簡単にカスタムのステータスバーを作ることができました。
もう少し実用的なものも作ってみたいと思います。
Author And Source
この問題について(iTerm2のステータスバーに寿司を流す), 我々は、より多くの情報をここで見つけました https://qiita.com/some-nyan/items/3d1c20d36c8b3279e327著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .