当前位置: 首页>>技术问答>>正文


反转两个手指滚动方向(自然滚动)?

,

问题描述

Two-fingered滚动工作正常,但有没有一种方法可以反转方向(自然滚动)?这似乎与OSX的做法背道而驰。

最佳解决思路

我不知道你使用的是哪个版本的Ubuntu,但是在13.04(我想是在12.10),可以通过触摸板设置。

所以首先,打开系统设置>鼠标和触摸板。如下面的屏幕截图所示,如果有一个选项用于粘贴手指,请检查它。然后滚动条将反向工作。

touchpad,ubuntu


这也可以通过DConf Editor访问。转到org.gnome.settings-daemon.peripherals.touchpad并检查natural-scroll

touchpad,ubuntu


您也可以在命令行上设置此选项:

gsettings set org.gnome.settings-daemon.peripherals.touchpad natural-scroll true

次佳解决思路

有几种方法可以为鼠标启用system-wide反转或自然滚动。我已经尝试过的两种方法将使它适用于所有窗口,包括gedit,终端,软件中心, nautilus 等。最简单的方法是执行以下操作。此方法将需要最新版本的xserver-xorg-input-evdev驱动程序,您可以从here获取该驱动程序。我知道它会起作用,因为我在使用它之前对它进行了测试,之后编写了此前我为Fedora 21编写的这个指南版本。确保您在Ubuntu-Tweak中关闭了反向滚动功能,否则您将看不到变化。此外,对于那些不希望在系统上使用自然滚动的用户,现在反向滚动将为system-wide,那些用户可以使用此选项关闭每个用户的自然滚动。现在,要开始…

在继续本指南之前,将Evdev更新/安装到最新版本并重新启动。

通过在终端中运行以下命令来获取鼠标设备ID:

xinput list 

把你得到的数字(只是”id=”后面的数字),并用下面的命令中的数字替换“{device id}”:

xinput list-props {device id} | grep "Scrolling Distance" 

除非在grep命令中使用-i,否则区分大小写。记下你在该命令输出中找到的数字(在我的例子中,它是数字1,显示三次,并用逗号分隔)。您将使用输出中得到的数字的负值。另外,请确保写下属性编号(它将在输出中的括号中;在我的情况下,它在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中获得的comma-separated相同的数字;在我的情况下,数字为1,因此我将-1):

Section "InputClass"         Identifier "Natural Scrolling"         MatchIsPointer "on"         MatchDevicePath "/dev/input/event*"         Option "VertScrollDelta" "-1"         Option "HorizScrollDelta" "-1"         Option "DialDelta" "-1" EndSection 

保存该文件并退出文本编辑器。无需重新启动。只需发出以下命令(替换第三步中获得的数字的属性编号和负数,以及第二步中获得的设备编号):

xinput set-prop {device id} {property number} -1 -1 -1 

您可能需要退出nautilus并在某些系统上重新启动nautilus(如果运行上述命令后自然滚动在nautilus中运行,请跳过此操作)。按下Alt + F2并分别运行这些命令中的每一个:

nautilus -q  nautilus -n 

而已!您现在应该拥有system-wide自然滚动功能,该功能将保持不变。

替代方法:

如果您不想安装最新版本的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到”turn on”自然滚动在per-user基础上将其关闭(这将与per-user基础上的system-wide设置相反,但不会影响其他想要使用的用户的实际系统设置自然滚动)。

注意:如果您安装了最新的Evdev,则此处的替代方法将不起作用,例如在Fedora 22中。使用上面的Evdev方法。还要注意:这两种方法都不能在Wayland的libinput中使用。您需要一种替代方式来为每个用户或其他用户提供服务。如果使用libinput,请确保删除如上创建的文件,并在桌面文件中创建启动项目。创建桌面文件后,将以下内容放在Exec行中(确保在使用libinput时使用鼠标的设备ID和鼠标的自然滚动属性编号;设备ID为11,属性为272;相应地调整您的设备)。

sh -c “sleep 5; exec xinput set-prop 11 272 1”

