Archives for posts with tag: Script

Prinzipiell halte ich mich ja von den sozialen Netzwerken und den großen Datenkraken fern. Weder hab ich facebook, noch irgend einen seiner einkassierten Ableger. Auf google hab ich eine Mailadresse (für Müll), aber google+ hab ich nie benutzt. Tut auch sonst kaum jemand, weswegen google den Krams jetzt abschaltet.

Was ich wirklich benutze, ist der google-Account mit Youtube. Was man da sonst als „trending“ angezeigt bekommt, spottet jeder Beschreibung. Ich brauch echt meine Filterblase.

Und dann wäre da noch der Kalender. Google kennt jeden unserer Termine. Es ist ja auch unglaublich einfach zu nutzen, zu syncen und mit dem Webinterface hat man immer und überall Zugriff, auch ohne Handy. Ein Dorn im Auge ist mir das trotzdem schon lange: Googles wegen.

Aber wie ändern? Eine komplette Owncloud installieren? Gedacht hab ich das vor ein paar Jahren schon. Etwas Recherche zeigte erstmal, dass das nicht komplett freie Software ist und es schien auch massig Probleme zu geben. Neue Probleme brauchte ich nicht. Also blieb erstmal alles, wie es war.

Neulich hat Roman mir dann was empfohlen: Baikal. Das synchronisiert als Zentrale alle Kalender per Caldav und benötigt selbst kaum Ressourcen. Was mir dennoch fehlt, ist ein Webinterface. Das ist schon irgendwie Pflicht, meine Termine will ich nicht nur im Handy zurecht frickeln.

So’ne richtige Cloud wäre ja schon cool, so mit Dateiablage, Kontakten und dem Kalender natürlich. Inzwischen wurde Owncloud von einem der Gründer geforkt. Nextcloud ist komplett freie Software und es gibt ’ne Menge Tutorials, sogar für den Raspberry Pi.

Mein Raspi in der Ladestation im Küchenschrank ist damit wohl aber überfordert, das ist noch ein 2B+. Als Küchenradio und WLAN-AP im Hof reicht er, für mehr aber auch nicht. Ein 3B+ ist schnell bei Conrad geholt. Zwei Tage Kind-krank spielen mir in die Hände, dann ist alles installiert (ganz frei von Stolperfallen ist das nämlich trotz aller Tutorials nicht). Bei Strato richte ich noch eine Dyndns-Subdomain ein und der Zugriff von außen klappt auch.

Damit ist der Google-Kalender nun endlich Geschichte.

(swg)

Beim Kopieren von Fotos stimmt oft das Dateidatum nicht mehr. Manchmal, weil Samba das Datum nicht zurückdatiert, oder weil beim versenden über Bluetooth das Dateidatum beim Erstellen auf dem Rechner aktuell gesetzt wird. Blöd ist das, weil mein Bildbetrachter geeqie nur nach Dateidatum sortieren kann, aber nicht nach Exif-Datum. Selbst geeqie versaut das Datum der Datei, wenn man den Bildinhalt dreht.

Dafür hab ich wieder was gebastelt: Per Script wird aus den Dateien das Erstellungsdatum gelesen und neu gesetzt. Zum Lesen braucht man die exif-tools, zum Setzen des Dateidatums touch -d.

#!/bin/bash
# swg, 6.1.2014
#
# Dateierstellungsdatum auf das in EXIF gespeicherte Datum setzen
# erwartet als Parameter wenigstens eine Bilddatei!
#
ARGS=$@
for JPG in „$ARGS“; do
DATETIME=$(exiftool -DateTimeOriginal -s -s -s -d ‚%F %H:%M:%S‘ „$JPG“);
touch -d „$DATETIME“ „$JPG“;
done

Es lassen sich beliebig viele Dateien übergeben. Wie immer hab ich das Script ins Kontextmenü von geeqie genagelt. Klappt Super.

(swg)

Fürs Bloggen brauch ich immer ewig. Vor allem Bilder Aufbereiten frisst dabei unheimlich Zeit. Macht man das mit Gimp oder ähnlichem wird man drüber adelig. Und man macht dabei eigentlich jedes Mal das Selbe: Bild skalieren, schärfen, benennen – und eventuell nochmal ’ne größere Version davon mit dem Selben Spielchen. Jaja, ich könnts auch WordPress machen lassen. Unterwegs mit UMTS kommt es aber eher nicht so gut, 10 MP-Bilder hochzuladen. Der Traffic kostet, mein Volumen beträgt gerade mal 150 MB pro Monat – ich bin halt geizig.

