防 csdn 不能看,Go to juejin
Linux Snipaste 截图时窗口元素一闪一闪的无法正常使用。
解决此问题时系统环境为 Manjaro KDE6,不过我在其他发行版与 gnome 上也碰到了。
先放解决办法:
# 启动 Snipaste 时去掉缩放参数
env -u QT_SCREEN_SCALE_FACTORS Snipaste
# 或者将缩放改为 100% 应该也可以
env QT_SCREEN_SCALE_FACTORS=1 Snipaste
解决过程:
- 我尝试用
sudo Snipaste
运行,发现能够正常使用。一开始怀疑是某个运行时的文件权限问题 - 凭直觉授权了几个目录给普通用户之后,还是无法正常运行,不再钻权限问题的牛角尖
- 转换思路,尝试用
sudo -E Snipaste
运行,发现问题会复现。sudo -E
的作用是继承当前用户的环境变量,所以可以断定是当前用户的某个环境变量影响到了 Snipaste 的正常运行 - 使用
printenv
查看当前用户的所有环境变量,既然是屏幕一闪一闪的,就着重关注 XDG/QT/DISPLAY 相关的变量 - 然后用
env -u 变量名 Snipaste
一个个尝试,很幸运,试了两三下就找到了罪魁祸首是缩放参数。可能是非整数倍缩放引起的?不想深究了。
Snipaste.desktop 示例:
Exec=env QT_SCREEN_SCALE_FACTORS=1 Snipaste
[Desktop Entry]
Type=Application
Name=Snipaste
Comment=Snip & Paste!
Exec=env QT_SCREEN_SCALE_FACTORS=1 Snipaste
Icon=Snipaste
Categories=Graphics;ImageProcessing;
X-GNOME-Autostart-Delay=3
X-DBUS-StartupType=Unique
X-DBUS-ServiceName=com.snipaste.Snipaste
X-KDE-autostart-after=panel
X-KDE-StartupNotify=false
X-KDE-UniqueApplet=true
X-KDE-DBUS-Restricted-Interfaces=org.kde.KWin.ScreenShot2