Answers:
我不知道您使用的是哪个版本的Ubuntu,但是在13.04(我猜是在12.10)中,可以通过触摸板设置来实现。
因此,首先打开系统设置>鼠标和触摸板。如下面的屏幕截图所示,如果有内容粘住手指的选项,请选中它。然后,滚动条将以相反的方向工作。
也可以通过DConf编辑器访问。去org.gnome.settings-daemon.peripherals.touchpad
检查natural-scroll
。
您还可以在命令行上设置此选项:
gsettings set org.gnome.settings-daemon.peripherals.touchpad natural-scroll true
gsettings set org.gnome.desktop.peripherals.touchpad natural-scroll false
或鼠标gsettings set org.gnome.desktop.peripherals.mouse natural-scroll false
。(Fedora 24将鼠标识别为触摸板,因此请使用命令行.touchpad
,请参见forums.fedoraforum.org/…和Fedora bug bugzilla.redhat.com/show_bug.cgi?id=1352159
有几种方法可以为鼠标启用系统范围的反向或自然滚动。我尝试过的只有两种方法可以在所有窗口中启用它,包括gedit,终端,软件中心,鹦鹉螺等。最简单的方法是执行以下操作。此方法将需要最新版本的xserver-xorg-input-evdev驱动程序,您可以从此处获取。我知道它会起作用,因为在编写此版本的Fedora 21指南之前,我已经在使用它并对其进行了测试。请确保已在Ubuntu-Tweak中关闭了反向滚动功能,否则将看不到效果变化。另外,对于那些现在不想在系统上使用自然滚动的用户来说,反向滚动将在整个系统范围内进行,这些用户可以使用此选项关闭每个用户的自然滚动。现在,开始...
在继续本指南之前,将Evdev更新/安装到最新版本并重新启动。
通过在终端中运行以下命令来获取鼠标设备ID:
xinput list
取您得到的数字(仅在“ id =“之后的数字),然后在以下命令中用该数字替换“ {device id}”:
xinput list-props {device id} | grep "Scrolling Distance"
除非您在grep命令中使用-i,否则它区分大小写。写下您在该命令的输出中找到的数字(在我的例子中是数字1,显示3次并用逗号分隔)。您将使用在输出中获得的数字的负值。另外,确保记下属性编号(在输出中的括号中;对于我而言,在Ubuntu中为(272),在Fedora中为(273))。
注意:如果没有包含“ Scrolling Distance”属性的输出,则此方法将对您不起作用,您需要在此处停止并跳到本指南下方显示的替代方法。
在打开的终端中运行以下命令:
sudo touch /usr/share/X11/xorg.conf.d/20-natural-scrolling.conf
现在,运行以下命令(您可以使用自己喜欢的文本编辑器来代替nano,但我使用nano):
sudo nano /usr/share/X11/xorg.conf.d/20-natural-scrolling.conf
在您在首选文本编辑器中打开的文件中,粘贴以下内容(但请确保将数字更改为与您从第3步获得的逗号分隔的数字相同;在我的情况下,该数字为1,所以我输入-1):
Section "InputClass" Identifier "Natural Scrolling" MatchIsPointer "on" MatchDevicePath "/dev/input/event*" Option "VertScrollDelta" "-1" Option "HorizScrollDelta" "-1" Option "DialDelta" "-1" EndSection
保存文件并退出文本编辑器。无需重启。只需发出以下命令(用第三步中获得的属性编号和数字的负数以及第二步中获得的设备ID代替):
xinput set-prop {device id} {property number} -1 -1 -1
您可能需要退出nautilus并在某些系统上重新启动nautilus(如果在运行上述命令后在nautilus中进行自然滚动,请跳过此步骤)。按Alt + F2并分别运行以下每个命令:
nautilus -q nautilus -n
而已!现在,您应该在系统范围内进行自然滚动,这将是持久的。
替代方法:
如果您不想安装最新版本的Evdev(或者,即使您的鼠标在最新的Evdev中也没有“ Scrolling Distance”属性),则可以执行以下操作:
在打开的终端中运行以下命令:
sudo touch /usr/share/X11/xorg.conf.d/20-natural-scrolling.conf
现在,运行以下命令(您可以使用自己喜欢的文本编辑器来代替nano,但我使用nano):
sudo nano /usr/share/X11/xorg.conf.d/20-natural-scrolling.conf
在您在首选文本编辑器中打开的文件中,粘贴以下内容:
Section "InputClass" Identifier "natural scrolling for mouse wheel" MatchIsPointer "on" MatchDevicePath "/dev/input/event*" Driver "mouse" Option "Device" "/dev/input/mice" Option "Protocol" "Auto" Option "ZAxisMapping" "5 4" EndSection
保存文件并重新启动。如上所述,单个用户可以通过使用Ubuntu-Tweak来“打开”自然滚动来按用户将其关闭(这与按用户范围的系统范围设置相反,但不会影响想要使用自然滚动的其他用户的实际系统设置)。
注意:如果您安装了最新的Evdev(例如在Fedora 22中),则此处的替代方法将不起作用。请使用上面的Evdev方法。另请注意:在Wayland中,这两种方法均不适用于libinput。您将需要一种按用户或其他方式进行操作的替代方法。如果使用libinput,请确保删除如上所述创建的文件,并在桌面文件中创建启动项。创建桌面文件后,将以下内容放在Exec行中(使用libinput时,请确保使用鼠标的设备ID和鼠标的naturalscrolling属性号;我的设备ID为11,属性为272;相应地调整您的设备ID )。
sh -c“ sleep 5; exec xinput set-prop 11 272 1”
之后,保存文件并注销。再次登录时,您应该按用户自然滚动,或者可以在所有用户的自动启动中进行设置。
我认为在Ubuntu 12.10及更高版本上实现此目的的最简单,最好的方法(未在12.04及更低版本上进行测试)是编辑突触配置:
sudoedit /usr/share/X11/xorg.conf.d/50-synaptics.conf
在16.04上,将此文件复制到下/etc/X11/xorg.conf.d/50-synaptics.conf
,然后编辑:
cp /usr/share/X11/xorg.conf.d/50-synaptics.conf /etc/X11/xorg.conf.d/
sudoedit /etc/X11/xorg.conf.d/50-synaptics.conf
将这些行添加到Section "InputClass"
Identifier "touchpad catchall"
:
Option "VertScrollDelta" "-111"
Option "HorizScrollDelta" "-111"
因此,其内容如下所示:
Section "InputClass"
Identifier "touchpad catchall"
Driver "synaptics"
MatchIsTouchpad "on"
Option "VertScrollDelta" "-111"
Option "HorizScrollDelta" "-111"
# ...
重新启动(或继续阅读),并享受自然滚动的乐趣:)
如果您想尝试设置而不重启,可以使用 synclient
synclient VertScrollDelta=-111
synclient HorizScrollDelta=-111
所做的更改将立即应用,但如果不将其添加到50-synaptics-conf
文件中,则重启后不会保留更改。
如果您使用的是GNOME或Cinnamon桌面管理器,则很有可能GNOME / Cinnamon的设置可以覆盖您的自定义设置。为防止GNOME / Cinnamon的设置覆盖您的设置,请打开dconf编辑器 [ dconf-editor
]并编辑以下条目:
/org/gnome/settings-daemon/plugins/mouse/
or
/org/cinnamon/settings-daemon/plugins/mouse/
取消选中活动。
默认值为111
,它表示速度,这意味着您可以使用该值来调整滚动速度以适应您的喜好。将其设置为负值可使其简单地沿相反方向滚动。
VertEdgeScroll
相反的方式走下去,VertTwoFingerScroll
但它们似乎是布尔值,无论如何这可能是一个疯狂的主意。 x.org/archive/X11R7.5/doc/man/man4/synaptics.4.html
xorg.conf.d
文件夹和文件不存在,因此我需要手动创建它们并创建自定义InputSection
更新:此解决方案不适用于使用GTK3的应用程序,例如Nautilus(文件浏览器)之类的核心Gnome应用程序。有关适用于所有应用程序的解决方法,请参见下面的D Charles Pyle的答案。或关注Gnome错误682457,以获取不需要解决方法的核心修复程序。
您可以使用“ 自然滚动 ”进行系统范围的反向滚动。
什么是自然滚动?
自然滚动是GNOME Applet,可让您反转滚动方向。就像在iOS设备上一样,您向上推动手指可向上移动页面内容(向下可向下移动)。除了文件之外,不要再移动滚动条。
安装自然滚动:
可以从其PPA安装自然滚动。
点击Alt+ Ctrl+ T打开终端并运行以下命令:
sudo add-apt-repository ppa:zedtux / naturalscrolling sudo apt-get更新 sudo apt-get install naturalscrolling
如何启用自然滚动?
安装后,按超级键(Windows键)以打开Unity破折号并搜索“自然滚动”并打开它。您将在Unity面板中看到一个新指示器,单击它并选择您的设备。在首选项中,您可以将其设置为从登录开始。而已!
您所说的反向滚动称为“自然滚动”,可以在Ubuntu中以几种不同的方式启用。这是有关OMG的文章!Ubuntu的!详细介绍如何安装可满足您需求的软件。如果您熟悉Ubuntu Tweak,也可以在最新版本中启用它。
.Xmodmap
调整是否有效。
使用以下方法获取设备ID:
xinput list
从以下命令获取数字:
xinput list-props {device id} | grep "Scrolling Distance"
例如,一个示例输出:
Synaptics Scrolling Distance (290): 102, 102
在这里,数字102、102是我们感兴趣的。就您而言,它们将是另外一回事。只需将这些数字的负数放在下面提到的配置中即可。
编辑〜/ .profile并将这些行放在文件末尾。
synclient VertScrollDelta=-102
synclient HorizScrollDelta=-102
注销和登录,自然滚动应该可以正常工作。
在系统范围内设置自然滚动并使其与所有系统应用程序一起使用的最简单方法是设置以下文件。
仅触摸板:
/usr/share/X11/xorg.conf.d/20-natural-scrolling-touchpads.conf
Section "InputClass"
Identifier "Natural Scrolling Touchpads"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Option "VertScrollDelta" "-111"
Option "HorizScrollDelta" "-111"
EndSection
仅限鼠标:
/usr/share/X11/xorg.conf.d/20-natural-scrolling-mouses.conf
Section "InputClass"
Identifier "Natural Scrolling Mouses"
MatchIsPointer "on"
MatchIsTouchpad "off"
MatchDevicePath "/dev/input/event*"
Option "VertScrollDelta" "-1"
Option "HorizScrollDelta" "-1"
Option "DialDelta" "-1"
EndSection
对于鼠标和触摸板,都创建两个文件。
然后,重新启动。
使用这两种配置之一的好处是它们不是特定于设备的。您可以插入其他鼠标或触摸板或带有触摸板的键盘,然后它将起作用。
请按照以下步骤系统广泛地更改滚动。
xev -event mouse
。您会得到一个小盒子,将鼠标移到该部分时,您会在终端中生成大量数据。~/.Xmodmap
文件备份cp ~/.Xmodmap ~/.Xmodmap.bak
。cat ~/.Xmodmap
。输出会像pointer = 1 2 3 5 4 6 7 8 9 10 11 12
echo "pointer = 1 2 3 4 5 6 7 8 9 10 11 12" > ~/.Xmodmap && xmodmap ~/.Xmodmap
为例。需要注意的开关4
和5
。echo "pointer = 1 2 3 5 4 6 7 8 9 10 11 12" >>~/.Xmodmap && xmodmap ~/.Xmodmap
基于此博客,以下脚本在Ubuntu 12.04上对我有用。它将触摸板的水平和垂直滚动比例因子都设置为负值(通常可确保“自然”滚动)。它“在后台”执行操作,因此所有应用程序都将受到影响,即使那些不注意tweakUI调整设置的应用程序也是如此。那里有一些不必要的命令和注释,因此您可以查看发生了什么。您可能需要关闭TweakUI或类似程序中的任何自然滚动设置。
xinput list | grep "[Tt]ouch" | grep "id=([0-9]+)"
# ⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)]
id=`xinput list | grep -Po "[Tt]ouch[^=]*id=[0-9]+" | grep -Po [0-9]+`
xinput --list-props $id | grep "Scrolling Distance"
# Synaptics Scrolling Distance (269): -107, -107
# Synaptics Circular Scrolling Distance (282): 0.100000
prop_id=`xinput --list-props $id | grep -P ".*[^C][^i][^r][^c][^u][^l][^a][^r]\sScrolling Distance" | grep -Po '\([0-9]+\)' | grep -Po "[0-9]+"`
prop_xy=xinput --list-props $id | grep -P ".*[^C][^i][^r][^c][^u][^l][^a][^r]\sScrolling Distance" | grep -Po '\s+[-+]{0,1}[0-9]+\,\s*[-+]{0,1}[0-9]+' | tr -d '-'
xinput --list-props $id | -P ".*[^C][^i][^r][^c][^u][^l][^a][^r]\sScrolling Distance" | grep -Po '\s+[-+]?[0-9]+[,]?' | tr -d '-' | tr -d ',' | tr ' \t' '-' | xargs xinput --set-prop $id $prop_id
nautilus -q
nautilus -n &
| grep -v 'Circular'
的[^e][^x][^t][^r][^a] [^r][^e][^a][^d][^a][^b][^i][^l][^i][^t][^y]
。噢,愚蠢的我,才意识到您是一个-P
erl编码器!
-P
或其他)
... | grep -v 'Circular' | grep "\sScrolling Distance" | ...
交换它们可能更有效。嗯
这适用于Mate以及大概其他在控制面板中没有简单选项的环境。
如果您已经有一个.Xmodmap文件,请手动添加此行。
# standard
echo "pointer = 1 2 3 4 5 6 7 8 9 10 11 12" > ~/.Xmodmap && xmodmap .Xmodmap
# "natural"
echo "pointer = 1 2 3 5 4 6 7 8 9 10 11 12" > ~/.Xmodmap && xmodmap .Xmodmap
我刚刚得到了一个新的Latitude E5570,它受到错误#1590590(以及其他错误的影响::\),并且在此注释中提供了一个非常快速简便的解决方案:
〜/ .xinputrc
xinput设置按钮映射“ ImPS / 2通用滚轮鼠标” 1 2 3 5 4 6 7
这样,仅无法识别的触摸板的两指滚动方向将被反转,而外部鼠标的滚轮滚动方向将不会改变。
此外,由于unity / gnome中的某些错误,并非所有应用程序都正确解释.xinputrc / .Xmodmap命令。因此,例如chrome / firefox可以,但无论.xinputrc / .Xmodmap内容如何,鹦鹉螺窗口仍将使用“自然”滚动。我没有找到解决这些矛盾的方法。
唯一真正的解决方案当然是在内核级别适当地支持我们的触摸板