Poszukuję sposobu na ulepszenie wykrywania dłoni synaptic / touchpad


18

Uważam, że wykrywanie dłoni mojego touchpada jest dość okropne. Ustawiłem minimalną czułość, która nie rujnuje korzystania z touchpada (PalmMinWidth = 5, PalmMinZ = 1), i wciąż dostaję losowe nierówności za każdym razem, gdy piszę na klawiaturze.

Wolę używać wykrywania dłoni niż wyłączać klawiaturę podczas pisania, ponieważ okazuje się, że klawiatura jest wyłączona przez zbyt długi okres (tzn. Skończyłem pisać i muszę czekać 2 sekundy przed ponownym użyciem klawiatury, co jest denerwujące) . Możliwą strategią byłoby zmniejszenie tego opóźnienia, chociaż nie jestem pewien, czy touchpad pozostanie użyteczny (jeśli wiesz, jak to zrobić, opublikuj go, lepiej niż nic :).

Za każdym razem, gdy korzystam z systemu Windows, okazuje się, że nie mam tak dużych problemów z touchpadem, więc musi istnieć sposób na ulepszenie wykrywania dłoni?

Na koniec uruchamiam Debiana testując 64 bity na jądrze Linuksa 3.2.0-rc7.


To pytanie jest duplikatem pytania, na które odpowiedziałem na SuperUser w 2011 roku. Nie mam reputacji na Unix i Linux Stack Exchange, aby oflagować się jako duplikat. superuser.com/questions/277427/...
pobity

Odpowiedzi:


18

Miałem podobne problemy i stwierdziłem, że odpowiedź na tym blogu jest dość kompletna i skopiowałem odpowiednie szczegóły:

Ustaw wykrywanie dłoni:

Włącz wykrywanie dłoni w typie terminala:

$ synclient PalmDetect=1

Ustaw maksymalną szerokość, którą należy interpretować jako palec zamiast dłoni. Wybieram 4, większość poradników używa 10, dobrze jest zgadnąć i przetestować tutaj:

$ synclient PalmMinWidth=4

Następnie ustaw minimalną wysokość dłoni względem palca:

$ synclient PalmMinZ=50 

Wreszcie w systemie Ubuntu kliknięcie środkowym trzema palcami nie jest domyślnie włączone, więc jeśli chcesz je włączyć, użyj:

$ synclient TapButton2=3 TapButton3=2

Teoretycznie powinno to umożliwić stuknięcie 2 palcami dla środkowego kliknięcia i stuknięcie 3 palcami dla kliknięcia prawym przyciskiem, ale w Ubuntu 13.04 wynikowe zachowanie jest dokładnie odwrotne. Dlatego jeśli wolisz stuknięcie dwoma palcami dla środkowego kliknięcia, użyj:

$ synclient TapButton2=2 TapButton3=3 

Aby ustawić to na stałe po znalezieniu prawidłowych ustawień, zapisz je, w 50-synaptics.confktórym znajduje się /usr/share/X11/xorg.conf.d/50-synaptics.confw Debian / Ubuntu (Semplice) oraz w /etc/X11/xorg.conf.d/50-synaptics.confw dystrybucjach opartych na Arch Linux (pierwsza część „InputClass” dotyczy poprawki multi-touch środkowego kliknięcia , który jest już włączony w Arch, więc nie trzeba go dodawać):

Section "InputClass"
    Identifier "touchpad catchall"
    Driver "synaptics"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Option "TapButton1" "1"
    Option "TapButton2" "2"
    Option "TapButton3" "3"
    Option "HorizTwoFingerScroll" "on"
    Option "VertTwoFingerScroll" "on"
EndSection


#synclient PalmDetect=1
Option "PalmDetect" "1"
#synclient PalmMinWidth=4
Option "PalmMinWidth" "4"
#synclient PalmMinZ=50
Option "PalmMinZ" "50"

Tymczasowe wyłączanie touchpada podczas pisania:

Zamiast używać poleceń synclient, użyj syndaemon:

$ syndaemon -K -i 0.5 -R -d 

Do arch wiki twierdzi, że po zapisaniu tego polecenia do ~/.xinitrcpliku, aby mieć to wykonywane automatycznie przy następnej zalogowania. Jednak kiedy to zrobiłem, nie wiedziałem, że polecenie musi się wydarzyć przed uruchomieniem pulpitu ( exec DESKTOP.sessionpolecenia). Po zabawie z mnóstwem innych plików konfiguracyjnych i zapoznaniu się z tonami na temat menedżera wyświetlania SLiM, w końcu zdałem sobie sprawę, że polecenie trzeba było przesunąć w górę pliku, ponieważ polecenia po uruchomieniu pulpitu nie będą uruchamiane, dopóki pulpit nie zostanie uruchomiony jest opuszczony.


