ThinkPad T14にWSL2とWindows Terminalを導入して開発環境を整備しました
長年プライベートではMacを使っていましたが、AMDのRyzenがコスパが良いと聞きThinkPad T14 AMDを購入しました。
注文してから約2週間程で手元に届きました。6コア12スレッド、メモリ16GBで10万円程度です。安い。
MacではiTerm2とVim/tmuxを使ってプログラミングをしていたため、ThinkPadでも同様の開発環境を整えてMacからWindowsへの移行を実施しました。
具体的には、WSL2とWindows Terminalの導入、zsh/Vim/tmux等の開発環境のセットアップです。
詳しい手順の解説記事は既にたくさん存在するので、本記事では詰まったところや個人的な設定についてご紹介します。
- WSL2のインストール
- wsl --set-default-version 2実行時のエラー
- Ubuntu20.04とWindows Terminalのインストール
- Windows Terminalの設定
- 開発環境の設定
- CapsLockのCtrl化
- キーリピートの設定
- クリップボード共有
- まとめ
WSL2のインストール
基本的にはWindowsの公式ドキュメントの手順を進めるだけでWSL2をインストールすることができます。
WSL2を利用するには「Windows 10 May 2020 Update」に更新する必要があります。これが結構時間かかります。
wsl --set-default-version 2
実行時のエラー
PowerShellでwsl --set-default-version 2
を実行したら下記のエラーが出ました。
エラー: 0x1bc WSL2との主な違いについては、https://aka.ms/wsl2を参照してください
こちらの対処方法は公式ドキュメントに記載されていました。 Linuxカーネル更新プログラムをダウンロード・インストールすることで解決しました。
Ubuntu20.04とWindows Terminalのインストール
Windows Storeからダウンロード・インストールします。
ターミナルアプリはWindowsでは大して使ったことがなく特にこだわりはなかったので、Microsoft純正のWindows Terminalを導入しました。
Preview版ではなく正式リリースされている方です。
Windows Terminalの設定
settings.json
というファイルを編集することで見た目やキーバインドのカスタマイズができます。
設定項目については公式ドキュメントに詳しく書かれています。
ちなみに、settings.json
自体は/mnt/c/Users/ユーザー名/AppData/Local/Packages/Microsoft.WindowsTerminal_8wekyb3d8bbwe/LocalState/settings.json
というパスに存在します。
メモ帳等慣れないエディタで編集するのはつらいので、ホームディレクトリにシンボリックリンクを張ってVimで編集しています。
開発環境の設定
zsh、oh-my-zsh、Vim、tmuxなどをインストール・設定します。 私はdotfilesに設定ファイルや手順書をまとめてGithubで管理しているので、まずはgitをインストールしてdotfilesをクローンしてきます。
フォントはPowerlineとdeviconに対応するために、Nerd Fontをインストールします。 以下の公式ページから好みのフォントをダウンロードします。
展開した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" }
諸々設定した結果、以下のような画面になりました。なかなか良い感じです。
CapsLockのCtrl化
Vimを使っているとCapsLockはCtrlの方が使いやすいので、CapsLockにCtrlを割り当てるためにkeyswapというアプリケーションを導入しました。
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自体の動作も非常に快適です。