Score:3

ปุ่มกลางของเมาส์วางแม้หลังจากเลื่อนด้วย TrackPoint (บน Lenovo Wireless TrackPoint Keyboard II)

ธง uy

ฉันมี Thinkpad X250 ที่ใช้ Linux Mint 20.1 Cinnamon (5.4.0-74-generic)
ฉันเพิ่งซื้อ a เลอโนโว Thinkpad Trackpoint Wireless II แป้นพิมพ์ และฉันรู้สึกประหลาดใจในเชิงบวกที่ทุกอย่างทำงานได้ดีเมื่อใช้การเชื่อมต่อบลูทูธ (นอกจากนี้ยังมี USB-Dongle ทางเลือกที่เป็นกรรมสิทธิ์ซึ่งมาพร้อมกับมันด้วย)

ฉันเคยใช้ปุ่มกลางของเมาส์ ("ปุ่ม 2") เพื่อคัดลอก/วาง (X "หลัก") และเลื่อนเมื่อกดค้างไว้แล้วย้าย TrackPoint

แต่ด้วยแป้นพิมพ์ใหม่ บัฟเฟอร์หลักจะถูกวางแม้ว่าฉันเพิ่งทำการเลื่อน
ดังนั้นฉันจึงใช้เวลาหลายวันเพื่อค้นหาว่าอะไรคือความแตกต่างระหว่างเมาส์/TrackPoint ในตัวและเมาส์ไร้สายตัวใหม่ แต่ตอนนี้ฉันติดขัดอยู่บ้าง

พฤติกรรมของ X250 TrackPoint ในตัวที่ "ดี"

อุปกรณ์ inbuilt เรียกว่า "TPPS/2 IBM TrackPoint" ตาม xinput
เมื่อฉันวิ่ง การทดสอบ xinputฉันเห็นว่าการคลิกปุ่มกลางไม่ปรากฏขึ้นทันที
เมื่อฉันปล่อยปุ่มตอนนี้ ฉันจะได้รับ "การกดปุ่ม 2" และ "การกดปุ่ม 2" ตามกันโดยตรง
หากฉันย้าย TrackPoint ขณะที่กดปุ่มค้างไว้ การปล่อยปุ่มจะไม่ทำให้เกิดการกระทำ "ปุ่ม 2" ใดๆ
(มีการกระทำ "การเคลื่อนไหว" และ "ปุ่ม bress/release [4-7]" เกิดขึ้นเนื่องจากการเคลื่อนไหว TrackPoint)

ปัญหาเกี่ยวกับคีย์บอร์ดไร้สาย

ส่วนที่เกี่ยวข้องกับเมาส์/แทร็กพอยต์ของแป้นพิมพ์บลูทูธจะแสดงเป็น "เมาส์ TrackPoint Keyboard II"
การเปรียบเทียบ "xinput list-props" กับอุปกรณ์ทั้งสอง ความแตกต่างเพียงอย่างเดียวคือวิธีการเลื่อน:

ไร้สาย:

libinput วิธีเลื่อนที่เปิดใช้งาน (316): 0, 0, 0
libinput Scroll Method เปิดใช้งานค่าเริ่มต้น (317): 0, 0, 0

สร้างขึ้น:

libinput เปิดใช้งานวิธีการเลื่อน (316): 0, 0, 1
libinput Scroll Method เปิดใช้งานค่าเริ่มต้น (317): 0, 0, 1

แม้ว่าด้วยเหตุผลบางอย่าง (ดูด้านล่าง) ฉันไม่สามารถเปลี่ยนคุณสมบัติ "libinput Scroll Method Enabled Default (317)" ได้ แต่ฉันลองตั้งค่าทั้งสองสำหรับ "libinput Scroll Method Enabled (316)"
หากฉันเข้าใจเอกสารอย่างถูกต้อง ค่าทั้งสามนี้จะเลือกวิธีการเลื่อนและสอดคล้องกับการเลื่อนแบบ "สองนิ้ว", "ขอบ" และ "บนปุ่ม"
https://wayland.freedesktop.org/libinput/doc/latest/scrolling.html#scrolling

