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


15

我对将笔记本电脑触控板用作绘图板很感兴趣,即使用绝对坐标而不是相对坐标,类似于OSX的Inklet

2010年5月在ubuntuforums.org中提出了相同的问题,但从未有人回答。我想知道这是否已经在Linux上完成。我还试图找出要使用的搜索字词。我搜索了“ Linux笔记本电脑触摸板绝对模式”,然后想到了触控板驱动程序出现问题,从而使触控板进入了绝对模式。但我真的找一个程序,它使用的绝对位置,而不是驱动程序设置。


1
您是否想要在MacBook上运行的Ubuntu?还是您在使用Ubuntu中的任何触控板询问或执行此操作的方法?
伊利亚·卡根

我正在寻找可以与任何笔记本电脑搭配使用的东西。
巴顿·奇滕登

在触控板均较最近的MacBook这个能力?这似乎在很大程度上取决于输入设备本身的多功能性。
伊利亚·卡根

1
您将找不到能够执行此操作的单个程序。在Mac OS X中也不是这种情况,但是他们设法正确隐藏了它(例如,根据应用程序运行情况切换输入模式)。相关问题:如何从Linux中的Cirque触摸板读取敲击的绝对位置
gertvdijk 2013年

Answers:


8

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

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

  • 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而不是突触,您将失去两指滚动,轻击等功能。

底线:创建功能请求

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

我认为与Joe Shaw和Peter Hutterer交谈也很有价值,以了解其中的确切历史,如何使其成为出色的功能请求以及可以从中获得什么。


这是一个很好的答案,但是这里的鼠标只是冻结...(12.10)
desgua

@desgua是的,非常值得期待。它没有任何绝对输入值...
gertvdijk 2013年

1
万一有人仍然对此感兴趣,我提出了一个错误:bugs.freedesktop.org/show_bug.cgi?id=75322
Donarsson 2014年

1
更新:我的功能请求被拒绝,维护人员说他“首先遗憾地将其合并”。我将研究代码并可能对其进行分叉。如果可以,我将在这里发布最后一条评论,以便对此感兴趣的任何人都可以看到。很抱歉发送垃圾邮件。
Donarsson 2014年

0

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


1
这不是真的。例如,X可以读取位置,因为它可以检测到要滚动的边缘。我相信它更多是我们缺少的X Input配置参数。
gertvdijk

是的,这也是事实..我不完全相信它是如何工作的,但我认为在触控板的实施仍是太基本的绘图板使用..
Gladen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.