Jak sprawić, by moje ustawienia synclient pozostały niezmienne?

29

Domyślne ustawienie touchpadów Synaptics obejmuje funkcję wklejania zmapowaną w prawym górnym rogu touchpada. Mogę wyłączyć to zachowanie, uruchamiając polecenie

synclient RTCornerButton=0

Ale za każdym razem, gdy uruchamiam ponownie, moje ustawienia są przywracane. Jak temu zapobiec?

cmatofte
źródło

Odpowiedzi:

18

Musisz umieścić ustawienia w pliku xorg.conf w następujący sposób:

sudo gedit /usr/share/X11/xorg.conf.d/60-synaptics-options.conf 

W nowym pliku wpisz

Section "InputClass"
  Identifier "touchpad catchall"
  Driver "synaptics"
  MatchIsTouchpad "on"
  MatchDevicePath "/dev/input/event*"

  Option "RTCornerButton" "0"

EndSection
monkbroc
źródło
15
Nie powinieneś wprowadzać lokalnych zmian w plikach w / usr / share. Zamiast tego umieść nowy plik w katalogu /etc/X11/xorg.conf.d/.
jdthood
@jdthood Ta odpowiedź sugerowała edytowanie /etc/X11/xorg.conf
Akseli Palén
Skąd mam wiedzieć, jaki numer powinienem wpisać w nazwie pliku, zgodnie z moją dystrybucją (Ubuntu 16.04)? Niektórzy mówią 60-synaptics-options.conf, inne powiedzmy 50-, 51-...
PlasmaBinturong
1
@PlasmaBinturong Liczba rozpoczynająca nazwę pliku wskazuje kolejność stosowania plików konfiguracyjnych; pliki o niższym numerze są stosowane jako pierwsze.
FThompson
@jdthood Nie ma takiego katalogu /etc/X11/xorg.conf.d ...
Michael
13

Demon ustawień Gnome może zastąpić istniejące ustawienia (na przykład ustawione w xorg.conf.d), dla których istniejące ustawienia /usr/share/X11/xorg.conf.d/50-synaptics.confsą ignorowane. Tak to naprawiłem.

Biegać dconf-editor

Edytuj /org/gnome/settings-daemon/plugins/mouse/(lub /org/cinnamon/settings-daemon/plugins/mouse/cynamon)

Odznacz activeustawienie

Będzie teraz respektował istniejącą konfigurację synaptyczną systemu.

Następnie zastosuj rozwiązanie monkbroc, które będzie działać teraz.

brzydka kaczka
źródło
Korzystam z budgie-desktop na gdm, ale nawet po tym moje ustawienia zostają zastąpione ....
rll
Dobry Boże, zajęło mi to tak dużo czasu. Dzięki za odpowiedź to była właśnie zmora wszystkich moich problemów.
cra0zy
@ cra0zy, dosłowna igła w stogu siana, co?
ugly_duck
1
Odkryłem na Ubuntu 18.04, że coś wciąż nadpisuje moje ustawienia conf nawet przy dconf-editorrozwiązaniu. Więc zamiast dodany skrypt /etc/profile.d/, który może pomieścić 10 sekund przed nałożeniem ustawienia: (sleep 10; synclient TapButton2=3) &.
FThompson
9

(Być może) najszybszym obejściem jest utworzenie wpisu w „Aplikacjach startowych”. Można go znaleźć w programie uruchamiającym jedność.

Przykładowy wpis wygląda mniej więcej tak:

Imię: Enable Palm Detection

Dowództwo: synclient PalmDetect=1

Komentarz: Enable synclient palm detection

Jest to zasadniczo odpowiednik odpowiedzi Augustina Riedingera, ale zamiast ręcznego tworzenia wpisu na pulpicie, pozwalamy Ubuntu zrobić to za nas.

Yixing
źródło
To nie działa w MATE
userDepth
1
Działa to również dobrze w Gnome 3. Wielkie dzięki!
vcarel
8

Najlepszą metodą, która działała dla mnie, jest dodanie twoich zmian do Xsession.d, więc załaduje się automatycznie dla wszystkich użytkowników, gdy zalogujesz się do X:

