Ho messo insieme un piccolo script per schermate circolari, sono necessari i seguenti pacchetti (anche se è adattabile per altri programmi di schermate ed emulatori di terminali):
sudo apt install xdotool gnome-screenshot imagemagick xterm
Il copione
#!/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"
Salvalo come ad es. ~/circular_screenshot.bash
E rendilo eseguibile con chmod +x ~/circular_screenshot.bash
. Quando lo esegui, lo script ti chiede prima di spostare il cursore del mouse sulla posizione centrale e premere, Enterquindi di spostarlo su una posizione del bordo (non importa quale, lo script calcola il raggio dalla distanza) e premi di nuovo Enter. Lo schermo quindi sfarfalla mentre viene catturato lo screenshot (consiglio di utilizzare scrot $temp_screenshot
invece, non mostra questo strano comportamento.) E convert
1 di ImageMagick viene utilizzato per ritagliare l'immagine. L'output viene salvato con un timestamp come nome file nella directory home, è possibile modificare questo comportamento modificando la output
variabile dello script.
Esempio di output
Chiama senza (o meglio: con una finestra terminale invisibile)
Suppongo che non vuoi avere un terminale che blocchi lo schermo ogni volta che fai uno screenshot del genere, quindi ecco una soluzione per questo; Chiamare lo script come segue (supponendo che lo script sia stato salvato come ~/circular_screenshot.bash
):
xterm -geometry 0x0-1-1 -e ~/circular_screenshot.bash
Questo esegue lo script in una finestra terminale invisibile (icona con una "X" rossa e una "T" blu), devi solo assicurarti che sia focalizzato durante la digitazione Enter. È possibile assegnare questo comando a una scorciatoia da tastiera utilizzando le impostazioni dell'ambiente desktop.
Dato che ImageMagick è incredibilmente potente, puoi adattare questo script per generare anche altre forme, ho usato ellipse
lo stesso raggio in entrambe le direzioni xey per disegnare il cerchio sopra - cambialo ad esempio $radius,$(bc <<<"$radius*0.5")
per ottenere un'ellisse con eccentricità sopra 0.
1: ho preso l'approccio da questo thread su imagemagick.org .