Wayland環境下截圖加後期修改

截圖功能在日常工作中使用場景很多,當你要向合作伙伴解釋某個問題的時候,一圖勝萬言,所謂有圖有真相。截圖完成通常要修改註解下,重點地方紅框、操作步驟、箭頭指引什麼的。

Linux 環境下截圖軟件很多,實際好用的屈指可數,wayland 環境下相關軟件 bug 很多。曾經我以爲 flameshot 不錯,但雙屏環境下遇到過不少問題,經常升級到某個版本時,不能同時選中雙屏截圖、輸入文字困難。切換到 labwc 環境後,甚至框定範圍極度延時。在掙扎一段時間後,我選擇了 grim + slurp + swappy 的組合,如下所示,綁定個快捷鍵即可。

1grim -g "`slurp`" - | swappy -f -

grim 截圖, slurp 選擇範圍,swappy 後期修改。

這個組合基本夠用,可很快就發現,swappy 的後期能力不足,比如沒法加步驟指示(就是在圖片上顯示 1、2、3 等步驟的功能)。這一功能在描述某個操作步驟的時候非常方便快捷,編寫本站各種教程的時候需要,工作演示操作的時候也需要。

看到有人提了 issue,我也追加回復希望作者添加此功能。

swappy-counter

現代社會,人人都很忙,作者完成了核心功能並開源,應該褒獎,用戶不可無限索取,當然提意見供參考是鼓勵的。這個功能得等能人添加(也許將來的某一天我會成爲這種人,但是目前階段還不行,退休後也許可以)。

正是在這種情況下,找到了一個替換 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
    7pwd
    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-others

上圖所示:

  • 圖標 1,模糊功能,遮擋敏感信息;
  • 圖標 2,自定義貼紙(在 options/Settings/Annotator/Stikers 中配置,會出現在表情列表中),有趣的功能;
  • 圖標 3,內置的幾個表情;
  • 圖標 4,水印(在 options/Settings/Annotator/Watermark 中配置)。

最後,開源軟件是可以不斷進化的,取決於它處於什麼樣社區環境,ksnip 有一百多位貢獻者,有理由相信能不斷完善。更多功能,各位讀者自行摸索,感謝閱讀本文。

最後修改於: Monday, August 28, 2023

相關文章:

翻譯: