Screenshot unter OS X automatisch hochladen 06. April 2007 um 17:18 Uhr / Programmierung
Ich mache eine Sache sehr oft:
- Screenshot schießen
- umbenennen
- FTP-Client öffnen
- auf dem Server einloggen
- ins Screenshots-Verzeichnis durchklicken
- Screenshot hochladen
- FTP-Client schließen
- Browser öffnen
- volle URL zum Bild eingeben
- überprüfen ob alles richtig verlief
- Adresszeile markieren und in die Zwischenablage kopieren
- Datei von der lokalen Festplatte löschen
- Zwischenablage in E-Mail oder Chat einfügen
Doch jetzt ist schluss damit! Ich habe mein erstes Shellscript geschrieben, das das alles automatisiert:
#!/bin/sh
filename=$1
if [ -z $1 ]; then filename="latest"; fi
screencapture -i /tmp/latest-screenshot.png
if [ -r /tmp/latest-screenshot.png ]
then
scp /tmp/latest-screenshot.png user@example.com:~/screens/$filename.png
rm /tmp/latest-screenshot.png
open -a http://example.com/screens/$filename.png
echo -n http://example.com/screens/$filename.png | pbcopy
fi
Das Script macht folgendes:
- Es schaut ob ein Dateiname übergeben wurde, wenn nicht wird
latestals default Dateiname gesetzt - Es macht einen Screenshot im interaktiven Modus. D.h. dass man mit der Maus den Bereich auswählt den man benötigt, oder mit der Leertaste auf "ganzes Fenster" umschaltet.
- Sobald man fertig ausgewählt hat wird der Screenshot in /tmp/latest-screenshot.png abgespeichert
- dann wird er auf den Server kopiert. Damit das nicht nach einem Passwort fragt muss man einen SSH-Schlüssel verwenden
- die temporäre Datei wird gelöscht
- ein neues Browsertab mit dem Bild auf dem Server wird geöffnet
- die URL zum Bild wird in die Zwischenablage zur Weiterverwendung kopiert
Und das aufrufen ist mit Hilfe von Quicksilver auch genial einfach!
- CTRL+Leertaste drücken um Quicksilver Eingabe Aufforderung zu öffnen
- die Buchstaben s und c eintippen um das Script auszuwählen
- optional zwei mal tab drücken und einen individuellen Dateinamen eingeben
- Enter drücken um es aufzurufen
- Bereich wählen den man als Screenshot haben möchte
- Jetzt hat man Safari mit dem Bild auf dem Server in einem neuen Tab offen und die URL in der Zwischenablage mit CTRL+v um sie irgendwo einzufügen




abonnieren.
fwolf aus Karlsruhe schrieb am 06.04.2007
das liese sich doch sicherlich auch für Linux anpassen - immerhin gibts da auch nen Kommandozeilen-Client, um Screenshots auf X-Basis zu machen.
hab das irgendwo im Damn Small Linux-Forum gelesen ..
bei Gelegenheit - nächste Woche also irgendwann - werd ich das mal ausprobieren ;)
kann bei mir in der Firma nämlich gut helfen - keinen Bock, dass man mein System - nur weil ich Linux einsetze - immer für Konqueror-Tests u.ä. einsetzt!
Jeena Paradies aus Varberg schrieb am 06.04.2007
Hey ich bin einer von zweien die ein OS X system auf der Arbeit nutzen. Mich hat auch sehr genervt dass immer alle meine Arbeit unterbrochen haben damit sie im Safari testen konnten.
Eine extrem einfache lösung, die unter Linux noch einfacher funktioniert ist es sie als zweiter User anmelden zu lassen und via VNC auf dem eigenen Rechner arbeiten zu lassen. Dann können sie nämlich im gegenteil zur Screenshot-Lösung auch Interaktionen mit dem Browser testen. Immerhin sind wir hier nicht bei Windows, wo der eigentliche Benutzer dann ein Schwarzes Bild vor die Nase geklatscht bekommt sobald sich ein zweiter Benutzer anmeldet.
Benny aus Würzburg schrieb am 06.04.2007
Interessante Lösung! Ich habe mir es bei ähnlicher Aufgabe etwas einfacher gemacht, schau Dir mal das Programm ImageWell (http://xtralean.com/IWOverview.html) an, das macht auf sehr einfache Art und Weise eigentlich das Gleiche (okay, mehr Klicken statt Tippen).
Robert aus Nordhessen schrieb am 12.04.2007
Wow, wieder zwei neue Mac-OS-X-Befehle kennengelernt. Das Skript oben ist gut und auch gut beschrieben, daraus könnte man doch glatt einen Mac OS X Hint machen, oder ;-)
Zwei Anmerkungen habe ich noch: Statt
reicht auch ein
Damit wird das Bild im Standardbrowser geöffnet.
Und statt das Bild in /tmp zwischendurch abzulegen, könnte (muss nicht) zuerst die Variable $TMPDIR ausgewertet werden. Gerade auf Mehrbenutzersystemen haben private temporäre Dateien Sicherheitsvorteile (Mac OS like z.B. ~/Library/TemporaryItems).
Jeena Paradies aus Varberg schrieb am 16.04.2007
Wie würde man das mit $TMPDIR angehen? Bei mir gibt diese Variable gar nichts aus.
Robert aus Nordhessen schrieb am 21.04.2007
Hm, es kann sein, dass unter Mac OS X $TMPDIR standardmäßig nicht gesetzt ist. Diese Variable findet sich jedenfalls gelegentlich in der Dokumentation einiger Unix-/Posix-Befehle. Du könntest an den Anfang deines Skriptes z.B. folgenden Code einbauen und später dann überall /tmp durch $TMPDIR ersetzen:
if [ -z $TMPDIR ] then TMPDIR=/tmp fimoritz aus Graz, Österreich schrieb am 07.05.2007
interessant ist auch dieses widget: http://www.dropping.at/