使用笔记本电脑触控板作为图形输入板

使用笔记本电脑触控板作为图形输入板

我有兴趣将我的笔记本电脑触控板用作绘图板,即使用绝对坐标而不是相对坐标,类似于英克莱特适用于 OSX。

同样的问题也出现在ubuntuforums.org2010 年 5 月,但这个问题从未得到解答。我想知道这是否在 Linux 上已经完成。我也在试图弄清楚要使用哪些搜索词。我搜索了“linux 笔记本电脑触摸板绝对模式”,结果触控板驱动程序的问题它将触控板置于绝对模式。但我真正想要的是程序它使用绝对位置而不是驱动程序设置。

答案1

查看驱动程序,而不是应用程序

您不会找到执行此操作的程序,因为驱动程序尝试将这三种类型的触摸板抽象为应用程序的单一表示:

  • 触摸板报告的绝对位置数据由 Xorg 驱动程序转换为应用程序的相对移动。常规应用程序无法直接与触摸板通信(根据设计),因此您确实必须在驱动程序中寻找解决方案。
  • 具有相对模式和绝对模式的触摸板需要切换模式,这与硬件密切相关,与应用程序无关。
  • 一些更基本的触摸板没有报告绝对位置的能力。

不幸的是,即使您的触摸板能够报告所有绝对值,大多数触摸板驱动程序也不会让您在 Linux 应用程序中使用它们。绝对数据确实存在,因为驱动程序可以检测您是否在边缘触摸它以进行滚动等操作。evtest在虚拟终端(暂停 X)中亲自测试一下。我的 Synaptics 触摸板报告的绝对位置如下:

Event type 3 (EV_ABS)
  Event code 0 (ABS_X)
    Value   3332
    Min     1472
    Max     5648
    Fuzz       8
    Resolution      39
  Event code 1 (ABS_Y)
    Value   2017
    Min     1408
    Max     4806
    Fuzz       8
    Resolution      79

最近,Xorg 中将 Synaptics 设备置于绝对模式的功能已被删除:这次提交xf86-input-synaptics驱动程序中:

Remove absolute mode

Moving a touchpad in absolute mode is unusual - touchpads are disconnected
from the output device, so direct interaction is hard. There appears to be
little usage of it (I haven't seen bug reports from people claiming to use
it). Joe Shaw, author of the code and only known user doesn't have a use for
it anymore, so purge it from the repo.

系统范围的基本驱动程序:evdev

目前我认为在 Linux 中实现这一点的唯一方法是使用evdevXorg 中的驱动程序。讨论早在 2010 年 Xorg 邮件列表中(以下是摘录):

我必须获得手指在触摸板上的绝对位置,而不仅仅是相对移动。

synaptics 驱动程序不执行此操作,但 evdev 驱动程序可以。因此,您需要配置 X 服务器以使用 evdev 驱动程序作为触摸板。如果您运行的是服务器 1.8 或更高版本,则以下配置片段将为您执行此操作。

Section "InputClass"
    Identifier "evdev touchpad"
    MatchIsTouchpad "on"
    Driver "evdev"
    Option "Mode" "absolute"
EndSection

将其另存为/etc/X11/xorg.conf.d/99-evdev-touchpad.conf并重新启动服务器。请注意,这只会改变触摸板本身的行为,而不会改变事件中的数据,但无论如何,这些数据始终是绝对的。此外,通过使用 evdev 而不是 synaptics,您将失去双指滚动、点击等功能。

底线:创建功能请求

我看到了功能请求的空间上游错误追踪器对于 synaptics 驱动程序(可能还有其他驱动程序)。如果 Xorg 中有一个接口能够读取触摸板的绝对位置值,那将非常有用。我看到的主要障碍是,这可能非常特定于硬件,因此很难实现。

我认为与 Joe Shaw 和 Peter Hutterer 交谈也很有价值,可以了解这件事的历史到底是什么,如何使其成为一个伟大的功能请求以及对它有什么期望。

答案2

https://pypi.org/project/fingerpaint/

使用

pip install fingerpaint

安装它

它还需要 python3-tkinter python3-libevdev python3-devel 包

然后运行fingerpaint -o out.png并开始绘图

答案3

我认为这在很大程度上取决于硬件。您的触控板需要支持提供触摸的绝对位置。普通笔记本电脑触控板的作用更像鼠标,仅提供方向、速度和加速度信息。因此,无论您触摸什么,它都只会从光标的当前方向移动。

相关内容