Ändern des Standarddateinamens für Screenshots

15

Gibt es eine Möglichkeit, das Dateinamen-Präfix des Standard-Screenshots (den Cmd-Shift-4Typ-Screenshot) in etwas anderes als das Standard- zu ändern ? Der Standardname sieht folgendermaßen aus:

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

Aber ich würde es vorziehen, etwas zu verwenden wie:

screenshot_2011-08-30_100136.png

Grundsätzlich kann ich so die Leerzeichen und Junk entfernen, da es ärgerlich ist, im Terminal durch Dateien zu stöbern. Gibt es eine einfache Möglichkeit, dieses Präfix mit einem der defaults write com.apple.screencaptureStyle-Befehle zu ändern ?

Colemanm
quelle
2
Gibt es eine Chance, dass wir Sie dazu bringen, eine Antwort auszuwählen, die für Sie funktioniert hat? (oder eine
Änderung
Ähnliche Info: superuser.com/q/339702/247728
JayRizzo

Antworten:

11

Mit den folgenden Befehlen können Sie "Screenshot" in "Screenshot" ändern

defaults write com.apple.screencapture name screenshot
killall SystemUIServer

Wenn Sie im Terminal etwas tiefer graben möchten, können Sie das erreichen, was Sie wollen, indem Sie Folgendes tun:

HINWEIS: Erstellen Sie eine Sicherungskopie aller Dateien, die Sie ändern, falls Sie einen Fehler machen.

  1. cd /System/Library/CoreServices/SystemUIServer.app/Contents/Resources/English.lproj
  2. Erstellen Sie eine Kopie der vorhandenen Datei:
    sudo cp ScreenCapture.strings ScreenCapture.strings.old
  3. Geben Sie das Administratorkennwort ein, wenn Sie dazu aufgefordert werden
  4. In ein bearbeitbares Format konvertieren:
    sudo plutil -convert xml1 ScreenCapture.strings
  5. sudo vi ScreenCapture.strings

    Suchen Sie die folgenden Zeilen:

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

    und durch folgende Zeilen ersetzen:

    <key>%@ %@ at %@</key>  
    <string>%@_%@_%@</string>  
    
  6. Zurück in Binär umwandeln:
    sudo plutil -convert binary1 ScreenCapture.strings
  7. killall SystemUIServer

Die Kombination mit der ersten Änderung sollte ungefähr so ​​aussehen:

screenshot_2011-08-30_10.01.36.png Das ist sehr nah an dem, was du brauchst, denke ich

conorgriffin
quelle
2
Dies scheint in OS X El Capitan nicht zu funktionieren, vermutlich aufgrund des Schutzes der Systemintegrität.
Radon Rosborough
7

Ich habe das anders gelöst. Mit Automator richte ich eine Ordneraktion ein, um meinen Screenshot-Ordner zu überwachen und alle neuen Dateien genau so umzubenennen, wie ich sie haben möchte.

Es ist ein anständiger Führer hier mit einem ähnlichen Ansatz und Anweisungen.

Adrian B
quelle
Wie lang ist die Latenz beim Automator-Ansatz? Wie lange dauert es, bis die ursprüngliche Screencap gespeichert wurde und die Datei mit dem neuen Dateinamen verfügbar ist? Ist es 1 Sekunde, 3 Sekunden, 12 Sekunden?
Cheeso
Zwischen 5 und 7 Sekunden vom Screenshot bis zur Änderung des Dateinamens (auf meinem MacBook Pro ab 2009).
Adrian B
Vielen Dank! Aus diesem Grund werde ich einen Bash-Code schreiben, um dies zu tun.
Cheeso
4

Ich habe die Standardverknüpfungen deaktiviert und diesem Befehl eine Verknüpfung zugewiesen :

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

-i (interaktiv) ist wie ⇧⌘4 oder ⌃⇧⌘4.

Lri
quelle
Das scheint die direkteste Lösung für das Problem zu sein. Aber wie ordnet man eine Verknüpfung zu einem Befehl zu? Im Dialogfeld "Systemeinstellungen" heißt es "Geben Sie den genauen Namen des Menübefehls ein, den Sie hinzufügen möchten." Ihr Befehl ist kein Menübefehl, also ...?
Cheeso
1
@ Cheeso Siehe den Link in der Antwort. Sie können eine Anwendung wie FastScripts oder Alfred verwenden oder einen Dienst mit Automator erstellen.
Lri
3

Terminal öffnen und eingeben:

$ sudo su

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

$ plutil -convert xml1 ScreenCapture.strings

$ nano ScreenCapture.strings

Veränderung

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

zu

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

dann

Control+ O zum Schreiben der Datei und Control+ X zum Beenden von nano

$ plutil -convert binary1 ScreenCapture.strings

$ killall SystemUIServer

Eine weitere Sache, die Sie hier beachten sollten, ist, dass Sie AM / PM in den Systemeinstellungen> Sprache & Text> Formate (24-Stunden-Format) ändern müssen, um sie zu entfernen. Zeitstempel werden entsprechend der Einstellung angezeigt. Denken Sie daran, wenn Sie diese Einstellung ändern, verwenden alle Dateinamen dieses Format.

~ Lass mich wissen, wie es funktioniert.

l'l'l
quelle
3

Der gleiche Effekt der oben gezeigten komplizierten Terminalaktionen kann über den Einstellungsbereich für kostenlose Geheimnisse erzielt werden , der als Schnittstelle für alle Arten von versteckten Einstellungen in Mac OS und seinen Apps dient. Öffnen Sie einfach das Einstellungsfenster und suchen Sie die Einstellung, die Sie ändern möchten

Alexander - Setzen Sie Monica wieder ein
quelle
1

Die Antwort von Adrian B gefiel mir . Hier ist das Shell-Skript, das ich zum Umbenennen von Screen-Cap-Dateien geschrieben habe: https://gist.github.com/DinoChiesa/7796444

Befolgen Sie diesen Artikel , um es als Ordneraktion einzurichten .

Wenn Sie zum Automator-Fenster gelangen, befolgen Sie diese Anleitung:

Bildbeschreibung hier eingeben

Vergiss nicht, es zu speichern (Command-S).

Nach meiner Erfahrung dauert es 3-6 Sekunden, bis die Ordneraktion "gestartet" ist, nachdem ich den Bildschirm erfasst habe.

Cheeso
quelle
0

IMO solltest du auf keinen Fall mit irgendetwas in / System / rumalbern.

Zum einen möchten Sie nur, dass Ihre Anpassungen durch ein zukünftiges Update überschrieben werden.

Laden Sie die Demo von Sharpshooter von http://www.kerlmax.com/products/sharpshooter/ herunter.

Sie können es 30 Tage lang verwenden. Dann kaufe es für 15 $. Es ist ein großartiges Dienstprogramm.

Alternativ haben Sie Skitch ausprobiert ? Es ist völlig kostenlos und viel besser als das eingebaute.

TJ Luoma
quelle
0

benutze einfach 2 Befehle:

defaults write com.apple.screencapture name "screenshot_$(date +%Y_%m_%d-%H_%M_%S)"
defaults write com.apple.screencapture "include-date" 0

Sie können auch den Standardspeicherort für Screenshots ändern (in meinem Fall ist dies ein Ordner in iCloud).

defaults write com.apple.screencapture location "~/Library/Mobile\ Documents/com\~apple\~CloudDocs/screenshots"
Pavlo Zamoroka
quelle