我刚买了一台联想 ThinkPad X1 Yoga,它配备了 Wacom 触摸屏和手写笔。
它们都运行良好,但我想重新映射笔上的按钮和长按行为。在以前的 Ubuntu 版本中,您可以直接访问Wacom 手写板在设置中更改所有内容,但现在它说我没有手写笔或平板电脑。有趣的是测试我的设置弹出窗口实际上检测到了触控笔
xinput
正确显示所有输入设备:
$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Wacom Co.,Ltd. Pen and multitouch sensor Finger id=9 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=13 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=14 [slave pointer (2)]
⎜ ↳ Wacom Co.,Ltd. Pen and multitouch sensor Pen Pen (0) id=16 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ Wacom Co.,Ltd. Pen and multitouch sensor Pen id=10 [slave keyboard (3)]
↳ Integrated Camera id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=15 [slave keyboard (3)]
似乎它用于libinput
一切(我认为这可能是问题所在):
$ journalctl --boot | grep -e "Using input driver 'libinput'"
(II) Using input driver 'libinput' for 'Power Button'
(II) Using input driver 'libinput' for 'Video Bus'
(II) Using input driver 'libinput' for 'Sleep Button'
(II) Using input driver 'libinput' for 'Wacom Co.,Ltd. Pen and multitouch sensor Finger'
(II) Using input driver 'libinput' for 'Wacom Co.,Ltd. Pen and multitouch sensor Pen'
(II) Using input driver 'libinput' for 'Integrated Camera'
(II) Using input driver 'libinput' for 'AT Translated Set 2 keyboard'
(II) Using input driver 'libinput' for 'SynPS/2 Synaptics TouchPad'
(II) Using input driver 'libinput' for 'TPPS/2 IBM TrackPoint'
(II) Using input driver 'libinput' for 'ThinkPad Extra Buttons'
(II) Using input driver 'libinput' for 'Wacom Co.,Ltd. Pen and multitouch sensor Pen Pen (0)'
(II) Using input driver 'libinput' for 'Wacom Co.,Ltd. Pen and multitouch sensor Pen Eraser (0x96d2bb6c'
请注意,我尝试安装旧版本xserver-xorg-input-wacom
,但触摸屏不再工作(只有笔),并且设置中的配置无论如何都不起作用。我的一个朋友可以在 Ubuntu 16.04 上很好地配置它,升级后在 HP 可转换笔记本电脑上遇到了同样的问题。
还有其他方法可以重新映射按钮并配置其行为吗?
答案1
最终,我发现了以下事实:
- 平板电脑和手写笔的布局数据由Linux 的 Wacom项目,如果缺少,应该贡献给他们。它包括有关设备的所有信息,例如按钮数量。
- 一旦有人贡献了新平板电脑的数据,一段时间后最终会打包到发行版中。事实上,我的平板电脑的 Wacom 设置页面从 Ubuntu 18.04 开始就可以正常工作了。
libinput
使用该工具管理Xorg 上的输入设备配置(使用)xinput
。通过运行xinput --list-props <device>
,将列出所有可用设置,并可进行配置。- 在 Wayland 上,一切都变得更加复杂:输入配置,就像其他所有显示/HID 相关设置一样,由合成器管理。
- GNOME 使用 来管理它们:您可以使用里面
gsettings
的 配置。GNOME 设置通过在那里更改内容来完成其工作。dconf-editor
/org/gnome/desktop/peripherals
- 在 Weston 上,您必须更改配置文件(来源)。
- 其他排字工人的行为可能有所不同。
- GNOME 使用 来管理它们:您可以使用里面
最终我还是没能配置好我的触控笔,但我认为这是触控笔的问题:它有两个按钮,但实际上无法重新映射:一个用作橡皮擦,另一个用作按钮。它们不能互换。
答案2
老实说,我不确定 libinput 与这种情况有何关系。以下是一些可能有帮助的想法。
Xsetwacom 已在 Ubuntu 17.04 上出现。Xsetwacom 在 Wacom X 驱动程序中重新映射堆栈中下一层的按钮,无需使用 gnome 进行重新映射。我在 17.04 上使用不透明平板电脑测试了 xsetwacom,并能够重新映射按钮。我没有 Yoga 可以测试,但如果
xsetwacom -s get "Your device name from xsetwacom list" all
显示您的设备的属性,您应该能够使用 xsetwacom 进行设置。
另一个想法是,此提交 [1] 向 libwacom 添加了一些 Yoga 设备。因此,如果您希望设备显示在控制面板中,则可能需要更新 libwacom。目前,您需要从该 git 存储库 [2] 执行此操作,因为尚未发布包含这些更改的版本。
[1]https://sourceforge.net/p/linuxwacom/libwacom/ci/3b37fe15814cfa4c0ed72722edb0225d18563c5c/ [2]http://linuxwacom.sourceforge.net/wiki/index.php/Libwacom