Como posso alterar o nome padrão das capturas de tela feitas pelo gnome-screenshot?

34

O Gnome-screenshot 3.1.2 usa nomes de arquivos como este

Captura de tela em 2011-07-31 12: 13: 04.png

tornando mais fácil ver quando foi tirada.

O problema é que ele usa o caractere de dois pontos (:) - impossibilitando o acesso a uma imagem do Windows.

Considerando que eu tiro a maioria das minhas capturas de tela para que eu possa enviá-las aos usuários do Windows, isso causou alguns problemas.

Existe alguma maneira de alterar o nome padrão usado pela ferramenta de captura de tela para substituir o ":" por "." ou ","?

Chriskin
fonte

Respostas:

12

Na verdade, não é possível alterá-lo facilmente, talvez você possa ajudar com este relatório de bug .

(para os curiosos, verifique o código fonte . Atualmente, a linha relevante é 134 )

Atualização : o bug foi corrigido upstream em 28-01- 2015 , substituindo dois pontos por traços, o que ajuda. Mas eles não ocuparam o espaço infelizmente.

fain182
fonte
3
+1 para vincular ao código fonte. Agora essa é a maneira linux. (Embora o código nome do arquivo é realmente aqui, agora: git.gnome.org/browse/gnome-utils/tree/gnome-screenshot/... )
Mark E. Haase
11
Infelizmente, o link está morto: Nenhum repositório encontrado
Gertvdijk
2
Novo URL: git.gnome.org/browse/gnome-screenshot/tree/src/… (recuperado em 16-02-2013 18:08 UTC + 0800)
LiuYan
Eu gostaria que pudéssemos ajustar isso localmente antes de bons desenvolvedores do GNOME velhos acordar um pouco mais rápido para tais problemas importantes relatados por usuários ;-)
Sadi
3
Quem achou uma boa idéia codificar os nomes das capturas de tela em C, exigindo uma recompilação de todo o ambiente da área de trabalho? Ninguém nunca pensou que um usuário poderia querer alterar a nomeação padrão? Agora que existe dconf-editore tal, e a gnome-screenshotusa, por que não ter uma entrada dconf indicando "política de nomeação de captura de tela" que você poderia definir Screenshot-%02d.pnge, se estiver vazia, siga a política de nomeação codificada? Eh ....
sdaau 31/03
10

Existe uma maneira simples e suja de renomear toda a captura de tela feita imediatamente após a criação, mas você precisará instalar o inotify-tools ( apt-get install inotify-tools) e, em seguida, poderá executar este comando:

while true; do inotifywait -e CREATE ~/Pictures && rename 's/\:/\./g' Pictures/Screenshot*.png; done;

Enquanto esse comando é executado, toda vez que você salva uma nova captura de tela em Imagens /, o script renomeia todos os arquivos que contêm :, substituindo :por.

(Talvez você queira alterar o diretório, não sei qual diretório o Gnome 3 usa). Se você realmente gosta, pode iniciar esse comando em um script toda vez que o gnome é iniciado.

fain182
fonte
3
1 Este é um truque pequeno puro, mas o seu regex deve ser 's /\:/\./ g'
Mark E. Haase
outra opção de substituição: usar o caractere unicode
Liuyan刘研
Observe que as capturas de tela são salvas por padrão em ~/Pictures, não ~/Desktop.
precisa saber é o seguinte
9

Em vez de instalar software adicional e escrever esse código na ferramenta de captura de tela, aqui está uma solução alternativa para renomear os arquivos posteriormente.

Tudo o que você precisa fazer é navegar para o diretório e executar o seguinte comando

rename 's/\:/\-/g' *.png

Isso substituirá todos os dois pontos por hífens em todos os nomes de arquivos que terminam com .pngos presentes no diretório atual.

interessado
fonte
Solução alternativa menos ideal, mas muito mais fácil do que a proposta por fain182 . 1
gertvdijk
6

gnome-screenshotnão permite definir um padrão global para os nomes de arquivo da captura de tela, mas você pode usar a -fopção para especificar um nome de arquivo na linha de comando.