ผลลัพธ์ของ การทดสอบ xinput มีรายละเอียดดังนี้:
ด้วยคุณสมบัติ libinput Scroll Method Enabled (316): 0, 0, 0 (ค่าเริ่มต้น):
การกดปุ่มกลางของเมาส์ลงทันทีจะทำให้เกิด "การกดปุ่ม 2" และวางบัฟเฟอร์หลัก
ตอนนี้ฉันสามารถย้าย TrackPoint (ทำให้เกิดการกระทำ "การเคลื่อนไหว" และ "ปุ่ม bress/lease [4-7]") และทันทีที่ฉันปล่อยปุ่ม ฉันเห็น "การปลดปุ่ม 2"

ด้วยคุณสมบัติ libinput Scroll Method Enabled (316): 0, 0, 1:
การกดปุ่มกลางของเมาส์ลงจะไม่ปรากฏขึ้นในทันที
แต่ไม่ว่าฉันจะย้าย TrackPoint หรือไม่ ทันทีที่ฉันปล่อยปุ่ม จะทำให้เกิดทั้ง "การกดปุ่ม 2" และ "การกดปุ่ม 2" ตามกันทันที ซึ่งการกดปุ่มหลังจะเป็นการเรียกการวาง

ไม่ว่ากรณีใด ๆ, libinput ดีบักเหตุการณ์ แสดงปุ่ม/ข้อมูล TrackPoint ทันที

นอกจากนี้ยังมีสวิตช์ "Windows/Android" ที่น่ากลัวที่ด้านหลังแป้นพิมพ์
สิ่งนี้ไม่ได้เปลี่ยนแปลงอะไรเลย (ฉันคิดว่ามันเปลี่ยนพฤติกรรมของปุ่มฟังก์ชั่นพิเศษเท่านั้น)

ตามที่กล่าวไว้ข้างต้น แป้นพิมพ์เสนอให้เชื่อมต่อโดยใช้ดองเกิล USB แทน ลักษณะการทำงานแตกต่างกันเล็กน้อยที่นี่ แต่ยังคงวางอยู่แม้ในขณะที่เลื่อน:

libinput วิธีเลื่อนที่เปิดใช้งาน (316): 0, 0, 0
"การกดปุ่ม 2" (และวางบัฟเฟอร์) จะปรากฏขึ้นทันทีที่กดปุ่ม
"การปลดปุ่ม 2" จะปรากฏขึ้นทันทีที่ TrackPoint ถูกย้ายหรือปล่อยปุ่ม

libinput เปิดใช้งานวิธีการเลื่อน (316): 0, 0, 1
ไม่มีอะไรเกิดขึ้นเมื่อกดปุ่มลง
"การกดปุ่ม 2", "การปลดปุ่ม 2" และการวางบัฟเฟอร์จะเกิดขึ้นต่อเนื่องกันทันทีที่ TrackPoint ถูกย้ายหรือปล่อยปุ่ม

ฉันหวังว่าฉันจะสามารถอธิบายปัญหาได้อย่างชัดเจน ฉันไม่แน่ใจว่าจะทำอย่างไรต่อไป /usr/share/X11/xorg.conf.d/40-libinput.conf ของฉันไม่ถูกแตะต้องและดูเหมือนว่าจะเชื่อมต่อไดรเวอร์ "libinput" กับอุปกรณ์ใด ๆ (ดูด้านล่าง)

เนื่องจาก libinput ดีบักเหตุการณ์ แสดงข้อมูลฮาร์ดแวร์ทั้งหมดแบบเรียลไทม์ ฉันไม่คิดว่าคีย์บอร์ดหรือ BlueZ เป็นตัวการ
แต่ฉันก็ไม่รู้เหมือนกันว่าข้อมูลจากคีย์บอร์ดไร้สายและจากอุปกรณ์ในตัวนั้นแตกต่างกันอย่างไรและที่ไหนและอย่างไร
มีความเป็นไปได้ในการแก้ไขจุดบกพร่องอื่นๆ นอกเหนือจาก libinput และ ซินพุต?\

