xfangfang / wiliwili

第三方B站客户端,目前可以运行在PC全平台、PSVita、PS4 、Xbox 和 Nintendo Switch上
https://xfangfang.github.io/wiliwili
GNU General Public License v3.0
3.28k stars 152 forks source link

Linux下无法使用触摸 #385

Closed Sanheiii closed 1 month ago

Sanheiii commented 2 months ago

我在Legion Go刷入了Bazzite,在Flathub安装了wiliwili,触摸屏没有任何响应,鼠标/手柄正常工作

xfangfang commented 2 months ago

我在 steam deck 上是可以正常使用触摸屏的,系统自动将触摸转换为了鼠标操作,用起来和触摸体验一致,我也就没有深入研究。 有几个可能的解决办法:

  1. 尝试在编译时通过添加 -DUSE_SDL2=ON 将GLFW切换为SDL2,或许SDL2会支持linux下的触摸,我没测试过但是如果他支持的话,那么切过去就应该可以用了。
  2. 给 GLFW 加入linux触摸支持,GLFW完全不支持触摸,windows下的触摸支持是他们仓库中的一个PR提供的,我将那个PR引入进wiliwili依赖的GLFW,这里是具体的提交:https://github.com/xfangfang/glfw/commit/823dd308d8c596ba9e9bbf77cdca0574d00ae5e2 可以看到只有windows下提供了支持,其他平台留好了空,可以参考SDL2完成触摸的支持。

我确实也挺期待有完善的linux下触摸支持的,这样我在steam deck上用就可以把系统用触摸模拟出来的鼠标隐藏起来了,欢迎提交PR。

moolio commented 2 months ago

1.4.1,我在steamdeck上用不了触控,steamos是3.6.10测试版,鼠标,手柄工作正常

happywzl commented 1 month ago

steamdeck OLED稳定版可以触屏,但是用不了steam家庭模式,用家庭模式需要升级到测试版,升级steam测试版后不能触屏了。

xfangfang commented 1 month ago

@moolio @happywzl 这个应该是 steam deck 测试版的bug,我切换到测试版也试了一下确实存在问题,目前有两个解决办法:

  1. 在按键设置中把“操作集”里的原生触摸支持删掉就行了(如果没有那就添加一下,回到wiliwili,然后进去再删)。
  2. 手动构建wiliwili,在cmake指令后添加 -DUSE_SDL2=ON -DUSE_SYSTEM_SDL2=ON 切换到SDL2后就有原生触摸支持了。
xfangfang commented 1 month ago

最新测试版加入了 linux x11 下的原生触摸支持,欢迎大家测试后反馈:https://nightly.link/xfangfang/wiliwili/workflows/build.yaml/dev

xfangfang commented 1 month ago

刚刚又做了 Wayland 下的原生触摸支持,现在linux的触摸应该完全没有问题了: https://nightly.link/xfangfang/wiliwili/workflows/build.yaml/dev

moolio commented 1 month ago

感谢,正常了,steamdeck最新补丁似乎也已经修复了这个bug

xfangfang commented 1 month ago

@Sanheiii 方便在您的 Legion Go 上测试一下吗,如果没问题的话就可以关闭这个issue了

Sanheiii commented 1 month ago

我昨天安装了这个包,在桌面环境上可以触屏了但gamescope里还是不行,我今晚试试按前几天说的设置操作集看看

xfangfang commented 1 month ago

@Sanheiii gamescope下可能用的是wayland,如果你是在我说支持wayland之前下载的,那可以再试一下最新版。

Sanheiii commented 1 month ago

我昨天用的是最新版,测完更新了系统现在触摸会出现鼠标,没办法测了

xfangfang commented 1 month ago

@Sanheiii

  1. 像前面提到的,可以通过修改操作集来开启原生触摸支持。
  2. 你可以在“应用设置,关于更多”里找到具体的构建版本号
Sanheiii commented 1 month ago

@Sanheiii

1. 像前面提到的,可以通过修改操作集来开启原生触摸支持。

2. 你可以在“应用设置,关于更多”里找到具体的构建版本号

我又检查了版本号,发现添加到steam的启动项启动了stable版本,我修改后才可以启动dev版本,现在应该是没有问题的,但我在操作集中没有找到任何原生触摸相关内容,暂时没有办法测试

xfangfang commented 1 month ago

@Sanheiii 在steamdeck上是这么选择的(见下图),Bazzite 不支持相关的选项也是有可能的。

如果按照下面截图中的内容也无法找到原生触摸支持的话,可能是 Bazzite 不支持相关的配置吧(按理来说运行的是 steam的客户端,应该选项是相通的),那样的话可以先关闭这个issue了。

screenshot1

screenshot2

happywzl commented 1 month ago

升级完系统这个bug修复好了,哇偶

happywzl commented 1 month ago

感谢开发者的辛勤付出。非常好用的插件,要是后续能支持kodi就更好了,棒🎉

Sanheiii commented 1 month ago

按上面操作找到了原生触摸支持,现在触摸屏正常工作了,非常感谢

xfangfang commented 1 month ago

好的,感谢反馈 先关闭这个issue啦