ฉันจะปิดการใช้งานทัชแพดขณะพิมพ์ได้อย่างไร ใน Ubuntu 16.04 syndaemon ไม่ทำงาน


42

ฉันต้องการยกเลิกการใช้งานทัชแพดขณะพิมพ์ ฉันลองสิ่งนี้:

syndaemon -i 1 -d -t -K

มันควรจะปิดการใช้งานการแตะและการเลื่อนบนทัชแพดเป็นเวลา 1 วินาทีและละเว้นคอมโบของตัวแก้ไข + คีย์ แต่หลังจากตั้งค่าsyndaemonเหมือนไม่มีการเปลี่ยนแปลงใด ๆ ที่อธิบายไว้ ทัชแพดทำงานอยู่เสมอและมันน่ารำคาญมาก

ฉันใช้ Ubuntu 16.04 กับ Dell Precision 5510


1
แตะเพื่อคลิกถูกปิดใช้งานโดยค่าเริ่มต้นในขณะที่พิมพ์เคอร์เซอร์ย้าย / เลื่อนไม่ได้ มีวิธีปิดใช้งานทัชแพดเองขณะพิมพ์ แต่ไม่ผ่าน syndaemon / synclient อย่างไรก็ตามวิธีการดังกล่าวจะทำให้การตั้งค่าระบบ> เมาส์และทัชแพด> การตั้งค่าทัชแพดหายไป ข้อมูลบางอย่างที่นี่ - bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/…
doug

4
ลอง -syndaemon -i 1.0 -d -K
doug

1
@doug ฉันลองแล้วมันไม่มีอะไรเปลี่ยนแปลง
marsUbuntux

@doug ฉันควรลองลบไดรเวอร์ synaptics และไดรเวอร์ libinput Xorg แทนหรือไม่
marsUbuntux

ปัญหาที่เกิดขึ้นคือคุณจะไม่มีการตั้งค่าทัชแพดในการตั้งค่าระบบ & จะต้องเพิ่มด้วยตนเองเช่นตัวอย่างในรายงานข้อผิดพลาด สิ่งที่คุณพยายามใช้กับ syndaemon นั้นเป็นค่าเริ่มต้นจริง ๆ แล้ว - ปิดการใช้งานแตะเพื่อคลิกในขณะที่พิมพ์ แต่อย่าปิดการใช้งานการเลื่อนเคอร์เซอร์ แตะเพื่อคลิกปิดการใช้งานในขณะที่คุณพิมพ์หรือไม่?
doug

คำตอบ:


36

