创build一个类似Wacom的Linuxinput设备,用于使用触摸屏和笔

创build一个类似Wacom的Linuxinput设备,用于使用触摸屏和笔,第1张

概述创build一个类似Wacom的Linuxinput设备用于使用触摸屏和笔

这是一个相当广泛的问题,所以我会尽量保持它的重点。

我目前拥有一台装有Ubuntu的联想笔记本电脑和触摸屏function,并拥有一个压敏蓝牙笔 ,并试图使这两个工作在一起,作为一个便宜的类似Cintiq的平板电脑。

不幸的是,这支笔仅支持iOS手机和平板电脑的特定应用程序。


所以经过大量的研究,我已经设法与笔接口并为它创build了一个uinput设备,所以当通过input控制器configuration设备时,我可以在笔上注册button点击和压力变化,甚至可以看到它们路由到GIMP菜单。

到目前为止我已经有了这个接口的代码可以在这里find 。

如何使用GIMP编写自定义自动裁剪脚本?

从控制台运行gimp

如何从PSD文件中提取文本?

如何从命令行cmd窗口gimp运行gmic

尝试使用GIMP进行testing时,麻烦就开始了。


从我收集的内容来看,这是因为GIMP假定wacom设备报告自己的位置,将触摸屏触摸视为鼠标移动,并且一次只允许来自单个设备的input。

我的问题是,我怎么能解决这个问题?

更具体地说,如何创build一个可以像wacom平板电脑一样运行的uinput设备,并取代/阻止我描述的行为?


或者,如果有不同的解决scheme,例如修补GIMP或为其编写插件。

更新(2014-06-07)

上面提到的代码现在可以工作。

我已经写了一篇博客文章了解这个工作的过程: http : //gerev.github.io/laptop-cintiq

正如你所说,Gimp期望你在驱动程序中提供ABS_X和ABS_Y以及ABS_PRESSURE – 这并不奇怪,因为你使用虚拟设备作为输入,所以从一个ABS_X和ABS_Y坐标中选择一个没有什么意义设备和ABS_PRESSURE(虽然在这种情况下它们总是相同的)。 也许你可以只读鼠标的当前坐标,并将它们复制为自己的设备坐标。

作为一个例子, Gfxtablet项目与你正在尝试的东西类似,他们有一个带有笔的平板电脑的AndroID应用程序,并使用uinput来创建虚拟设备,就像在linux上使用压敏笔一样工作。 我已经使用了它,它在GIMP和我的笔记本电脑上的功能像一个魅力,我没有任何问题与鼠标(或触摸板)在同一时间作为输入设备(我认为Krita增加了对通用压敏设备)。 你可以在这里看看驱动程序的源代码(非常简单,公平)。

请注意,这不是Gimp的错误行为,因为这是平板电脑设备所期望的。 查看事件代码内核文档页面 ,在上一部分(指南)中,平板电脑必须报告ABS_X和ABS_Y。 此外,他们应该使用BTN_STYLUS和BTN_STYLUS2来报告工具按钮和一些BTN_TOol_ *(例如BTN_TOol_PEN)来报告活动(你可以在input.h中找到所有可用的代码)。 然而,最后这些似乎并不重要,因为Gfxtablet没有实现它们,没有问题。

我真的不知道正确的答案。

但谷歌的“linux开源触摸笔驱动程序”带我到→ linuxwacom sourceforge项目 ←。

这似乎是解决你有问题, 有源代码下载和分析(今年更新),有人要问:)

总结

以上是内存溢出为你收集整理的创build一个类似Wacom的Linuxinput设备,用于使用触摸屏和笔全部内容,希望文章能够帮你解决创build一个类似Wacom的Linuxinput设备,用于使用触摸屏和笔所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1154929.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存