Linuxを日常的に使う実験ブログ

MacBook ProにLinuxを入れたけどキーボードレイアウトが不便なのでカスタマイズした話

 2024-08-18

 Linux全般

Xorgデスクトップ環境のキーレイアウトをカスタマイズしたい

最近、サポートの切れたMacBook ProにSolusを入れました。Macを使ったことがある方は解ると思いますが、Ctrlキー、Caps Lock, Alt, Super(Macではコマンドキー、WindowsではWinキー)の配列が日本で一般的なJISキーボード配列とは異なります。筆者はNeovimを使うさいにESCの代わりに”Ctrl + [“入力で通常モードに抜ける癖があるので、Ctrlの位置とCaps Lockの位置が入れ替わってしまっているMacの配列では使いづらいと感じていました。

fig1. 筆者のMacBook Proのキーボード MacBook Pro keyboard

そこでsetxkbmapコマンドを用いてキーレイアウトをカスタマイズすることにしました。Macに限らず、Xorgを利用したデスクトップ環境の方は同様の方法でキーボードのカスタマイズが可能なので紹介したいと思います。

setxkbmapで可能なカスタマイズ一覧を見てみよう

まず、setxkbmapで用意しているキーボードカスタマイズのオプションを知っておきましょう。lessコマンドが使える前提ですが、以下コマンドを入力します。

less /usr/share/X11/xkb/rules/base.lst

”/“を押下して”option”を検索します。“!option”以下にカスタムする際に使えるオプションが表示されます。

fig 2. オプション表示例 option list img

オプションの数はとても多くて、全てを紹介するのはとても無理なので実際に使いそうなもののみを少しだけ紹介します。

オプション意味
ctrl:nocapsCaps LockキーをCtrlとして使用
ctrl:swapcapsCtrlキーとCaps Lockキーを入れ替える
ctrl:swap_lalt_lctl左Ctrlキーと左Altキーを入れ替える
altwin:swap_alt_winWinキーとAltキーを入れ替える
altwin:alt_winAltキーをWinキーとAltキー両方に割り振る

今回はこの中のctrl:swapcapsaltwin: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環境では動作しませんのでご注意下さい。