Montei um pequeno script para capturas de tela circulares, você precisa dos seguintes pacotes (embora seja adaptável a outros programas de capturas de tela e emuladores de terminal):
sudo apt install xdotool gnome-screenshot imagemagick xterm
O script
#!/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"
Salve-o como, por exemplo, ~/circular_screenshot.bash
e torne-o executável com chmod +x ~/circular_screenshot.bash
. Quando você o executa, o script primeiro solicita que você mova o cursor do mouse para a posição central e pressione Entere, em seguida, mova-o para uma posição de borda (não importa qual, o script calcula o raio à distância) e pressione novamente Enter. A tela pisca enquanto a captura de tela é tirada (eu recomendo usar scrot $temp_screenshot
, mas não mostra esse comportamento estranho.) E o ImageMagick convert
1 é usado para cortar a imagem. A saída é salva com um carimbo de data e hora como o nome do arquivo no diretório inicial. Você pode alterar esse comportamento editando a output
variável do script.
Saída de exemplo
Ligue sem (ou melhor: com uma janela invisível) do terminal
Suponho que você não deseja que um terminal bloqueie sua tela toda vez que você faz uma captura de tela como essa, então aqui está uma solução para isso; Chame o script da seguinte maneira (assumindo que o script foi salvo como ~/circular_screenshot.bash
):
xterm -geometry 0x0-1-1 -e ~/circular_screenshot.bash
Isso executa o script em uma janela de terminal invisível (ícone com um “X” vermelho e um “T” azul)), você só precisa ter certeza de que está focado ao digitar Enter. Você pode atribuir esse comando a um atalho de teclado usando as configurações do seu ambiente de área de trabalho.
Como o ImageMagick é incrivelmente poderoso, você também pode adaptar esse script para gerar outras formas, usei ellipse
o mesmo raio nas direções x e y para desenhar o círculo acima - mude isso para, por exemplo, $radius,$(bc <<<"$radius*0.5")
para obter uma elipse com excentricidade acima de 0.
1: Adotei a abordagem deste tópico no imagemagick.org .