Comando para tirar uma captura de tela para um novo arquivo

3

Eu quero configurar uma tecla de atalho global para fazer uma nova captura de tela e salvá-la, digamos, em algum lugar dentro da minha pasta pessoal. Eu posso fazer uma captura de tela com o ImageMagick com este comando:

import screenshot.jpg

No entanto, se eu executar isso várias vezes, o screenshot.jpg será sobrescrito várias vezes. Eu quero que o aplicativo escreva screenshot1.jpg, screenshot2.jpg, etc. automaticamente. Como seria meu comando neste caso?

    
por Nikkou 25.09.2013 / 12:39

3 respostas

5

Nomeie o arquivo como

import screenshot-'date +%H%M%S'.jpg
    
por 25.09.2013 / 13:02
3

Método GUI

Você também pode usar uma ferramenta como o Obturador para fazer isso. Ele fornece a capacidade de capturar capturas de tela de seleções, janelas ou toda a área de trabalho. Essas ações podem ser personalizadas para um atalho de teclado específico dentro do Shutter.

diálogo mostrando os mapeamentos de teclado

caixadediálogomostrandoopadrãodenomenclatura

Método da linha de comando

Se você usar o comando import que faz parte do Ferramenta de ferramentas do GoogleMagick .

Exemplo

Basta executar o comando abaixo e clicar no botão esquerdo do mouse quando estiver pronto para fazer uma captura de tela.

$ import "screenshot-$(date  +"%d %b %T").jpg"

Como resultado neste arquivo:

$ ls -l | grep screenshot
-rw-rw-r--   1 saml saml  2273538 Sep 26 13:06 screenshot-26 Sep 13:06:55.jpg

Com esta forma de comando você tem que citar qualquer argumento para import para que o nome do arquivo não seja dividido em espaços.

$ import "...file with spaces..."

Você também pode usar esse comando para capturar uma captura de tela da janela ativa no momento:

$ import -window \
    "$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW): window" | cut -d" " -f5)" \
    "screenshot-$(date  +"%d %b %T").jpg"

No exemplo acima, o comando xprop determinará programaticamente o ID da janela ativa:

$ xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW): window" | cut -d" " -f5
0x2e00004

Há coisas mais elaboradas que você pode fazer aqui, só para aguçar o apetite.

    
por 25.09.2013 / 13:52
2

Um script:

#!/bin/bash
n=0
maxn=1000
bn=screenshot%.jpg

while [[ $n -lt $maxn ]]; do
    # create temporary filename
    tn=${bn/\%/${n}}
    # check whether the file already exists
    if [[ -f $tn ]]; then
        ((n++))
    else
        screenshot_command $tn
        break
    fi
done

$bn é o nome base do arquivo no qual o caractere de porcentagem atua como um espaço reservado para um número. Observe que, se você remover alguns dos arquivos, eles serão recriados, pois o nome será usado assim que o arquivo não existir - você poderá reverter a ordem de contagem (ou seja, decrementar do máximo) e usar o último nome não existente. acertar um que já está lá.

    
por 25.09.2013 / 13:00