Я зібрав невеликий сценарій для кругових знімків екрана, вам потрібні такі пакети (хоча він адаптований і для інших програм скріншоту, і для емуляторів терміналів):
sudo apt install xdotool gnome-screenshot imagemagick xterm
Сценарій
#!/bin/bash
output=~/$(date +%F_%H%M%S).png
temp_screenshot=$(mktemp).png
read -p "Move cursor to center and press Enter"
eval $(xdotool getmouselocation --shell)
x_center=$X
y_center=$Y
read -p "Move cursor to edge and press Enter"
eval $(xdotool getmouselocation --shell)
gnome-screenshot -f $temp_screenshot
radius=$(bc <<<"sqrt(($X-$x_center)^2+($Y-$y_center)^2)")
convert $temp_screenshot -alpha on \( +clone -channel a -evaluate multiply 0 -draw "ellipse $x_center,$y_center $radius,$radius 0,360" \) -compose DstIn -composite -trim "$output"
Збережіть його як наприклад, ~/circular_screenshot.bash
і зробіть його виконуваним за допомогою chmod +x ~/circular_screenshot.bash
. Під час запуску сценарій спочатку просить перенести курсор миші на центральне положення і натиснути, Enterа потім перемістити його в крайове положення (неважливо, яке сценарій обчислює радіус відстані) і знову натисніть Enter. Потім екран знімає, коли знімається знімок екрана (я рекомендую використовувати його, scrot $temp_screenshot
замість цього він не демонструє цього дивного поведінки.), А ImageMagick's convert
1 використовується для обрізання зображення. Вихід зберігається з позначкою часу як ім'я файлу у вашому домашньому каталозі, ви можете змінити цю поведінку, відредагувавши output
змінну сценарію.
Приклад виведення
Телефонуйте без (або краще: з невидимим) вікном терміналу
Я припускаю, що ви не хочете, щоб термінал блокував ваш екран щоразу, коли ви робили такий знімок екрана, тому ось рішення для цього; Викличте сценарій наступним чином (якщо припустимо, що його було збережено як ~/circular_screenshot.bash
):
xterm -geometry 0x0-1-1 -e ~/circular_screenshot.bash
Це запускає скрипт у невидимому вікні терміналу (піктограма з червоним символом "X" та синім "T"), вам просто потрібно переконатися, що він фокусується під час введення Enter. Ви можете призначити цю команду ярлику клавіатури, використовуючи налаштування середовища робочого столу.
Оскільки ImageMagick неймовірно потужний, ви можете адаптувати цей скрипт і для виведення інших фігур, я використовував ellipse
з однаковим радіусом у напрямку х і у, щоб намалювати коло вгорі - змінити його на наприклад, $radius,$(bc <<<"$radius*0.5")
щоб отримати еліпс із ексцентриситетом вище 0.
1: Я взяв підхід з цієї теми на imagemagick.org .