Jak mogę zmienić domyślną nazwę zrzutów ekranu wykonanych przez gnome-screenshot?

34

Gnome-screenshot 3.1.2 używa takich nazw plików jak ten

Zrzut ekranu na 31.07.2011 12: 13: 04.png

dzięki czemu łatwo jest zobaczyć, kiedy zostało zrobione.

Problem polega na tym, że używa znaku dwukropka (:) - uniemożliwiając dostęp do takiego obrazu z systemu Windows.

Biorąc pod uwagę, że biorę większość zrzutów ekranu, aby móc je wysłać użytkownikom systemu Windows, spowodowało to pewne problemy.

Czy istnieje sposób zmiany domyślnej nazwy używanej przez narzędzie do zrzutów ekranu w celu zastąpienia „:” na „.” lub „,”?

Chriskin
źródło

Odpowiedzi:

12

Naprawdę nie jest to możliwe łatwo zmienić, być może możesz pomóc w tym raporcie o błędzie .

(dla ciekawskich sprawdź kod źródłowy . Obecnie odpowiednia linia to 134 )

Aktualizacja : Błąd został naprawiony w dniu 28.01.2015 , zastępując dwukropki myślnikami, co pomaga. Niestety nie zabrali miejsca.

fain182
źródło
3
+1 za linkowanie do kodu źródłowego. Teraz jest to sposób na Linuksa. (Chociaż kod nazwy pliku faktycznie istnieje, teraz: git.gnome.org/browse/gnome-utils/tree/gnome-screenshot/... )
Mark E. Haase
1
Niestety link nie działa: nie znaleziono repozytoriów
gertvdijk
2
Nowy adres URL: git.gnome.org/browse/gnome-screenshot/tree/src/… (pobrano 16.02.2013, 18:08 UTC + 0800)
LiuYan
Chciałbym, abyśmy mogli to poprawić lokalnie, zanim dobrzy, dobrzy programiści GNOME obudzą się trochę szybciej od tak ważnych problemów zgłaszanych przez użytkowników ;-)
Sadi
3
Kto pomyślał, że dobrym pomysłem jest kodowanie nazw zrzutów ekranu w C, co wymaga ponownej kompilacji całego środowiska pulpitu? Czy nikt nigdy nie pomyślał, że użytkownik może chcieć zmienić domyślną nazwę? Teraz, gdy istnieje dconf-editori takie, i gnome-screenshotużywa go, dlaczego nie mieć wpisu dconf dla „zasady nazewnictwa zrzutów ekranu”, który możesz ustawić Screenshot-%02d.png, a jeśli jest pusty, to postępuj zgodnie z ustaloną zasadą nazewnictwa? Ech ....
sdaau
10

Istnieje prosty i brudny sposób na zmianę nazwy wszystkich zrzutów ekranu wykonanych natychmiast po utworzeniu, ale musisz zainstalować inotify-tools ( apt-get install inotify-tools), a następnie możesz uruchomić to polecenie:

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

Podczas uruchamiania tego polecenia za każdym razem, gdy zapiszesz nowy zrzut ekranu w Pictures /, skrypt zmieni nazwę każdego zawierającego plik :, zastępując :go.

(Może chcesz zmienić katalog, nie wiem, z którego katalogu korzysta Gnome 3) Jeśli naprawdę ci się podoba, możesz uruchomić tę komendę w skrypcie przy każdym uruchomieniu gnome.

fain182
źródło
3
+1 To jest fajna sztuczka, ale twoim wyrażeniem regularnym powinno być „s /\:/\./ g”
Mark E. Haase,
inna opcja zamiany: użyj znaku Unicode
LiuYan
Zauważ, że zrzuty ekranu są domyślnie zapisywane w ~/Pictures, a nie ~/Desktop.
MestreLion 04.04.13
9

Zamiast instalować dodatkowe oprogramowanie i pisać ten kod w narzędziu zrzutów ekranu, oto obejście umożliwiające zmianę nazw plików później.

Wszystko, co musisz zrobić, to przejść do katalogu i uruchomić następującą komendę

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

Spowoduje to zastąpienie wszystkich dwukropków myślnikami we wszystkich nazwach plików kończących się .pngna obecnych w bieżącym katalogu.

zainteresowani
źródło
Mniej optymalne, ale o wiele łatwiejsze obejście niż zaproponowane przez fain182 . +1
gertvdijk
6

