创建类似Wacom的Linux uinput设备,以与触摸屏和笔一起使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了创建类似Wacom的Linux uinput设备,以与触摸屏和笔一起使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1917字,纯文字阅读大概需要3分钟。
内容图文
![创建类似Wacom的Linux uinput设备,以与触摸屏和笔一起使用](/upload/InfoBanner/zyjiaocheng/946/abba359df4484292a91464983a3ccd4f.jpg)
这是一个相当广泛的问题,所以我将尽力保持它的重点.
我目前拥有一台安装了Ubuntu和触摸屏功能的Lenovo笔记本电脑,并拥有一个pressure-sensitive Bluetooth pen,并且一直在试图使两者作为廉价的类似于Cintiq的平板电脑一起工作.
不幸的是,该笔仅支持iOS手机和平板电脑的特定应用程序.
因此,经过大量研究,我设法与笔进行了交互并为其创建了一个uinput设备,因此我可以在笔上注册按钮点击和压力变化,甚至可以在通过输入控制器配置设备时看到它们被路由到GIMP.菜单.
到目前为止,该接口的代码是available here.
当尝试使用GIMP进行测试时,麻烦就开始了.
据我所知,这是因为GIMP假设Wacom设备报告自己的位置,将触摸屏触摸视为鼠标移动,并且一次只允许来自单个设备的输入.
我的问题是,我该如何解决?
更具体地说,我如何创建可以充当Wacom数位板并替代/阻止我描述的行为的uinput设备?
或者,如果有其他解决方案,例如修补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和mypaint中一样具有魅力,并且我与uinput设备同时激活鼠标(或触摸板)没有问题(我认为Krita添加了对通用设备的支持压力敏感设备).您可以看一下驱动程序here的源代码(令人惊讶的是,很简单,很公平).
请注意,这不是Gimp的错误行为,因为这是类似平板电脑的设备所期望的.看一下最后一部分(指南)中的event codes kernel documentation page,据说平板电脑必须报告ABS_X和ABS_Y.此外,他们应该使用BTN_STYLUS和BTN_STYLUS2报告工具按钮,并使用一些BTN_TOOL_ *(例如BTN_TOOL_PEN)报告活动(您可以在input.h中找到所有可用的代码);但是,最后这些似乎并不那么重要,因为GfxTablet并未实现它们并且可以正常工作.
内容总结
以上是互联网集市为您收集整理的创建类似Wacom的Linux uinput设备,以与触摸屏和笔一起使用全部内容,希望文章能够帮你解决创建类似Wacom的Linux uinput设备,以与触摸屏和笔一起使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。