Zmiana domyślnej nazwy pliku zrzutu ekranu

16

Czy istnieje sposób na zmianę domyślnego prefiksu nazwy pliku zrzutu ekranu ( Cmd-Shift-4zrzut ekranu typu) na coś innego niż domyślny? Domyślna nazwa wygląda następująco:

Screen Shot 2011-08-30 at 10.01.36 AM.png

Ale wolałbym użyć czegoś takiego:

screenshot_2011-08-30_100136.png

Zasadniczo mogę usunąć spacje i śmieci, ponieważ denerwujące jest przeglądanie plików w Terminalu. Jakiś prosty sposób zmienić ten prefiks za pomocą jednego z defaults write com.apple.screencapturepoleceń stylu?

colemanm
źródło
2
Czy jest jakaś szansa, że ​​możemy sprawić, byś wybrał odpowiedź, która Ci odpowiadała? (lub edytuj, aby lepiej wiedzieć, czego szukasz?)
bmike
Podobne informacje: superuser.com/q/339702/247728
JayRizzo

Odpowiedzi:

11

Możesz zmienić „Zrzut ekranu” na „Zrzut ekranu” za pomocą następujących poleceń

defaults write com.apple.screencapture name screenshot
killall SystemUIServer

Jeśli chcesz zagłębić się trochę głębiej w terminalu, możesz osiągnąć to, co chcesz, wykonując następujące czynności:

UWAGA: Zrób kopię zapasową wszystkich plików, które zmienisz na wypadek pomyłki.

  1. cd /System/Library/CoreServices/SystemUIServer.app/Contents/Resources/English.lproj
  2. Utwórz kopię istniejącego pliku:
    sudo cp ScreenCapture.strings ScreenCapture.strings.old
  3. Wprowadź hasło administratora, jeśli pojawi się monit
  4. Konwertuj na format edytowalny:
    sudo plutil -convert xml1 ScreenCapture.strings
  5. sudo vi ScreenCapture.strings

    Znajdź następujące linie:

    <key>%@ %@ at %@</key>  
    <string>%@ %@ at %@</string>  
    

    i zamień na następujące wiersze:

    <key>%@ %@ at %@</key>  
    <string>%@_%@_%@</string>  
    
  6. Konwertuj z powrotem na binarny:
    sudo plutil -convert binary1 ScreenCapture.strings
  7. killall SystemUIServer

co w połączeniu z pierwszą zmianą powinno dać ci coś takiego:

screenshot_2011-08-30_10.01.36.png co jest bardzo zbliżone do tego, czego potrzebujesz

conorgriffin
źródło
4
Wydaje się, że nie działa to w systemie OS X El Capitan, prawdopodobnie ze względu na ochronę integralności systemu.
Radon Rosborough,
7

Rozwiązałem to w inny sposób. Za pomocą Automatora skonfigurowałem akcję folderu, aby monitorować folder zrzutów ekranu i zmieniać nazwy nowych plików dokładnie tak, jak chcę.

Jest to przyzwoity przewodnik tutaj o podobnym podejściu i instrukcji.

Adrian B.
źródło
Jakie opóźnienie ma podejście Automator? Ile czasu upłynęło od momentu zapisania oryginalnego screencap, a plik jest dostępny pod nową nazwą pliku? Czy to 1 sekunda, 3 sekundy, 12 sekund?
Cheeso,
Od zrzutu ekranu zajmuje od 5 do 7 sekund, dopóki nazwa pliku nie zostanie zmieniona (na moim MacBooku Pro od 2009 roku).
Adrian B,
Dzięki! Biorąc to pod uwagę, zamierzam napisać kod bash, aby to zrobić.
Cheeso,
4

Wyłączyłem domyślne skróty i przypisałem skrót do tego polecenia:

screencapture -i ~/Desktop/$(date +%Y%m%d%H%M%S).png

-i (interaktywny) jest jak ⇧⌘4 lub ⌃⇧⌘4.

Lri
źródło
To wydaje się być najbardziej bezpośrednim rozwiązaniem problemu. Ale jak mapować skrót do polecenia? W oknie dialogowym Preferencje systemowe jest napisane: „wprowadź dokładną nazwę KOMENDY MENU, którą chcesz dodać”. Twoje polecenie nie jest poleceniem menu, więc ...?
Cheeso,
1
@Cheeso Zobacz link w odpowiedzi. Możesz użyć aplikacji takiej jak FastScripts lub Alfred lub utworzyć usługę za pomocą Automatora.
Lri
3

Otwórz terminal i wprowadź:

