windows terminalでfishを入れる


windows terminalって言っていますが、大半はlinux初心者であることによる問題だと思います

Windows Terminalのインストール

windowsのバージョンに注意。versionによっては入らない。最新版ならだいたい入る。
あと忘れずにubuntuのインストールを。
コントロールパネル→プログラム→Windowsの機能の有効化または無効化→windows subsystem for linux を有効化。
一回開けてセットアップ後、ユーザー名とパスワードを設定。

windows terminalの設定

デフォルトだとcopyもpasteもctrl+c ctrl+vに対応してないので、キーバインディングに追加する必要あり。

profiles.json
"keybindings": [{
                 "command": "copy",
                 "keys":["ctrl+c"]
                },
                {
                 "command": "paste",
                 "keys":["ctrl+v"]
                }]

より詳しいのはここにhttps://github.com/microsoft/terminal/blob/master/doc/cascadia/SettingsSchema.md
ubuntuをデフォルトにする。上の方 defaultProfileの値をUbuntuのguid(同じ画面profile内name Ubuntuのguidを参照)にする。これでデフォルトがUbuntuのshellになる。
次、最初のworking directoryをuserにするのに、Ubuntuのprofileに次の一文を追加

profiles.json
"commandline": "wsl.exe ~ -d Ubuntu"

これでおk(参考:https://qiita.com/bindi/items/6aa20a157d83a6efd86f) 。あとcolorSchemeOne Half Dark 、いいぞ(参考:https://qiita.com/hideki0145/items/04582a26baf3d81632c1)。
他のfontFaceとかの設定はまた後で。

そういえば

/mnt/c/ :仮想的なcドライブ。ここ以下が「目に見える」アクセスできるところ
C:\Users\[ユーザー名]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home:linuxのホームディレクトリの場所。エクスプローラーで入ろうと思ったらAppDataが見るからなかったんですけど、これどこにあるんですか。
参考https://qiita.com/kalafinalice/items/70a76d35398ab11af778

brewを入れる

公式サイトを見よう!
https://docs.brew.sh/Homebrew-on-Linux
この通り入れたらなんとかなる、はず。
どっちかって言うと1行目をコピペしたあとはterminal上のログを見てインスコしたほうがいいような気がする。sudo apt-get install build-essential とか入れないとうまくいかなかったような、いったような……(5時間前のことなので記憶が曖昧)

fishを入れる

$ brew install fish

でおk。問題はこのあと。PATHどうやって通すか(私は毎回忘れるんですけど、これ、みんな覚えてるんですか……?)
ワンチャン、途中でわけわかんなくなってlinux側のbrew wrapper入れてる支障が出てる可能性があるので、ここは割と問題出そうな箇所

$ echo /home/linuxbrew/.linuxbrew/bin/fish >> /etc/shells
$ chsh -s /home/linuxbrew/.linuxbrew/bin/fish

とりあえずfishがデフォルトに。このあとは何したっけな~~

fish側のPATHを通す

$ set -U fish_user_paths YOURPATH $fish_user_paths

が通し方の基本。

$ set -U fish_user_paths /usr/local/bin $fish_user_paths
$ set -U fish_user_paths /home/linuxbrew/.linuxbrew/bin $fish_user_paths

多分これでbrewのPATHが通るはず。あとはfishのセットアップだけ。powerlineのフォントとか

fishのpowerline font問題

bob the fishを適用

$ curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish
$ fisher add oh-my-fish/theme-bobthefish

みんな大好きpowerline。でもここでみんな大嫌い文字化けが。

Powerlineフォントを入れる

sudo apt-get install fonts-powerlineで入れたんですけど、どこに行ったのかわかんなくなった+保存されたのがlinux側でwinからは一切認識してくれなかったのでこの方法は諦めました。

$ cd /mnt/c/Users/USERNAME/Desktop
$ git clone https://github.com/powerline/fonts.git --depth=1

これでデスクトップにフォルダができてるはずなので、入って入れたいフォントを右クリック→インストールでwindowsのフォントに入る。
次はwindows terminal の設定。対応するjsonの変数名はfontFace

profiles.json
        {
            "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
            "hidden": false,
            "name": "Ubuntu",
            "source": "Windows.Terminal.Wsl",
            "colorScheme": "One Half Dark",
            "fontFace": "Source Code Pro for Powerline",
            "commandline": "wsl.exe ~ -d Ubuntu"
        }

めんどくさいので全部のせました。fontFaceのところが重要。私のやつバグっててRobotoだと入らなかったのでsource code proにしておきました。なんで?

powerline終わり。もう二度としたくないんですけど、これどうやったら回避できますかね……

以上

お疲れさまでした。

やっぱいいですね、fish