Ubuntu 20.04 截图软件的使用 (gnome-screenshot、flameshot、shutter 截图编辑三叉戟)

2020年07月05日 3576Browse 1Like 0Comments

一、前言

  • 本文不对每款软件的具体使用做详细介绍,如不熟悉可以自行操作几次即可(欢迎留言)。
  • 本文倾向于介绍主要截图软件的选择(差异和优缺点)、核心用法、遇到问题的解决办法、不足之处的弥补、以及大家平时可能没有留意到的一些技巧。以便大家根据具体的应用场景,让你的截图需求能得以尽可能满足。
  • 本文的目的是让你在 Ubuntu 20.04 下选择和使用截图软件时,完全不需再去寻找其他软件和遇到问题的解决办法,而通过看这一篇文章即可全部搞定。篇幅偏长、文字较多,建议耐心翻阅。

二、几个问题

  1. 是否有Windows的Snipaste这样的截图神器?
    答案是目前还没有,但有类似软件flameshot。

  2. flameshot可以出色的完成Snipaste的功能吗?
    答案是基本可以,但部分功能尚不完美。

  3. 那怎么弥补?
    请看下文

三、Ubuntu截图三叉戟介绍

gnome-screenshot与生俱来,另两款(flamehsot和shutter)功能强大、各有千秋,有了他们仨,真的没必要再去寻找其他替代方案了。

1. gnome-screenshot

GNOME桌面系统中原生截图工具,系统中默认的几个截图快捷键(可修改,但不可直接删除)均是调用的是该程序。

自述:其实我也是带UI的,只是一般情况用快捷键执行我的功能就好了。想看我的容貌?

gnome-screenshot -i

  • 截图默认保存路径:用户根目录/Pictures

  • 建议记住如下六个快捷键(尤其前几个):

    快捷键 功能描述
    Print 全屏截取并保存
    Shift + Print 选区截取并保存
    Alt + Print 截取当前活动窗口并保存
    Ctrl + Print 拷贝全内容至剪切板(不保存文件)
    Ctrl + Shift + Print 拷贝选区内容至剪切板(不保存文件)
    Ctrl + Alt + Print 拷贝当前活动窗口至剪切板(不保存文件)


  • 优点:原生自带、随手可用

  • 缺点:

    • 不带图片编辑功能
    • 选区截图需 ShiftPrint 两个同时按住、另需鼠标划定范围,因此必须双手操作。由于选择区域时通常较为仔细、操作时间更久,导致按住两个键的一手负担偏重
  • 主要问题及解决办法:因为系统默认保存路径这个目录自动关联了很多其他程序与图片相关的操作,导致保存的图片来源众多、不便区分查找。如何将截图文件保存到自定义的目录?默认保存路径在系统中只能通过修改dconf数据库中的键值(通过dconf editor)修改,但即使修改了、在使用快捷键截图时却依然不生效。这是GNOME中一个多年未解决的缺陷,在采用Gnome 3.8.x以后版本的桌面系统中怎么修改都不会生效,除非不用系统默认快捷键。这个问题提出已有7年时间,但官方尚未决定去修正(我估计是因为可以通过别的方法即可达到该目的)。解决思路是:在修改了保存路径之后,禁用系统已定义的快捷键(或直接定义其他不同的快捷键调用gnome-screenshot来截图)、然后重新自定义相同的键映射。为了让截图底快捷键与上表中的保持一致,我使用如下方法来解决该问题(限于篇幅,不再介绍如何使用dconf editor等工具来修改):

    第一步:创建目标目录,并修改gnome-screenshot的保存路径至该目录

    	mkdir $HOME/Pictures/Screenshots
    	gsettings set org.gnome.gnome-screenshot auto-save-directory "file:///$HOME/Pictures/Screenshots"

    第二步:禁用系统截屏快捷键(以上表中的6个键为例)

    	gsettings set org.gnome.settings-daemon.plugins.media-keys screenshot "['']"
    	gsettings set org.gnome.settings-daemon.plugins.media-keys area-screenshot "['']"
    	gsettings set org.gnome.settings-daemon.plugins.media-keys window-screenshot "['']"
    	gsettings set org.gnome.settings-daemon.plugins.media-keys screenshot-clip "['']"
    	gsettings set org.gnome.settings-daemon.plugins.media-keys area-screenshot-clip "['']"
    	gsettings set org.gnome.settings-daemon.plugins.media-keys window-screenshot-clip "['']"

    第三步:调用gnome-screenshot命令重新映射这6个系统截屏快捷键(这一步建议在Gnome Control Center中手动配置,各快捷键分别调用的命令如下):

    想了解如何自定义快捷键,请阅读该文,如想批量修改自定义快捷键,请阅读该文

    	gnome-screenshot
    	gnome-screenshot -a
    	gnome-screenshot -w
    	gnome-screenshot -c
    	gnome-screenshot -ac
    	gnome-screenshot -wc 


