截图功能在日常工作中使用场景很多,当你要向合作伙伴解释某个问题的时候,一图胜万言,所谓有图有真相。截图完成通常要修改注解下,重点地方红框、操作步骤、箭头指引什么的。
Linux 环境下截图软件很多,实际好用的屈指可数,wayland 环境下相关软件 bug 很多。曾经我以为 flameshot 不错,但双屏环境下遇到过不少问题,经常升级到某个版本时,不能同时选中双屏截图、输入文字困难。切换到 labwc 环境后,甚至框定范围极度延时。在挣扎一段时间后,我选择了 grim + slurp + swappy 的组合,如下所示,绑定个快捷键即可。
1grim -g "`slurp`" - | swappy -f -
grim 截图, slurp 选择范围,swappy 后期修改。
这个组合基本够用,可很快就发现,swappy 的后期能力不足,比如没法加步骤指示(就是在图片上显示 1、2、3 等步骤的功能)。这一功能在描述某个操作步骤的时候非常方便快捷,编写本站各种教程的时候需要,工作演示操作的时候也需要。
看到有人提了 issue,我也追加回复希望作者添加此功能。

现代社会,人人都很忙,作者完成了核心功能并开源,应该褒奖,用户不可无限索取,当然提意见供参考是鼓励的。这个功能得等能人添加(也许将来的某一天我会成为这种人,但是目前阶段还不行,退休后也许可以)。
正是在这种情况下,找到了一个替换 swappy 的后期软件 ksnip。项目较为活跃,贡献者有一百多个,wayland 环境下试用功能正常。
安装很简单,查看项目说明页面就好,这里不赘述。
难点在怎么和 grim slurp 组合使用,并能绑定一个系统快捷键触发。
错误做法
一开始我是这样使用的,只能截图一次,第二次就提示找不到图片了。
1grim -g "`slurp`" - | ksnip -
一直没有找到原因,惭愧。
正确做法
1➜ cat screenshot.sh
2
3#!/bin/sh
4NOW=$(date +"%Y-%m-%d-%H%M%S")
5grim -g "$(slurp )" -t png $HOME/Pictures/grim-$NOW.png
6ksnip $HOME/Pictures/grim-$NOW.png
7➜ pwd
8/home/mephisto/.config/labwc
原理简单,先截图保存在 Pictures 目录下,再使用 ksnip 做后期处理,各司其职,逻辑清晰。把脚本放在某个目录下,接着绑定快捷键:
1 <keybind key="Print">
2 <action>
3 <name>Execute</name>
4 <!-- <command>sh -c 'grim -g "`slurp`" - | swappy -f -'</command> -->
5 <command>$HOME/.config/labwc/screenshot.sh</command>
6 </action>
7 </keybind>
每种桌面环境设置快捷键的方式不不尽相同,我这里是 labwc 在 rc.xml 中配置快捷如上面所示。按Print键,即键盘上的截屏快捷键,触发执行 $HOME/.config/labwc/screenshot.sh 脚本,过程丝滑简单,本文的图片就是使用这个组合操作生成的。
细心的读者可能会问,全屏/活动窗口/单屏幕怎么完成呢?参考grim 文档。你也可以试试 ksnip 是否可以独立完成(文档表格里面部分环境下支持),大部分时候我只需要选定范围截图,所以影响不大。
另外,ksnip 还有其它的有趣功能,比如添加水印(watermark)、表情等。

上图所示:
最后,开源软件是可以不断进化的,取决于它处于什么样社区环境,ksnip 有一百多位贡献者,有理由相信能不断完善。更多功能,各位读者自行摸索,感谢阅读本文。
截图功能在日常工作中使用场景很多,当你要向合作伙伴解释某个问题的时候,一图胜万言,所谓有图有真相。截图完成通常要修改注解下,重点地方红框、操作步骤、箭头指引什么的。
Linux 环境下截图软件很多,实际好用的屈指可数,wayland 环境下相关软件 bug 很多。曾经我以为 flameshot 不错,但双屏环境下遇到过不少问题,经常升级到某个版本时,不能同时选中双屏截图、输入文字困难。切换到 labwc 环境后,甚至框定范围极度延时。在挣扎一段时间后,我选择了 grim + slurp + swappy 的组合,如下所示,绑定个快捷键即可。
1grim -g "`slurp`" - | swappy -f -
grim 截图, slurp 选择范围,swappy 后期修改。
这个组合基本够用,可很快就发现,swappy 的后期能力不足,比如没法加步骤指示(就是在图片上显示 1、2、3 等步骤的功能)。这一功能在描述某个操作步骤的时候非常方便快捷,编写本站各种教程的时候需要,工作演示操作的时候也需要。
看到有人提了 issue,我也追加回复希望作者添加此功能。

现代社会,人人都很忙,作者完成了核心功能并开源,应该褒奖,用户不可无限索取,当然提意见供参考是鼓励的。这个功能得等能人添加(也许将来的某一天我会成为这种人,但是目前阶段还不行,退休后也许可以)。
正是在这种情况下,找到了一个替换 swappy 的后期软件 ksnip。项目较为活跃,贡献者有一百多个,wayland 环境下试用功能正常。
安装很简单,查看项目说明页面就好,这里不赘述。
难点在怎么和 grim slurp 组合使用,并能绑定一个系统快捷键触发。
错误做法
一开始我是这样使用的,只能截图一次,第二次就提示找不到图片了。
1grim -g "`slurp`" - | ksnip -
一直没有找到原因,惭愧。
正确做法
1➜ cat screenshot.sh
2
3#!/bin/sh
4NOW=$(date +"%Y-%m-%d-%H%M%S")
5grim -g "$(slurp )" -t png $HOME/Pictures/grim-$NOW.png
6ksnip $HOME/Pictures/grim-$NOW.png
7➜ pwd
8/home/mephisto/.config/labwc
原理简单,先截图保存在 Pictures 目录下,再使用 ksnip 做后期处理,各司其职,逻辑清晰。把脚本放在某个目录下,接着绑定快捷键:
1 <keybind key="Print">
2 <action>
3 <name>Execute</name>
4 <!-- <command>sh -c 'grim -g "`slurp`" - | swappy -f -'</command> -->
5 <command>$HOME/.config/labwc/screenshot.sh</command>
6 </action>
7 </keybind>
每种桌面环境设置快捷键的方式不不尽相同,我这里是 labwc 在 rc.xml 中配置快捷如上面所示。按Print键,即键盘上的截屏快捷键,触发执行 $HOME/.config/labwc/screenshot.sh 脚本,过程丝滑简单,本文的图片就是使用这个组合操作生成的。
细心的读者可能会问,全屏/活动窗口/单屏幕怎么完成呢?参考grim 文档。你也可以试试 ksnip 是否可以独立完成(文档表格里面部分环境下支持),大部分时候我只需要选定范围截图,所以影响不大。
另外,ksnip 还有其它的有趣功能,比如添加水印(watermark)、表情等。

上图所示:
最后,开源软件是可以不断进化的,取决于它处于什么样社区环境,ksnip 有一百多位贡献者,有理由相信能不断完善。更多功能,各位读者自行摸索,感谢阅读本文。