tmuxステータスバーに入力ソースを表示させる

tmuxを全画面で使うときの悩み

私はtmuxを使うときはiTerm2を全画面にして使うことが多いのですが、これをするとMacのステータスバーが隠れてしまうため、入力ソースが英数なのか日本語入力なのか一目で分からなくて困る場合があります。
今回作ったプラグインはtmuxのステータスバーに入力ソースを表示させるものです。

現在Macのみの対応ですが、できればUbuntu+iBusにも対応させたいなあと思ってます。

GitHub:
ki-chi/tmux-inputmethod: Tmux plugin showing your input method or keyboard layout

Demo

百聞は一見にしかずということで。
tmuxのステータスバー右上に入力ソースが表示されています。デモ用にフルスクリーンを解除していますが、フルスクリーンにしてもちゃんと使えます。

Demo

インストール

Tmux Plugin Managerを導入していれば一瞬でインストールできます。.tmux.conf

set -g @plugin 'ki-chi/tmux-inputmethod'

と書いて、prefix + I(shift+i)でインストール完了です。ステータスバーの表示については

set-option -g status-right '#{iptmthd}'

のようにstatus-rightstatus-leftのオプションの中に #{iptmthd}の文字列を入れてもらえればOKです。

仕組み

中身は至って簡単で、Macのdefaultsコマンドでライブラリのplistを読んで、grepとsedで整形しているだけです。実際にお使いのMacで

$ defaults read ~/Library/Preferences/com.apple.HIToolbox AppleSelectedInputSources

としていただければ入力ソースが出力されるかと思います。詳しくはGitHubのscripts/check_inputmethod.shをご覧ください。
(sedが使いこなせれば、もう少し効率的に書く方法があるような気がします…)

プラグインの作り方自体はtmuxを使いこなす / プラグイン開発で機能を拡張 | Developers.IOが大変参考になりました。

何かありましたらissueなどで報告していただければ幸いです。

参考