Flameshot 在 Wayland 下截不了图怎么办:黑屏、拖不动、没反应
点一下快捷键或者托盘图标,屏幕正常变暗、鼠标变成十字,但怎么拖都拖不出选区;或者选区拖出来了,松手之后弹出的编辑框里是一块纯黑,什么画面都没有;再或者干脆一点反应都没有,点了跟没点一样。这三种表现看着像三个不同的问题,实际上基本是同一件事:你的桌面跑在 Wayland 会话上,而 Flameshot 抓屏幕的那套办法在 Wayland 下不好使。
为什么 Wayland 下会这样
X11 时代,任何程序都能直接向 X server 要整个屏幕的像素,截图标注工具想怎么抓就怎么抓,Flameshot 就是在这个环境里长起来的。Wayland 换了思路:出于安全考虑,客户端程序默认读不到别的窗口、也读不到整个屏幕的内容,谁都不例外。要截图,只能走一套叫桌面门户(xdg-desktop-portal)的协商接口,由桌面环境或者合成器把画面取出来、再交给程序。
麻烦就出在这条链路上:
- Flameshot 原生是 X11 时代的程序,对这套门户接口的原生支持长期不完整,不同版本、不同桌面环境下的表现差别很大
- 走 XWayland 兼容层运行时,Flameshot 拿到的是 XWayland 那一层的视图,有的合成器上这就是一张空图,于是你看到全黑
- 全局快捷键的注册方式也变了,Wayland 下由桌面环境统一管理,Flameshot 自己注册的快捷键可能压根没生效,表现就是「点了没反应」
所以这不是你装错了,也不是配置文件坏了。要处理,得从「用哪条路把画面抓出来」这件事上想办法。
第一步:确认你现在到底在哪个会话上
很多人是在 X11 下用得好好的,某次系统更新之后桌面环境默认切成了 Wayland,问题就冒出来了,自己还不知道。
- 终端里执行 echo $XDG_SESSION_TYPE,输出 wayland 就是 Wayland 会话;输出 x11 的话,本文下面大半内容跟你无关
- GNOME:设置 → 系统 → 关于,看窗口系统那一行(部分版本写在系统详细信息里)
- KDE Plasma:系统设置 → 关于此系统,图形平台那一行会写 Wayland 或 X11
菜单路径的叫法在不同版本里会有出入,以你界面上看到的为准。确认是 Wayland 再往下走。
第二步:把桌面门户组件补齐
Wayland 下截图必须经过门户,缺了它谁都截不了。
- 用你所用发行版的包管理器安装相应的 xdg-desktop-portal 包,以及与你桌面环境对应的那一个后端(GNOME 和 KDE 各自有配套的实现,装上和自己桌面对应的那个)
- 装完不要只重启 Flameshot,要注销再登录一次,门户服务是在会话启动时拉起来的
- 登录回来先在终端里直接跑一次 flameshot gui,看终端有没有刷出报错
不同发行版的包名、以及默认是否已经预装,差别都很大,这里不给你具体的安装命令,按你所用发行版的软件仓库搜索 xdg-desktop-portal 就能找到对应条目。有些发行版默认已经装好了,那就直接试下一步。
第三步:用命令行方式启动
托盘图标和快捷键这两条路在 Wayland 下最不稳,命令行反而更直接。
- 打开终端,输入 flameshot gui 回车
- 能正常出选区、能截到画面:说明核心功能是通的,问题出在启动方式上
- 如果终端里刷出了和门户相关的报错,把那几行记下来,它基本就指明了缺什么
- 确认命令行能用之后,去桌面环境的快捷键设置里加一条自定义快捷键,命令直接写 flameshot gui
这一步的关键在最后一条:Wayland 下不要指望 Flameshot 自己的快捷键设置生效,统一到系统设置里配。GNOME 在 设置 → 键盘 → 键盘快捷键 里添加自定义快捷键,KDE Plasma 在 系统设置 → 快捷键 里加。配完之后注销重开一次再测。
第四步:让桌面自带的工具负责抓,Flameshot 负责标
门户那条路如果就是走不通,最实际的办法是分工:系统自带的工具负责把画面抓下来,Flameshot 只管标注。
- GNOME:按 Print Screen 调出系统自带的截图界面,选区域或者选窗口,截完存成文件
- KDE Plasma:Spectacle 本身就是走门户的,在同一个 Wayland 会话里通常能正常工作
- 拿到图片文件之后,再进 Flameshot 的标注界面处理,箭头、方框、马赛克这些功能不受会话类型影响
有些桌面环境的自带截图工具支持「截完之后用外部程序打开截图」这类设置,如果你的版本里有这一项,可以把命令填成 flameshot,让抓下来的图直接进标注界面。不是所有版本都有这个选项,界面上找不到就说明你用的版本不支持,用上面手动的方式。
第五步:退回 X11 会话
如果标注是你的日常刚需,退回 X11 是目前最干净的解法。切一次,之后所有功能都回来。
- 注销当前会话(不需要重启电脑)
- 在登录界面上选会话类型。GNOME 一般有「GNOME on Xorg」这个条目,KDE Plasma 一般有「Plasma (X11)」,具体叫法看你的发行版
- 登录进去后跑一次 echo $XDG_SESSION_TYPE,确认输出是 x11
- 再试 Flameshot,通常立刻正常
代价是要放弃 Wayland 带来的一些东西:高分屏的分数缩放、部分触摸板手势、以及更严格的窗口隔离。在「标注工具好用」和「这些特性」之间权衡一下就行。办公机上我偏向切回 X11——折腾截图花掉的时间,比那点显示效果上的损失贵多了。
几个容易被误判成截图失败的情况
动手之前先排除这几种,它们和 Wayland 没关系:
- 多显示器下截到的是错的那一屏,或者选区偏移、画面错位:多屏叠加分数缩放时常见,先把缩放调成 100% 或整数倍试一次
- 截完不知道图去哪了:Flameshot 默认截完是进标注界面,要自己保存或者复制到剪贴板。以为它会自动存盘的人不少
- 装的是沙箱化打包的版本:Flatpak 这类打包方式需要单独授权才能访问截图接口,在对应的权限管理工具里把截图相关开关打开,或者换成系统仓库里的原生包
- 快捷键和别的功能撞了:系统里已经有一个 Print Screen 被占用的话,Flameshot 那条可能压根没注册上,换一个组合键试试
还是不行怎么办
- 换版本试。Flameshot v14.0.0 对 Wayland 的支持比早期版本好一些,但也不是在所有合成器上都能跑通,你装的这个版本不行就换一个版本试试
- 换桌面环境。同样是 Wayland,不同桌面环境对门户的实现程度不一样,这是现实情况
- 换工具。GNOME 有自带的截图界面,KDE 有 Spectacle,截图、加箭头、打码这些需求它们都能做,只是标注的顺手程度和 Flameshot 不是一个量级
- 去看你所用发行版的问题反馈渠道里有没有针对你这个桌面环境的已知问题,这类反馈里通常会附暂时的规避办法
最后说一句:这个问题短期内不会有彻底干净的解法,它取决于 Flameshot、桌面门户、合成器三方的进度,任一方拖着都没用。目前用起来最稳的组合是两个:X11 会话配 Flameshot,或者 Wayland 会话配系统自带的截图工具。二选一,别在 Wayland 下硬磕 Flameshot 的直接抓取。
这篇教程有帮助吗?立即下载Flameshot 中文站试试吧!
全平台支持 · 安全无毒 · 官方最新版