如何使我的synclient设置保持不变?


29

突触式触摸板的默认设置包括映射到触摸板右上角的粘贴功能。我可以通过运行命令禁用此行为

synclient RTCornerButton=0

但是每次我重新启动时,我的设置都会恢复。如何防止这种情况发生?

Answers:


18

您需要将设置放入xorg.conf文件中,如下所示:

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

在新文件中,键入

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

  Option "RTCornerButton" "0"

EndSection

15
您不应该对/ usr / share中的文件进行本地更改。而是将新文件放在/etc/X11/xorg.conf.d/下。
jdthood 2014年

@jdthood 这个答案建议编辑/etc/X11/xorg.conf
AkseliPalén16年

根据我的分布(Ubuntu 16.04),我如何知道应在文件名中加上多少数字?有人说60-synaptics-options.conf,说其他50-51-...
PlasmaBinturong

1
@PlasmaBinturong以文件名开头的数字表示应用配置文件的顺序。编号较低的文件将首先应用。
FThompson

@jdthood没有这样的目录/etc/X11/xorg.conf.d ...
Michael

13

Gnome设置守护程序可能会覆盖现有设置(例如xorg.conf.d中设置的设置),而这些设置中的现有设置/usr/share/X11/xorg.conf.d/50-synaptics.conf将被忽略。这就是我固定的方式。

dconf-editor

编辑/org/gnome/settings-daemon/plugins/mouse/(或 /org/cinnamon/settings-daemon/plugins/mouse/用于肉桂)

取消选中active设置

现在它将尊重您系统的现有突触配置。

然后跟随 monkbroc的解决方案,该解决方案现在可以使用。


我在gdm上使用budgie-desktop,但是即使在此之后,我的设置也会被覆盖
。...– rll

亲爱的上帝,这花了我很长时间才找到。感谢您的回答,这正是我所有问题的祸根。
cra0zy

@ cra0zy,大海捞针,是吗?
ugly_duck

1
我在Ubuntu 18.04上发现即使使用该dconf-editor解决方案,某些内容仍然会覆盖我的conf设置。因此,我改为向其中添加了一个脚本,/etc/profile.d/该脚本在应用设置之前会休眠10秒钟(sleep 10; synclient TapButton2=3) &
FThompson

9

(也许)最快的解决方法是在“启动应用程序”中创建一个条目。可以在统一启动器中找到。

一个示例条目如下所示:

名称: Enable Palm Detection

命令: synclient PalmDetect=1

评论: Enable synclient palm detection

从本质上讲,这等效于Augustin Riedinger的答案,但是我们不是手动创建桌面条目,而是让Ubuntu为我们完成此任务。


这在MATE中
不起作用

1
在Gnome 3中也可以使用。非常感谢!
vcarel

8

对我而言,最好的方法是将您的更改添加到Xsession.d中,这样当您登录X时它将自动为所有用户加载:

(该文件不存在,因此您可以随意命名。左边的数字表示该文件与其他文件相比执行的顺序。)

/etc/X11/Xsession.d/80synaptics

(由root用户拥有,权限为644)

例如,您可以以此为基础:

#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

在Ubuntu 14.04和16.04中测试


当我这样做时,并且取消注释诸如2手指和3手指的敲击之类的东西时,重新启动后它不起作用。但是,当我在终端中手动输入它们时,它会执行此操作。那么我可能做错了什么?
梅森

@Mason:您确定没有语法错误(如果“复制粘贴”代码,可能会引入一些奇怪的字符)?检查/var/log/Xorg.0.log日志文件中是否有错误或警告。
莱佩

这对我也不起作用,这可能也是最有前途的答案。我注销并重新登录,发现该文件仍然存在,并且未提交的行是我设置它的方式。但是我仍然必须在终端中运行命令才能看到它正常工作。
克里斯(Chris)

@Chris:它在16.04中仍然对我有用。我将在干净的安装中对其进行测试,并在此处告知您(可能我很久以前设置的某项功能对我有用)。
lepe

@lepe感谢您检查它。我最终使用了“应用程序自动启动”答案(现在是2)。这似乎工作得很好。我试图停止整个TapAndDragGesture垃圾。即使将其设置为0,我仍然会得到一个小窗口,它将继续执行该操作。不确定这种技术可能会更好。
克里斯(Chris)

3

使synclient选项停留在X个会话之间

使用startxxinit

将任何synclient <option>=<value> &行添加到.xinitrc 运行窗口管理器或桌面环境的行之前,如下所示:

## ~/.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

上面的示例synclient在运行Xfce桌面环境之前设置选项。与开头的行#注释(他们不会被执行)。

使用显示管理器

xinit除了将synclient行放在显示管理器的相关启动脚本中(例如)之外,方法与相同/etc/GDM/Init/Default

如果您有任何疑问,请允许我参考出色的ArchWiki。即使是特定于Archlinux的,由于Arch的DIY特性,大多数解决方案都可以在每个Linux发行版中使用。祝你有个好的一天!


也不起作用……
奥古斯丁·里丁格

输出synclient; synclient RTCornerButton=0; synclient
rld。

2

我正在使用Xubuntu 14.04,这可能对您不起作用。打开会话并启动,或为您使用任何名称。再次转到“应用程序自动启动”选项卡,无论您使用的名称是什么。点击添加按钮。在命令类型中保留您想要的任何名称和描述:

synclient RTCornerButton=0

如果要添加多行,请用 ;

确保已选中刚刚创建的命令。


1

synclient [Var=Value]到〜/ .bashrc的末尾

例: synclient RTCornerButton=0

这将使您每次登录时系统设置此synclient设置。


2
这不起作用...启动bash时执行参数,而不是在会话打开时执行…
Augustin Riedinger 2014年


0

这里建议的所有解决方案都不适合我:

  • 我希望配置位于/home文件夹中,因为它是本地配置(因此,即使更改了distrib,我也可以保留参数)
  • .bashrc.xinitrc似乎执行不正确

因此,我最终创建了一个.desktop自动启动的文件:

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

也许不是最好的解决方案,但对我有用。


0

在具有Unity桌面的Ubuntu 14.04 LTS中,没有一种解决方案对我有用。为了使设置永久化,我必须将synclient命令粘贴到Shell脚本中,然后将Shell脚本添加到Unity中的Startup Applications中。

注意:shell脚本必须以类似#!/bin/bashsynclient命令之前的方式启动,并且必须将权限更改为可执行文件。



-1
sudoedit /usr/share/X11/xorg.conf.d/50-synaptics.conf

将这些行添加到“ InputClass”部分中

Option "RTCornerButton" "0"

如果您使用的是GNOME或Cinnamon桌面管理器,则很有可能GNOME / Cinnamon的设置可以覆盖您的自定义设置。为防止GNOME / Cinnamon的设置覆盖您的设置,请打开dconf编辑器 [ dconf-editor]并编辑以下条目:

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

取消选中活动

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.