ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

用uinput模拟Wacom数位板:remarkable_mouse压感与倾斜支持的内幕

用uinput模拟Wacom数位板:remarkable_mouse压感与倾斜支持的内幕 用uinput模拟Wacom数位板remarkable_mouse压感与倾斜支持的内幕【免费下载链接】remarkable_mouseuse your reMarkable as a graphics tablet项目地址: https://gitcode.com/gh_mirrors/re/remarkable_mouseremarkable_mouse是一个开源工具它能把 reMarkable 墨水屏平板变成一块真正的图形数位板。通过 uinput 虚拟设备技术它模拟出 Wacom 数位板的身份让电脑完整识别压感与笔倾斜绘图笔一挥屏幕上的线条粗细随心而变。为什么普通鼠标模式不够用安装 remarkable_mouse 后默认使用 pynput 后端见 pynput.py它把笔尖坐标映射成鼠标移动、把接触事件映射成左键点击。问题在于鼠标只有按下/抬起两个状态压感和倾斜数据在传输过程中全部被丢弃。想要笔锋粗细、倾斜角度这些数位板级体验就需要--evdev模式——它的核心就是 uinput。一键安装并开启压感模式在插着 reMarkable 的电脑上执行pip install remarkable-mouse sudo --preserve-envUSER,PATH env remouse --evdev 压感模式需要 root 权限来创建虚拟输入设备且仅限 Linux。SSH 密码可在 reMarkable 的设置菜单里查到默认连接地址是10.11.99.1。运行后libinput list-devices里会多出一台数位板Krita、MyPaint、Inkscape 等绘图软件会直接把它当硬件设备对待。内幕一给自己套上 Wacom 身份在 evdev.py 的create_local_device中程序通过libevdev创建了一个 uinput 虚拟设备关键动作是报户口设备名设为reMarkable pen厂商 ID 填0x056a——这正是 Wacom 的 USB 厂商号启用BTN_TOOL_PEN、BTN_STYLUS等数位笔按键能力为什么要冒充Wacom因为 Wacom 是数位板行业的标准协议Linux 内核的 libinput 和几乎所有绘画软件都对它做了深度适配。只要设备声明自己是 Wacom 数位笔就能白嫖整套驱动生态无需单独写驱动。内幕二压感与倾斜靠绝对坐标传输数位板和鼠标的本质区别在于坐标系能力事件码含义位置ABS_X/ABS_Y绝对坐标落点在哪就是哪压感ABS_PRESSURE0~4095 的压力值笔触粗细来源距离ABS_DISTANCE笔尖离屏幕的高度倾斜ABS_TILT_X/ABS_TILT_Y笔杆倾斜角度影响书法笔刷这些绝对轴的范围因硬件而异在 common.py 中按机型分别定义reMarkable 1 的笔坐标最大值为 20967×15725而 Pro 版则是 11180×15340倾斜范围也从 ±6400 扩大到 ±9000。程序通过读取/dev/input/touchscreen0的软链接指向自动识别三代机型rM1 / rM2 / Pro并选择对应的 evdev 事件文件如 rM1 的笔数据在/dev/input/event0。事件流水线从墨水屏到 uinput整条数据通路可以概括为三站直达SSH 隧道读数据——程序通过 SSH 在平板上执行dd命令把 evdev 原始事件流持续拉回主机remarkable_mouse.py解包与坐标重映射——按二进制格式解出每个事件用 codes.py 中的码表还原出ABS_X、ABS_PRESSURE等含义再经过remap完成方向旋转与屏幕缩放注入虚拟设备——处理后的事件通过send_events写入 uinput系统内核从此认为一台 Wacom 数位板正在工作。全程无缓存、逐事件转发这也是它能保持低延迟书写体验的原因。常用参数微调让笔感更顺手--threshold 600压感触发阈值写起来太敏感就调大太迟钝就调小--mode fit / fill / stretch三种屏幕映射方式绘画建议用fit保持比例--orientation right按平板按键朝向选择避免笔迹镜像--monitor 1把数位板映射到指定显示器多屏用户必备常见问题提示权限不足用sudo --preserve-envUSER,PATH env remouse --evdev运行Windows / macOS 用户压感模式依赖 uinput仅 Linux 可用其他系统可退回鼠标模式笔迹和屏幕对不上检查--orientation是否与平板实际摆放方向一致。写在最后remarkable_mouse 用不到一千行代码演示了一个经典玩法uinput 是 Linux 虚拟输入设备的万能接口声明正确的能力轴和厂商身份就能让任何硬件变成系统熟悉的外设。下次想自制数位板、数位屏或游戏手柄时这套思路同样适用。项目构建与发布配置见 pyproject.toml版本演进记录见 CHANGELOG.md。【免费下载链接】remarkable_mouseuse your reMarkable as a graphics tablet项目地址: https://gitcode.com/gh_mirrors/re/remarkable_mouse创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表