capslockキーを再生/一時停止キーにします
このソリューションは、capslockキーのスキャンコードをカーネル入力ドライバーの別のキーコード(この場合は再生/一時停止)に再マッピングします。
長所
- 既存のシステムファイルを変更する必要はありません(新しいファイルを1つだけ作成する必要があります)
- アプリケーションは、それが実際にcapslockキーであることを知りませんが、実際の再生/一時停止キーが押されたと思います
- capslockを無効にする必要はなく、
xkb
設定を台無しにする可能性もありません
短所
- キーボードごとに個別に実行する必要があります(状況によっては、利点もあります)
前提条件
- evtest(経由でインストール可能
sudo apt-get install evtest
)
手順
ターミナルで、sudo evtest
キーボードを実行して選択します。キーを押しても出力が表示されない場合は、Ctrl+ Cを押して別のデバイスを試してください。選択したデバイスイベント番号を覚えておいてください。後で必要になります。capslockキーを押します。次のような行が表示されます。
Event: time 1529406021.187148, -------------- SYN_REPORT ------------
Event: time 1529406021.218427, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70039
Event: time 1529406021.218427, type 1 (EV_KEY), code 58 (KEY_CAPSLOCK), value 0
MSC_SCAN
行の前のKEY_CAPSLOCK
行の値が必要です。上記の例では、これは70039になりますが、キーボードのスキャンコードはおそらく異なるでしょう。
次に、次のコマンドを実行しますが、Xをevtest
コマンドに使用したデバイスイベント番号に置き換えます。
grep "" /sys/class/input/eventX/device/id/*
...この意志出力bustype
、product
、vendor
およびversion
キーボードの。
名前のファイルを作成65-keyboard-custom.hwdb
中に/etc/udev/hwdb.d/
、以下の内容を(root権限が必要):
evdev:input:b[bustype]v[vendor]p[product]e[version]*
KEYBOARD_KEY_[scancode]=playpause
...どこ
- [バス]、[ベンダー]、[製品]、および[バージョン]には正確に4文字が含まれ、文字は大文字である必要があります
- [スキャンコード]は小文字でなければなりません
evdev:...
行はありません何の前のスペースを
KEYBOARD_KEY...
行があり、正確に1つの前のスペースを
例えば:
evdev:input:b0003v046DpC228e0110*
KEYBOARD_KEY_70039=playpause
最後に、新しい構成をハードウェアデータベースにコンパイルします。
sudo systemd-hwdb update
変更をすぐに適用する場合は、udevに通知します。
sudo udevadm trigger
変更を元に戻したい場合は、作成したファイルを削除して再起動するだけです。
このトピックに関する元の回答で、より詳細な情報を見つけることができます。
vlc --key-play-pause <key-string>
が、私は... VLCがCapsLockキーとして受け入れるという文字列を発見していない