Debian Bullseye: 指でタッチスクリーンをタッチしても Qt/Plasma アプリケーションでオブジェクトをクリックしません。

Debian Bullseye: 指でタッチスクリーンをタッチしても Qt/Plasma アプリケーションでオブジェクトをクリックしません。

私はKDEと無料ドライバを含むLive CDを使ってThinkpad X1 Yoga Gen 6でDebian Bullseyeをテストしています(debian-live-11.5.0-amd64-kde+nonfree.iso)。ハードドライブを削除する前に、必要なすべてが正しく機能していることを確認したいと思います。

指でオブジェクトやボタンをタッチすると、期待どおりにクリックされず、ほとんどが選択されることを除いて、すべてが機能しているようです。これはプラズマ/Qtに関連するすべてのもので発生するようです。

  • プラズマパネル(アプリ実行プログラムを含む)のアイコンをタッチすると、カーソルがその位置に配置されます。
  • KDEアプリケーション/設定ダイアログボックスのボタンを押すと選択されますが、クリックしません。
  • KDEアプリケーションでメニューをタッチすると展開されますが、メニュー項目をタッチするとメニュー項目のみが選択されます(例:Konquerorのファイル - >新しいタブ)。

状態指が期待どおりに機能します。:

  • Webページのすべて(HTMLボタン、YouTubeなどのHTML5コントロール)
  • KDE以外のアプリケーション(Firefoxなど)のすべて
  • ウィンドウタイトルバーボタン(最小化/最大化/閉じる)みんなアプリケーション。

付属のWacomデジタルペンは常に期待どおりに機能します(オブジェクトをタッチするとクリックされます)。

関連する可能性があるいくつかの情報は次のとおりです。

KDEプラズマバージョン:5.20.5

KDEフレームワークバージョン:5.78.0

Qtバージョン:5.15.2

user@debian:~$ uname -a
Linux debian 5.10.0-18-amd64 #1 SMP Debian 5.10.140-1 (2022-09-02) x86_64 GNU/Linux
user@debian:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:        11
Codename:       bullseye

user@debian:~$ sudo Xorg -version