5

Znalazłem sposób na modyfikację czasu, w którym touchpad jest wyłączony podczas pisania. Dla każdego, kto go szuka, jest to:

Uwaga: wyszukiwarka google wystarczająco szybko daje odpowiedź

Wystarczy uruchomić program syndaemon -di dodać jako opcję, -i wait_timegdzie wait_time to czas oczekiwania przed ponownym włączeniem touchpada. Inne przydatne parametry, które należy przekazać syndaemonowi, to -Knigdy nie wyłączać touchpada, gdy naciśnięcia klawiszy mają modyfikator formatu + klawisz i -taby wyłączać tylko kliknięcia, a nie ruchy myszy.

Tak więc w moim przypadku dodałem następujące polecenie do skryptu uruchamianego podczas logowania:

#Get rid of previous syndaemon
killall syndaemon
#More aggressive behavior, allow for mod+key combos, enable mouse movements
syndaemon -i 0.2 -K -t -d

Z tymi wszystkimi modyfikacjami, zwłaszcza -tflagą, mogę żyć z touchpadem w obecnej postaci!


Uważam, że potrzebuję co najmniej -t (-t Wyłączaj tylko stukanie i przewijanie, a nie ruchy myszy, w odpowiedzi na działanie klawiatury), bo inaczej zwariowałem. Jestem na Fedorze 16. W jaki sposób wprowadzasz zmiany na stałe?
Philip Durbin,

@ PhilipDurbin Umieściłem je w skrypcie, który jest wywoływany podczas uruchamiania (przy użyciu właściwości sesji gnome), ale muszę to zrobić dla każdego użytkownika. Bardziej tradycyjnym sposobem jest umieszczenie ich w pliku xorg.conf, ale nie mogłem znaleźć sposobu na ustawienie w nim syndaemonopcji, tylko synclientopcje.
levesque

3

Mam nowoczesny laptop z dużym touchpadem i połowę czasu, moja prawa dłoń siedziała na krawędzi i podczas pisania pisała fałszywe kliknięcia. Metoda synclient PalmDetect = 1 nie działała dla mnie (bez względu na to, co ustawiłem PalmMinWidth i PalmMinZ na). Być może był to fakt, że moja dłoń dotykała podkładki z prawej strony i wykrywanie dłoni może sprawdzać ją od góry. Nie wiem na pewno.

Rozwiązałem problem, tworząc martwą strefę na prawej krawędzi. Tak to się robi:

synclient 

poda bieżące ustawienia tabliczki dotykowej. interesujące są te wyniki tutaj:

LeftEdge                = 1572
RightEdge               = 5370
TopEdge                 = 1376
BottomEdge              = 4480

Oczywiście liczby będą się różnić w zależności od sprzętu. Poszukaj krawędzi, którą chcesz. W moim przypadku była to właściwa krawędź. Wybrałem ilość, którą chciałem ogolić. Chcesz zgolić najmniejszą liczbę, z której możesz uciec, jednocześnie blokując fałszywe kliknięcia dłoni. Bardzo łatwym testem byłoby znalezienie klikalnego obrazu w Internecie, najechanie myszą na jego środek i oparcie dłoni w miejscu, w którym zwykle się pisze. Aby symulować pisanie, uderzaj (lekko!) Krawędź tabliczki dotykowej częścią dłoni, która zwykle wystaje nad nią podczas pisania. Jeśli otrzymasz kliknięcia, od razu się dowiesz. Będzie to próba i błąd, graj z nim, aż trafisz w najsłodsze miejsce. W moim przypadku golenie 30 pomogło:

synclient AreaRightEdge=5340

Aby zmodyfikować inne krawędzie, zmień AreaBottomEdge, AreaLeftEdge lub AreaTopEdge. Ustawienie tych wartości z powrotem na 0 spowoduje ich wyłączenie.


Strona podręcznika wspomina, że ​​funkcja wykrywania dłoni wymaga wsparcia sprzętowego. Znalazłem dyskusje, w których ludzie dyskutowali o touchpadach, które teoretycznie mają wsparcie sprzętowe, ale w praktyce po prostu nie działały. Próbowałem, PalmDetect=1ale nie udało mi się go uruchomić. Ustawiam parametry tak, aby wszystkie dane wejściowe powinny być traktowane jako przypadkowe uderzenia dłoni, ale wszystkie dane wejściowe nadal były przetwarzane. Więc mój touchpad nie obsługuje go lub jest uszkodzony. Ostatecznie użyłem Area...Edgeparametrów, aby zgolić obszar mojego touchpada. I to zadziałało.
Louis
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.