Eu criei um pequeno script para capturas de tela circulares, você precisa dos seguintes pacotes (embora seja adaptável para outros programas de captura de tela e emuladores de terminal também):
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"
Salvar como, por exemplo, ~/circular_screenshot.bash
e torná-lo executável com chmod +x ~/circular_screenshot.bash
. Quando você o executa, o script primeiro pede para você mover o cursor do mouse para a posição central e pressionar Enter e então movê-lo para uma posição de borda (não importa qual, o script calcula o raio da distância) e pressione novamente Enter . A tela pisca enquanto a captura de tela é realizada (recomendo usar scrot $temp_screenshot
, não mostra esse comportamento estranho) e o convert
1 do ImageMagick é usado para cortar a imagem. A saída é salva com um registro de data e hora como o nome do arquivo em seu diretório inicial. Você pode alterar esse comportamento editando a variável output
do script.
Exemplo de saída
Chamarsem(oumelhor:comuminvisível)janeladeterminal
Suponhoquevocênãoqueiraterumterminalbloqueandosuatelatodavezquefizerumacapturadetelacomoessa,entãoaquiestáumasoluçãoparaisso;Chameoscriptdaseguinteforma(assumindoqueoscriptfoisalvocomo~/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 se certificar de que ele está focalizado quando você digita Enter . Você pode atribuir esse comando a um atalho de teclado usando as configurações do seu ambiente de trabalho.
Como o ImageMagick é incrivelmente poderoso, você pode adaptar esse script para gerar outros formatos também. Usei ellipse
com o mesmo raio nas direções xe y para desenhar o círculo acima. $radius,$(bc <<<"$radius*0.5")
para obter uma elipse com excentricidade acima de 0.
1: Eu usei a abordagem de este tópico no imagemagick.org