3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

xmodmapコマンドでCapsLockキーをCtrlキーとして動作させる。

Last updated at Posted at 2020-04-19

この記事は?

  • xmodmapコマンドでCapsLockキーをCtrlキーとして動作させる方法について記載する。
    • =CapsLockキーをCtrlキーに入れ替える。
  • cinnamonとかGNOME3なら標準機能で実現できるが、Xfceではできない様子。
    • ご存知の方いたら教えてください。
  • 動作確認環境
    • Fedora 31 64bit

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。
          image.png

キーマップ設定読み込みテスト。

xmodmap ~/.Xmodmap
echo $?

ログイン時にキーマップ設定を自動で読み込むように設定。

cat << '_EOT_' >> ~/.bashrc 
xmodmap ~/.Xmodmap
_EOT_

.bashrcの読み込みでコケないかチェック。

source ~/.bashrc 
echo $?

余談

  • 自分のノート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快適。
    • ショートカットが一部独特な気がするが…。

参考

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?