在 Arch Linux 上安装 dwm 后启用触摸板点击

在 Arch Linux 上安装 dwm 后启用触摸板点击

我安装了 Arch Linux,暗网窗口管理器。但触摸板的点击不起作用。

我知道如何启用点击;我使用以下命令找到触摸板的 ID:

~ xinput --list
Virtual core pointer                          id=2    [master pointer  (3)]
  ↳ Elan Touchpad                             id=10   [slave  pointer  (2)]

我可以看到 id 是 10。然后我可以列出它的属性:

~ xinput --list-props 10
Device 'Elan Touchpad':
    Device Enabled (172):   1
    libinput Tapping Enabled (307): 0

在这里我可以看到 id 为 307 的属性tapping没有设置为 1,所以它没有启用,我可以使用以下命令启用它:

xinput --set-prop 10 307 1

并且它确实有效。现在我想编写一个脚本来自动执行此过程,这样我就不必每次重启时都执行此操作。我写了这个脚本:

#!/bin/bash

touchpad_id=$(xinput --list | awk '/Touchpad/ {print $5}' | tr -d 'id=')
tapping_id=$(xinput --list-props $touchpad_id | awk '/libinput Tapping Enabled \(/ {print $4}' | tr -d '():')

# Enable Tapping
xinput --set-prop $touchpad_id $tapping_id 1

当我在终端中运行该脚本(使用./touchpad_click.sh)时,该脚本就可以正常工作。

接下来,我修改了 dwm 源代码,使其每次启动时都运行一个脚本。我在run(void)scan(void)函数之间添加了以下函数dwm.c

void
runAutostart(void) {
        system("~/.dwm/autostart.sh &");
}

添加了它的标题:

static void runAutostart(void);

main()并在调用之前调用了该函数run()

scan();
runAutostart();
run();

然后dwm.c用 编译该文件sudo make install。编译成功。

然后写了这个脚本autostart.sh

#!/bin/bash

# Enable Tapping for Touchpad
./touchpad_click.sh

并将autostart.sh和放入目录touchpad_click.sh~/.dwm。我还确保授予这两个文件的execute权限:

chmod +x autostart.sh touchpad_click.sh

我通过以下方式验证:

~ ls -lhA
-rwxr-xr-x 1 amir amir  63 Feb 25 18:07 autostart.sh
-rwxr-xr-x 1 amir amir 259 Feb 25 18:07 touchpad_click.sh

现在的问题是它不起作用,当我通过Shift+Alt+Q快捷方式终止 dwm 或重新启动系统时,触摸板的点击被禁用。我该如何解决这个问题?

答案1

我认为您不需要自己构建 dwm 并编写设置 xinput 属性的特殊脚本。您可以直接使用 Xorg 配置文件:https://wiki.archlinux.org/index.php/Libinput#Via_Xorg_configuration_file

/etc/X11/xorg.conf.d/30-touchpad.conf创建一个包含以下内容的文件:

Section "InputClass"
    Identifier "touchpad catchall"
    Driver "libinput"
    Option "Tapping" "on"
EndSection

并重新启动 Xorg。

相关内容