Прошло много времени с тех пор, как я задавал этот вопрос, и похоже, что это полезно для некоторых пользователей. Поэтому я предоставляю свой собственный скрипт для создания скриншотов xclip
и imagemagick
пакетов.
Прежде всего, установите вышеупомянутые зависимости. Затем вы можете делать все, что вы хотите с помощью сценария ниже. Он поддерживает создание снимка экрана всего экрана или области экрана, а также автоматически копирует снимок экрана в буфер обмена, чтобы вы могли вставить его везде (например, в браузере или в мессенджере Telegram).
Несколько несложных способов придумать хаки добавили бы поддержку для захвата определенных окон и переключения частей копирования.
#!/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/"