前回HHKBのUSレイアウトを設定しましたが、HHKBの左Superキー(◇)が反応しなかったのでxmodmapを使ってキーバインドの変更をしたいと思います。
キー情報を調べる
キー情報を取得するには$ xev
コマンドでアプリケーションを起動した後、白い枠内で該当のキーを押下すれば対応したkeycodeが表示されます。
自分の場合変更したい左Superキーのkeycodeは133でした。
マッピングする
キー情報が取得できたところで、実際にキーバインドの変更を行います。
以下のコマンドで、現在のキーボードマッピングのテキストファイルを作成します。
$ xmodmap -pke > ~/.Xmodmap
マッピングが書かれたテキストファイルを編集し、133番目のkeycodeをSuper_Lとします。
$ vim ~/.Xmodmap
以下のように編集すれば左◇に左Superキーを割り当てることができます。
マッピングの中にはひらがなカタカナや変換無変換などがあるのでkeycodeを調べて好みにマッピングすることができそうです。
以下のコマンドでマッピングをアクティブ化できます。
$ xmodmap .Xmodmap
以上のことができればキーボードはマッピングに設定したとおりになっていると思います。
変更の永続化
上記でキーバインドが変更できていても、変更は一時的なもので再起動すればデフォルトに戻ってしまいます。
なので、変更の永続化をします。
まず編集後の.Xmodmapファイルを適用した現在のxmodmapを、以下のコマンドでxkbファイルに変換します。
$ xkbcomp $DISPLAY $HOME/.xkbmap
その後、再起動のたびにマッピングをアクティブにする起動コマンドを作成します。
以下のuserを実際のユーザープロファイルにして入力します。
$ xkbcomp /home/user/.xkbmap $DISPLAY
これでキーバインド変更の完了です。