คุณอาจมีไดร์เวอร์ทัชแพดสองตัวที่ทำงานอยู่ซึ่งจากนั้น syndaemon จะโต้ตอบกับไดรเวอร์ที่ไม่ถูกต้อง ฉันมีปัญหาเดียวกันใน Dell XPS 13 และหัวข้อนี้ ( http://ubuntuforums.org/showthread.php?t=2316240 ) ช่วยฉันด้วย

หากคุณเห็นอุปกรณ์ทัชแพดสองอุปกรณ์ให้ลองปิดการใช้งาน เนื่องจากคุณมีคอมพิวเตอร์เครื่องอื่นคำแนะนำในลิงก์อาจเหมาะสำหรับคุณหรือไม่ก็ได้

จากโพสต์ที่อ้างถึงขั้นตอนคือ:

เปิดไฟล์/usr/share/X11/xorg.conf.d/51-synaptics-quirks.confในฐานะ root ด้วยโปรแกรมแก้ไขข้อความของคุณแทรกข้อความต่อไปนี้:

# Disable generic Synaptics device, as we're using
# "DLL0704:01 06CB:76AE Touchpad"
# Having multiple touchpad devices running confuses syndaemon
Section "InputClass"
Identifier "SynPS/2 Synaptics TouchPad"
      MatchProduct "SynPS/2 Synaptics TouchPad"
      MatchIsTouchpad "on"
      MatchOS "Linux"
      MatchDevicePath "/dev/input/event*"
      Option "Ignore" "on"
EndSection

รีบูตหรือรีสตาร์ท Xorg ด้วยคำสั่งsudo systemctl restart lightdm Credit ไปที่ ddarling จาก ubuntuforums.org

ตั้งแต่เดือนมกราคม 2018 เดลล์มีหน้าอย่างเป็นทางการในฐานความรู้ของตนในอูบุนตูทัชแพดปัญหา / เมาส์ หน้านี้อธิบายการแก้ไขนี้เพื่อปิดการใช้งาน "SynPS / 2 Synaptics TouchPad" และยังแนะนำให้ย้ายไปที่ libinput แทนที่จะเป็น synaptics เป็นไดรเวอร์ mousepad


มีสถานการณ์เช่นเดียวกับคุณ:> DLL06E5: 01 06CB: 7A13 Touchpad id = 14 [ตัวชี้ทาส (2)]> SynPS / 2 Synaptics TouchPad id = 16 [ตัวชี้ทาส (2)] ทำสิ่งเดียวกันตามที่อธิบายไว้ในลิงก์ คุณโพสต์ มันได้ผล! ตอนนี้ทัชแพดทำงานได้ตามที่ฉันต้องการ ขอบคุณ
marsUbuntux

วิธีการแก้ปัญหาดังกล่าวมีทำงานสำหรับ Dell Lattitude 3570 เช่นกัน
chanux

นั่นเป็นเรื่องที่น่าอัศจรรย์ใจฉันคิดเสมอว่านี่ไม่สามารถแก้ไขได้ ขอบคุณมาก. มันมีประโยชน์จริงๆ
realhu

เนื่องจากคำตอบนี้สมควรได้รับเครดิตมากขึ้นฉันได้อัปเดตเพื่อชี้แจงเพิ่มเติมอีกเล็กน้อย
William S

2
มันอาจคุ้มค่าที่จะดึงโซลูชันจากฟอรัมไปยังคำตอบในกรณีที่ลิงก์หายไป
BeepDog

30
sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator
  • เปิดตัวบ่งชี้ทัชแพดและคลิกที่ไอคอนตัวบ่งชี้
  • คุณสามารถเปลี่ยนการตั้งค่า (ในแท็บการกระทำ) เป็น "ปิดการใช้งานทัชแพดเมื่อพิมพ์"

ไชโย!


1
สามารถใช้เป็นส่วนขยาย gnome: Extensions.gnome.org/extension/131/touchpad-indicator
zamnuts

2
ใช้งานไม่ได้กับฉันใน Ubuntu Budgie-Remix 16.04.3
r3wt

เพื่อชี้แจงความคิดเห็นของ zamnuts: คุณสามารถเข้าถึงการตั้งค่าเฉพาะเมื่อคุณติดตั้งสิ่งนี้จากส่วนขยาย gnome ตามลิงก์ที่เขาให้ไว้ (หรืออย่างน้อยฉันก็ไม่สามารถทำได้) ฉันไม่มีตัวเลือกในการปิดใช้งานทัชแพดขณะพิมพ์
glS

ฉันลงคะแนนโดยไม่ตั้งใจ (ต้องพิมพ์ sleep) และตอนนี้ไม่สามารถลบออกได้เว้นแต่จะมีการอัปเดตคำตอบ (เห็นได้ชัดว่า askubuntu.com ตั้งค่าในลักษณะนี้) ฉันพยายามเพิ่มช่องว่างเท่านั้น แต่ต้องมีอักขระขั้นต่ำ 8 ตัว (ต่างกันหรือไม่) หากคุณต้องการแก้ไขคำตอบและเพิ่มบางอย่างเช่น "คำแนะนำ: ตั้งค่าแอปพลิเคชันทัชแพดเป็นเริ่มอัตโนมัติเพื่อให้คุณไม่จำเป็นต้องเริ่มด้วยตนเองทุกครั้งที่เข้าสู่ระบบ" กว่าที่ฉันควรจะเห็นการแจ้งเตือน ลงคะแนนของฉัน
st2000

10

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

PalmDetect = synclient

อย่างน้อยก็จะป้องกันการแตะฝ่ามือโดยไม่จำเป็นบนทัชแพดซึ่งในที่สุดจะทำให้มีชีวิตที่ดีขึ้น


นี่เป็นทางออกที่ดีมากและเป็นการแก้ไขหนึ่งบรรทัด ฉันเคยทำสิ่งนี้มาก่อน แต่ทำมันหาย ขอบคุณสำหรับการโพสต์!
Thomas Dignan

ไม่สมบูรณ์ แต่ช่วยได้มากในวันที่ 17.10 ขอบคุณ
แจ็ค

มันทำงานได้อย่างสมบูรณ์แบบ ฉันประหลาดใจที่มันไม่ใช่ค่าเริ่มต้น แต่เป็นเพียงวิธี Linux ฉันเดา
Gunchars

@tareqalam: คำสั่งนี้ยังคงมีการรีบูตหรือไม่
Lonnie ที่ดีที่สุด

2

หลังจากดูตัวเลือกสำหรับ 'xinput' ฉันพบวิธีที่ง่ายและมีประสิทธิภาพในการปิดการใช้งานทัชแพดของ Synaptics โดยใช้ Ubuntu 16.04 และ Lubuntu 16.04

ในหน้าต่างเทอร์มินัลให้สิทธิ์การเข้าถึงระดับผู้ดูแลระบบโดยป้อน 'sudo -s' และใส่รหัสผ่านของคุณ

ใช้โปรแกรมแก้ไขรายการโปรดเช่น leafpad หรือ gedit สร้างไฟล์สคริปต์ใหม่:

leafpad /usr/local/bin/tpadoff

และแทรกต่อไปนี้:

#!/bin/bash
#/usr/local/bin/tpadoff - turn off touchpad
xinput --disable  'SynPS/2 Synaptics TouchPad'

บันทึกไฟล์และออกจากโปรแกรมแก้ไข จากนั้นป้อนคำสั่ง:

chmod 755 /usr/local/bin/tpadoff

เพื่อให้ไฟล์ปฏิบัติการได้ คุณสามารถทำซ้ำเพื่อสร้างไฟล์ tpadon เพียงแค่เปลี่ยน '- ปิดการใช้งาน' เป็น '- เปิดใช้งาน'

เมื่อเสร็จแล้วให้ออกจากหน้าต่างเทอร์มินัลเพื่อปิดการใช้งานการเข้าถึงของผู้ดูแลระบบ

สามารถสร้างรายการเดสก์ทอปได้โดยเปิดหน้าต่างเทอร์มินัลใหม่และใช้โปรแกรมแก้ไขรายการโปรดของคุณ (ในตัวอย่างนี้ฉันใช้ leafpad อีกครั้ง):

cd Desktop
leafpad tpadoff.desktop

และแทรกข้อความต่อไปนี้: [รายการเดสก์ท็อป] ชื่อ = ทัชแพดปิดความคิดเห็น = เปิดใช้งานทัชแพด Exec = / usr / local / bin / tpadoff เทอร์มินัล = false Type = Application

บันทึกไฟล์และออกจากโปรแกรมแก้ไข จากนั้นป้อนคำสั่งต่อไปนี้:

 chmod 775 tpadoff.desktop 

คุณสามารถทำซ้ำเพื่อสร้าง tpadon.desktop โดยเปลี่ยนการอ้างอิง 'ปิด' ทั้งหมดเป็น 'เปิด'

เมื่อเสร็จแล้วคุณจะมีสองวิธีในการปิด (และเลือกเปิด - ปิด) ทัชแพดโดยดับเบิลคลิกที่ไอคอนเดสก์ท็อปหรือป้อน 'tpadoff' ในหน้าต่างเทอร์มินัล

หากทัชแพดของคุณแตกต่างคุณอาจต้องใช้ 'xinput' ในหน้าต่างเทอร์มินัลเพื่อค้นหาไวยากรณ์ที่แน่นอนสำหรับทัชแพดของคุณ จากนั้นแก้ไขไฟล์ '/ usr / local / bin / tpadoff' เพื่อให้ตรงกับสิ่งที่ xinput รายงาน


1
คำถามคือเกี่ยวกับการปิดการใช้งานทัชแพดในขณะที่พิมพ์ (เช่นโดยอัตโนมัติ) - ดังนั้นในขณะที่คุณไม่ให้คำตอบโดยตรงฉันขอขอบคุณในคุณภาพของคำตอบของคุณ
guntbert

2

หลังจากเดือนของการค้นหาวิธีแก้ปัญหาฉันตัดสินใจที่จะเขียนโปรแกรม Python ง่าย ๆ เพื่อปิดการใช้งานทัชแพดในขณะที่พิมพ์ การเพิ่มโปรแกรมลงใน Startup Applications เพื่อให้โปรแกรมทำงานทุกครั้งที่คุณเริ่มคอมพิวเตอร์ คุณจำเป็นต้องเรียกใช้xinput listเพื่อกำหนด id ของแป้นพิมพ์ของคุณในกรณีของฉันคือ 17

xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® Nano Transceiver v1.0    id=11   [slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® Nano Transceiver v1.0    id=12   [slave  pointer  (2)]
⎜   ↳ DLL082A:01 06CB:76AF Touchpad             id=14   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=18   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Microsoft Microsoft® Nano Transceiver v1.0    id=10   [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD                      id=13   [slave  keyboard (3)]
    ↳ Intel Virtual Button driver               id=15   [slave  keyboard (3)]
    ↳ Intel HID events                          id=16   [slave  keyboard (3)]
    **↳ AT Translated Set 2 keyboard                id=17   [slave  keyboard (3)]**
    ↳ Dell WMI hotkeys                          id=19   [slave  keyboard (3)]
    ↳ Microsoft Microsoft® Nano Transceiver v1.0    id=20   [slave  keyboard (3)]

นี่คือโปรแกรม

import time 
import subprocess
import threading

def main():
    subprocess.call('gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true', shell=True)
    p = subprocess.Popen('xinput test 17', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    clickTime = [0, 0]
    def checkTime():
        keys = [37, 50, 62, 64, 105, 108, 133]
        while True:
            out = p.stdout.readline()

            if len(out) < 1:
                break
            key = int(out.split()[-1])
            if key not in keys:
                clickTime[0] = time.time()

    t = threading.Thread(target=checkTime)
    t.start()

    lastTime = 0
    touchpad = True
    while True:
        inactive = time.time() - clickTime[0]
        # print ('inactive for', inactive)
        if inactive > 1:            
            if not touchpad:
                print ('Enable touchpad')
                subprocess.call('gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true', shell=True)
            touchpad = True
        else:
            if touchpad:
                print ('Disable touchpad')
                subprocess.call('gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click false', shell=True)
            touchpad = False
        time.sleep(0.5)

    retval = p.wait()

if __name__ == '__main__':
    main()

โซลูชันที่ยอดเยี่ยมเพียงแค่ตรวจสอบกิจกรรมของแป้นพิมพ์โดยใช้ xinput และ polling เพื่อดูว่ามีเหตุการณ์ใหม่เกิดขึ้นทุก 0.5 วินาทีหรือไม่ สิ่งนี้มีผลกระทบน้อยมากต่อกิจกรรม CPU แต่มันก็ยังดีถ้ามีวิธีที่จะกระตุ้นให้เกิดพฤติกรรมที่เกิดขึ้นกับเหตุการณ์บนคีย์บอร์ดเท่านั้น มีเหตุผลที่คุณยกเว้นปุ่มบางอย่างเช่นลูกศรซ้ายและพื้นที่ว่างหรือเป็นเพียงการตั้งค่าส่วนตัว
theferrit32

2

ใน Ubuntu 19.04 ฉันพบว่าเพียงพอ (สำหรับความต้องการของฉัน) เพียงแค่ปิดการใช้งานคุณลักษณะ "แตะเพื่อคลิก":

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

อย่างไรก็ตามผลที่ตามมาคือคุณต้องใช้ปุ่มของทัชแพด (หวังว่าคุณจะมีปุ่ม) เพื่อทำการคลิก สำหรับฉันนั่นเป็นการแลกเปลี่ยนที่ยุติธรรม

หากคุณไม่มีปุ่มคลิก "ซ้ายและขวา" (แยกออกจากทัชแพดของคุณ) คุณสามารถปรับความไวของทัชแพดได้ ฉันได้เรียนรู้เกี่ยวกับสิ่งนี้จาก Peter Hutterer ในรายงานข้อผิดพลาดนี้

ฉันหวังว่าผู้ผลิตแล็ปท็อปไม่ได้ผลิตแล็ปท็อปที่มีทัชแพดที่ไม่ได้ลดราคา ทัชแพดเหล่านี้ที่อยู่ในระดับเดียวกับแป้นของแป้นพิมพ์ (แทนที่จะเป็น receded) เป็นข้อบกพร่องในการออกแบบ

โปรดแจ้งให้ผู้ผลิตแล็ปท็อปของคุณทราบถึงปัญหาที่เกิดขึ้นกับคุณจากการออกแบบที่ไม่ดีนี้มิฉะนั้นพวกเขาจะทำสิ่งนี้ต่อไปในรุ่นอนาคต


1
ยืนยันว่าใช้งานได้ดีมาก ฉันสังเกตเห็นสิ่งเล็ก ๆ น้อย ๆ ที่ฉันสามารถเพิกเฉยได้: เมื่อฝ่ามือไขมันแตะที่ทัชแพดขณะพิมพ์ฉันสามารถเห็นเคอร์เซอร์ของเมาส์เคลื่อนที่ไปรอบ ๆ ได้ แต่อย่างน้อยมันก็ไม่ปล่อยให้มันคลิกที่อื่น ตามหลักการแล้วฉันจะยังคงสามารถใช้งาน Tap To Click ได้ แต่อย่างน้อยในแล็ปท็อปของฉันฟังก์ชั่นที่ใช้งานได้ไม่ดีเท่าที่ควร ดังนั้นการแลกเปลี่ยนจึงยุติธรรม
bgoodr

1

สำหรับผู้ใช้ Kubuntu ...

บน Kubuntu 16.04 - เพื่อปิดการใช้งานทัชแพดในขณะที่พิมพ์ฉันต้องล้างกล่องกาเครื่องหมายที่เรียกว่า "ปิดใช้งานการแตะและเลื่อนเท่านั้น" ภายใต้การตั้งค่า -> อุปกรณ์อินพุต -> ทัชแพด -> เปิด / ปิดการใช้งานทัชแพด อาจดูเหมือนชัดเจน แต่ ...


ubuntu 16.04 ทำงาน
Nazmul Hasan

ไม่มีตัวเลือกย่อยดังกล่าวบน Ubuntu 18.04 ไม่ใช่การตั้งค่าหรือใน Tweaks
dskrvk

0
xinput list |
while read line; do
    if [[ $line == *Touchpad* ]]; then
        tid="$(echo $line | cut -d '=' -f 2 | cut -c 1-2)"
        xinput set-prop $tid "Device Enabled" 0
    fi
done

หรือสั้นกระชับ

xinput list | sed -nre 's/^.*Touchpad.*\sid=(\S+).*$/\1/p' | xargs -I{} -- xinput set-prop {} 'Device Enabled' 0

โปรดแก้ไขการจัดรูปแบบ
Pierre.Vriens

1
ยินดีต้อนรับสู่ถาม Ubuntu! ฉันขอแนะนำให้แก้ไขคำตอบนี้เพื่อขยายด้วยรายละเอียดเฉพาะเกี่ยวกับสิ่งที่คำสั่งนี้ (ลำดับ) ทำ คำสั่งธรรมดา (ลำดับ) ถือเป็นคำตอบที่ไม่ค่อย (ดูเพิ่มเติมฉันจะเขียนคำตอบที่ดีได้อย่างไรสำหรับคำแนะนำทั่วไปเกี่ยวกับคำตอบประเภทใดที่ถือว่ามีค่ามากที่สุดใน Ask Ubuntu)
David Foerster
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.