树莓派中的 cli 在 kivy app 运行 中没有鼠标移动或触摸

no mouse movement or touch in kivy app run from cli in raspberry

我刚开始使用 Kivy - 我在使用鼠标和(多)触控功能时遇到问题。 设置:RPi 3b v1.2,Raspberry os buster 5.4 with desktop & python 3.7.3,使用 Waveshare DSI 触摸屏 Waveshare 显示驱动已安装:https://github.com/waveshare/LCD-show

Kivy 安装在 virtualenv 中,我从 source /home/wannes/kivy_venv/bin/activate 开始('wannes' 是我的用户名) Kivy 示例在 ~/.local/share/kivy-examples/demo/showcase

我已将其添加到 ~/.kivy/config.ini:

[modules]
touchring = show_cursor=true
[input]
mouse = mouse
#%(name)s = probesysfs,provider=hidinput
mtdev_%(name)s = probesysfs,provider=mtdev
hid_%(name)s = probesysfs,provider=hidinput

当 运行在 gui 上使用 Kivy 应用程序时(使用 e.f。Kivy 展示示例应用程序),我可以四处移动并用鼠标单击,但不能使用触摸或多点触控功能 - 我可以用鼠标右键单击来模拟它。

我一直在四处寻找,并尝试使用 'xhost +local:root' 命令 - 这给了我一个错误:'xhost: unable to open display""'

对于运行ning Kivy in clu,我做了'sudo usermod -a -G video $(whoami)'以避免'failed to open vchiq instance'错误 在 cli 中,我还可以 运行 Kivy 应用程序 - 应用程序打开,但我没有鼠标移动、单击或触摸任何东西。 运行直接从 cli 安装 Kivy 应用程序时没有任何错误,只是没有鼠标或触摸。

关于以下方面的任何想法:

谢谢!!!

找到解决方案。 首先,必须使用 pi 用户而不是任何其他用户来设置 waveshare 驱动程序 - 在他们的驱动程序设置文件中,用户 pi 是硬编码的...... 然后,你想要 运行 Kivy 应用程序的用户(pi 除外)必须是 'input' 组的成员: sudo usermod -a -G input $(whoami) Kivy 需要访问 /dev/input/event0 /event4 和 /event5 Waveshare 设置仅授予 pi 用户访问输入组的权限,该组具有对这些设备的读取权限。 问题已解决 - 至少 Waveshare 的触摸驱动程序设置文档很少。