Windowsマシンを使う

というわけで設定していた。

初期設定としてやったことは、とりあえず

  • Ctrl/CapsLockの交換
  • WSLでfish/powerline/tmuxを使う

だ。これだけのことでメモしておこうと思うとは思わなかった。

Ctrl/CapsLockの交換

複数の方法が紹介されており、「そのためだけにツールを一つ入れる」「レジストリに何かを置く」「もう少し一般的なキーマップツールを入れる」が見つかった。

とりあえず今回はレジストリに謎のバイナリを置くという方法をとった。以下の記事を参考にした。

ascii.jp

さすがに何もわからないまま書いていくと恐ろしいので(ある程度あたりはつくものの)、一応少し調べた。以下のページが参考になる。ただし最後に出てくる解説用の表には(あまり本質的ではないので問題ないが)typoがある。

Scancode Mapによるキー割り当ての変更

4つしかマッピングを追加していないのに「マッピング数」が5になっているが、ここからこのファイルを読み込んでいるルーチンが先頭ポインタだけを受け取って、ヌルが登場するまで読み続けるという方法をとっているのだろうと推測できる。実際にはこの「マッピング数」は格納する領域の長さを指定しているのに違いない……と思ったが、よく考えるとこのファイルの値を読むなら長さわかるじゃん。中では何が起きてるんだ?

ちょいちょい紹介されているctrl2capsとかいうやつの使い方は以下で紹介されていた。

www.atmarkit.co.jp


しかし、昔ラボで使っていた先輩のおさがりのRealForceには裏面にdipスイッチがあって、それでいくつかのキーを交換できたと思うのだが、今のモデルにはなくなってしまったようだ。今私が家で使っているやつは今の最新のものより一回り古いものだが、dipスイッチはついていない。ラボで使っているRealForceは結構新しめのモデルで、こちらはコードを指してからFn + F11とかを押すことでCtrlとCapsLockを交換できるという機能がついている。しかし何台かのマシンを机に置いてときどきキーボードを差し替えるという状況になると、この機能が面倒に思えてならない。引っこ抜くたびにリセットされてしまうので、再設定しないといけないからだ。dipスイッチ、再度実装してくれませんかねえ……。まあ、RealForceは耐久性が高すぎて壊れてくれないので、買い替えることは当分なさそうなんだけど……。

WSLでfishとbobthefishテーマを使う

いまだにpowerline用のフォントを入れるのに苦労してしまう。以前にもRyzenマシンをセットアップしていたときにフォントが壊れてしまって、結局何故かja_JP.UTF-8になっていたlocaleをen_US.UTF-8にしたら直るという感じのことが起きていた。そういえばあれ何でja_JP.UTF-8になってたんだろう? 英語でセットアップした気がするんだけどな。あんまりよく覚えてない。

さて、私はfish shellを使っていて、かつbobthefish-themeを使っているので、powerline本体は必要としていない。なのでフォントだけ導入して、fishを入れたあと fisher install oh-my-fish/bobthefish-theme で完了するはずだった。

apt install fonts-powerlineを使うと機能しなかったので、一度removeしてからgithubpowerline/fontsをダウンロードして導入する。WSLからbash install.shをしたが上手くいかなかったので(おそらくWSLのBash経由でインストールすると、画面をレンダリングしているWindowsからはWSL上にインストールされたフォントが見えていない?)、Powershellから.ps1を実行するんだろうなと思いつつ一応検索する。

同じことで困っている人がいた。

stackoverflow.com

どうやらブログにインストール方法をまとめてくれている人がいるらしい。

slmeng.medium.com

一応翻訳しておく。元のブログは必要以上に丁寧な気がするのでざっくりまとめた。

  1. GitHubpowerline/fontsをクローンする。
  2. Powershellを管理者として起動、持ってきたfonts/ディレクトリにcdする。
  3. Set-ExecutionPolicy Bypassと入力する。
  4. .\install.ps1を実行する。しばらく待つ。
  5. 一応、Set-ExecutionPolicy Defaultでデフォルトに戻しておく。

これでフォントのインストールは完了する。これが終わると、WSLのコンソールからフォントを選択できるようになる。ここで、ウィンドウの上についてるバーの部分を右クリックしないと設定が出せないことに注意。プロパティを開いてフォント設定から「XXX font For powerline」みたいなやつを選ぶ。

するとbobthefishがちゃんと描画される。これでOK。と思っていたら、tmuxを開いた瞬間にまた世界が壊れてしまった。

tmuxの中でFontがリセットされる問題を解決する

ググったら出てきた。

github.com

CodePageを437にするとよいらしい。またレジストリいじるのかよ。

いじったら本当に解決した。

感想

一瞬で終わると思ってたんだが1時間くらい経ってるな。

まだ一日目なのでわからん。でもWSLは結構いい感じですね。最初はSSDオンボードのm2以外に空いてるPCIeに変換ボード差してもう一つ積んでLinuxも入れようと思っていたが、この感じなら必要ないかもな。お金に余裕ができたら差すかも。

ところでGWの最初あたりにGUIが来た!ってなってたけど、まだInsider Previewっぽい? どうしようかな……。

追記

そうそう、これだとインストールしたpowerline用フォントに日本語が入っていないので、日本語のファイルを開くと全て豆腐になっている。日本語対応powerlineフォントを導入することでこれは解決する。

github.com

とはいえ、何が悪いのかはわからないのだが、どれも若干幅の計算がおかしくなって、右側の時刻表示がはみ出して次の行まで来ていたり、最初の1文字がプロンプトに埋まってしまったりした。もうちょっといじってから報告してみようかな。