MacBook ProにLinuxを入れたけどキーボードレイアウトが不便なのでカスタマイズした話
2024-08-18
Xorgデスクトップ環境のキーレイアウトをカスタマイズしたい
最近、サポートの切れたMacBook ProにSolusを入れました。Macを使ったことがある方は解ると思いますが、Ctrlキー、Caps Lock, Alt, Super(Macではコマンドキー、WindowsではWinキー)の配列が日本で一般的なJISキーボード配列とは異なります。筆者はNeovimを使うさいにESCの代わりに”Ctrl + [“入力で通常モードに抜ける癖があるので、Ctrlの位置とCaps Lockの位置が入れ替わってしまっているMacの配列では使いづらいと感じていました。
fig1. 筆者のMacBook Proのキーボード
そこでsetxkbmap
コマンドを用いてキーレイアウトをカスタマイズすることにしました。Macに限らず、Xorgを利用したデスクトップ環境の方は同様の方法でキーボードのカスタマイズが可能なので紹介したいと思います。
setxkbmapで可能なカスタマイズ一覧を見てみよう
まず、setxkbmapで用意しているキーボードカスタマイズのオプションを知っておきましょう。less
コマンドが使える前提ですが、以下コマンドを入力します。
less /usr/share/X11/xkb/rules/base.lst
”/“を押下して”option”を検索します。“!option”以下にカスタムする際に使えるオプションが表示されます。
fig 2. オプション表示例
オプションの数はとても多くて、全てを紹介するのはとても無理なので実際に使いそうなもののみを少しだけ紹介します。
オプション | 意味 |
---|---|
ctrl:nocaps | Caps LockキーをCtrlとして使用 |
ctrl:swapcaps | CtrlキーとCaps Lockキーを入れ替える |
ctrl:swap_lalt_lctl | 左Ctrlキーと左Altキーを入れ替える |
altwin:swap_alt_win | WinキーとAltキーを入れ替える |
altwin:alt_win | AltキーをWinキーとAltキー両方に割り振る |
今回はこの中のctrl:swapcaps
とaltwin:swap_alt_win
を使うことにします。このオプションを使ってカスタマイズするだけでMacに入れたLinuxの操作性が劇的にアップすると思います。
setxkbmapでカスタマイズ
では、setxkbmapを実行してキーボードをカスタマイズしましょう。
setxkbmap -option ctrl:swapcaps -option altwin:swap_alt_win
複数のオプションがある場合は-option
はオプションごとに毎回付ける必要があるので注意してください。もし、他のオプションもつけたい場合は追加して下さい。このコマンドを毎回実行するのは面倒だと思いますので、Xorgの起動スクリプトや~/.bashrc
や~/.zshrc
などの初期実行ファイルで実行すると便利だと思います。
まとめ
今回はMacにSolusを入れた時に筆者が不便だと思ったキーボード配列についてsetxkbmap
で修正したという話でした。筆者はあまりキーレイアウトをデフォルト状態から変更するのは好みではないのですが、MacのCtrlの位置はVimや日本語インプットメソッドの切り替えなどの都合で受け入れることができず、修正することにしました。
尚、setxkbmap
は名前の通りXorg用のコマンドですので、Wayland環境では動作しませんのでご注意下さい。