Làm cách nào để tắt bàn di chuột trong khi gõ? Trên Ubuntu 16.04 syndaemon không hoạt động


42

Tôi muốn tắt bảng cảm ứng trong khi gõ. Tôi đã thử điều này:

syndaemon -i 1 -d -t -K

Nó sẽ hủy kích hoạt chạm và cuộn trên bàn di chuột trong 1 giây và bỏ qua các combo sửa đổi + phím nhưng sau khi cài đặt syndaemonnhư mô tả, không có gì thay đổi. Bàn di chuột luôn hoạt động và rất khó chịu.

Tôi đang sử dụng Ubuntu 16.04 trên Dell Precision 5510.


1
Nhấn để nhấp được tắt theo mặc định trong khi gõ, di chuyển / cuộn con trỏ thì không. Có một cách để vô hiệu hóa bàn di chuột trong khi gõ nhưng không thông qua syndaemon / synclient. Tuy nhiên, phương pháp sẽ khiến Cài đặt hệ thống> Chuột và Bàn di chuột> Cài đặt bàn di chuột biến mất. Một số thông tin ở đây - bug.launchpad.net/ubfox/+source/xserver-xorg-input-synaptics/ mẹo
doug

4
Hãy thử -syndaemon -i 1.0 -d -K
doug

1
@doug tôi đã thử nó và nó chẳng thay đổi gì cả
marsUbuntux 17/05/2016

@doug tôi có nên thử gỡ bỏ trình điều khiển synaptics và trình điều khiển Xorg libinput không?
marsUbuntux

Vấn đề với điều đó là sau đó bạn sẽ không có cài đặt bàn di chuột trong cài đặt hệ thống & sẽ phải thêm thủ công như ví dụ trong báo cáo lỗi. Những gì bạn đã cố gắng với syndaemon ban đầu thực sự là mặc định, tức là. - vô hiệu hóa nhấn để nhấp trong khi gõ nhưng không tắt di chuyển con trỏ. Là nhấn để bấm vô hiệu hóa trong khi bạn gõ?
doug

Câu trả lời:


36

