Come posso cambiare il nome predefinito per gli screenshot realizzati da gnome-screenshot?


34

Gnome-screenshot 3.1.2 usa nomi di file come questo

Screenshot al 2011-07-31 12: 13: 04.png

rendendo piuttosto facile vedere quando è stato preso.

Il problema è che utilizza il carattere due punti (:), rendendo impossibile l'accesso a tale immagine da Windows.

Considerando che prendo la maggior parte dei miei screenshot in modo da poterli inviare agli utenti di Windows, ciò ha causato alcuni problemi.

Esiste un modo per modificare il nome predefinito utilizzato dallo strumento screenshot per sostituire ":" con "." o "," ?

Risposte:


12

In realtà non è possibile cambiarlo facilmente, forse puoi aiutare con questa segnalazione di bug .

(per i curiosi, controlla il codice sorgente . Attualmente, la riga pertinente è 134 )

Aggiornamento : il bug è stato corretto a monte il 28-01-2015 , sostituendo i due punti con trattini, il che aiuta. Ma sfortunatamente non hanno eliminato lo spazio.


3
+1 per il collegamento al codice sorgente. Ora CHE è il modo di Linux. (Sebbene il codice del nome del file sia effettivamente qui, ora: git.gnome.org/browse/gnome-utils/tree/gnome-screenshot/… )
Mark E. Haase,

1
Sfortunatamente, il link è morto: nessun repository trovato
gertvdijk,

2
Nuovo URL: git.gnome.org/browse/gnome-screenshot/tree/src/… (recuperato il 16-02-2013 18:08 UTC + 0800)
LiuYan 刘 研

Vorrei che potessimo modificarlo localmente prima che i bravi vecchi sviluppatori GNOME si svegliassero un po 'più velocemente a problemi così importanti segnalati dagli utenti ;-)
Sadi

3
Chi ha mai pensato che fosse una buona idea codificare i nomi degli screenshot in C, richiedendo una ricompilazione dell'intero ambiente desktop? Nessuno aveva mai pensato che un utente potesse voler cambiare il nome predefinito? Ora che c'è dconf-editore così, e lo gnome-screenshotusa, perché non avere una voce dconf che blocca la "politica di denominazione degli screenshot" che potresti impostare Screenshot-%02d.pnge, se vuota, seguire la politica di denominazione hardcoded? Eh ....
sdaau,

10

Esiste un modo semplice e sporco per rinominare tutto lo screenshot subito dopo la creazione, ma dovrai installare inotify-tools ( apt-get install inotify-tools) e quindi puoi eseguire questo comando:

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

Mentre questo comando verrà eseguito, ogni volta che salvi un nuovo screenshot in Pictures /, lo script rinominerà ogni file contenente :, sostituendolo :con.

(Forse vuoi cambiare la directory, non so quale directory utilizza Gnome 3) Se ti piace davvero, puoi avviare questo comando in uno script ogni volta che gnome viene avviato.


3
+1 Questo è un piccolo trucco, ma il tuo regex dovrebbe essere 's /\:/\./ g'
Mark E. Haase,

un'altra opzione di sostituzione: usa il carattere unicode
LiuYan 刘 研

Si noti che gli screenshot vengono salvati per impostazione predefinita in ~/Picturesno ~/Desktop.
MestreLion

9

Invece di installare software aggiuntivo e scrivere questo codice nello strumento screenshot, ecco una soluzione alternativa per rinominare i file in seguito.

Tutto quello che devi fare è navigare nella directory ed eseguire il comando seguente

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

Ciò sostituirà tutti i due punti con trattini in tutti i nomi di file che terminano con .pngquelli presenti nella directory corrente.


Soluzione alternativa meno ottimale, ma molto più semplice di quella proposta da fain182 . +1
gertvdijk,

6

gnome-screenshotnon consente di impostare un valore predefinito globale per i nomi dei file degli screenshot, ma è possibile utilizzare l' -fopzione per specificare un nome file sulla riga di comando.

