我有兴趣将我的笔记本电脑触控板用作绘图板,即使用绝对坐标而不是相对坐标,类似于OSX 的Inklet。
2010 年 5 月在ubuntuforums.org上提出了同样的问题,但该问题从未得到解答。我想知道这是否已在 Linux 上完成。我还试图弄清楚要使用哪些搜索词。我搜索了“linux 笔记本电脑触摸板绝对模式”,并发现了触控板驱动程序的问题,该驱动程序将触控板置于绝对模式。但我真的找一个程序,它使用的绝对位置,而不是驱动程序设置。
您不会找到执行此操作的程序,因为驱动程序尝试将这三种类型的触摸板抽象为应用程序的单一表示:
不幸的是,即使您有一个几乎能够报告所有绝对值的触摸板,大多数触摸板驱动程序也不允许您在 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
Run Code Online (Sandbox Code Playgroud)
实际上把Synaptics的设备在Xorg的绝对模式的能力已被最近删除了该提交的xf86-input-synaptics
驱动程序:
Run Code Online (Sandbox Code Playgroud)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.
我认为目前在 Linux 中实现这一点的唯一方法是使用evdev
Xorg 中的驱动程序。它被讨论早在2010年Xorg的邮件列表(以下摘录)上:
我必须获得手指在触摸板上的绝对位置,而不仅仅是相对运动。
Synaptics 驱动程序不会这样做,但 evdev 驱动程序会这样做。因此,您需要将 X 服务器配置为使用触摸板的 evdev 驱动程序。如果您运行的是服务器 1.8 或更高版本,以下配置片段将为您完成此操作。
Run Code Online (Sandbox Code Playgroud)Section "InputClass" Identifier "evdev touchpad" MatchIsTouchpad "on" Driver "evdev" Option "Mode" "absolute" EndSection
将其另存为
/etc/X11/xorg.conf.d/99-evdev-touchpad.conf
并重新启动服务器。请注意,这只会更改触摸板本身的行为,而不是事件中的数据,但无论如何,该数据始终是绝对的。此外,通过使用 evdev 而不是突触,您将失去双指滚动、点击等的能力。
我在上游 bugtracker上看到了针对突触驱动程序(可能还有其他)的功能请求的空间。在 Xorg 中有一个界面能够读取触摸板的绝对位置值将非常有用。我看到的主要障碍是这可能是非常特定于硬件的,因此很难实现。
我认为与 Joe Shaw 和 Peter Hutterer 交谈也很有价值,可以了解这其中的历史究竟是什么,如何使其成为一个很好的功能请求以及对它的期望。
归档时间: |
|
查看次数: |
13621 次 |
最近记录: |