Bạn có thể có hai trình điều khiển touchpad đang chạy, trong đó syndaemon sẽ tương tác với một trình điều khiển sai. Tôi gặp vấn đề tương tự trên Dell XPS 13 và chủ đề này ( http://ubuntuforums.org/showthread.php?t=2316240 ) đã giúp tôi.

Nếu bạn cũng thấy hai thiết bị touchpad, hãy thử tắt một thiết bị. Khi bạn có một máy tính khác, các hướng dẫn trong liên kết có thể hoặc không thể áp dụng theo nghĩa đen cho bạn.

Từ bài viết được đề cập, thủ tục là:

mở tệp /usr/share/X11/xorg.conf.d/51-synaptics-quirks.confdưới dạng root bằng trình soạn thảo văn bản của bạn Chèn văn bản sau:

# 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

Khởi động lại hoặc khởi động lại Xorg bằng lệnh sudo systemctl restart lightdm Tín dụng sẽ chuyển sang sử dụng từ ubuntuforums.org.

Kể từ tháng 1 năm 2018, Dell đã có một trang chính thức trong Cơ sở Kiến thức về các vấn đề về chuột / Touchpad của Ubuntu . Trang này mô tả cách khắc phục này để vô hiệu hóa "SynPS / 2 Synaptics TouchPad" và cũng đề nghị chuyển sang libinput thay vì synap như trình điều khiển mousepad.


có cùng hoàn cảnh như bạn:> DLL06E5: 01 06CB: 7A13 Touchpad id = 14 [con trỏ nô lệ (2)]> SynPS / 2 Synaptics TouchPad id = 16 [con trỏ nô lệ (2)] Đã làm điều tương tự như được mô tả trong liên kết Bạn đã đăng. Nó đã làm việc! Bây giờ bàn di chuột hoạt động như tôi muốn. Cảm ơn bạn
marsUbuntux

Giải pháp được đề cập ở đó cũng có tác dụng với Dell Lattitude 3570.
chanux

Điều đó thật tuyệt vời, tôi luôn nghĩ rằng điều này là không thể sửa chữa. Điều này giúp tôi tiết kiệm. Cảm ơn rất nhiều. Điều này thực sự hữu ích.
realhu

Vì câu trả lời này xứng đáng nhận được nhiều tín dụng hơn nên tôi đã cập nhật nó để làm rõ hơn một chút.
William S

2
Có thể đáng để kéo giải pháp từ diễn đàn vào câu trả lời, trong trường hợp liên kết biến mất.
BeepDog

30
sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator
  • Mở chỉ báo cảm ứng và nhấp vào biểu tượng chỉ báo.
  • Bạn có thể thay đổi tùy chọn (trong tab hành động) thành "tắt bàn phím cảm ứng khi gõ"

Chúc mừng!


1
Đây là có sẵn như là một phần mở rộng gnome: extensions.gnome.org/extension/131/touchpad-indicator
zamnuts

2
không hoạt động với tôi trên Ubuntu Budgie-Remix 16.04.3
r3wt

để làm rõ nhận xét của zamnuts: bạn chỉ có thể truy cập các tùy chọn nếu bạn cài đặt tùy chọn này dưới dạng tiện ích mở rộng theo liên kết mà anh ấy cung cấp (hoặc ít nhất là tôi không thể làm điều đó theo cách khác). Tôi không có tùy chọn để tắt bàn phím cảm ứng khi gõ.
glS

Tôi vô tình bỏ phiếu (phải gõ phím ngủ) và bây giờ không thể xóa nó trừ khi câu trả lời được cập nhật. (Rõ ràng là Askubfox.com được thiết lập theo cách này.) Tôi đã cố gắng chỉ thêm một khoảng trắng nhưng cần tối thiểu 8 ký tự (khác nhau?). Nếu bạn muốn chỉnh sửa câu trả lời và thêm một cái gì đó như "Gợi ý: Đặt ứng dụng bàn di chuột thành tự động khởi động để bạn không cần phải tự khởi động nó trong mỗi lần đăng nhập.", Tôi sẽ thấy một thông báo và sau đó có thể xóa phiếu bầu của tôi
st2000

10

Tôi đang sử dụng Ubuntu 17.10 và đã thử các giải pháp khác nhau được đề xuất ở đây hầu hết không hoạt động. phần mềm chỉ báo touchpad đặc biệt khi khởi động trong Ubuntu 17.10 chỉ cần tắt touchpad và tôi không thể tìm thấy cách nào để kích hoạt lại mà không cần khởi động lại máy tính xách tay. Bây giờ tôi tìm thấy giải pháp này Tôi nghĩ rằng hiện vẫn đang hoạt động khá tốt: chỉ cần sử dụng lệnh này,

đồng bộ PalmDetect = 1

Điều này ít nhất sẽ ngăn việc chạm không cần thiết vào lòng bàn tay trên bàn di chuột mà cuối cùng sẽ mang lại một cuộc sống tốt hơn.


Đây là một giải pháp rất tốt và nó là một sửa chữa một dòng. Tôi đã có điều này đi trước nhưng mất nó. Cảm ơn vì đăng!
Thomas Dignan

Không hoàn hảo, nhưng giúp rất nhiều vào ngày 17.10, cảm ơn.
Jack

Điều này hoạt động hoàn hảo. Tôi ngạc nhiên nó không phải là một mặc định, nhưng đó chỉ là cách của Linux.
Gunchars

@tareqalam: Lệnh này có tiếp tục khởi động lại không?
Lonnie hay nhất

2

Sau khi xem xét các tùy chọn cho 'xinput', tôi đã tìm thấy một giải pháp hiệu quả và dễ dàng để vô hiệu hóa bàn di chuột Synaptics bằng Ubuntu 16.04 và Lubfox 16.04

Trong cửa sổ đầu cuối, cung cấp cho bạn quyền truy cập quản trị bằng cách nhập 'sudo -s' và nhập mật khẩu của bạn.

Sử dụng trình chỉnh sửa yêu thích của bạn, chẳng hạn như leafpad hoặc gedit, tạo tệp tập lệnh mới:

leafpad /usr/local/bin/tpadoff

và chèn như sau:

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

Lưu tệp và thoát khỏi trình chỉnh sửa. Sau đó nhập lệnh:

chmod 755 /usr/local/bin/tpadoff

để làm cho tập tin thực thi. Bạn có thể lặp lại để tạo tệp tpadon, chỉ cần thay đổi '--disable' thành '--enable'.

Khi hoàn tất, 'thoát' cửa sổ đầu cuối để vô hiệu hóa quyền truy cập của quản trị viên.

Các mục trên màn hình có thể được tạo bằng cách mở một cửa sổ đầu cuối mới và sử dụng trình soạn thảo yêu thích của bạn (trong ví dụ này, tôi đang sử dụng lại leafpad):

cd Desktop
leafpad tpadoff.desktop

và chèn văn bản sau: [Entry Desktop] Name = TouchPad Off Comment = Turn-Off Touchpad Exec = / usr / local / bin / tpadoff Terminal = false Type = Application

Lưu tệp và thoát khỏi trình chỉnh sửa. Sau đó nhập lệnh sau:

 chmod 775 tpadoff.desktop 

Bạn cũng có thể lặp lại để tạo tpadon.desktop, thay đổi tất cả các tham chiếu 'tắt' thành 'bật'.

Khi hoàn tất, bạn sẽ có hai cách để tắt (và tùy chọn bật) bàn di chuột bằng cách nhấp đúp vào biểu tượng máy tính để bàn hoặc nhập 'tpadoff' trong cửa sổ đầu cuối.

Nếu bàn di chuột của bạn khác, bạn có thể phải sử dụng 'xinput' trong cửa sổ đầu cuối để tìm cú pháp chính xác cho bàn di chuột của mình. Sau đó chỉnh sửa tệp '/ usr / local / bin / tpadoff' để khớp với những gì xinput đã báo cáo.


1
Câu hỏi là về việc vô hiệu hóa bàn di chuột trong khi gõ (tức là tự động) - vì vậy trong khi bạn không đưa ra câu trả lời trực tiếp, tôi rất đánh giá cao chất lượng câu trả lời của bạn.
guntbert

2

Sau nhiều tháng tìm kiếm giải pháp, tôi quyết định viết một chương trình Python đơn giản để vô hiệu hóa bàn di chuột trong khi gõ. Thêm chương trình vào Ứng dụng khởi động để làm cho nó chạy mỗi khi bạn khởi động máy tính. Bạn cần chạy xinput listđể xác định id của bàn phím, trong trường hợp của tôi là 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)]

