Arch-Linux

如何使用 i3 WM 在 Arch Linux 上輕鬆截取螢幕區域?

  • March 27, 2022

大約一個月前,我從 Ubuntu 14.04 LTS 切換到 Arch,我對這個決定非常滿意。但是,我錯過了我的新發行版的一些功能,尤其是Shift+printscr在 Unity 中允許選擇要擷取的螢幕區域。

我使用 i3 WM。所以,我的問題是:如何配置類似於 Unity 的螢幕截圖行為,以便能夠使用鍵盤快捷鍵或其他東西(無需深入了解視窗 ID 和控制台內容)來捕捉螢幕區域或視窗?

我已經很久沒有問這個問題了,看起來它對一些使用者有幫助。所以我提供了我自己的腳本來製作截圖xclipimagemagick包。

首先,安裝上面提到的依賴項。然後你可以用下面的腳本做任何你想做的事情。它支持製作整個螢幕或螢幕區域的螢幕截圖,並且它會自動將螢幕截圖複製到剪貼板,以便您可以將其粘貼到任何地方(ei 瀏覽器或 Telegram messenger)。

一些不那麼難想出的技巧將增加對擷取特定視窗和切換複製部分的支持。

#!/usr/bin/env bash

# screenshots stuff
# TODO: docs

function help_and_exit {
   if [ -n "${1}" ]; then
       echo "${1}"
   fi
   cat <<-EOF
   Usage: scregcp [-h|-s] [<screenshots_base_folder>]

   Take screenshot of a whole screen or a specified region,
   save it to a specified folder (current folder is default)
   and copy it to a clipboard. 

      -h   - print help and exit
      -s   - take a screenshot of a screen region
EOF
   if [ -n "${1}" ]; then
       exit 1
   fi
   exit 0
}

if [ "${1}" == '-h'  ]; then
   help_and_exit
elif [ "${1:0:1}" == '-' ]; then
   if [ "${1}" != '-s' ]; then
       help_and_exit "error: unknown option ${1}"  
   fi
   base_folder="${2}"
else
   base_folder="${1}"
   params="-window root"
fi  

file_path=${base_folder}$( date '+%Y-%m-%d_%H-%M-%S' )_screenshot.png
import ${params} ${file_path}
xclip -selection clipboard -target image/png -i < ${file_path}

這是我i3wm使用此腳本的參考快捷方式:

# take a screenshot of a screen region and copy it to a clipboard
bindsym --release Shift+Print exec "scregcp -s /home/ddnomad/pictures/screenshots/"

# take a screenshot of a whole window and copy it to a clipboard
bindsym --release Print exec "scregcp /home/ddnomad/pictures/screenshots/"

您可以使用importImageMagick 的一部分。

擷取一個區域

這會將您的游標變為十字準線,當您點擊並拖動以形成一個框時,該框將另存為ss.png.

import ss.png

擷取整個顯示

import -window root ss.png

您還可以將單詞替換root為視窗 id 以擷取特定視窗。

引用自:https://unix.stackexchange.com/questions/233345