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의 파일 -> 새 탭).

상태손가락이 예상대로 작동합니다.:

  • 웹페이지의 모든 것(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가 마우스 왼쪽 클릭으로 화면 터치를 처리하는지 확인하는 방법? 디버깅하는 것을 도와주실 수 있나요?

추신: 기본 멀티 터치 기능: 마우스 오른쪽 버튼 클릭 및 스크롤을 위한 두 손가락; 인치 줌이 작동하지만(키 누르기/떼기 37을 에뮬레이션) 까다로우며 여러 번 시도해야 합니다.

PPS: Wayland가 제스처를 더 잘 지원하는 것 같다고 읽었지만 실제로는 멋진 것이 필요하지 않습니다. 새로운 것을 배우기에는 너무 늙었기 때문에 Xorg를 고수하고 싶습니다. Plasma의 Wayland는너무 어리다.

user@debian:~$ echo $XDG_SESSION_TYPE
x11

편집하다: 더 많은 내용을 읽었으므로 wayland이제 시도해 볼 의향이 있으며 지금까지의 경험은 혼합되어 있습니다. 핀치 투 줌을 포함한 터치 및 기본 제스처가 작동하지만 이후 일부 펜 기능도 손실됩니다. 잠시 동안 응답성이 저하됩니다. 속도가 느려지고 오류가 발생합니다. 나는 그것에 대해 더 많은 실험을 할 계획입니다. 어쩌면 데비안 불안정 버전이 더 나을 수도 있습니다.

답변1

내 생각엔 내가 가지고 있는 것 같아이 KDE 버그, 기본 설정은 무시하므로이 Qt 버그. 5.23에서 해결된 것으로 표시되었으며 여전히 5.20이 있습니다.

제안된 해결 방법은 터치스크린 제스처를 완전히 포기하는 것인데, 일부는 Qt가 아닌 애플리케이션(오른쪽 클릭 및 두 손가락 스크롤)에서 작동하기 때문에 안타까운 일입니다.

이를 수행하려면 현재 KDE 5.20에서 다음을 수행해야 합니다(오류 페이지의 지침은 약간 오래되었습니다).

  1. sudo apt install kde-config-tablet
  2. 설정->입력->드로잉 태블릿으로 이동합니다. 제 경우에는 화면이 데이터베이스에 없어서 자동으로 인식이 안 됐는데, 쉽게 추가할 수 있었어요.
  3. 화면이 나타나면 탭으로 전환하여 Touch선택을 취소 Enable Gestures하되 Enable 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

이러한 결합된 설정을 사용하면 손가락 터치 스크롤(한 손가락이면 충분함)을 사용하거나 핀치로 Firefox, Okular, Xournal, Xournal++, Konqueror를 포함한 대부분의 응용 프로그램을 확대/축소할 수 있습니다.

핀치 투 줌 외에도 두 손가락 스크롤이나 마우스 오른쪽 버튼 클릭과 같은 적절한 제스처가 여전히 부족합니다.

관련 정보