Wenn man eh immer das Selbe macht, könnte das doch auch der Rechner selber machen, oder? Zeit für ein Bash-Script! Das hab ich schon vor fast drei Jahren gedacht und mir einen kleinen Helfer gebastelt und getauft: IMG-Helpr. Das Ding war hemdsärmelig zusammengebappt:

  • Imagemagicks display zeigt eine Vorschau des Bildes,
  • Zenity zeigt grafische Dialoge für die Frage nach dem Namen, der eventuellen Drehung und ob man ne große Version zum Verlinken will und
  • Imagemagicks convert skaliert das Bildchen dann.

Sieht dann so aus (habich montiert, die Dialoge kommen natürlich nacheinander).Sowas zu schreiben ist recht unkompliziert, wenn man das auf dem eigenen Rechner benutzt. Will man so ein Script aber auf Fremde loslassen, muss man um alles herumprogrammieren. Man glaubt nicht, was Anwender sich an Dreistigkeiten ausdenken können! Dateinamen mit Leerzeichen zum Beispiel. Deswegen hab ich das Teil heute mal etwas zivilisiert und forsch Version 0.1 behauptet. Jetzt erstmal viel Spaß mit meinem kleinen Blogger-Helferlein IMG-Helpr. Über so ein paar Detaillösungen schwatze ich später mal in diesem Blog.

(swg)

QR-Codes aus Bildern lesen und den Text anzeigen.

Unter Linux gibt es nicht so viele Möglichkeiten, QR-Codes auszuwerten. Eine Möglichkeit auf der Kommandozeile ist ZBar, leider hat es keine GUI. Was ich will soll per Rechtsklick aus meinem Dateimanager funktionieren und mir anschließend in einem Dialog anzeigen, ob und was zbar gefunden hat.

Endlich mal wieder ein Bash-Script… Ein paar Dinge sind Voraussetzung: Als erstes braucht es ZBar zum Auslesen der QR-Codes. Mit Zenity kann man grafische Dialoge in einem Bash-Script anzeigen. Mehr ist nicht nötig.

Es kann dem Script als Parameter ein oder mehrere Bilder übergeben werden. Eine while-Schleife liest & entfernt die Übergabe-Parameter solange, bis keine mehr da sind. Sollte der ermittelte Code mit http:// beginnen, wird er als Webadresse interpretiert: Der dann folgende Dialog bietet an, ihn im Webbrowser zu öffnen.
#!/bin/bash
# swg, 25.8.2013
#
# Verwendet ZBarImg zum Lesen von QR-Codes aus Bildern.
# der ermittelte Text wird in einem Zenity-Dialog angezeigt, mit einer passenden
# Option zur Verwendung (Webadresse-> im Standard-Browser öffnen
#
# erwartet als Parameter wenigstens eine Bilddatei!
#
if [ ! $# -gt 0 ]; then
echo „Usage: zbarimggtk.sh IMG1.jpg [img2.jpg …]“;
exit;
fi;
while [ $# -gt 0 ] # Solange Parameter da sind…
do
IMG=$1;
if [[ -f $IMG ]]; then # ist der Parameter eine reguläre Datei?
CODE=$(zbarimg -Dq $IMG | sed -e „s/QR-Code://“); # vom zbarimg-Rückgabewert
# „QR-Code:“ vorn abschneiden
if [[ -z $CODE ]]; then
zenity –error –text „Kein QR-Code im Bild $IMG gefunden!“ &
else
if [ $(echo „$CODE“ | grep „http://“) ]; then # wenn Code mit „http://“ beginnt,
# ist es eine Webadresse
zenity –forms –title=“Webdresse in $IMG gefunden“ \
–separator=“,“ \
–text=“Webadresse $CODE öffnen?“;
case $? in
0)
x-www-browser $CODE; # Webadresse im X-Standard-Browser öffnen
;;
1)
# User-Cancel!
;;
-1)
zenity –error –text=“Ein unerwarteter Fehler ist aufgetreten.“;
;;
esac
else # bei einfachem Text nur einen Info-Dialog anzeigen
# (Text ist markier- und kopierbar)
zenity –info –title=“Text gefunden:“ –text=“$CODE“ &
fi;
fi;
else
zenity –error –text=“Bild $IMG nicht gefunden!“ &
fi;
shift; # Vordersten Übergabe-Parameter des Scripts löschen
done

Ich verwende es im Rox-Filer und in Geeqie jeweils im Kontextmenü – ein Rechtsklick aufs Bild und das Script als ausführendes Programm gewählt und ich weiß, was mir der fotografierte QR-Code sagen will…

Hier noch das fertige Script:
Symbol Shellscript zbarimggtk.sh

(swg)

PHP Code Snippets Powered By : XYZScripts.com