X.Org X Server 1.20.11
X Protocol Version 11, Revision 0
Build Operating System: linux Debian
Current Operating System: Linux debian 5.10.0-18-amd64 #1 SMP Debian 5.10.140-1 (2022-09-02) x86_64
Kernel command line: BOOT_IMAGE=(hd0,gpt4)/live/vmlinuz-5.10.0-18-amd64 boot=live quiet splash fsck.mode=skip persistence --
Build Date: 05 August 2022  08:00:36AM
xorg-server 2:1.20.11-1+deb11u2 (https://www.debian.org/support) 
Current version of pixman: 0.40.0
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.

user@debian:~$ lsmod|grep wacom
wacom                 131072  0
usbhid                 65536  1 wacom
hid                   147456  7 i2c_hid,wacom,usbhid,hid_multitouch,hid_sensor_hub,intel_ishtp_hid,hid_generic

関連dmesgライン:

user@debian:~$ sudo dmesg|grep -i wacom
[    2.483787] input: Wacom HID 5278 Pen as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-WACF2200:00/0018:056A:5278.0002/input/input15
[    2.483979] input: Wacom HID 5278 Finger as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-WACF2200:00/0018:056A:5278.0002/input/input16
[    2.484211] wacom 0018:056A:5278.0002: hidraw1: I2C HID v1.00 Mouse [WACF2200:00 056A:5278] on i2c-WACF2200:00
user@debian:~$ sudo dmesg|grep -i screen
[    2.245919] input: WACF2200:00 056A:5278 Touchscreen as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-WACF2200:00/0018:056A:5278.0002/input/input9

xinputそしてevdev

user@debian:~$ cat /proc/bus/input/devices 

[...]

I: Bus=0018 Vendor=056a Product=5278 Version=0100
N: Name="Wacom HID 5278 Pen"
P: Phys=i2c-WACF2200:00
S: Sysfs=/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-WACF2200:00/0018:056A:5278.0002/input/input15
U: Uniq=
H: Handlers=mouse2 event7 
B: PROP=2
B: EV=1b
B: KEY=1e03 0 0 0 0 0
B: ABS=1000d000003
B: MSC=1

I: Bus=0018 Vendor=056a Product=5278 Version=0100
N: Name="Wacom HID 5278 Finger"
P: Phys=i2c-WACF2200:00
S: Sysfs=/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-WACF2200:00/0018:056A:5278.0002/input/input16
U: Uniq=
H: Handlers=mouse3 event8 
B: PROP=2
B: EV=b
B: KEY=400 0 0 0 0 0
B: ABS=260800000000003

[...]

user@debian:~$ xinput|grep Wacom
⎜   ↳ Wacom HID 5278 Pen stylus                 id=13   [slave  pointer  (2)]
⎜   ↳ Wacom HID 5278 Finger touch               id=14   [slave  pointer  (2)]
⎜   ↳ Wacom HID 5278 Pen eraser                 id=20   [slave  pointer  (2)]
user@debian:~$ xinput list-props 14
Device 'Wacom HID 5278 Finger touch':
        Device Enabled (188):   1
        Coordinate Transformation Matrix (190): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        Device Accel Profile (319):     0
        Device Accel Constant Deceleration (320):       1.000000
        Device Accel Adaptive Deceleration (321):       1.000000
        Device Accel Velocity Scaling (322):    10.000000
        Device Node (311):      "/dev/input/event8"
        Wacom Tablet Area (363):        0, 0, 12064, 7540
        Wacom Rotation (364):   0
        Wacom Pressurecurve (365):      0, 0, 100, 100
        Wacom Serial IDs (366): 21112, 1, 3, 0, 0
        Wacom Serial ID binding (367):  0
        Wacom Pressure Threshold (368): 0
        Wacom Sample and Suppress (369):        2, 4
        Wacom Enable Touch (370):       1
        Wacom Enable Touch Gesture (372):       1
        Wacom Touch Gesture Parameters (373):   530, 235, 250
        Wacom Tool Type (374):  "TOUCH" (381)
        Wacom Button Actions (375):     "Wacom button action 0" (376), "Wacom button action 1" (377), "Wacom button action 2" (378)
        Wacom button action 0 (376):    1572865
        Wacom button action 1 (377):    1572866
        Wacom button action 2 (378):    1572867
        Device Product ID (312):        1386, 21112
        Wacom Debug Levels (380):       0, 0

画面をタッチすると正しいイベントが生成されるようです。画面に触れるととbutton press 1表示されます。button release 1xinputevtest

user@debian:~$ xinput test 14 
motion a[0]=8704 a[1]=4839 a[2]=0 a[3]=0 a[4]=0 a[5]=0 
button press   1 a[0]=8704 a[1]=4839 a[2]=0 a[3]=0 a[4]=0 a[5]=0 
motion a[0]=8701 a[1]=4836 a[2]=0 a[3]=0 a[4]=0 a[5]=0 
button release 1 

user@debian:~$ sudo evtest /dev/input/event8
Input driver version is 1.0.1
Input device ID: bus 0x18 vendor 0x56a product 0x5278 version 0x100
Input device name: "Wacom HID 5278 Finger"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 330 (BTN_TOUCH)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value   8833
      Min        0
      Max    12064
      Resolution      40
    Event code 1 (ABS_Y)
      Value   1925
      Min        0
      Max     7540
      Resolution      40
    Event code 47 (ABS_MT_SLOT)
      Value      0
      Min        0
      Max        9
    Event code 53 (ABS_MT_POSITION_X)
      Value      0
      Min        0
      Max    12064
      Resolution      40
    Event code 54 (ABS_MT_POSITION_Y)
      Value      0
      Min        0
      Max     7540
      Resolution      40
    Event code 57 (ABS_MT_TRACKING_ID)
      Value      0
      Min        0
      Max    65535
Properties:
  Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)