ขอบคุณมาก ๆ สำหรับความช่วยเหลือของคุณ!

$ xinput list-props "เมาส์ TrackPoint Keyboard II"
อุปกรณ์ 'TrackPoint Keyboard II Mouse':
    อุปกรณ์ที่เปิดใช้งาน (165): 1
    เมทริกซ์การแปลงพิกัด (167): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput เปิดใช้งานการเลื่อนตามธรรมชาติ (311): 0
    libinput Natural Scrolling เปิดใช้งานค่าเริ่มต้น (312): 0
    วิธีการเลื่อน libinput ที่มีอยู่ (315): 0, 0, 1
    libinput วิธีเลื่อนที่เปิดใช้งาน (316): 0, 0, 0
    libinput Scroll Method เปิดใช้งานค่าเริ่มต้น (317): 0, 0, 0
    ปุ่มเลื่อน libinput (329): 2
    libinput ปุ่มเลื่อนปุ่มเริ่มต้น (330): 2
    libinput Middle Emulation เปิดใช้งาน (321): 0
    libinput Middle Emulation เปิดใช้งานค่าเริ่มต้น (322): 0
    ความเร็ว libinput Accel (323): 0.000000
    libinput Accel ความเร็วเริ่มต้น (324): 0.000000
    มีโปรไฟล์ libinput Accel (331): 1, 1
    libinput Accel Profile เปิดใช้งาน (332): 1, 0
    libinput Accel Profile เปิดใช้งานค่าเริ่มต้น (333): 1, 0
    libinput มือซ้ายเปิดใช้งาน (325): 0
    libinput มือซ้าย เปิดใช้งาน ค่าเริ่มต้น (326): 0
    libinput ส่งโหมดเหตุการณ์ที่มีอยู่ (288): 1, 0
    libinput ส่งโหมดเหตุการณ์ที่เปิดใช้งาน (289): 0, 0
    libinput Send Events Mode Enabled Default (290): 0, 0
    โหนดอุปกรณ์ (291): "/dev/input/event23"
    รหัสผลิตภัณฑ์ของอุปกรณ์ (292): 6127, 24801
    libinput ปุ่มล็อคการลาก (327): <ไม่มีรายการ>
    libinput เปิดใช้งานการเลื่อนแนวนอน (328): 1

$ xinput list-props "TPPS/2 IBM TrackPoint"
อุปกรณ์ 'TPPS/2 IBM TrackPoint':
    อุปกรณ์ที่เปิดใช้งาน (165): 1
    เมทริกซ์การแปลงพิกัด (167): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput เปิดใช้งานการเลื่อนตามธรรมชาติ (311): 0
    libinput Natural Scrolling เปิดใช้งานค่าเริ่มต้น (312): 0
    วิธีการเลื่อน libinput ที่มีอยู่ (315): 0, 0, 1
    libinput เปิดใช้งานวิธีการเลื่อน (316): 0, 0, 1
    libinput Scroll Method เปิดใช้งานค่าเริ่มต้น (317): 0, 0, 1
    ปุ่มเลื่อน libinput (329): 2
    libinput ปุ่มเลื่อนปุ่มเริ่มต้น (330): 2
    libinput Middle Emulation เปิดใช้งาน (321): 0
    libinput Middle Emulation เปิดใช้งานค่าเริ่มต้น (322): 0
    ความเร็ว libinput Accel (323): 0.000000
    libinput Accel ความเร็วเริ่มต้น (324): 0.000000
    มีโปรไฟล์ libinput Accel (331): 1, 1
    libinput Accel Profile เปิดใช้งาน (332): 1, 0
    libinput Accel Profile เปิดใช้งานค่าเริ่มต้น (333): 1, 0
    libinput มือซ้ายเปิดใช้งาน (325): 0
    libinput มือซ้าย เปิดใช้งาน ค่าเริ่มต้น (326): 0
    libinput ส่งโหมดเหตุการณ์ที่มีอยู่ (288): 1, 0
    libinput ส่งโหมดเหตุการณ์ที่เปิดใช้งาน (289): 0, 0
    libinput Send Events Mode Enabled Default (290): 0, 0
    โหนดอุปกรณ์ (291): "/dev/input/event17"
    รหัสผลิตภัณฑ์ของอุปกรณ์ (292): 2, 10
    libinput ปุ่มล็อคการลาก (327): <ไม่มีรายการ>
    libinput เปิดใช้งานการเลื่อนแนวนอน (328): 1