$ sudo su

$ cd /System/Library/CoreServices/SystemUIServer.app/Contents/Resources/English.lproj

$ plutil -convert xml1 ScreenCapture.strings

$ nano ScreenCapture.strings

zmiana

<key>%@ %@ at %@</key>
    <string>%@ %@ at %@</string>
<key>.</key>
    <string>.</string>
<key>Screen Shot</key>
    <string>Screen Shot</string>

do

<key>%@ %@ at %@</key>
    <string>%@_%@_%@</string>
<key>.</key>
    <string></string>
<key>Screen Shot</key>
    <string>screenshot</string>

następnie

Control+ O, aby zapisać plik i Control+ X, aby wyjść z nano

$ plutil -convert binary1 ScreenCapture.strings

$ killall SystemUIServer

Należy jeszcze zauważyć, że aby pozbyć się AM / PM, musisz go zmienić w Preferencjach systemowych> Język i tekst> Formaty (format 24-godzinny). Znaczniki czasu są wyświetlane zgodnie ze sposobem ustawienia; pamiętaj, że jeśli zmienisz to ustawienie, wszystkie nazwy plików będą używać tego formatu.

~ Daj mi znać, jak to działa.

l'L'l
źródło
3

Ten sam efekt skomplikowanych działań terminalu pokazanych powyżej można uzyskać poprzez panel preferencji wolnych tajemnic , który służy jako interfejs dla wszelkiego rodzaju ukrytych ustawień w Mac OS i jego aplikacjach. Po prostu otwórz panel wstępny i znajdź ustawienie, które chcesz zmienić

Alexander - Przywróć Monikę
źródło
1

Lubiłem odpowiedź Adrian B . Oto skrypt powłoki, który napisałem, aby zmienić nazwę plików cap ekranu: https://gist.github.com/DinoChiesa/7796444

Aby skonfigurować go jako akcję folderu, postępuj zgodnie z tym artykułem .

Po przejściu do okna Automatora postępuj zgodnie z tym przewodnikiem:

wprowadź opis zdjęcia tutaj

Nie zapomnij go zapisać (Command-S).

Z mojego doświadczenia wynika, że ​​akcja folderu rozpoczyna się po przechwyceniu ekranu.

Cheeso
źródło
1

wystarczy użyć 2 poleceń:

d̶e̶f̶a̶u̶l̶t̶s̶ ̶w̶r̶i̶t̶e̶ ̶c̶o̶m̶.̶a̶p̶p̶l̶e̶.̶s̶c̶r̶e̶e̶n̶c̶a̶p̶t̶u̶r̶e̶ ̶n̶a̶m̶e̶ ̶"̶s̶c̶r̶e̶e̶n̶s̶h̶o̶t̶_̶$̶(̶d̶a̶t̶e̶ ̶+̶%̶Y̶_̶%̶m̶_̶%̶d̶-̶%̶H̶_̶%̶M̶_̶%̶S̶)̶"̶ ̶
d̶e̶f̶a̶u̶l̶t̶s̶ ̶w̶r̶i̶t̶e̶ ̶c̶o̶m̶.̶a̶p̶p̶l̶e̶.̶s̶c̶r̶e̶e̶n̶c̶a̶p̶t̶u̶r̶e̶ ̶"̶i̶n̶c̶l̶u̶d̶e̶-̶d̶a̶t̶e̶"̶ ̶0̶

możesz również zmienić domyślną lokalizację zrzutu ekranu (w moim przypadku jest to folder w iCloud)

defaults write com.apple.screencapture location "~/Library/Mobile\ Documents/com\~apple\~CloudDocs/screenshots"
Pavlo Zamoroka
źródło
dziękuję, to dobrze
TinhNQ
To zadziałało za pierwszym razem, ale każdy kolejny zrzut ekranu po prostu powtarzał imię i dołączał przyrostową liczbę na końcu.
Brett VanderVeen
@BrettVanderVeen tak masz rację, to nie jest rozwiązanie
Pavlo Zamoroka
0

IMO absolutnie nie powinno się grzebać z niczym w / System /.

Po pierwsze, po prostu prosisz o zastąpienie dostosowań przyszłą aktualizacją.

Pobierz wersję demonstracyjną Sharpshooter ze strony http://www.kerlmax.com/products/sharpshooter/

Możesz go używać przez 30 dni. Następnie kup za 15 USD. To świetne narzędzie.

Alternatywnie, czy próbowałeś Skitch ? Jest całkowicie darmowy i znacznie lepszy niż wbudowany.

TJ Luoma
źródło