Chciałbym napisać skrypt, aby pobrać plik obrazu, przeskalować go o 50% i umieścić w schowku, aby można go było łatwo wkleić. Trochę mnie tkwi w tym, jak umieścić obraz w schowku.
Znam xclip, ale AFAICS, który zajmuje się tylko tekstem. Czy możliwe jest posiadanie obrazu w schowku bez aplikacji, która go wygenerowała? - Przepraszam, nie jestem pewien wewnętrznych elementów, jak działa schowek!
EDYTOWAĆ
Dzięki poniższej odpowiedzi Floriana udało mi się osiągnąć to, co chciałem, czyli zrobić zrzut ekranu i automatycznie przeskalować go do maksymalnej szerokości 600 pikseli (np. Do wklejenia do wiadomości e-mail). Kolejnym problemem, z którym się spotkałem, było to, że Thunderbird nie zaakceptuje image/png
ze schowka. Mam okrągłe to poprzez przekształcenie go text/html
z data
URL. Oto mój kod na wypadek, gdyby ktoś uznał go za przydatny:
#!/bin/bash
TMP=/tmp/screenshot.png
function screenshotfail {
notify-send -u low -i image "Screenshot failed."
exit
}
# Take screenshot
gnome-screenshot -a -b -p -f "$TMP" || screenshotfail
# Ensure it's max 600px wide
mogrify -resize '>600x' "$TMP" || screenshotfail
# optimise the png if optipng is installed.
which optipng >/dev/null && optipng "$TMP"
# Copy to clipboard.
#
# This is what does not work for Thunderbird:
# xclip -selection clipboard -t image/png <"$TMP" || screenshotfail
# But this does:
echo "<img src='data:image/png;base64,"$(base64 -w0 "$TMP")"' />" | \
xclip -selection clipboard -t text/html || screenshotfail
# Remove the temp file.
rm -f "$TMP"
# Notify user.
notify-send -u low -i image "600px screenshot copied to clipboard"