2. shutter

功能完善、自带图片编辑器。我在 Ubuntu 18.04 版本中的截图和编辑工作基本上由它完成。

  • 安装:Ubuntu 20.04 官方源提供的 snap 版本可以安装,但运行时存在缺陷,发现如下问题:

    • Error while opening directory /home/username/Pictures
    • There was an error determining the filename ...
    • 截取窗口时程序崩溃却未退出,因此再次启动程序导致部分功能依然不能使用,需先杀死进程
    • 解决办法:不要使用官方snap包(软件中心)进行安装,添加下面的PPA源安装(定制修正版)即可(此版本暂不能截取网页,但其他功能稳定)
      	sudo snap remove shutter  # 删除已安装有缺陷的版本
      	sudo add-apt-repository ppa:linuxuprising/shutter 
      	sudo apt-get update -y
      	sudo apt install shutter -y 
  • 优点:

    • 提供了单独的图片编辑器,可在截图后对图片进行编辑,便于后期制作图文教程(例如针对描述操作步骤,该版本提供了自增的文字序号,非常方便)
    • 可用鼠标自由截取选区
    • 可截取当前活动的窗口、非活动窗口、菜单和提示框等
    • 系统托盘区图标弹出菜单分类清晰,非常便于按需截取(因此没必要去定义快捷键)
      shutter screenshot by type
  • 缺点:

    • 不能在截取时直接编辑(这也算不上缺点,这是相对于flameshot或snipaste来说的,但也是设计理念的差异)
    • 截取窗口时有小部分的边框背景出现(若该窗口非全屏或背景有其他颜色,导致截图看起来不完美)
  • 技巧:

    • 在打开了截图文件后,可用Shutter的编辑器进行图片编辑。快捷键:Ctrl + E

3. flameshot

最接近 Windows 下的 Snipaste 的软件,一看截图界面你就会喜欢它的。

flameshot logo

  • 安装:

    sudo apt install flameshot

  • 优点:

    • 在截取时即可进行图片编辑(与snipaste类似),节省操作时间。对于做演示建议多使用它
    • 可用鼠标自由截取选区
  • 缺点:

    • 不能在截取时直接编辑(这也算不上缺点,这是相对于flameshot或snipaste来说的,但也是设计理念的差异)
    • 不可直接截取活动窗口
    • 编辑功能有待加强(相对于Snipaste):
      • 插入文字默认字体太小(文字输入字体太小,虽然可以调节,但文字调大后,画图工具的笔刷又太粗)
      • 已编辑对象不可再次编辑(可取消,但不可移动调节大小,修改文字内容等)
  • 技巧:

    1. 配置支持在图片上添加文本(可能是因为这块功能尚不完善,所以默认未启用)
    2. 配置支持截图附着在桌面上(默认未启用,做演示时非常有用)
    3. 为区域选择和延迟截屏定义快捷键(参照下面的第四部分)
    4. 在画图和添加文字时为画笔或文字选择不同的颜色,快捷键:右键 调出下图中间圆形区域,提供10种可选颜色:
      flameshot color picker
    5. 编辑时打开侧边栏画板用来调节画笔粗细、文字大小、编辑历史。快捷键:空格 将在屏幕左侧打开侧边栏,可以调节编辑颜色、画笔文字粗细,查看编辑历史。虽然该功能对于调节画笔粗细、文字粗细有用,但是目前字体大小的调节与画笔粗细是同步的,有可能你调节好了字体大小,但是你的画笔却会过粗。极为期待该功能可以在后续版本中得以改善。
    6. 截图后点击图片边上的一个向上的图标按钮,即可使用其他程序打开截图(此处建议使用你顺手的图片查看器货图片编辑器,我通常选择使用shutter打开)进行浏览或编辑。发现此功能尚不能每次记住之前选择的程序,尚待完善。

