Ubuntu 18.04 LTS 中的触摸板手势

开箱即用,我可以使用手势来滚动和右键点击。我对三指手势非常感兴趣(比如用三个手指向上滑动以查看所有打开的窗口),但似乎没有办法让它们起作用。

我已经尝试过Extended Gestures GNOME-shell扩展和touchegg,但都没有成功。

有什么办法可以实现这些功能吗?

6个回答

Fusuma

我在使用带有Ubuntu 18.04(X.org)的XPS 15。我成功地让多点触控手势对我起作用。Kohei Yamada开发了一个名为Fusuma的应用程序,可以在Linux上启用多点触控手势。如果尚未安装Ruby,您需要在您的机器上安装它。

按照 fusuma GitHub 的 Readme 页面 上的说明进行操作,或者您可以按照对我有效的以下步骤进行操作:

首先,请检查您当前的用户是否属于输入组。您可以通过以下方式进行检查:

groups $USER | grep -w input # To check
sudo gpasswd -a $USER input  # To add

然后退出并重新登录。现在安装xdotool和libinput-tools。
sudo apt install libinput-tools  
sudo apt install xdotool

如果你还没有安装Ruby,现在可以安装它了。
sudo apt install ruby  

现在安装fusuma
sudo gem install fusuma  

决定你的手势

这基本上是创建一个 .yml 文件,其中包含所需的配置。如果你想要标准手势,可以按照这些说明进行操作,或者随意调整以获得所需的手势。

前往你的主目录中的配置文件夹。

cd ~/.config    

现在创建一个名为fusuma的文件夹。
mkdir fusuma  
cd fusuma

在那里创建一个名为config.yml的文件。
touch config.yml   

现在你可以使用你最喜欢的文本编辑器来输入这个文件的内容。
nano config.yml   

如果您使用的是18.04版本中的默认环境GNOME,请复制并粘贴以下说明。
swipe:
  3: 
    left: 
      command: 'xdotool key alt+Right'
    right: 
      command: 'xdotool key alt+Left'
    up: 
      command: 'xdotool key super'
    down: 
      command: 'xdotool key super'
  4:
    left: 
      command: 'xdotool key ctrl+alt+Down'
    right: 
      command: 'xdotool key ctrl+alt+Up'
    up: 
      command: 'xdotool key ctrl+alt+Down'
    down: 
      command: 'xdotool key ctrl+alt+Up'
pinch:
  in:
    command: 'xdotool key ctrl+plus'
  out:
     command: 'xdotool key ctrl+minus'

threshold:
  swipe: 0.4
  pinch: 0.4

interval:
  swipe: 0.8
  pinch: 0.1

请注意,此配置为您创建的手势如下:
多点触控手势 → 动作 3个手指向左滑动 → 在浏览器中前进 3个手指向右滑动 → 在浏览器中后退 3个手指向上滑动 → 显示所有窗口 3个手指向下滑动 → 关闭Exposé(Esc) 4个手指向左滑动 → 切换到下一个桌面 4个手指向右滑动 → 切换到上一个桌面 4个手指向上滑动 → 切换到下一个桌面 4个手指向下滑动 → 切换到上一个桌面
完成后,您可以在终端中运行命令以测试是否已安装。
sudo fusuma 

在终端中不会发生任何事情。只需开始使用您的多点触控手势-在触摸板上滑动即可。

现在您只需要添加Fusuma以及其在启动应用程序中的命令。


