powerlineを使ってtmuxのステータスラインをカスタマイズする

powerlineのtmuxの設定ファイルを作成する

  • pyenvのpipで導入したpowerlineのtmuxに関する設定ファイルをコピーする
    • 今回は設定ファイルの名前を mystatusline.json にします
cp ~/.pyenv/versions/3.7-dev/lib/python3.7/site-packages/powerline/config_files/themes/tmux/default.json ~/dotfiles/tmux/mystatusline.json
  • vim ~/dotfiles/tmux/mystatusline.json で以下のように編集します
    • CPUの使用率とバッテリーの表示が新規で表示されます
    • 日付と時計が一つのセグメントで表示されます
{
    "segments": {
        "right": [
            {
                "function": "powerline.segments.common.sys.uptime",
                "priority": 50
            },
            {
                "function": "powerline.segments.common.sys.system_load",
                "priority": 50
            },
            { # CPU使用率の表示を追加
                "function":"powerline.segments.common.sys.cpu_load_percent"
            },
            { # バッテリーを表示を追加
                "function":"powerline.segments.common.bat.battery"
            },
            { # カレンダーと時計を1つのセグメントに編集
                "function":"powerline.segments.common.time.date",
                "name": "time",
                "args": {
                    "format": "%Y/%m/%d %H:%M:%S"
                }
            },
            {
                "function": "powerline.segments.common.net.hostname"
            }
        ]
    }
}

作成した設定ファイルを設置する

  • 作成した設定ファイルをシンボリックリンクで設置する
cd ~/.pyenv/versions/3.7-dev/lib/python3.7/site-packages/powerline/config_files/themes/tmux/
ln -s ~/dotfiles/tmux/mystatusline.json

作成した設定ファイルを読み込ませる

  • mystatusline.json が読み込まれるように設定を変更する
    • vim ~/.pyenv/versions/3.7-dev/lib/python3.7/site-packages/powerline/config_files/config_files/config.json
27 "tmux": {
28         "colorscheme": "default",
29         "theme": "mystatusline"
30 },
  • 上記の設定を保存すると即時反映される

補足

  • .config にシンボリックリンクを貼っておく設定を触る時は楽かもしれない
    • 以下のコマンドでシンボリックリンクを作成
cd ~/.config
ln -s ~/.pyenv/versions/3.7-dev/lib/python3.7/site-packages/powerline/config_files/ powerline

参考元