gnome-screenshot nie pozwala ustawić globalnych domyślnych nazw plików zrzutów ekranu, ale możesz użyć -f opcji, aby określić nazwę pliku w wierszu polecenia.

Możemy go użyć do napisania małego skryptu bash, który zastąpi oryginał gnome-screenshot plik binarny i wykona oryginał z poprawnym parametrem nazwy pliku.

Pamiętaj, że będziesz musiał mieć uprawnienia root'a do następujących operacji, więc poprzedź każdą komendę za pomocą sudolub otwórz powłokę root za pomocą sudo -i.

  1. Przenieś oryginalny gnome-screenshotplik binarny na bok:

    dpkg-divert --add --rename --divert /usr/bin/gnome-screenshot.real /usr/bin/gnome-screenshot
  2. Otwórz /usr/bin/gnome-screenshotw edytorze (powinieneś zobaczyć nowy pusty plik):

    editor /usr/bin/gnome-screenshot
  3. Wklej następujące dwa wiersze do edytora:

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

    Możesz wstawić dowolną ścieżkę po -f; pamiętaj tylko, aby umieścić go w cudzysłowie i zachować $@po nim.
    W tym przykładzie zrzuty ekranu będą przechowywane pod takimi nazwami plików jak /home/yourusername/Pictures/Screenshots/2011-07-31_12-13-04.png. Zobacz man dateszczegóły dotyczące date +%…składni.

  4. Zapisz plik i zamknij edytor (np. Używając Ctrl+ Xw Nano lub :wqw Vimie).

  5. Spraw, aby nowo utworzony skrypt był wykonywalny:

    chmod a+x /usr/bin/gnome-screenshot
n.st
źródło
4

Shutter to kolejna aplikacja do robienia zrzutów ekranu, która pozwala dostosować nazwę pliku: możesz zainstalować ją z Centrum Oprogramowania Ubuntu.

Marco Lackovic
źródło
1
Migawka sama w sobie jest niesamowita, i to jest imho, jest to najlepsze podejście: zamiast naprawiać złe nazwy plików, nie produkuj ich!
MestreLion 04.04.13
Na przykład nazwa pliku w migawka może mieć następującą wieloznaczny: $nb_name_%Y-%m-%d-%H%M%S. Możesz to ustawić w Preferencjach.
Vladimir S.
1

Jeśli:

  1. znasz narzędzia do edycji binarnej, takie jak bless(patrz na przykład pakiet ubuntu lub github ),
  2. i znasz modyfikatory formatu łańcucha C,
  3. i wiesz, że różnica między 0x0i "0",
  4. i nie masz nic przeciwko bałaganowi z plikami binarnymi instalowanymi przez wybraną dystrybucję Linuksa,

następnie możesz zmodyfikować nazwę pliku używaną przez gnome-screenshot.

Podczas edycji binarnej gnome-screenshotznajdziesz dwa ciągi formatu:

  1. %Y-%m-%d %H-%M-%S następnie bajt zerowy,
  2. a Screenshot from %s.%spo nim bajt zerowy.

W łańcuchu drugiego formatu pierwszym %sjest data, a drugim %srozszerzenie pliku.

Stąd można na przykład zastąpić %Y-%m-%d %H-%M-%S z %F-%H%M%Szastosowaną przez NUL i Screenshot from %s.%sprzez shot %s.%snastępnie NUL: zrzuty ekranu zostanie nazwana "shot 2018-05-05_174857.png"na przykład.

Dostosuj się do swoich preferencji.

Istnieją dwa ograniczenia:

  1. nowy format daty i nowy format nazwy pliku nie mogą być dłuższe niż oryginalne,
  2. Twoje dostosowania zostaną zniszczone, jeśli zainstalujesz nową wersję gnome-screenshot, na przykład podczas aktualizacji systemu.

Ostrzeżenia:

  • Testowany na Ubuntu 16.04 LTS, twój przebieg może się różnić.
  • Jest to włamanie , a nie czysty sposób modyfikowania domyślnej nazwy generowanej przez gnome-screenshot: wykonaj kopię zapasową przed kontynuowaniem.
  • Wysłano bez jakiejkolwiek gwarancji.
EKP
źródło
0

W Debian 8.6 KDE → Ustawienia systemowe → Skróty niestandardowe, ustawiłem Trigger → PrtScn i Action →

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

i działa dobrze.

Flavio R. Cavalcanti
źródło
Zastanawiam się, która wersja Debiana była ostatnia pięć lat temu.
mook765