(plik nie istnieje, więc możesz nazwać go, jak chcesz. Liczby po lewej stronie oznaczają kolejność, w jakiej zostaną wykonane w porównaniu z innymi plikami).

/etc/X11/Xsession.d/80synaptics

(własność root, z uprawnieniami 644)

Na przykład możesz użyć tego jako podstawy:

#https://wiki.archlinux.org/index.php/Touchpad_Synaptics
#Palm dimension
#synclient PalmDetect=1
#synclient PalmMinWidth=4
#synclient PalmMinZ=100

#Touchpad sensibility (move)
#synclient FingerLow=10
#synclient FingerHigh=20

#Click detection
#synclient MaxTapTime=180
#synclient MaxTapMove = 242
#synclient MaxDoubleTapTime = 180

#2 finger = right click
#synclient TapButton2=0
#3 finger = middle click
#synclient TapButton3=2
#click corners
#synclient RBCornerButton=0 MaxTapTime
#synclient RTCornerButton=0
#synclient LTCornerButton=0
#synclient LBCornerButton=0

#Oval instead of rectangular
#synclient CircularPad=1

#TapAndDragGesture
#synclient TapAndDragGesture=1

#scroll in sides
#synclient VertEdgeScroll=0
#synclient HorizEdgeScroll=0
#synclient CornerCoasting=0

#2 finger scroll
#synclient VertTwoFingerScroll=1
#synclient HorizTwoFingerScroll=0

#Disable Touchpad on start
#synclient TouchpadOff=1

Testowane w Ubuntu 14.04 i 16.04

lepe
źródło
Kiedy to robię i odkomentuję niektóre rzeczy, takie jak stuknięcie dwoma palcami i trzema palcami, nie działa po ponownym uruchomieniu. Ale dzieje się tak, gdy ręcznie wprowadzam je w terminalu. Więc co mogę zrobić źle?
Mason
@Mason: Czy jesteś pewien, że nie wystąpił błąd składniowy (być może wprowadzono jakiś dziwny znak, jeśli skopiowałeś kod)? Sprawdź /var/log/Xorg.0.logplik dziennika pod kątem błędów lub ostrzeżeń.
lepe
To też nie działało dla mnie, była to prawdopodobnie najbardziej obiecująca odpowiedź. Wylogowałem się i zalogowałem ponownie, aby stwierdzić, że plik nadal tam jest, a sposób, w jaki go ustawiłem, to niezaangażowana linia. Ale nadal musiałem uruchomić polecenie w terminalu, aby zobaczyć, jak działa poprawnie.
Chris,
@Chris: Wciąż działa dla mnie w 16.04. Przetestuję to w czystej instalacji i dam wam znać tutaj (prawdopodobnie jest coś, co ustawiłem dawno temu, co sprawia, że ​​działa dla mnie).
lepe
@lepe Dziękujemy za sprawdzenie. Skończyło się na odpowiedzi „Autostart aplikacji” (teraz 2 niżej). To wydaje się działać całkiem dobrze. Próbuję zatrzymać cały śmieci TapAndDragGesture. Nawet po ustawieniu na 0 nadal mam małe okno, w którym nadal będzie to robić. Być może ta technika działałaby lepiej, nie jestem pewien.
Chris
3

Ustaw synclientopcje między sesjami X.

Korzystanie startx( xinit )

Dodaj dowolne synclient <option>=<value> &wiersze .xinitrc przed wierszem, który uruchamia menedżera okien lub środowisko pulpitu , na przykład:

## ~/.xinitrc
## X11 startup script; sourced by xinit(1) and its frontend startx(1)

## Set Synaptics touchpad options
synclient RTCornerButton=0 &

## Start desktop environment or window manager of your choice
exec startxfce4
# exec startlxde
# exec startkde
# exec i3
# exec dwm

Powyższy przykład ustawia synclientopcje przed uruchomieniem środowiska graficznego Xfce . Linie zaczynające się od #komentarzami (nie zostaną wykonane).

Korzystanie z menedżera wyświetlania

