我在 ubuntu 17.04 上安装了 gnome-shell,它运行良好,但我在尝试使用触控板启用自然滚动时遇到了困难。它在 Unity 中开箱即用,但在 gnome 中,尽管我在系统设置中激活了自然滚动,但它不起作用。我还在我的主文件夹中创建了文件“.Xmodmap”,使用以下命令:
pointer = 1 2 3 5 4 6 7 8 9 10 11 12
进而:
xmodmap .Xmodmap
我也尝试过注销/登录,但自然滚动仍然被禁用。最后,我尝试安装“naturalscrolling”包:
sudo add-apt-repository ppa:zedtux/naturalscrolling
sudo apt-get install naturalscrolling
但我得到:
E: Unable to locate package naturalscrolling
任何想法?
附言:我的机器是戴尔 XPS 15' 9560
更新:
通过运行xinput list
我看到了这一点:
↳ DLL07BE:01 06CB:7A13 Touchpad id=12 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=15 [slave pointer (2)]
为什么有两个不同的触摸板?
$ /usr/bin/xinput set-prop 15 "libinput Scroll Method Enabled" 0, 1, 0
property 'libinput Scroll Method Enabled' doesn't exist, you need to specify its type and format
更新2:
我注意到自然滚动实际上在 Pycharm(基于 Java 的 IDE)中起作用,但 Chrome、“文件”和其他应用程序仍可正常滚动 :(
更新 3:
我通过全新安装 Ubuntu GNOME(支持开箱即用的自然滚动)“解决”了这个问题
答案1
我在 Dell XPS 15 9530 上运行 Ubuntu Gnome 17.04,以下是对我有用的:
解决方案是保留xserver-xorg-input-libinput
安装,然后删除xserver-xorg-input-synaptics
,然后重新启动。升级似乎安装了两者,并且默认选择了 synaptic,而后者似乎没有自然滚动选项。
答案2
有同样的问题。已解决:
sudo apt install xserver-xorg-input-libinput
sudo apt purge xserver-xorg-input-synaptics
然后重新启动
答案3
也许您的鼠标需要设置不同的属性。请尝试以下操作:
找到你的鼠标 ID(我的是下面的 10):
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB-PS/2 Optical Mouse id=10 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ USB Keyboard id=8 [slave keyboard (3)]
↳ USB Keyboard id=9 [slave keyboard (3)]
列出鼠标的可用属性(将 10 替换为您的鼠标的 ID):
$ xinput list-props 10
Device 'Logitech USB-PS/2 Optical Mouse':
Device Enabled (136): 1
Coordinate Transformation Matrix (138): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Accel Speed (273): 0.000000
libinput Accel Speed Default (274): 0.000000
libinput Accel Profiles Available (275): 1, 1
libinput Accel Profile Enabled (276): 1, 0
libinput Accel Profile Enabled Default (277): 1, 0
libinput Natural Scrolling Enabled (278): 1
libinput Natural Scrolling Enabled Default (279): 0
libinput Send Events Modes Available (258): 1, 0
libinput Send Events Mode Enabled (259): 0, 0
libinput Send Events Mode Enabled Default (260): 0, 0
libinput Left Handed Enabled (280): 0
libinput Left Handed Enabled Default (281): 0
libinput Scroll Methods Available (282): 0, 0, 1
libinput Scroll Method Enabled (283): 0, 0, 0
libinput Scroll Method Enabled Default (284): 0, 0, 0
libinput Button Scrolling Button (285): 2
libinput Button Scrolling Button Default (286): 2
libinput Middle Emulation Enabled (287): 0
libinput Middle Emulation Enabled Default (288): 0
Device Node (261): "/dev/input/event2"
Device Product ID (262): 1133, 49215
libinput Drag Lock Buttons (289): <no items>
libinput Horizontal Scroll Enabled (290): 1
如您所见,我的鼠标有一个名为“libinput Natural Scrolling Enabled”的属性,在我的情况下其数字为 278。
将其设置为 1,自然滚动就可以启用了(将 10 替换为你的鼠标 ID,将 278 替换为你的属性实际编号):
$ xinput set-prop 10 278 1
答案4
我在启动应用程序中有以下内容:
/usr/bin/xinput set-prop 14 "libinput Scroll Method Enabled" 0, 1, 0
并将其命名为“边缘滚动解决方法”。然后,您还可以从“设置”本身反转滚动的顺序(就像我们在 Unity 中所做的那样)。
14 是触摸板的代码。您可以使用以下代码找到您的触摸板...
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ETPS/2 Elantech Touchpad id=14 [slave pointer (2)]
ppa:zedtux/naturalscrolling
仅支持至版本 14.04。