$ ซินพุต
â¡ ตัวชี้หลักเสมือน id=2 [ตัวชี้หลัก (3)]
â â³ Virtual core ตัวชี้ XTEST id=4 [ตัวชี้สเลฟ (2)]
â â³ Synaptics TM3075-002 id=12 [ตัวชี้ทาส (2)]
â â³ TPPS/2 IBM TrackPoint id=13 [ตัวชี้สเลฟ (2)]
â â³ TrackPoint Keyboard II Mouse id=19 [ตัวชี้รอง (2)]
â â³ TrackPoint Keyboard II Consumer Control id=22 [ตัวชี้รอง (2)]
⣠id แป้นพิมพ์หลักเสมือน = 3 [แป้นพิมพ์หลัก (2)]
    â³ รหัสแป้นพิมพ์ XTEST แกนเสมือน = 5 [แป้นพิมพ์รอง (3)]
    â³ รหัสปุ่มเปิดปิด = 6 [แป้นพิมพ์รอง (3)]
    â³ Video Bus id=7 [แป้นพิมพ์สเลฟ (3)]
    â³ ปุ่มสลีป id=8 [แป้นพิมพ์รอง (3)]
    â³ AT ชุดที่แปล 2 แป้นพิมพ์ id=10 [แป้นพิมพ์รอง (3)]
    â³ ThinkPad Extra Buttons id=11 [แป้นพิมพ์รอง (3)]
    â³ กล้องในตัว: รวม C id=9 [แป้นพิมพ์รอง (3)]
    â³ เว็บแคม HD C525 id=14 [แป้นพิมพ์รอง (3)]
    â³ แป้นพิมพ์ TrackPoint II รหัสแป้นพิมพ์ = 20 [แป้นพิมพ์รอง (3)]
    â³ รหัสควบคุมระบบ TrackPoint Keyboard II = 21 [แป้นพิมพ์รอง (3)]
    â³ แป้นพิมพ์ TrackPoint II Consumer Control id=23 [แป้นพิมพ์รอง (3)]

$ cat /usr/share/X11/xorg.conf.d/40-libinput.conf 
# จับคู่กับอุปกรณ์ทุกประเภทยกเว้นจอยสติ๊ก
#
# หากคุณต้องการกำหนดค่าอุปกรณ์ของคุณ อย่าคัดลอกไฟล์นี้
# ให้ใช้ข้อมูลโค้ดการกำหนดค่าที่มีสิ่งนี้แทน:
#
# ส่วน "InputClass"
# ตัวระบุ "บางสิ่งหรืออื่น ๆ "
# MatchDriver "libinput"
#
# MatchIsTouchpad "เปิด"
# ... คำสั่ง Match อื่น ๆ ...
# ตัวเลือก "someoption" "ค่า"
#ภาคจบ
#
# สิ่งนี้ใช้ตัวเลือกอุปกรณ์ libinput ใด ๆ ที่จับคู่ด้วย
#คำสั่ง ดูหน้าคน xorg.conf(5) สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ
#อุปกรณ์จับคู่.

ส่วน "InputClass"
        ตัวระบุ libinput pointer catchall
        MatchIsPointer "เปิด"
        MatchDevicePath "/dev/input/event*"
        ไดรเวอร์ "libinput"
ส่วนท้าย

ส่วน "InputClass"
        ตัวระบุ "แป้นพิมพ์ libinput catchall"
        MatchIsแป้นพิมพ์ "เปิด"
        MatchDevicePath "/dev/input/event*"
        ไดรเวอร์ "libinput"
