よこやま

2023.08.24

ターミナルをクールにする

はじめに

皆様初めまして、インフラチームのよこやまです。
あ、えっと、インフラチームとっても実はメンバーが一人でして、そんななか AWS を用いたインフラについてのいろいろな業務に加えて SRE 的な話も出てきてさぁたいへん
あー、こんなときに AWS に詳しいエンジニアがもっといてくれたら……。
というわけでそこのあなた!弊社ではエンジニアを大募集中です!!
今すぐ右上をポチッと、お願いします!(YouTuber 風に)

失礼、少々取り乱しました。
ちなみにエンジニアは本当に大募集中でして、ご興味がりましたら是非見てみていただけるとうれしいです。

気を取り直しまして……。
どんなことを書こうかなと悩んでいたのですが、結構な時間をターミナルとにらめっこするのに費やしていますので、今回はターミナルをクールにしていこうと思います。

tmux のステータスラインをクールに

ターミナルは iTerm2 を使い、マルチプレクサに tmux を導入しています。
tmux のステータスライン(最下部)をいじるとかなりクールになるのではと思い、今回はここをいじっていこうと思います。

しかしいろいろといじったことがる方ならお分かりかと思いますが、苦労したわりには結果がいまいちになったりします。
なのでそんな悲しい結果を生み出さないよう、既にるものを活用していきたいところです。
そんなときにぴったりな Powerline を導入していきたいと思います。

Powerline の導入

Powerline とは Python で書かれた Vim のステータスラインをクールにするもので、tmux をはじめ他でも使えるようになったものです。
過去には tmux-powerline というものもったようですが現在は非推奨となっています。
検索すると両者が混ざっていて少々分かりづらかったので、導入方法についても軽くまとめます。

っても pip コマンドでサクッとインストール出来ました。

CPU のステータスも取りたかったので psutil もインストールします。

ちなみに私の macOS ではインストール後に OS の再起動が必要でした。

tmux の設定

tmux の設定ファイル ~/.tmux.conf に設定を書いていきます。
まずは tmux で読み込むファイルの居場所を特定します。

ここで表示されたパスに /powerline/bindings/tmux/powerline.conf を足してあげたものが読み込むファイルですので source で指定します。

私の環境では /opt/homebrew/lib/python3.11/site-packages でしたので以下のように設定しました。

ステータスに表示するものが多い場合は status-left-length と status-right-length を調整してみて下さい。

なお、私の環境では元々以下のように色指定をしていましたが、Powerline で表示されるものと食い違って変な感じになってしまったので削除しています。

クールにカスタマイズ

~/.config/powerline 以下に設定ファイルを配置してカスタマイズします。
しかしこれが結構大変そう、ということでこちらをまるまる参考にさせていただきました。

天気が表示されない問題

標準で現在の天気を表示する機能がるのですが、IP アドレスから地域を特定するサービスが終了、更に Yahoo! の天気 API も終了ということで機能しませんでした。

天気が表示されないとクールじゃない!ということで調べてみたところ、 powerline-owmweatherう OpenWeather の無料 API を利用するものが使えましたのでこちらを利用します。

API を使うためには登録が必要ですが、無料で作れるので登録します。
発行された API 用のキーを設定に書いてあげます。

また前述のように IP アドレスから地域を特定するサービスが終了しており地域の自動判別に失敗しますので、明示的に “都市名, 国の2文字コード” を渡してあげる必要がります。

クールになりました!

最終的に .config/powerline/themes/tmux/tmux-theme.json に設定したものはこんな感じです!

補足: Powerline 対応のフォントが必要

Powerline では特殊な記号などを使っており、Powerline 対応のフォントが必要です。
いろいろりますが、今回は Cica というフォントを導入してみました。
「ダウンロード」から zip をダウンロードしてきてインストールします。

tmux のステータスラインは手動で設定しようとするとなかなか骨の折れる作業になりがちですが、Powerline によって簡単にクールになるのでお勧めです。
皆様もクールなターミナル生活をエンジョイして下さい!
ここまでお読みいただき、ありがとうございました。