ฉันจะปิดการใช้งานไดรเวอร์หน้าจอสัมผัสได้อย่างไร


41

ฉันมีหน้าจอสัมผัส แต่ไดรเวอร์ไม่ทำงานอย่างถูกต้องและรบกวนเมาส์ของฉัน

เป็นไปได้หรือไม่ที่จะปิดการใช้งานหน้าจอสัมผัสของฉันเพื่อที่ฉันจะสามารถทำงานได้อย่างถูกต้องอีกครั้ง?

คำตอบ:


52

คุณสามารถลองปิดการใช้งานอุปกรณ์อินพุตด้วยxinputคำสั่ง ก่อนอื่นให้ดูว่าคุณมีอุปกรณ์อินพุตใดเพียงพิมพ์:

xinput

และคุณควรเห็นรายการเช่น:

$ xinput 
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Atmel Atmel maXTouch Digitizer            id=9    [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=13   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=12   [slave  pointer  (2)]
...

จากนั้นคุณสามารถปิดใช้งานอุปกรณ์อินพุตที่คุณต้องการด้วยคำสั่งนี้:

xinput disable 9

ที่ 9 คือรหัสของอุปกรณ์ที่คุณต้องการปิดการใช้งาน คุณยังสามารถใช้ชื่ออุปกรณ์ระหว่างคำพูด

ใน xinput เวอร์ชัน 1.5.99.1 คุณต้องทำxinput set-prop 9 'Device Enabled' 0แทน แปลก xinput v1.6.2 วิธีแรกทำงาน


1
สิ่งนี้ใช้ได้กับ lenovo yoga ของฉัน (2012) ที่ทำงานกับ Ubuntu 14.04
Jeremy Upsal

7
ทำงานบน Dell XPS 13 ที่รัน Ubuntu 16.04 ฉันได้เพิ่มสิ่งนี้ไว้~/.profileในการใช้งานอัตโนมัติหลังจากรีบูต:xinput | grep 'ELAN Touchscreen' | grep -Po 'id=\d+' | cut -d= -f2 | xargs xinput disable
TalkLittle

Atmel ยังดูเหมือนว่ารักกัน, ทางเลือกเป็น xinput enable `xinput | grep Atmel | sed "s/^.*id=\([0-9]*\).*$/\1/"`@TalkLittle: คำสั่งภายใน backticks อะไรส่งคืนรหัส
Pablo

ขอขอบคุณ. ใช้งานได้กับ Dell Inspiron 13 7000 series ที่ใช้ Ubuntu 16.10
durga

นี่คือ gt บนตัวเลือก reat ฉันชอบวิธีที่จะทำให้ฉัน
midopa

27

xinputแก้ปัญหาไม่ได้ทำงานสำหรับฉัน ฉันทำตามคำแนะนำในชุดข้อความนี้แทน สิ่งนี้จะปิดการใช้งานในเวลาบูต

  1. แก้ไข /usr/share/X11/xorg.conf.d/10-evdev.conf
  2. เพิ่มOption "Ignore" "on"ที่ส่วนท้ายของส่วนด้วยtouchscreenตัวระบุ
  3. Reboot

ป้อนคำอธิบายรูปภาพที่นี่

  • สำหรับบันทึก (Google) ที่ฉันมี Samsung Series 7 และหน้าจอสัมผัสของฉันถูกระบุว่าเป็นในELAN Touchscreenxinput
  • JFTR ด้วยเช่นกันในคำถามนี้บอกว่าความแตกต่างของการใช้พลังงานนั้นเล็กน้อยมาก

ขอบคุณมันใช้งานได้กับ XPS 13 9343 (2015) ของฉันหน้าจอสัมผัสแสดงรายการหน้าจอสัมผัส evdev
hg8

2
ฉันทำอย่างนั้นใน Dell XPS และปิดการใช้งานหน้าจออย่างสมบูรณ์ หลังจากบูตหน้าจอเป็นสีดำ บูตในโหมดการกู้คืนลบบรรทัดและทุกอย่างกลับสู่ปกติ
pieroxy

1
สิ่งนี้ทำให้แล็ปท็อปของฉันรีบูตเข้าสู่ X windows ไม่ใช่เรื่องใหญ่ที่จะลบการตั้งค่านั้น แต่มีบางสิ่งที่มือใหม่ต้องการตรวจสอบว่าสามารถทำได้ก่อนที่จะลอง
Davide

2
ปิดการใช้งานทัชแพดบน Sony Vaio ของฉันด้วย การตั้งค่าไดรเวอร์ให้เป็น "libinput" ทำได้โดยใช้วิธีนี้
Jason Pawlak

2
บน Ubuntu 17.10, ฉันไม่สามารถหาไฟล์ที่คุณระบุไว้ /usr/share/X11/xorg.conf.d/40-libinput.confแต่มี ฉันเปลี่ยนบล็อกที่คล้ายกันในไฟล์นี้และเมื่อรีสตาร์ทครั้งถัดไปฉันคิดว่าฉันจะรู้ว่ามันเป็นยังไง!
Oliv Utilo

4

แก้ไขไฟล์ด้วย

sudo nano /usr/share/X11/xorg.conf.d/10-evdev.conf

เปลี่ยน MatchIsTouchscreen จาก "เปิด" เป็น "ปิด" ในส่วน Touchscreen เพื่อให้มีลักษณะดังนี้:

Section "InputClass"
    Identifier "evdev touchscreen catchall"
    MatchIsTouchscreen "off"
    MatchDevicePath "/dev/input/event*"
    Driver "evdev"
    EndSection

บันทึกชื่อและออก

หน้าจอสัมผัสถูกปิดใช้งานและไม่พบในรายการ xinput อีกต่อไป


สิ่งนี้ใช้งานได้กับ Lenovo ideacentre Flex 20 ซึ่งมีหน้าจอแตก
Merlin04

สิ่งนี้ใช้ได้กับ Dell XPS 15 และ Linux Mint 18 ฉันคิดว่ามันปลอดภัยกว่าการใช้Option = ignoreจากคำตอบเพราะมันไม่ได้ปิดการใช้งานอุปกรณ์ แต่ก็ไม่ถือว่ามันเป็นหน้าจอสัมผัส
matt wilkie

มันไม่ทำงานอีกต่อไป ฉันอัพเดตเป็น Ubuntu 18.04 และไฟล์ 10-evdev.conf หายไป ฉันพยายามสร้างมันขึ้นมาใหม่ แต่มันไม่ทำงาน
Merlin04

@ Merlin04 คุณตรวจสอบไฟล์ libinput หรือไม่ มีคำตอบที่กล่าวถึงสิ่งนี้: askubuntu.com/a/1038259/167115
mchid

0

ถ้าหน้าจอสัมผัสของคุณเป็นหน้าจอระบบสัมผัสหน้าจอเช่นจอ USB คุณสามารถเพิ่มเคอร์เนลไดรเวอร์เริ่มต้นusbtouchscreenลงในไฟล์บัญชีดำของ modprobe ( /etc/modprobe.d/blacklist.conf) และใช้คนขับรถของคุณเองเช่นหรือtouchkitevtouch


0

ในฐานะที่เป็น id สำหรับการเปลี่ยนแปลง xinput เมื่อรีบูตฉันเพิ่มหน้าจอบรรทัดเดียวแบบง่ายในการโหลดเซสชัน:

#!/bin/bash
xinput --list | awk '/Atmel Atmel maXTouch Digitizer/ {print $7}' | awk '{split($0,a,"="); print a[2]}' | xargs xinput disable

ชื่ออุปกรณ์ของฉันคือ "Atmel Atmel maXTouch Digitizer" ให้เปลี่ยนด้วยอุปกรณ์ของคุณ (ใช้xinput --listสำหรับชื่ออุปกรณ์)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.