0

タッチスクリーンデバイスでxrandr-oleft | right | inverse|normalを使用してX環境を回転させました。タッチ以外はすべて正常に機能しています。画面上で指を動かすと、指の絶対座標を取り、回転が逆の場合はカーソルを反対方向に動かします。ですから、実際に上にスライドすると、下にスライドします。したがって、絶対座標ではなく相対座標を読み取るようにタッチスクリーン入力を構成する方法はありますか。タッチスクリーンドライバーはevdevです。

よろしく、リーヴォン

4

1 に答える 1

1

向きも変更されない限り、相対/絶対はまだあなたが望むことをしません。Xサーバーに異なる方向のポインターデバイスを解釈するように指示する一般的なメカニズムはありません。どういうわけか、基盤となるデバイスに別の方法でレポートを表示させる必要があります。ただし、基盤となるデバイスと通信するための一般的なメカニズムがあります。

ラップトップにWacomスタイラスが組み込まれています。通常の向きに戻すには、次のようにします。

xsetwacom set "stylus" RotateNONE

基になるドライバーと直接通信します。次のこともできます。

xinputset-int-propスタイラス'WacomRotation''8' 0

これは、XInputの「プロパティ」を介してXドライバーと通信し、同じことを行います。

「evdev」は幸いなことに、そのような再マッピングを可能にするものです。

xinput list、スタイラスに加えて、ラップトップのトラックポイントと外部マウスが表示されます。これらは両方ともevdevを介して実行されます。

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ stylus                                    id=6    [slave  pointer  (2)]
⎜   ↳ eraser                                    id=7    [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=14   [slave  pointer  (2)]
⎜   ↳ HID 0430:0100                             id=11   [slave  pointer  (2)]
...

xinput list-props 'HID 0430:0100'

Device 'HID 0430:0100':
        Device Enabled (135):   1
        Device Accel Profile (251):     0
        Device Accel Constant Deceleration (252):       1.000000
        Device Accel Adaptive Deceleration (254):       1.000000
        Device Accel Velocity Scaling (255):    10.000000
        Evdev Reopen Attempts (299):    10
        Evdev Axis Inversion (301):     0, 0
        Evdev Axes Swap (303):  0
        Axis Labels (304):      "Rel X" (143), "Rel Y" (144)
        Button Labels (305):    "Button Left" (136), "Button Middle" (137), "Button Right" (138), "Button Wheel Up" (139), "Button Wheel Down" (140)
        Evdev Middle Button Emulation (306):    2
        Evdev Middle Button Timeout (307):      50
        Evdev Wheel Emulation (308):    0
        Evdev Wheel Emulation Axes (309):       0, 0, 4, 5
        Evdev Wheel Emulation Inertia (310):    10
        Evdev Wheel Emulation Timeout (311):    200
        Evdev Wheel Emulation Button (312):     4
        Evdev Drag Lock Buttons (313):  0

xinput set-int-prop 'HID 0430:0100' 'Evdev Axis Inversion' 8 1 1外部マウスを反転します。

通常に設定するには:

xinput set-int-prop 'HID 0430:0100' 'Evdev Axis Inversion' 8 0 0
xinput set-int-prop 'HID 0430:0100' 'Evdev Axes Swap' 8 0

90度回転:

xinput set-int-prop 'HID 0430:0100' 'Evdev Axis Inversion' 8 1 0
xinput set-int-prop 'HID 0430:0100' 'Evdev Axes Swap' 8 1

反転:

xinput set-int-prop 'HID 0430:0100' 'Evdev Axis Inversion' 8 1 1
xinput set-int-prop 'HID 0430:0100' 'Evdev Axes Swap' 8 0

反対方向に90度回転します。

xinput set-int-prop 'HID 0430:0100' 'Evdev Axis Inversion' 8 0 1
xinput set-int-prop 'HID 0430:0100' 'Evdev Axes Swap' 8 1

もちろん、プロパティを配置するデバイスを選択する方法が必要になります。

于 2011-02-06T10:47:55.427 に答える