windowsでも快適にPowerlineフォント+fish shellで生活がしたい!


TL;DR

shellの見た目をきれいにして、補完できるようにするとテンションが上って作業効率が上がる
(ほんまか?)

はじめに

Windows10のアップデートでWSL2が使えることに歓喜している方も多いと思います。
せっかくLinuxのシェルを不自由なく使用できる状態になっているので、fishやpowerline-fontを使って、たのしいLinuxシェル生活を遅れるようにしていきましょう。

今回は、WSL2 Ubuntu 20.04へ fish を導入後、 powerlineフォントを適用して見た目がおしゃれになるところまでやります。

こんなかんじのが

おしゃれになります。

関係する資料、リポジトリ類はこちら。
- https://powerline.readthedocs.io/en/latest/
- https://github.com/powerline/fonts
- https://github.com/fish-shell/fish-shell

1. WSL2のインストール

今回は説明を省きます。
Windows10 のアップデートなどを適用して、WSL2を使用できる状態までセットアップしてください。

2. WSL2対応のディストリビューションをインストール

今回はUbuntu2004を使用します。
Storeからインストール。
インストール後、WSL2モードで起動することを確認してください(wsl -l -v)

3. WSL2のセットアップ

今回は、fishでpowerline-fontを使うよう設定していきます。
fish以外にお好みのシェル、bash、zsh等がある場合は適宜読み替えたり、ファイルを変更したりしてください。

また、下記の手順の前に、一度aptをupdateしておくことを忘れずに実施してください。

$ sudo apt update

3.1 powerlineのインストール

python3、pip-3などからインストールすることも可能ですが、今回はaptからインストールします。

$ sudo apt install powerline
$ powerline --version

で、ヘルプ類が出ることを確認

$ cd /usr/share/powerline/bindings
$ ls -l

でfish用のbindingスクリプとがあることを確認して終わり。

3.2 fishの設定

fish shellのインストール

$ sudo apt install fish
$ fish --version

これでfishのインストールが完了です。fishコマンドを打つと、fishに切り替えることができます。
fishは補完、テーマの変更などが可能な便利なシェルです。powerlineを適用せずとも、十分に便利。

fishのカスタマイズ

configファイルの場所に移動

$ cd ~/.config/fish

config.fishファイルが存在しているか、確認

$ ls -l

ない場合は、touchで作成

$ touch config.fish

起動時に、この config.fishが読み込まれるようになっているので、このconfig.fishファイルにpowerlineを使うよ、ということを書く。

参考 : Shell prompts — Powerline beta documentation

vim config.fish
set fish_function_path $fish_function_path "/usr/share/powerline/bindings/fish"
powerline-setup

以上で、設定は終了です。
fishを起動して、見た目が変わっていることを確認してみてください。

※文字化けしている場合は、下記の対処方法を確認してみてください。

今回は説明しませんが、WSL2のシェルでは、fishへのプラグイン導入や、StarShipなどのおしゃれシェル拡張をいれることも可能になりました。

今まで、WindowsのPowershell、GitBash、CygWinだからおしゃれシェルつかえない!!と嘆いていた方も、一度ためしてみてはいかがでしょうか。

追記

実際に使ってると、それなりのサイズのgitリポジトリを見ようとするとクソ重たくなるので使い物になりません。
下記の記事などを参考にしてgitオプションをoffにしたりしてください。
【WSL】Powerline入れたら死ぬほど遅くなった人へ - Qiita


※文字化けしている場合

windows側にpowerlineフォントがインストールされていない場合は文字化けする可能性があります。

こちらのリポジトリから、powerline対応のフォントをダウンロードし、ttfファイル、otfファイルからフォントをインストール。
https://github.com/powerline/fonts

WSL2のターミナルを開いて、左上のマークをクリックして、「既定値」 「プロパティ」をそれぞれ開いて、設定。
フォントを、先程インストールしたPowerlineフォントに設定する。(DejaVu Sans Mono for Powerline、など)

ターミナルを再起動し、再度fishコマンド実行。