Possiamo usarlo per scrivere un piccolo script bash che prenderà il posto del file gnome-screenshotbinario originale ed eseguirà l'originale con il parametro del nome file corretto.

Nota che dovrai avere i privilegi di root per le seguenti operazioni, quindi aggiungi un prefisso a ciascun comando sudoo apri una shell di root con sudo -i.

  1. Sposta il gnome-screenshotbinario originale fuori strada:

    dpkg-divert --add --rename --divert /usr/bin/gnome-screenshot.real /usr/bin/gnome-screenshot
  2. Apri /usr/bin/gnome-screenshotin un editor (dovresti vedere un nuovo file vuoto):

    editor /usr/bin/gnome-screenshot
  3. Incolla le seguenti due righe nell'editor:

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

    È possibile inserire qualsiasi percorso che ti piace dopo il -f; assicurati solo di racchiuderlo tra virgolette e di conservarlo $@dopo.
    In questo esempio, gli screenshot verranno archiviati con nomi di file simili /home/yourusername/Pictures/Screenshots/2011-07-31_12-13-04.png. Vedere man dateper i dettagli sulla date +%…sintassi.

  4. Salvare il file e chiudere l'editor (ad es. Utilizzando Ctrl+ Xin Nano o :wqin Vim).

  5. Rendi eseguibile lo script appena creato:

    chmod a+x /usr/bin/gnome-screenshot

4

Shutter è un'altra applicazione per acquisire schermate che ti consente di personalizzare il nome del file: puoi installarlo da Ubuntu Software Center.


1
L'otturatore è sorprendente di per sé, e questo è imho questo è l'approccio migliore: invece di correggere i nomi di file cattivi, non produrli!
MestreLion

Ad esempio, il nome del file nel otturatore può avere le seguenti wildcard: $nb_name_%Y-%m-%d-%H%M%S. Puoi impostarlo nelle Preferenze.
Vladimir S.

1

Se:

  1. hai familiarità con strumenti di editing binario come bless(vedi pacchetto Ubuntu per esempio o github ),
  2. e conosci modificatori del formato stringa C,
  3. e conosci la differenza tra 0x0e "0",
  4. e non ti dispiace scherzare con i file binari installati dalla tua distribuzione Linux preferita,

quindi è possibile modificare il nome del file utilizzato da gnome-screenshot.

Durante la modifica binaria gnome-screenshot, troverai due stringhe di formato:

  1. %Y-%m-%d %H-%M-%S seguito da un byte null,
  2. e Screenshot from %s.%sseguito da un byte nullo.

Nella seconda stringa di formato, la prima %sè la data, la seconda %sè l'estensione del file.

Da qui, è possibile, per esempio, sovrascrivere %Y-%m-%d %H-%M-%S con %F-%H%M%Sseguita da un byte nullo e Screenshot from %s.%sda shot %s.%sseguito da un byte nullo: le immagini saranno poi chiamati "shot 2018-05-05_174857.png", per esempio.

Adatta alle tue preferenze.

Esistono due vincoli:

  1. il nuovo formato della data e il nuovo formato del nome del file non devono essere più lunghi di quelli originali,
  2. le personalizzazioni verranno distrutte se si installa una nuova versione di gnome-screenshot, ad esempio durante l'aggiornamento del sistema.

Avvertenze:

  • Testato su Ubuntu 16.04 LTS, il tuo chilometraggio può variare.
  • Questo è un trucco , non un modo chiaro per modificare il nome predefinito generato da gnome-screenshot: fare un backup prima di procedere.
  • Inserito senza alcuna garanzia di alcun tipo.

0

In Debian 8.6 KDE → Impostazioni di sistema → Collegamenti personalizzati, ho impostato Trigger → PrtScn e Azione →

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

e funziona benissimo.


Mi chiedo quale versione di Debian sia stata recente cinque anni fa.
mook765,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.