四、综合使用方案

简而言之:系统自带截图即插即用,弱项是编辑功能、shutter的强项是文字编辑功能、flameshot的强项是实时编辑功能,弱项是文字编辑功能;每一款都不能尽善尽美,但每一款都有不可取代的强项。所以,我的做法不是在三者中进行取舍,而是将三者结合起来,发挥各自长处、规避缺点、相互补充。尽管这样搭配在某些情况下稍显繁琐,但大部分情况下个人的需求单一、重复操作类似,你完全可根据场景进行调整。

  1. 不建议摒弃系统自带截图软件和快捷键、也不建议将默认截屏快捷键改为调用flameshot或shutter

  2. 按截图工具设定截图存储路径。我将三个软件的截图内容分别指定了不同的存储路径(其中shutter, flameshot均可直接配置)

    • gnome-screenshot:$HOME/Pictures/Screenshots (如何配置参考前文)
    • shutter:$HOME/Pictures/Shutter
    • flameshot:$HOME/Pictures/Flameshot
  3. 配置shutter和flameshot默认开机启动(在软件中可直接配置)

  4. 区分应用场景,实时选择:

    • 全屏截取:使用自带截屏工具,按Print一键截屏,省时省力。
    • 截取活动窗口:直接使用自带截屏工具,按Alt + Print 截屏,方便快捷。
    • 自由选区截取:flameshot,为其配置快捷键(F1)、调出flameshot后,只需鼠标选择区域即可。
    • 截取时编辑、保存:flameshot,画线框,对于过多的文字编辑需求,通过shutter提供的编辑工具弥补。
    • 截取后的编辑、图文制作:shutter,本文中的图文制作(尤其文字部分)均在shutter的图片编辑器完成。
    • 截取菜单、弹出窗口等:采用延迟技术截图,先触发截图程序,然后操作弹出菜单,等候延迟到达截取。三款工具均具备延时截屏功能,我用flameshot配置快捷键(F3)来完成。
  5. 关于快捷键的说明:
    1、系统自带截图功能几个快捷键建议熟记,如要为gnome-screenshot指定自定义保存路径,请参考第一部分;
    2、不必为shutter指定快捷键,因为shutter对不同类型的截图区分非常清晰,只需点击一下托盘区图标(参照shutter的介绍),需选择什么便一目了然;
    3、为flameshot自定义快捷键,将其作为自由截图的首选工具,其次为其自定义延时截图的快捷键以方便截取菜单。这两个快捷键调用flameshot指令分别为:

    flameshot gui
    flameshot gui -d 2000  -p /home/YourName/Pictures/Flameshot

    1. 如何自定义快捷键,参考此文

五、后记

做一下总结和对Ubuntu下主流截图软件以后的一点判断:
 - 除了系统自带的gnome-screenshot,其他两款自由软件虽然存在一些缺陷,但可克服;
 - 总体而言,结合这三叉戟去完成各种截图任务、并进行一定的图片编辑,基本不在话下;
 - 期待强大的 Snipaste 能够早日出Linux的版本(MAC版本已有了)。因为用户提了几年了还没动静,依然是 on the way,所以估计还需很长时间,而且不一定会免费。我感觉Snipaste的最终目标是定位在收费用户身上;
 - 其次,期待flameshot能更加完美,目前该软件开源有60余人维护,可期性更高,而shutter的维护情况不如flameshot,版本更新频率低。

本文所有截图及编辑均由这三款工具搭配完成。如觉得本文有用,请随手点个赞。如有问题,欢迎留言。

六、参考

 1. https://help.gnome.org/users/gnome-help/stable/screen-shot-record.html.en
 2. https://shutter-project.org/about/
 3. https://flameshot.js.org/#/key-bindings?id=keyboard-shortcuts

Sunflower

Stay hungry stay foolish

Comments