Đây là chương trình

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()

Giải pháp tuyệt vời, chỉ bằng cách theo dõi hoạt động bàn phím bằng cách sử dụng xinput và bỏ phiếu để xem liệu các sự kiện mới xảy ra cứ sau 0,5 giây. Điều đó có tác động khá nhỏ đến hoạt động của CPU, nhưng sẽ vẫn tốt nếu có cách kích hoạt hành vi chỉ xảy ra trên các sự kiện bàn phím. Có một lý do nào khiến bạn loại trừ một số phím nhất định như mũi tên trái và dấu cách, hoặc đó chỉ là sở thích cá nhân?
theferrit32

2

Trong Ubuntu 19.04, tôi thấy đã đủ (đối với nhu cầu của tôi) khi chỉ cần vô hiệu hóa tính năng "Nhấn để nhấp":

nhập mô tả hình ảnh ở đây

Tuy nhiên, hậu quả của việc này là bạn thực sự sẽ phải sử dụng các nút của bàn di chuột (hy vọng bạn có các nút) để thực hiện nhấp chuột. Đối với tôi, đó là một sự đánh đổi công bằng.

Nếu bạn không thực sự có các nút bấm "trái và phải" (tách biệt với bàn di chuột ), thay vào đó bạn có thể hiệu chỉnh độ nhạy của bàn di chuột . Tôi đã học được điều này từ Peter Hutterer, trong báo cáo lỗi này .

Tôi muốn các nhà sản xuất máy tính xách tay, đã không tạo ra máy tính xách tay với bàn di chuột không rút. Những bàn di chuột ngang với các phím của bàn phím (thay vì rút lại) là một lỗ hổng thiết kế.

Xin vui lòng cho các nhà sản xuất máy tính xách tay của bạn biết những rắc rối mà họ đã gây ra cho bạn bởi thiết kế tồi này, nếu không họ sẽ tiếp tục làm điều này trong các mô hình trong tương lai.


1
Khẳng định điều này hoạt động rất tốt. Tôi nhận thấy một điều nhỏ mà tôi có thể bỏ qua: khi lòng bàn tay mập của tôi chạm vào bàn di chuột trong khi gõ, tôi có thể thấy con trỏ chuột di chuyển xung quanh một chút nhưng ít nhất nó không cho phép nó nhấp vào một nơi khác rất lãng phí thời gian. Lý tưởng nhất là tôi vẫn có thể có hành vi Tap To Click, nhưng ít nhất trên máy tính xách tay của tôi, chức năng đó không bao giờ hoạt động tốt như thế nào. Vì vậy, sự đánh đổi là thực sự công bằng.
bgoodr

1

Đối với người dùng Kubfox ...

Trên Kubfox 16.04 - để tắt bàn di chuột trong khi gõ, tôi phải xóa hộp kiểm có tên "Tắt vòi và chỉ cuộn" trong cài đặt-> thiết bị đầu vào-> bàn di chuột-> Bật / tắt bàn di chuột. Nó có vẻ hiển nhiên nhưng ...



Không có tùy chọn phụ như vậy trên Ubuntu 18.04, cũng không phải là Cài đặt cũng như trong 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

hoặc chính xác hơn

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

vui lòng sửa định dạng
Pierre.Vriens

1
Chào mừng bạn đến hỏi Ubuntu! Tôi khuyên bạn nên chỉnh sửa câu trả lời này để mở rộng nó với các chi tiết cụ thể về những gì lệnh này (trình tự) làm. Một lệnh đơn giản (trình tự) hiếm khi được coi là một câu trả lời. (Xem thêm Làm thế nào để tôi viết một câu trả lời hay? Để có lời khuyên chung về loại câu trả lời nào được coi là có giá trị nhất trên Hỏi Ubuntu.)
David Foerster
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.