ドットをctrl-enterにマッピングするためのudevルール

ドットをctrl-enterにマッピングするためのudevルール

スキャンコード070037を使用して、キーを左のCtrl + Enterに再マップする必要があります。これまで、次の内容で90-custom-presenter.hwdbファイルを生成し、入力に正常に再マッピングしました。

# Logitech Presenter
keyboard:usb:b0003v046DpC515*
 KEYBOARD_KEY_070037=enter

lsusbが私に提供しているので、これが正しいと思います。

Bus 003 Device 018: ID 046d:c515 Logitech, Inc. Cordless 2.4 GHz Presenter Presentation remote control

evtestは、私が探しているスキャンコードが70037であることを確認します。

Event: time 1521756520.173637, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70037
Event: time 1521756520.173637, type 1 (EV_KEY), code 52 (KEY_DOT), value 1
Event: time 1521756520.173637, -------------- SYN_REPORT ------------
Event: time 1521756520.277633, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70037
Event: time 1521756520.277633, type 1 (EV_KEY), code 52 (KEY_DOT), value 0
Event: time 1521756520.277633, -------------- SYN_REPORT ------------

ルートとして実行した後、udevadm hwdb --updateこれは入力のために以前の「ドット」キーをマップすると思いましたが、そうではありません。これは二つの質問を提起する。

  1. この地図はなぜ予想したものとは異なりますか?
  2. 期待どおりに動作したら、Ctrl-Enterにどのようにマッピングしますか?

私はUbuntu 14.04 LTSを実行しています。

ベストアンサー1

私のDebian 9と同じバージョンのudevを使用または使用しない可能性があるLinuxディストリビューションを特定していないため、これがシステムに適用される場合と適用されない場合があります。

私のシステムには、/lib/udev/hwdb.d/60-keyboard.hwdbいくつかの有用な情報があります。

# Note: The format of the "evdev:" prefix match key is a
# contract between the rules file and the hardware data, it might
# change in later revisions to support more or better matches, it
# is not necessarily expected to be a stable ABI.
#
# Supported hardware matches are:
#  - Generic input devices match:
#      evdev:input:bZZZZvYYYYpXXXXeWWWW-VVVV
...

keyboard:usbリストにはハードウェアのマッチングに関する言及はありません。

したがって、Linuxディストリビューションとバージョンに関連する文書がない場合、または実際のシステムベース.hwdbファイルがそのkeyboard:usb構文を使用していない場合は、次のように置き換えてくださいkeyboard:usb:b0003v046DpC515*

evdev:input:b0003v046DpC515*

プレゼンターの「ドット」キーをControl + Enterに設定する際の問題は、.hwdbファイルがスキャンコードを(単一の)キーコードにのみマッピングできることです。キーコードシーケンスを挿入できません。この手順でCtrl + Enterにキーをマップするには、実際のキー押下イベントを変更することに加えて、追加のイベントを挿入し、そのキードロップイベントに対して同じことを行う必要があります。

デスクトップ環境には、お客様のニーズに合ったより一般的なキーマップ/ショートカット機能が含まれる場合があります。まず、hwdbルールを使用してプレゼンターのキーストロークを一部の未使用のキーコードにマップし、デスクトップ環境の機能を使用してそのキーコードをControl + Enterにマップする必要があります。

おすすめ記事