この記事は?
- xmodmapコマンドでCapsLockキーをCtrlキーとして動作させる方法について記載する。
- =CapsLockキーをCtrlキーに入れ替える。
- cinnamonとかGNOME3なら標準機能で実現できるが、Xfceではできない様子。
- 動作確認環境
TL/DR;
- Xodmapをインストールする。
- 古いソフトウェアなはずなので、殆どのXWindow環境であるはず。
- ~/.Xmodmapにキーバインド書いてテスト。
- .bashrcに書いてログイン時に自動で読み込むように設定。
手順。
xmodmapをインストール。
- Fedora
sudo dnf install xmodmap
- CentOS7までならyumで。(fedoraならどっちでも良いのだが、いつyumが使えなくなるかは…)
sudo yum install xmodmap
~/.Xmodmapにキーバインドを書いてテスト。
キーマップ設定。(ファイル名は何でも良い。)
cat << '_EOT_' >> ~/.Xmodmap
clear lock
keycode 66 = Control_L
add control = Control_L Control_R
_EOT_
- 自分のノートPCでは、Capslockのkeycodeは66だった。
- xevあたりで調べる。
dnf install xev
-
xev
叩いてkeycodeを調べる。
- terminalでxev叩いた後、xevの画面がアクティブの状態で、該当キーを押下すると以下のようにkeycodeを調べられる。
- 以下のキャプチャの通り、Capslockのkeycodeは66。
キーマップ設定読み込みテスト。
xmodmap ~/.Xmodmap
echo $?
ログイン時にキーマップ設定を自動で読み込むように設定。
cat << '_EOT_' >> ~/.bashrc
xmodmap ~/.Xmodmap
_EOT_
.bashrcの読み込みでコケないかチェック。
余談
- 自分のノートPCではAltキーが反応しないので、以下のように
変換キー
、無変換キー
、カタカナ/ひらがなキー
も全てAltキーとして動作させている。
cat ~/.Xmodmap
clear lock
clear mod1
keycode 100 = Alt_R
keycode 101 = Alt_R
keycode 102 = Alt_R
keycode 66 = Control_L
add mod1 = Alt_R
add control = Control_L Control_R
- 当初はWindowsライクなcinnnamonを愛用していたが、時間と共にマシンスペックが追いつかなくなってしまった…。
- LXDEも快適なのだが、強制的にUSキーボード認識されるバグがある。
- Xfce快適。
参考
https://wiki.archlinux.jp/index.php/Xmodmap