Metoda jest taka sama jak dla xinit, z tym wyjątkiem, że wstawiasz synclientwiersze w odpowiednim skrypcie uruchamiania dla menedżera wyświetlania, np /etc/GDM/Init/Default.

Jeśli masz jakiekolwiek wątpliwości, pozwól, że odniosę się do doskonałego ArchWiki . Pomimo tego, że jest specyficzny dla Archlinuxa, większość rozwiązań działa w każdej dystrybucji Linuksa ze względu na majsterkowanie Arch. Miłego!

rld.
źródło
Nie zadziała albo ...
Augustin Riedinger
Wyjście synclient; synclient RTCornerButton=0; synclient?
rld.
2

Używam Xubuntu 14.04 i to może nie działać dla ciebie. Sesja otwarta i uruchomienie lub jakakolwiek nazwa jest dla Ciebie. Przejdź do zakładki Autostart aplikacji, ponownie, bez względu na nazwę dla Ciebie. Kliknij przycisk Dodaj. Zachowaj dowolną nazwę i opis w typie polecenia:

synclient RTCornerButton=0

Jeśli chcesz dodać wiele wierszy, oddziel je znakiem ;

Upewnij się, że właśnie utworzone polecenie jest zaznaczone.

Akash Agarwal
źródło
1

Dodaj synclient [Var=Value]na końcu ~ / .bashrc

przykład: synclient RTCornerButton=0

To sprawi, że system ustawisz to ustawienie synchronizacji przy każdym logowaniu.

Lindhe
źródło
2
To nie działa ... Parametry są wykonywane, gdy uruchamiany jest bash, a nie podczas sesji otwartej ...
Augustin Riedinger
0

Wszystkie zaproponowane tutaj rozwiązania nie działają dla mnie:

  • Chcę, aby config był w /homefolderze, ponieważ jest to konfiguracja lokalna (więc mogę zachować parametry, nawet jeśli na przykład zmienię dystrybucję)
  • .bashrclub .xinitrcnie wydają się być wykonane poprawnie

W rezultacie stworzyłem .desktopplik, który jest automatycznie uruchamiany:

cat ~/.config/autostart/touchpadconfig.desktop 
[Desktop Entry]
Name=Touchpad Config
GenericName=Touchpad Config
Comment=Sets better default parameters to touchpad
Exec="synclient VertScrollDelta=40 && synclient AccelFactor=0.1 && synclient RightButtonAreaTop && synclient RightButtonAreaLeft=0"
Terminal=false
Type=Application
Icon=input-mouse
Categories=Settings;
StartupNotify=false

Może nie najlepsze rozwiązanie, ale działa dla mnie.

Augustin Riedinger
źródło
0

Żadne z rozwiązań nie działało dla mnie w Ubuntu 14.04 LTS z komputerem Unity. Aby ustawienia były trwałe, musiałem wkleić polecenia synclient do skryptu powłoki i dodać skrypt powłoki do moich aplikacji startowych w Unity.

Uwaga: Skrypt powłoki musi uruchomić się podobnie jak #!/bin/bashprzed poleceniami synclient, a uprawnienia należy zmienić na wykonywalne.

kernpanik
źródło
0

Dzięki Wayland (wciąż eksperymentalnym w 17.04, ale wkrótce będzie domyślnym), masz wszystkie potrzebne ustawienia:

wprowadź opis zdjęcia tutaj

Nico Schlömer
źródło
-1
sudoedit /usr/share/X11/xorg.conf.d/50-synaptics.conf

dodaj te wiersze w sekcji „InputClass”

Option "RTCornerButton" "0"

Jeśli korzystasz z GNOME lub menedżera pulpitu Cinnamon, istnieje duża szansa, że ​​ustawienia GNOME / Cinnamon mogą zastąpić ustawienia niestandardowe. Aby zapobiec zastąpieniu ustawień GNOME / Cinnamon, otwórz dconf Editor [ dconf-editor] i edytuj następujący wpis:

/org/gnome/settings-daemon/plugins/mouse/
or
/org/cinnamon/settings-daemon/plugins/mouse/

Odznacz aktywne .

Елин Й.
źródło