Lambdaカクテル

ソフトウェア開発者です.玉石混淆です.

HHKBで快適なSSKライフを送るためにXmodmapでキーバインドを変更した話

どーも。椛川です。

諸事情でMBPが使えないのでLinux Mintでプログラミングの類をやっているわけでして、そうなるとどうしてもキーバインドが気になってきます。僕はオシャレさんなのでUS配列のHHKBを使っていて、@キーが数字の「2」の位置にあります。これとシフトキーを併用して入力しなければなりません。

さてこの@キーですが、SKK+AZIK*1では平仮名片仮名変換に使われています。普通のJIS配列では問題無く入力できるのですが、US配列では微妙に入力しづらく、毎回シフトキーに指を伸ばさなければなりません。これはカタカナ語が頻出するプログラマ界隈では致命的な問題です。これを解決する方法をメモのついでに書こうと思います。

前提条件

-xmodmapが使える環境であること

効果

任意のキーバインドを弄ることができる。ただし、SandS*2のような複雑な設定はできない。

以下の設定例では、右シフトキーが「@」に置換される。

手順

1.まず~/.Xmodmapに以下の通り記述する。

clear Shift
add Shift = Shift_L
keycode 62 = at

1行目ではシフトキーの役割を果たす修飾キーの割り当てをすべて解除している。2行目では左シフトキーをシフトキーとして割り当てし、3行目ではキーコード62(右シフト)を'@'記号に対応させている。

シフトキー等の修飾キーは「シフトキーであること」を示すグループにキーが登録されているため、1、2行目でこれらを解除しなければならない。修飾キーの変更については、以下のページが参考になる。

xmodmap - ArchWiki

2.次に~/.profileに以下の通り追記する。.bashrcや.zshrcでもよい。

xmodmap ~/.Xmodmap

3.次回ログイン時には自動的に設定が適用されるが、即座に変更を反映させたいときは以下のコマンドを実行する。

$ source ~/.profile

めでたしめでたし。SandSやそれと同じ原理でコントロールキーとエスケープキーを同じキーに割り当てしても面白いのではないだろうか。Emacs使いにとっては便利だと思う。毎号付いてくる.Xmodmapを組み立てて君だけのキーバインドを作ろう!特に右側の修飾キー!

xmodmapとは、X window systemのキーボード関連のマッピングを修正するツールだ。同じツールを使って、マウスのボタンのマッピングを修正することもできる。

*1:日本語特有の二重母音(ai, ei, ou, etc.)や頻出する語彙(こと、です、する)などにショートカットを割り当てる入力方式。この効果が顕著な例では「しんかんせん」を'szkzsd'と入力することができる。

*2:Space and Shift。スペースバーを押下している時はシフトキーとして扱い、そのままスペースキーが離されたときはスペースキーが打鍵されたものとして扱う。SKKと併用すると便利。