Fedora

無法使用快門拍攝正確的螢幕截圖

  • September 7, 2018

我正在執行 Fedora 25,我需要拍攝一些特定的螢幕截圖,所以我讀到快門是一個很好的工具。可悲的是,由於某種原因,我無法使用它。每當我嘗試截屏時,結果如下:

截屏

Fedora 25 正在使用 Wayland,許多應用程序並沒有為此做好準備(尤其是那些在訪問共享資源(例如整個螢幕)時不期望任何安全性或限制的應用程序)。這肯定是快門中的一個錯誤,它已經被填充為錯誤#1299293#1363845#1399331

如果你想截屏,你要麼必須使用舊的 X,要麼在 Wayland 上使用不同的工具,直到它得到修復。

我還經常使用快門來製作和輕鬆重命名螢幕截圖,並且很遺憾看到它在 Fedora 27 中被 Wayland 打破。

gnome-screenshot 是一個非常有用的實用程序,可以在 Fedora-wayland 中製作螢幕截圖。它可以很容易地用於在 Wayland 中為 Shutter 創建一個解決方法,如下所示:

  1. 創建腳本shut.sh 和grabname.sh 作為附加。

2)使它們可執行(chmod +x)並將它們保存在現有的命令路徑中,以便可以從命令行呼叫它們,例如。在 /usr/bin 。我傾向於將自定義腳本保存在 /usr/local/bin 中,但這必須使用 visudo 添加到預設路徑中。

  1. 現在,當你執行 shut.sh 時,會出現一個游標。用它來繪製一個矩形,終端會彈出詢問您新文件的名稱(grabname.sh)。您可以在文件名中使用空格。然後它會詢問您是否要在文件前加上 yyyymmdd (y)。點擊返回或其他任何東西來跳過前綴。

4)您重命名的文件保存在 /my/temp/location

5)將其另存為 shut.sh :

#!/bin/sh

# START shut.sh

# This script calls gnome-screen shot in Wayland to take a rectangular     screenshot
# resulting png is saved to /my/temp/location
# script then calls a second script (grabname.sh) which asks you for a filename to give the grab with the option to prefix current date if you want
# make sure both scripts are in a relevant executable path for your kernel eg. /usr/bin etc.
# You can allocate shut.sh to a hot key in settings and make screengrabs via a hotkey.

gnome-screenshot -a -f /my/temp/location/grabcache.png

gnome-terminal -e "bash grabname.sh"

# END shut.sh

grabname.sh

#!/bin/sh

# START grabname.sh

# Previous script shut.sh calls gnome-screen shot in Wayland to take a rectangular screenshot
# resulting png is saved to /my/temp/location
# This script (grabname.sh) asks you for a filename to give the grab with the option to prefix current date if you want
#  * spaces are allowed in filenames *
# make sure both scripts are in a relevant executable path for your kernel eg. /usr/bin etc.

# set -x

IFS=$'\n'

read -p "Name for grab? " grab

while true; do

   read -p "Append date yyyymmdd (y or anything else for no) ?" yn

   case $yn in
       [Yy]* ) ap=$(date +%Y%m%d_%H%M_)
       break;;

   * ) echo -e "\n\e[0;34mNot prefixing date...\e[0m\n"; ap="";break;;
   esac
done

echo $ap$grab

cp /my/temp/location/grabcache.png /my/temp/location/"$ap$grab".png

nautilus /my/temp/location

# END grabname.sh 

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