J'ai mis en place un petit script pour les captures d'écran circulaires, vous avez besoin des packages suivants (bien qu'il soit également adaptable pour d'autres programmes de capture d'écran et émulateurs de terminaux):
sudo apt install xdotool gnome-screenshot imagemagick xterm
Le scénario
#!/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"
Enregistrez-le par exemple ~/circular_screenshot.bash
et rendez-le exécutable avec chmod +x ~/circular_screenshot.bash
. Lorsque vous l'exécutez, le script vous demande d'abord de déplacer le curseur de la souris en position centrale et appuyez sur Enterpuis de le déplacer vers une position de bord (peu importe lequel, le script calcule le rayon à partir de la distance) et appuyez à nouveau sur Enter. L'écran scintille alors pendant la capture d'écran (je recommande d'utiliser à la scrot $temp_screenshot
place, il ne montre pas ce comportement étrange.) Et convert
1 de ImageMagick est utilisé pour recadrer l'image. La sortie est enregistrée avec un horodatage comme nom de fichier dans votre répertoire personnel, vous pouvez changer ce comportement en modifiant la output
variable du script.
Exemple de sortie
Appelez sans (ou mieux: avec une fenêtre de terminal invisible)
Je suppose que vous ne voulez pas qu'un terminal bloque votre écran chaque fois que vous faites une capture d'écran comme ça, alors voici une solution pour cela; Appelez le script comme suit (en supposant que le script a été enregistré sous ~/circular_screenshot.bash
):
xterm -geometry 0x0-1-1 -e ~/circular_screenshot.bash
Cela exécute le script dans une fenêtre de terminal invisible (icône avec un «X» rouge et un «T» bleu), il vous suffit de vous assurer qu'il est ciblé lorsque vous tapez Enter. Vous pouvez affecter cette commande à un raccourci clavier à l'aide des paramètres de votre environnement de bureau.
Comme ImageMagick est incroyablement puissant, vous pouvez également adapter ce script pour produire d'autres formes, j'ai utilisé ellipse
avec le même rayon dans les deux directions x et y pour dessiner le cercle ci-dessus - changez-le par exemple $radius,$(bc <<<"$radius*0.5")
pour obtenir une ellipse avec une excentricité supérieure à 0 à la place.
1: J'ai pris l'approche de ce fil sur imagemagick.org .