1虽然这个可以用,但它不是一个打包好的应用程序,需要一定的技术知识。但是没错,它确实运行良好。 - akxer
谢谢akabhirav。我不知道如何制作打包应用,但我很愿意开始尝试...这个应用可以改造成一个打包应用吗?你愿意帮助我吗? - Rachit Kinger
我对此没有太多经验,但我正在研究并找到了一种简单的方法。请访问这里 - https://github.com/phusion/traveling-ruby。很抱歉帮不上太多忙,但如果您需要编写代码方面的帮助,请回复我。 - akxer
看起来很棒!谢谢你的指点,akabhirav。 - Rachit Kinger
1太棒了!非常感谢。请注意,应该是: sudo gem install fusuma - mace
1嗨@RachitKinger,感谢详细的步骤。只有一个建议,在“mkdir fusuma”步骤之后,加入进入刚创建的文件夹的命令,因为对Linux不熟悉的人可能会直接粘贴并运行下一步的“touch config.yml”命令,这将导致配置文件生成在fusuma目录之外。 - Ghos3t
2感谢你的建议,@Ghos3t。虽然我已经提到配置文件应该创建在fusuma文件夹内,但我想你说得对,如果只看代码的话,很容易忽略这一点。现在我已经添加了一行代码来改变目录。 - Rachit Kinger
它能在Kubuntu上运行吗? - Mike Brian Olivera
@Mike 抱歉,我还没有尝试过那个。 - Rachit Kinger
很棒的回答,谢谢!我们如何使其在启动时自动运行?如果在启动应用程序中使用sudo是否有问题? - Alkis Mavridis
1@AlkisMavridis 我刚刚使用了启动应用程序工具,添加了命令“fusuma”,而没有使用“sudo”。不知道这是否是最好的解决方案,但对我来说有效。 - Doc
@RachitKinger 对我来说,四指手势不起作用,它们启动的是超级左/右而不是Ctrl Alt左/右,三指手势按预期工作。 - Erik Kubica
@ErikKubica 抱歉,我不再使用XPS-15和18.04,所以无法为你测试。也许帖子中的其他人可以帮助你。 - Rachit Kinger
1@RachitKinger 我找到解决办法了,我以root身份运行它,加载了不同的配置。但是我在缩放方面遇到了问题。在所有应用程序中,它都无法正常工作,例如在Chrome中,我捏合缩放时会切换到第一个标签,然后系统会冻结大约10秒钟,页面立即缩小到10%,在照片查看器、文件管理器等应用中也是如此。我想这就是开源世界的欢迎方式 :D - Erik Kubica
好的。只有两件事:在sudo fusuma中不需要使用sudo,并且在“添加到启动项”部分可以更加详细说明一下。 - arsaKasra

Ubuntu 18.04使用X.Org作为默认的显示服务器,而不是Wayland。提到的Extended Gestures extension目前只能在Wayland上工作。
你需要做的是在重新启动后选择Wayland进行登录。 这个链接展示了相同的步骤,但是是从Wayland切换到X.Org。

只需按下超级键(在我的情况下是Windows键),然后通过搜索“启动应用程序”来添加一个新的应用程序。 添加命令fusuma,然后重新启动以进行测试。
sudo apt install libinput-tools ruby
sudo gem install fusuma
sudo apt install xdotool # Optional: For sending shortcuts

在XPS 9570上使用18.10版本。

我使用舒适滑动

使用原生C++中的Xdotool进行舒适的三指和四指滑动手势

我觉得这比fusuma表现更好。


您可以直接从Ubuntu软件下载“扩展手势”! 但是,它取决于您的电脑,并不适用于所有电脑。

或者如果您喜欢较为困难的方式,请安装“Ubuntu触摸板手势”:

  1. 链接下载包含安装脚本的zip文件。

  2. 在终端中运行以下命令以安装依赖项并下载、编译和安装最新的源代码:

    chmod +x gestures-install.sh
    sudo sh gestures-install.sh
    
  3. 重新启动完成安装后,从应用程序菜单中打开“手势”。

现在,你可以自定义你自己的手势了!

screenshot

使用以下命令在同一脚本中删除它:
sudo sh gestures-install.sh --remove

我使用libinput-gestures并配置如下:
# Browser go forward (works only for Xorg, and Xwayland clients)
gesture swipe left 3 xdotool key alt+Right

# Browser go back (works only for Xorg, and Xwayland clients)
gesture swipe right 3 xdotool key alt+Left