Caps_LockをF12に再マップするには?

Caps_LockをF12に再マップするには?

私はこれを試しました:

  1. まず試してみました。xmodmap

    clear Lock

    keycode 66 = F12

しかし、問題は、再起動またはログアウトするたびにカスタムマッピングがリセットされることです。したがって、xmodamp ~/.Xmodmap再起動またはログアウトするたびにコマンドを実行する必要があります。自動化しようとしても役に立ちません。 xmodamp ~/.Xmodmap実行には約10秒かかり、この間はコンピュータ全体がブロックされます。つまり、他のプログラムに切り替えたり使用することはできません。

また、xmodmapの使用は廃止されたと聞きました。

  1. 次に試したのはF12ファイルに設定することでした/usr/share/X11/xkb/symbols/pc。私は次のことを試しました: key <CAPS> {»-[ F12»»-]»};(<--は私のコンピュータで»記号が表すものです)。tabsしかし、これはあまり効果がないようです。

Caps Lockファンクションキーを永久に再マッピングする方法はありますかF12

答え1

私はこれが古い質問であることを知っていますが、同じ問題で苦労しています。

私にとって問題は、何かがxmodmap設定を無視しているか(これを行うので、使用する前にコマンドの一部であるかどうかを確認するsetxkbmap)、実行されていないようです。.Xmodmapxmodmap

私は.xinitrc明らかに私の.Xmodmap...を実行する必要があります。

設定はどのように見えますか?

私はi3を使用しており、いわゆる回避策があります。xmodmap ~/.Xmodmapi3-configファイルを実行すると機能します。プラズマ設定を使用すると、CapsLockが正常に戻るため、このソリューションは気に入らません。

私の.Xmodmap外観は次のとおりです。

remove Lock = Caps_Lock
keysym Caps_Lock = F12

xmodmap ~/.Xmodmap時間がかかる問題はないようです。

解決策を見つけることを願っています。解決策があれば教えてください。

ありがとうございます。

答え2

この回答によれば、私に役立ちました。https://unix.stackexchange.com/a/170357/105061

完全性のためにここで説明します。

  1. sudo evtest探すために走る
  • 鍵盤バス行商人製品。次のような行を探してください。
Input device ID: bus 0x3 vendor 0x46d product 0xc31c version 0x110
  • これスキャンコード変更したいキーです。キーを押して値を書き留めます(MSC_SCAN)
Event: time 1678720211.060421, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70039
  1. 形式でリマップを含むファイルを作成します。区切り文字で区切る/etc/udev/hwdb.d/98-custom-keyboard.hwdbために、識別子を大文字に変換する必要がありますb。キー名は小文字でなければなりません。私のファイルは次のように表示されます。vp
evdev:input:b0003v046DpC31C*
 KEYBOARD_KEY_70039=f12       # capslock to f12
  1. データベースの再構築を使用してくださいsudo udevadm hwdb --update
  2. 設定を適用するために使用しますsudo udevadm trigger --sysname-match="event*"
  3. (オプション)再実行して動作してsudo evtestいることを確認します。

関連情報