zq1997 / deepin-wine

【deepin源移植】Debian/Ubuntu上的QQ/微信快速安装方式
https://deepin-wine.i-m.dev
GNU General Public License v3.0
5.12k stars 385 forks source link

wayland 下无法将剪贴板中 flameshot 截图粘贴到 QQ/微信中 #210

Open function2-llx opened 3 years ago

function2-llx commented 3 years ago

使用 wayland 作为显示服务器时,使用 flameshot 进行截图,图片保存于剪贴板后无法粘贴到 QQ/微信中,切换为 Xorg 则可以正常粘贴。

在 wayland 下,关于 flameshot 截图以及图片剪贴的功能还有如下现象:

推测可能是 Xorg 与 wayland 管理剪贴板的方式不太一样,也许和 flameshot 在 wayland 下将截图保存到剪贴板处理地不够也有关?但相关不太了解,暂时还没有仔细调查这方面,可能和本仓库无关,但先在这里提出 issue,希望能得到一些大家的意见尽可能找到具体原因。

系统版本:ubuntu 21.04 桌面为 gnome

greatyingzi commented 2 years ago

这种情况可能需要deepin那边去适配wayland了吧。作者应该只是搬运。

mgrddsj commented 8 months ago

通过在 /opt/apps/com.qq.weixin.deepin/files/run.sh 中添加 export WINEDEBUG="+clipboard" 开启 Wine 的剪贴板 debug 并运行微信,发现微信访问剪贴板的时候,会有几个错误,详见以下 log gist,分割线之前是 Flameshot 复制 png 格式的截图时的 log,分割线后是在微信中粘贴时的 log。

https://gist.github.com/mgrddsj/cc75e0bb2b51ca2eb57c7a5399a07e67


临时解决办法:经过 ChatGPT 分析,发现微信似乎预期读取的是 bmp 格式的图片。经过测试,复制 bmp 格式的图片到剪贴板中可以在微信中正常粘贴。自己写了个脚本把剪贴板中的 png 图片转换成 bmp 格式的,凑合着用:

wl-paste -t image/png > /tmp/screenshot.png && convert /tmp/screenshot.png /tmp/screenshot.bmp && wl-copy < /tmp/screenshot.bmp

(需要安装 wl-clipboard 和 imagemagick)