web-dev-qa-db-ja.com

フットスイッチのキーを再マップします

シンプルなフットスイッチを購入し、キーを他の何かに再マッピングしようとしています。現在、フットスイッチはキーコード56(文字b)にバインドされています。フットスイッチを押すと、xevは次を返します。

KeyPress event, serial 36, synthetic NO, window 0x1000001,
    root 0x81, subw 0x0, time 29926629, (-485,502), root:(713,618),
    state 0x10, keycode 56 (keysym 0x62, b), same_screen YES,
    XLookupString gives 1 bytes: (62) "b"
    XmbLookupString gives 1 bytes: (62) "b"
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x1000001,
    root 0x81, subw 0x0, time 29927029, (-485,502), root:(713,618),
    state 0x10, keycode 56 (keysym 0x62, b), same_screen YES,
    XLookupString gives 1 bytes: (62) "b"
    XFilterEvent returns: False

すべてのキーボードの「b」キーを再マップしたくないので、xkbcompを機能させようとしています。
私はもう試した xkbcomp -i 14 ~/Documents/footswitchlayout.xkb $DISPLAYおよびレイアウトを手動で編集し、xkbcomp -i 1 $DISPLAY ~/Documents/footswitchlayout.xkbしかし、注目すべき変更。まだ「b」キーを入力します。

xinputが返す

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ A4Tech PS/2+USB Mouse                     id=13   [slave  pointer  (2)]
⎜   ↳ RDing FootSwitch1F1.                      id=14   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=16   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Sleep Button                              id=10   [slave  keyboard (3)]
    ↳ Laptop_Integrated_Webcam_2HDM             id=11   [slave  keyboard (3)]
    ↳ Dell Dell QuietKey Keyboard               id=12   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=15   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=17   [slave  keyboard (3)]

私は何を間違えていますか?誰かが私を正しい方向に向けることができますか?

2
Akisame

多くの手間とキーの再バインドがxkbcompで機能しませんでした(他のキーボードでも機能しますが、おそらくフットスイッチがマウスと見なされるため)。問題を完全に解決し、使いやすい小さなターミナルプログラムを見つけました。
プログラムは footswitch by Radoslav Gerganov と呼ばれます。

次のコマンドを実行してインストールできます。

Sudo apt-get install libhidapi-dev
git clone https://github.com/rgerganov/footswitch.git
cd footswitch
make
Sudo make install

インストールが完了したら、Sudo footswitch -rそしてSudo footswitch -k <key>。事前にプログラムされたすべてのキーは、common.c

編集:この再マッピングは、基本的にフットスイッチの再プログラミングであり、ITはPCのフットスイッチに影響します。したがって、これを使用し、Windowsで別のキーが必要な場合は、LinuxまたはMacでフットスイッチキーを変更するたびに、Windows用に再マップする必要があります。

2
Akisame