やりたいこと
「Ubuntu + Apple フルキーボードにおいて、udev + xremap + xdotool で「テンキーのカンマ」を入力できるようにする」と同じ。Appleの日本語フルキーボードで「テンキーのカンマ」を入力できるようにしたい。
上記記事でも実現できるが、そうとう捻じくれた方法なのと、xdotoolを介するので、少々打鍵がもたつく。
そういえば、xmodmapもあったな、とxmodmapで「テンキーのカンマ」を実装する。
Ubuntu 22.04および24.04で確認した。
xmodmapの準備
vi ~/.xmodmap
keycode 129 = KP_Separator
以下で確認。
xmodmap ~/.xmodmap
xmodmap.desktopで永続化
ファイルに実行権限を与える。
chmod +x ~/.xmodmap
autostartディレクトリがなかったら作る。
vi ~/.config/autostart/xmodmap.desktop
USERNAME
の部分は自分の環境に合わせること。
[Desktop Entry]
Name=run xmodmap at startup
Exec=xmodmap /home/USERNAME/.xmodmap
Type=Application
再起動して確認。
xmodmap.desktopで永続化がうまく行かない場合
理由はよくわからないのだけど、試行錯誤しても.config/autostartでうまく行かない場合がある。その場合は、Ubuntuの「自動起動するアプリケーション」を使う。
vi ~/.xmodmap.autostart.sh
#!/bin/bash
sleep 3;
xmodmap ~/.xmodmap
ファイルに実行権限を与える。
chmod +x ~/.xmodmap.autostart.sh
Ubuntuの「自動起動するアプリケーション」に/home/YOURUSERNAME/.xmodmap.autostart.sh
を登録する。
再起動して確認。
マシンスペックによるのかもしれないけど、これでもうまく行かない場合は、sleepの長さを増やすとうまく行くことがある。
どうやら、Ubuntuの起動プロセスでxmodmapがibusの起動より早いとibusがxmodmapを上書きしてしまうらしい(詳しくは未確認)。ので、sleepでもろもろ起動しあとにxmodmapが動くようにすると良いらしい。