之后,保存文件并注销。当您再次登录时,您应该在per-user基础上进行自然滚动,或者可以将其设置为所有用户的自动启动。

第三种解决思路

最简单和恕我直言,在Ubuntu 12.10及以上版本中实现此目的的最佳方式是(未在12.04及以下测试)编辑synaptics配置:

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的设置很可能会覆盖您的自定义设置。要防止GNOME /Cinnamon的设置覆盖您的设置,请打开dconf编辑器[dconf-editor]并编辑以下条目:

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

取消选中活动。

P.S:

默认值是111,它表示速度,这意味着您可以使用该值来调整滚动速度以适合您的喜好。赋予它一个负值可以简单地反向滚动。

第四种思路

更新:此解决方案不适用于使用GTK3的应用程序,例如Nautilus(文件浏览器)等核心Gnome应用程序。请参阅下面的D Charles Pyle’s answer,了解适用于所有应用程序的解决方法。或者按照Gnome bug 682457获取核心修复程序的进度,这将不需要解决方法。

您可以使用“Natural Scrolling”进行系统反向滚动。

什么是自然滚动?

Natural Scrolling是一个GNOME Applet,可以让你反转滚动的方向。向上推动手指以向上移动页面内容(向下移动),就像在iOS设备上一样。不要再移动滚动条,而是移动文件。

安装自然滚动:

自然滚动可以从其PPA安装。

打开Alt + Ctrl + T打开终端并运行以下命令:


sudo add-apt-repository ppa:zedtux/naturalscrolling
sudo apt-get update
sudo apt-get install naturalscrolling

如何启用自然滚动?

安装完成后,点击超级按键(Windows键)打开Unity破折号并搜索”natural scrolling”并将其打开。你会在Unity面板中看到一个新的指示器,点击它并选择你的设备。在首选项中,您可以将其设置为在登录时开始。而已!

touchpad,ubuntu

第五种思路

您所说的反向滚动称为“自然滚动”,并且可以在Ubuntu中以多种不同方式启用。 Here’s an article on OMG! Ubuntu!详细说明如何安装能够满足您需求的软件。如果您熟悉Ubuntu Tweak,也可以在最新版本中启用它。

第六种思路

在Ubuntu 14.04上,转到“鼠标和触摸板”并选择”Natural Scrolling”。

touchpad,ubuntu

第七种思路

在Basharat Sial的答案中提到的自然滚动应用程序不能解决某些系统窗口中的自然滚动问题。

作为替代,我推荐this answer中提供的指南。当您使用他的指南时,您不再需要自然滚动应用程序。

第八种思路

使用以下命令获取device-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

注销和登录,自然滚动应该正常工作。

第九种思路

设置自然滚动system-wide并使其适用于所有系统应用程序的最简单方法是设置以下文件。

仅限触控板:

/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

对于鼠标和触摸板,创建两个文件。

然后,重新启动。

使用这两种配置之一的好处是它们不是device-specific。你可以插入其他鼠标或触摸板或键盘与触摸板,它会工作。

第十种思路

请按照以下步骤对系统进行广泛的滚动更改。

  1. 在终端上写:xev -event mouse。你会得到一个小盒子,当你将鼠标放入该部分时,你会得到很多生成到终端的数据。

  2. 在滚动时,注意按钮名称,可以说”x”(在我的情况下它是按钮5)。同时记下向下滚动的按钮名称,可以说”y”。在我的情况下,它是”4″。

  3. 使用cp ~/.Xmodmap ~/.Xmodmap.bak创建~/.Xmodmap文件的备份。

  4. cat ~/.Xmodmap。输出将像pointer = 1 2 3 5 4 6 7 8 9 10 11 12

  5. 在上面的输出中搜索x和y,它们将处于连续位置并交换它们。在我的情况下,echo "pointer = 1 2 3 4 5 6 7 8 9 10 11 12" > ~/.Xmodmap && xmodmap ~/.Xmodmap工作。请注意45的开关。

  6. 现在滚动将在系统范围内应用。无需重新启动。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/811.html,未经允许,请勿转载。