Podemos usar isso para escrever um pequeno script bash que substituirá o gnome-screenshotbinário original e executará o original com o parâmetro correto filename.

Observe que você precisará ter privilégios de root para as seguintes operações, portanto, prefixe cada comando com sudoou abra um shell raiz com sudo -i.

  1. Mova o gnome-screenshotbinário original para fora do caminho:

    dpkg-divert --add --rename --divert /usr/bin/gnome-screenshot.real /usr/bin/gnome-screenshot
  2. Abra /usr/bin/gnome-screenshotem um editor (você verá um novo arquivo vazio):

    editor /usr/bin/gnome-screenshot
  3. Cole as duas linhas a seguir no editor:

    #!/bin/bash  
    gnome-screenshot.real -f "$HOME/Pictures/Screenshots/$(date +%F_%H-%M-%S).png" $@

    Você pode inserir qualquer caminho que desejar após o -f; apenas coloque-o entre aspas e mantenha o $@depois.
    Neste exemplo, as capturas de tela serão armazenadas com nomes de arquivos como /home/yourusername/Pictures/Screenshots/2011-07-31_12-13-04.png. Veja man datepara detalhes sobre a date +%…sintaxe.

  4. Salve o arquivo e feche o editor (por exemplo, usando Ctrl+ Xno Nano ou :wqno Vim).

  5. Torne o script recém-criado executável:

    chmod a+x /usr/bin/gnome-screenshot
n.st
fonte
4

O Shutter é outro aplicativo para captura de tela, que permite personalizar o nome do arquivo: você pode instalá-lo no Ubuntu Software Center.

Marco Lackovic
fonte
11
O obturador é incrível por si só, e essa é a melhor abordagem: em vez de corrigir nomes de arquivos ruins, não os produza!
usar o seguinte comando
Por exemplo, o nome do arquivo no obturador pode ter a seguinte curinga: $nb_name_%Y-%m-%d-%H%M%S. Você pode configurá-lo nas Preferências.
Vladimir S.
1

E se:

  1. você está familiarizado com ferramentas de edição binária, como bless(veja o pacote ubuntu por exemplo ou o github ),
  2. e você conhece modificadores de formato de string C,
  3. e você sabe a diferença entre 0x0e "0",
  4. e você não se importa de mexer com arquivos binários instalados pela sua distribuição Linux preferida,

então você pode modificar o nome do arquivo usado por gnome-screenshot.

Ao editar binário gnome-screenshot, você encontrará duas cadeias de formato:

  1. %Y-%m-%d %H-%M-%S seguido por um byte nulo,
  2. e Screenshot from %s.%sseguido por um byte nulo.

Na segunda string de formato, a primeira %sé a data, a segunda %sé a extensão do arquivo.

A partir daqui, você pode, por exemplo, substituir %Y-%m-%d %H-%M-%S com %F-%H%M%Sseguido por um byte nulo e Screenshot from %s.%spor shot %s.%sseguido por um byte nulo: screenshots irá então ser nomeado "shot 2018-05-05_174857.png"por exemplo.

Adapte-se às suas preferências.

Existem duas restrições:

  1. o novo formato da data e o novo formato do nome do arquivo não devem exceder os originais,
  2. suas personalizações serão destruídas se você instalar uma nova versão gnome-screenshot, por exemplo, ao atualizar seu sistema.

Advertências:

  • Testado no Ubuntu 16.04 LTS, sua milhagem pode variar.
  • Isso é um hack , não uma maneira limpa de modificar o nome padrão gerado por gnome-screenshot: faça um backup antes de continuar.
  • Publicado sem qualquer tipo de garantia.
EKP
fonte
0

No Debian 8.6 KDE → Configurações do sistema → Atalhos personalizados, configurei Trigger → PrtScn e Ação →

gnome-screenshot -p -f "$(date +%F_%H-%M-%S)_D.png"

e funciona bem.

Flavio R. Cavalcanti
fonte
Eu me pergunto qual versão do Debian foi recente há cinco anos.
mook765