ThinkPad T14にWSL2とWindows Terminalを導入して開発環境を整備しました

長年プライベートではMacを使っていましたが、AMDRyzenコスパが良いと聞きThinkPad T14 AMDを購入しました。

注文してから約2週間程で手元に届きました。6コア12スレッド、メモリ16GBで10万円程度です。安い。

f:id:urawa72h:20200821160621p:plain

MacではiTerm2とVim/tmuxを使ってプログラミングをしていたため、ThinkPadでも同様の開発環境を整えてMacからWindowsへの移行を実施しました。

具体的には、WSL2とWindows Terminalの導入、zsh/Vim/tmux等の開発環境のセットアップです。

詳しい手順の解説記事は既にたくさん存在するので、本記事では詰まったところや個人的な設定についてご紹介します。



WSL2のインストール

基本的にはWindowsの公式ドキュメントの手順を進めるだけでWSL2をインストールすることができます。

docs.microsoft.com

WSL2を利用するには「Windows 10 May 2020 Update」に更新する必要があります。これが結構時間かかります。



wsl --set-default-version 2実行時のエラー

PowerShellwsl --set-default-version 2を実行したら下記のエラーが出ました。

エラー: 0x1bc
WSL2との主な違いについては、https://aka.ms/wsl2を参照してください

こちらの対処方法は公式ドキュメントに記載されていました。 Linuxカーネル更新プログラムをダウンロード・インストールすることで解決しました。

docs.microsoft.com



Ubuntu20.04とWindows Terminalのインストール

Windows Storeからダウンロード・インストールします。

ターミナルアプリはWindowsでは大して使ったことがなく特にこだわりはなかったので、Microsoft純正のWindows Terminalを導入しました。

Preview版ではなく正式リリースされている方です。



Windows Terminalの設定

settings.jsonというファイルを編集することで見た目やキーバインドのカスタマイズができます。 設定項目については公式ドキュメントに詳しく書かれています。

docs.microsoft.com

ちなみに、settings.json自体は/mnt/c/Users/ユーザー名/AppData/Local/Packages/Microsoft.WindowsTerminal_8wekyb3d8bbwe/LocalState/settings.jsonというパスに存在します。

メモ帳等慣れないエディタで編集するのはつらいので、ホームディレクトリにシンボリックリンクを張ってVimで編集しています。



開発環境の設定

zsh、oh-my-zshVim、tmuxなどをインストール・設定します。 私はdotfilesに設定ファイルや手順書をまとめてGithubで管理しているので、まずはgitをインストールしてdotfilesをクローンしてきます。

フォントはPowerlineとdeviconに対応するために、Nerd Fontをインストールします。 以下の公式ページから好みのフォントをダウンロードします。

www.nerdfonts.com

展開したzipファイルの中にあるファイルをすべて選択し、右クリックで「インストール」を選択することでWindowsで当該フォントが使えるようになります。

今回はMononoki Nerd Font Monoを設定してみました。settings.jsonのUbuntu20.04プロファイルの部分のfontFaceにフォント名を設定します。

{
    "guid": "{XXXXXXXXXXXXXXXXXXXXXXXXXXXXX}",
    "hidden": false,
    "name": "Ubuntu-20.04",
    "source": "Windows.Terminal.Wsl",
    "commandline": "wsl.exe ~ -d Ubuntu-20.04",
    "fontFace" : "Mononoki Nerd Font Mono"
}

諸々設定した結果、以下のような画面になりました。なかなか良い感じです。

f:id:urawa72h:20200821161953p:plain



CapsLockのCtrl化

Vimを使っているとCapsLockはCtrlの方が使いやすいので、CapsLockにCtrlを割り当てるためにkeyswapというアプリケーションを導入しました。

www.vector.co.jp

CapsLockのCtrl化はcaps2ctrlなど他にも手段があるようです。個人の好みに合わせて検討してみてください。



キーリピートの設定

キーボードを押したときにはじめて文字が表示されるまでの遅延と同じキーを連続して押したときの遅延を可能な限りなくし、Vimでのキーボード操作を爆速にします。

これはレジストリを操作してカスタマイズしました。 誤った設定をするとPCが動作しなくなる恐れがあるようなので、ご注意ください。

Win + rで「ファイル名を指定して実行」を開きregeditと入力してレジストリエディタを開きます。 HKEY_CURRENT_USER > Control Panel > Accessibility > Keyboard Response で設定を変更します。

AutoRepeatDeley:  200 // ここは個人の好み
AutoRepeatRate: 20  // ここは個人の好み
BounceTime: 0
DelayBeforeAcceptance: 0
Flags: 59 // このフラグの意味はちゃんと理解していない



クリップボード共有

Vim/tmux/WSL2/Windows間でクリップボードを連携するために、VcXsrcをインストールする必要がありました。

ここらへんはMacだと全く苦労することなくできるので、実現するのにかなり苦戦しました。

いろいろな記事を漁って寄せ集めた情報で何とか実現できた状態のため、改めて整理して記事にしたいと思います。。



まとめ

最後にも記載したように、Vimとtmuxを使っている場合はクリップボードの共有が非常にややこしかったです。いまだに細かい仕組みを理解してきれていません。

まだDockerを入れてないのですべて完了したわけではありませんが、ひとまず慣れたツールでプログラミングはできるようになりました。

PC自体の動作も非常に快適です。