Faz muito tempo desde que eu fiz essa pergunta e parece que é útil para alguns usuários. Por isso, forneço meu próprio script para fazer capturas de tela com xclip
e imagemagick
packages.
Primeiro, instale as dependências mencionadas acima. Então você pode fazer o que quiser com o script abaixo. Ele suporta fazer uma captura de tela de uma tela inteira ou uma região da tela e também copia automaticamente uma captura de tela para uma área de transferência para que você possa colá-la em qualquer lugar (navegador e.i ou Telegram messenger).
Alguns não tão difíceis de criar hacks adicionariam um suporte para capturar janelas específicas e alternar a parte de cópia.
Espero que ajude alguém!
#!/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}
E aqui estão os meus atalhos de referência para que um i3wm
faça uso deste script:
# 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/"