如何在 Guix 中启用点击、两指点击和自然滚动?

如何在 Guix 中启用点击、两指点击和自然滚动?

第一次启动 Guix 后,我注意到点击触摸板不会呈现任何操作。显然,Guix 附带了触摸板的默认配置,允许我点击触摸板,这基本上就足够了,但是禁用了点击,这可能会因为触摸板的大量使用而感到累人。这类似于Debian 上可能会遇到的默认配置

为了以防万一,我曾经xinput list找出触摸板的名称,xinput list-props然后是触摸板名称,以检查其功能。

synclient然后我用 找到了二进制文件的位置find,并且synaptics(4) man在线查阅页面,调用synclientTapButton1=1启用一指点击,然后使用 来TapButton2=3将两指点击设置为右键事件(这会带来右键单击菜单)。在其上,我还启用了水平两指滚动HorizTwoFingerScroll=1,以及通过将 和 设置VertScrollDeltaHorizScrollDelta我从中学到的相同值xinput list-props但为负值(通过-在每个值之前添加)来启用自然滚动。

现在,人们通常会将此设置添加到/etc/X11/xorg.conf.d/70-synaptics.conf.但由于这是 Guix,该文件不在/etcGNU 存储中,而是在 GNU 存储中,并且触摸板驱动程序应该在/etc/config.scm.GNU Guix 参考手册1.3.0 版本没有提到如何配置 synaptics。

在 Guix 系统上我可以做什么,这样我就不需要在每次登录后自己配置触摸板?

答案1

xf86-input-synaptics在我的用户配置文件中安装了为我的用户guix install xf86-input-synaptics添加的synclient路径。 (即使没有任何互联网连接,此操作也能完成!)这样,我现在使用以下脚本:

#! /run/current-system/profile/bin/bash

# Enable one-finger tap and double tap
synclient TapButton1=1

# Enable two-finger tap to open right-click menu
synclient TapButton2=3

# Enable horizontal scroll with two fingers
synclient HorizTwoFingerScroll=1

# Enable natural scrolling
synclient VertScrollDelta=-"$(synclient | grep VertScrollDelta | cut -d '=' -f 2 | cut -c 2-)"
synclient HorizScrollDelta=-"$(synclient | grep HorizScrollDelta | cut -d '=' -f 2 | cut -c 2-)"

我选择将其存储~/.local/bin/synaptics-user-settings并放入以下自动启动文件~/.config/autostart/load-synaptics-user-settings.desktop。 (/home/roman是我的主目录。)

[Desktop Entry]
Type=Application
Exec=/home/roman/.local/bin/load-synaptics-user-settings
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true

不管怎样,这感觉像是一个解决方法。

答案2

复制/usr/share/X11/xorg.conf.d/70-synaptics.conf/etc/X11/xorg.conf.d/编辑:

Section "InputClass"
...
        Option "TapButton2" "3"

答案3

启用点击、两指点击、自然滚动甚至现代 GNOME 三指滑动的更好方法是切换到 libinput 而不是 synaptics 驱动程序。有一个将 xf86-input-synaptics 模块列入黑名单的示例配置,但我决定完全切换到 Wayland

;;…
  (services (modify-services
;;…
            (gdm-service-type config => (gdm-configuration
               (inherit config)
               (wayland? #t)))
            ))
;;…

重启后,默认会话应该是wayland,你可以检查一下GDM屏幕右下角小齿轮⚙️下的它不是X11。登录后,您可以从终端检查当前会话echo $XDG_SESSION_TYPE

不要忘记在 GNOME 控制中心中打开“Tap to Click”。


更新:Guix系统现在libinput默认使用。值得注意的是,并libinput没有解释“三指滑动、捏合缩放等”触摸屏手势” 本身。相反,它将它们传递给 Wayland 或 X 客户端。只是碰巧 X 中这些未配置或无法工作(至少在 Fedora 和 Guix 中),因此libinput必须切换到 Wayland 才能使它们工作。

相关内容