Event: time 1668884040.469294, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 770
Event: time 1668884040.469294, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 9293
Event: time 1668884040.469294, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 3886
Event: time 1668884040.469294, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1668884040.469294, type 3 (EV_ABS), code 0 (ABS_X), value 9293
Event: time 1668884040.469294, type 3 (EV_ABS), code 1 (ABS_Y), value 3886
Event: time 1668884040.469294, -------------- SYN_REPORT ------------
Event: time 1668884040.471569, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 9282
Event: time 1668884040.471569, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 3888
Event: time 1668884040.471569, type 3 (EV_ABS), code 0 (ABS_X), value 9282
Event: time 1668884040.471569, type 3 (EV_ABS), code 1 (ABS_Y), value 3888
Event: time 1668884040.471569, -------------- SYN_REPORT ------------
Event: time 1668884040.477811, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 9279
Event: time 1668884040.477811, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 3896
Event: time 1668884040.477811, type 3 (EV_ABS), code 0 (ABS_X), value 9279
Event: time 1668884040.477811, type 3 (EV_ABS), code 1 (ABS_Y), value 3896
Event: time 1668884040.477811, -------------- SYN_REPORT ------------
Event: time 1668884040.488292, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1668884040.488292, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1668884040.488292, -------------- SYN_REPORT ------------

それで問題はプラズマ/KDE/Qtとの相互作用にあると思います(GTKとHTMLが期待通りに動作するためです)。

だから私の質問は、Plasma/Qt/KDEがマウスの左クリックで画面タッチを処理するかどうかを確認する方法?デバッグするのに役立ちますか?

PS:基本的なマルチタッチ機能:右クリックとスクロールのための2本の指。インチズームは機能しますが(キーを押す/離す37をエミュレートする)、トリッキーで何度も試す必要があります。

PPS:Waylandはジェスチャーをよりよくサポートしているようだと読んでいますが、実際には素晴らしいものは必要ありません。新しいことを学ぶには古すぎるので、Xorgに固執したいです。プラスマのウェイランドは若すぎる

user@debian:~$ echo $XDG_SESSION_TYPE
x11

編集する: より多くの内容を読んだので、wayland今試してみたいと思っており、これまでの経験は混在しています。ピンチツーズームを含むタッチと基本的なジェスチャーが機能しますが、それ以降の一部のペン機能も失われます。しばらく応答性が低下します。速度が遅くなり、エラーが発生します。私はそれについてもっと実験するつもりです。たぶんDebianの不安定バージョンがより良いかもしれません。

答え1

私の考えでは、私が持っていると思います。このKDEのバグ、デフォルト設定は無視されるのでこのQtのバグ。 5.23で解決済みとマークされており、まだ5.20があります。

提案された回避策はタッチスクリーンジェスチャーを完全に放棄することですが、一部はQtではなくアプリケーション(右クリックと2本指スクロール)で動作するため残念です。

これを行うには、現在KDE 5.20で次のことを行う必要があります(エラーページの指示は少し古いです)。

  1. sudo apt install kde-config-tablet
  2. 設定 - >入力 - >図面タブレットに移動します。私の場合、画面がデータベースにないため、自動的に認識できませんでしたが、簡単に追加できました。
  3. 画面が表示されたら、タブに切り替えて選択を解除しますが、Touch開いたままにEnable GesturesEnable Touchます。
  4. サインアウトしてログインすると、タッチスクリーンは期待どおりに機能します。

Xorgの設定を変更する必要はありません。

必要に応じて、同じ目的を達成するためにコマンドライン代替を使用できます。

$ xsetwacom --set 'Wacom HID 5278 Finger touch' Gesture off

(デバイス名を変更する必要があります。デバイス名を確認してくださいxsetwacom --list。)

また、Firefoxでタッチスクリーンを有効にして強制するには、Xinput2次の行をに追加します/etc/security/pam_env.conf

MOZ_USE_XINPUT2 DEFAULT=1

これらの組み合わせ設定を使用すると、指のタッチスクロール(1本の指で十分です)を使用したり、ピンチでFirefox、Okular、Xournal、Xournal ++、Konquerorを含むほとんどのアプリケーションをズームしたりできます。

ピンチツーズームに加えて、2本指のスクロールや右クリックなどの適切なジェスチャーがまだ欠けています。

関連情報