ส่วนท้าย

ส่วน "InputClass"
        ตัวระบุ "libinput touchpad catchall"
        MatchIsTouchpad "เปิด"
        MatchDevicePath "/dev/input/event*"
        ไดรเวอร์ "libinput"
ส่วนท้าย

ส่วน "InputClass"
        ตัวระบุ "libinput touchscreen catchall"
        MatchIsTouchscreen "เปิด"
        MatchDevicePath "/dev/input/event*"
        ไดรเวอร์ "libinput"
ส่วนท้าย

ส่วน "InputClass"
        ตัวระบุ "libinput แท็บเล็ต catchall"
        MatchIsTablet "เปิด"
        MatchDevicePath "/dev/input/event*"
        ไดรเวอร์ "libinput"
ส่วนท้าย

$ sudo libinput รายการอุปกรณ์ | grep -A 17 "TPPS"
อุปกรณ์: TPPS/2 IBM TrackPoint
เคอร์เนล: /dev/input/event17
กลุ่ม: 14
ที่นั่ง: seat0 ค่าเริ่มต้น
ความสามารถ: ตัวชี้ 
แตะเพื่อคลิก: ไม่มี
แตะแล้วลาก: n/a
แตะลากล็อค: ไม่มี
ถนัดซ้าย: ปิดใช้งาน
Nat.scrolling: ปิดใช้งาน
การจำลองกลาง: ปิดใช้งาน
การสอบเทียบ: n/a
วิธีการเลื่อน: ปุ่ม *
วิธีการคลิก: ไม่มี
ปิด-w-พิมพ์: n/a
โปรไฟล์ Accel: แบน *ปรับได้
หมุนเวียน: ไม่มี

$ sudo libinput รายการอุปกรณ์ | grep -A 17 "เมาส์ TrackPoint Keyboard II"
อุปกรณ์: เมาส์ TrackPoint Keyboard II
เคอร์เนล: /dev/input/event23
กลุ่ม: 15
ที่นั่ง: seat0 ค่าเริ่มต้น
ความสามารถ: ตัวชี้ 
แตะเพื่อคลิก: ไม่มี
แตะแล้วลาก: n/a
แตะลากล็อค: ไม่มี
ถนัดซ้าย: ปิดใช้งาน
Nat.scrolling: ปิดใช้งาน
การจำลองกลาง: ปิดใช้งาน
การสอบเทียบ: n/a
วิธีการเลื่อน: ปุ่ม
วิธีการคลิก: ไม่มี
ปิด-w-พิมพ์: n/a
โปรไฟล์ Accel: แบน *ปรับได้
หมุนเวียน: ไม่มี

$ xinput set-prop "เมาส์ TrackPoint Keyboard II" 317 0, 0, 1
X ข้อผิดพลาดของคำขอที่ล้มเหลว: BadAccess (ความพยายามในการเข้าถึงทรัพยากรส่วนตัวถูกปฏิเสธ)
  opcode หลักของคำขอที่ล้มเหลว: 131 (XInputExtension)
  opcode เล็กน้อยของคำขอที่ล้มเหลว: 57 ()
  หมายเลขซีเรียลของคำขอที่ล้มเหลว: 20
  หมายเลขซีเรียลปัจจุบันในสตรีมเอาต์พุต: 21
user3188445 avatar
nl flag
ฉันมีคีย์บอร์ดบลูทูธสองตัว แป้นพิมพ์รุ่นเก่าใช้งานได้ดี ในขณะที่แป้นพิมพ์ที่ฉันเพิ่งซื้อมามีพฤติกรรมที่น่ารำคาญอย่างที่คุณอธิบาย โปรดทราบว่าทั้งสองเป็นแป้นพิมพ์เดียวกัน ฉันยังมีแป้นพิมพ์บลูทูธรุ่นเก่า (รุ่นที่ไม่มีสวิตช์ด็องเกิลหรือ Android) และการเลื่อนก็ทำงานได้ดีเช่นกัน ฉันหวังว่าฉันจะรู้วิธีแก้ปัญหา

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา