Archiv der Kategorie: Linux

Alles rund um die Pinguine – auf dem Desktop und dem Server

wbar

wbar sieht nicht schlecht aus, braucht kaum Ressourcen, ist stabil und läuft auch ohne aktivierte Desktop-Effekte. Sie hat allerdings den Nachteil, dass es keine Option gibt, dafür zu sorgen, dass diese immer über den geöffneten Fenstern liegt und eignet sich deswegen nicht wirklich für Monitore mit geringer Auflösung.

sudo apt-get install wbar

Dann im eigenen Homeverzeichnis eine .wbar Datei anlegen – z.B. mit dem folgenden Inhalt:

i: /usr/share/wbar/iconpack/wbar.osx/osxbarback.png
c: wbar -bpress -above-desk -pos center -zoomf 1.3 -isize 72 -idist 4 -jumpf 1 -nanim 3 -balfa 25
t: /usr/share/fonts/truetype/Droid-Sans/DroidSans.ttf/12

i: /usr/share/icons/Faenza/apps/48/ooo-template.png
c: ooffice
t: OpenOffice

i: /usr/share/icons/Faenza/apps/48/gimp.png
c: gimp
t: GIMP

i: /usr/share/icons/Faenza/places/48/emptytrash.png
c: gnome-open trash:///
t: Trashcan

Jetzt kann wbar testweise gestartet werden:

wbar -pos bottom -above-desk

Weitere Optionen zeigt ein

wbar -help

Das Neueinlesen einer im Betrieb veränderten .wbar Datei erfolgt durch Rechtsklick auf die wbar.

Der erste Block oben definiert den von der wbar zu nutzenden Hintergrund sowie die Schriftart und Schriftgröße beim mouse-over. Es folgen die immer gleichen Blöcke für die Programmstarter: i steht für den Pfad zum Icon, c für das auszuführende Kommando und t für den anzuzeigenden Text beim mouse-over.

Gefällt Position und Inhalt der wbar, dann kann diese beim Einloggen automatisch gestartet werden durch Hinzufügen zu /System /Einstellungen /Startprogramme.

keybindings II

Für den manuellen Weg und für eine allgemeine Beschreibung siehe diesen Beitrag.

Im Alltag taugt für eine Synchronisation von Tastenkombinationen mal wieder rsync. Um die Tastenkombinationen vom Homeserver auf den Laptop zu bekommen, das Serververzeichnis (z.B. mit Hilfe von NFS oder Samba) am Laptop einhängen und dann auf dem Laptop das folgende, selbstverständlich an die eigene Umgebung angepasste, Skript laufen lassen:

#!/bin/bash
# Standardkeybindings
rsync -r -t -v –progress –delete /home/user/eingehaengtesserververzeichnis/.gconf/desktop/gnome/keybindings/ /home/user/.gconf/desktop/gnome/keybindings/ ;
# Zusatzkeybindings
rsync -r -t -v –progress –delete /home/user/eingehaengtesserverzeichnis/.gconf/apps/gnome_settings_daemon/keybindings/ /home/user/.gconf/apps/gnome_settings_daemon/keybindings/ ;

Ausloggen – Einloggen. Die Tastenkombinationen des Laptops entsprechen nun denen vom Homeserver.

Serienbrief in OOo

Für einen Serienbrief mit OpenOffice den Assistenten von OOo zu bemühen, macht mehr Stress:

Vorbereitung: In einem OOo Calc Sheet die Tabelle mit den Namen, Vornamen und sonstigen Feldern anlegen und dieses speichern.

In OOo Writer den gewünschten Text verfassen, der nur noch um die entsprechenden Einträge aus dem Calc Sheet ergänzt werden muss. Beachte: Nicht die Funktionen für Serienbriefe in OOo-Writer nutzen – wir gehen hier einfachere Wege.

In OOo Writer die Taste [F4] drücken, um die möglichen Datenquellen angezeigt zu bekommen (alternativ über das Menü /Ansicht /Datenquellen).

Hier auf die Taste [Serienbriefbedingungen] klicken.

Im aufpoppenden Fenster auf den Schalter [Datenquelle zuweisen] klicken.

Durch einen Klick auf [Durchsuchen] öffnet sich der Dateimanager.

Im Dateimanager das Tabellendokument auswählen, das die Namen etc. enthält. [Öffnen] anklicken.

Das Fenster für den Datenbankaustausch wieder [Schließen].

Die Überschriften (nicht die Inhalte!) mit der Maus in das OOo Writer Dokument ziehen. Der entsprechende Feldname wird dann dort eingesetzt.

Ein [Strg] [P] oder über das Menü /Datei /Drucken löst die Rückfrage von OOo aus, ob man einen Serienbrief drucken möchte. [Ja] – das wollen wir.

Im Druckdialog dann die gewünschten Einstellungen vornehmen.

Ich wähle diese meist so, dass die Ausgabe mir einzelne PDFs liefert, wobei das Feld <Name> den Dateinamen ergibt.

Evolution Müll leeren

Hier hatte ich es ja schon einmal davon, dass sich der Mülleimer von Evolution nicht leeren ließ. Ein Teil der Lösung war,  ganz prinzipiell keine 4GB an Mails mehr allein Evolution anzuvertrauen, sondern einen lokalen IMAP Server als Speicher für die Mail-Altbestände zu nutzen. Die Anleitung hierzu schrieb ich hier.

Heute – knapp 250MB an Mails später – hatte ich schon wieder das Problem, dass Evolution den Mülleimer nicht putzen wollte … dafür hab ich aber nun eine Schnelllösung in den Foren von Ubuntuusers gefunden:

Evolution beenden. Dann im Ordner ~/.evolution/mail/local die Datei folders.db erst einmal auf den Desktop verschieben (man weiß ja nie – gleich löschen könnte heikel sein). Evolution wieder starten und der Mülleimer sollte sich leeren lassen.

rsync über ssh mit Hop

Einer meiner Laptops steht in der Schule – also hinter einer Firewall und nur über seine schulinterne IP erreichbar. Angenehm ist, wenn der Datenbestand auf dieser Maschine dem Datenbestand auf meinem heimischen Arbeitsplatzrechner entspricht. Bisher trug ich den Schullaptop deswegen immer in den Ferien mit nach Hause, synchronisierte diesen im heimischen Netz und nahm diesen dann am ersten Schultag wieder mit zum Arbeitsplatz. Der Datenbestand hinkte demnach etwas hinterher.

Für eine Erstsynchronisation ist dieses Vorgehen immer noch ratsam. Aber jetzt aktualisiere ich öfter – mit Hilfe von rsync über ssh und einem Hop über einen anderen Rechner im Schulnetz, der – so zu sagen – „in der Mitte“ steht, von Außen erreichbar ist und immer am Netz hängt. Ich nenne diese Maschine hier „rechnermitte“.

Die Maschine rechnermitte ist nicht über den Standard SSH Port 22, sondern (sagen wir mal) über Port 2244 zu erreichen. Der SSH Server auf dem Schullaptop jedoch hört auf Port 22.

Hinweis: Damit keiner Blödsinn mit meinem Schullaptop macht, ist der Login über SSH nur für einen bestimmten User (hier: schullaptopnutzer) erlaubt und außerdem hab ich auf diesem als zusätzliche Hürde fail2ban installiert.

Zuerst wird ein SSH-Tunnel zum Schullaptop geöffnet, und zwar so, dass dessen Port 22 über rechnermitte an den Port 2223 am Heimarbeitsplatz (localhost) gebunden wird:

ssh -L 2223:interne_ip_schullaptop:22 user_mitte@rechnermitte.schuldomain.de -p 2244

Der Aufruf verlangt nach dem Passwort für user_mitte auf rechnermitte.

Steht diese Verbindung, kann ich meinen Schullaptop vom heimischen Rechner aus schon wie folgt über SSH erreichen:

ssh schullaptopnutzer@localhost -p 2223

Es folgt der Aufruf von rsync auf dem heimischen Rechner, mit dem Ziel, die zu Hause geänderten Daten auf den Schulrechner zu übertragen (umgekehrt geht das auch – aber das ist nicht Teil dieser Beschreibung):

rsync -r -t -p -x -v –progress –delete -z /home/heimrechnernutzer/Dokumente/Schule/ –rsh=’ssh -p2223′ schullaptopnutzer@localhost:/home/schullaptopnutzer/Dokumente/schule

Selbstverständlich dauert eine derartige Synchronisation über das Internet wesentlich länger – ich hab hier nur „Bauern-DSL“ und entsprechend niedrige Upload-Raten. Aber es klappt trotz aller Einschränkungen erstaunlich flott – die Zeit für das Abendessen reicht fast immer.

Nach einer erfolgreichen Synchronisation kann ich den Schullaptop dann von zu Hause aus herunterfahren.

Vereinfachend für mich ist, dass ich auf dem Schullaptop nur selten viele Dateien überarbeite: Die Maschine dient im Wesentlichen als Präsentationsrechner. Wenn doch umfangreichere Änderungen vorgenommen werden, dann schick ich mir diese meist per Mail oder werf sie nach Dropbox, so dass ich extrem selten einen rsync vom Laptop in Richtung Heimrechner benötige. Sollte dies sich ändern, dann käme evtl. noch unison ins Spiel und würde weitere Vereinfachungen ermöglichen: http://wiki.ubuntuusers.de/Unison

Eine gute Sammlung verschiedener Methoden für rsync über ssh liefert die folgenden Website inklusive Sicherheitshinweise: http://samba.anu.edu.au/rsync/firewall.html

Anaglyphenbilder

3D-Fotos kommen gerade voll in Mode – und da Mario an einer Anleitung für die Erstellung von 3D Bildern in Gimp sitzt, musste ich auch mal kurz probieren und dann natürlich auch dazu schreiben:

Zuerst das folgende Skript http://registry.gimp.org/node/6527 herunter laden und im Ordner

~/.gimp-2.6/scripts

abspeichern.

Da ich keinen Stativ-Schlitten habe und auch nicht lang ein Stativ aufbauen wollte, schoss ich meine beiden Bilder aus der Hand und versuchte – so gut es eben ging – hierbei einen horizontalen Abstand von rund 6 cm zwischen den beiden Bildern einzuhalten.

Nachtrag: Pearl hat einen Stereoschlitten für unter 25 € im Angebot. Aber die Dinger gibt es bei Ebay auch schon ab 3,50 € ohne Versandkosten.

Links

Rechts

Dabei hab ich sicherlich ziemlich viel gewackelt und das beeinflusst das Ergebnis natürlich massiv. Aber es geht ja ums Prinzip.

Dann das rechte Bild im Gimp öffnen – das wird der Hintergrund. Das linke Bild in das offene Bildfenster ziehen – das wird dann der Vordergrund.

Ein Klick auf /Stereo /Make Anaglyph startet das Skript. Man könnte dann je nach Brille noch die Farben einstellen, da ich aber keine Brille hier habe war mir auch das Wurscht. Also: Klick auf [OK]. Fertig ist das Bild.

Dieses dann noch unter Zusammenführung der beiden Ebenen exportieren und unter einem neuen Dateinamen abspeichern.

keybindings

Unter /System /Einstellungen /Tastenkombinationen ist das Programm gnome-keybinding-properties abgelegt und erlaubt die komfortable Konfiguration vieler (nicht: aller) Schnellzugriffstasten (vulgo: Tastaturkürzel). Leider ist eine derartige Konfiguration pro Rechner jeweils erneut durchzuführen. Bei einem entsprechend großen Rechnerpark dauert es demnach eine Weile, bis alle Maschinen sich gleich verhalten.

Die Konfiguration lässt sich jedoch einfach von einem Rechner auf einen anderen übertragen – zumindest bei den Einstellungsdateien für Programmaufrufe, die man zusätzlich angelegt hat. Die liegen hier:

~/.gconf/desktop/gnome/keybindings

Auf die schon fertig angelegten Einträge kann man z.B. mit Hilfe von gconf-editor zugreifen. Hier habe ich unter

/apps/gnome_settings_daemon/keybindings

entsprechende Einträge gefunden. Weiter liegen diese Einträge auch unter

~/.gconf/apps/gnome_settings_daemon/keybindings

Das Vorgehen ist nun relativ einfach: Man kopiert sich die entsprechenden Verzeichnisse bzw. Verzeichniseinträge von der fertig konfigurierten Maschine auf den neu einzurichtenden Rechner.

Einmal ausloggen – wieder einloggen. Fertig.

Umbenennen Versionitis

Hier habe ich ein Skript veröffentlicht, das mir am LFB dazu dient, mehrere Verzeichnisse und die darin enthaltenen Dateien von Leerzeichen, Großbuchstaben, Umlauten und Ligaturen rekursiv zu reinigen.

Inzwischen arbeitet auch meine Linux AG daran und wird hoffentlich aktualisierte Versionen hier im KvFG Wiki veröffentlichen. Meine aktuellste Version liegt schon da.

etherpad v 1.1

Das Update auf etherpad 1.1 auf dem Ubuntu 10.04 Server meiner Computer AG lief zwar reibungslos durch, aber etherpad bekam nach dem Update den Hintern nicht mehr hoch. Auch händische Startversuche scheiterten ohne jegliche Rückmeldung. Als Problem identifizierte ich auf diesem Server das Startskript in

/etc/init.d/etherpad

Hier steht als lokales Installationsverzeichnis

DAEMON_BASE=“/usr/local/etherpad“

Für Version 1.1 müssen aber entsprechende Anpassungen vorgenommen werden:

DAEMON_BASE=“/usr/share/etherpad“

Die Start- und Stop-Skripte

/etc/rc0.d/K95etherpad
/etc/rc1.d/K95etherpad
/etc/rc2.d/S05etherpad
/etc/rc3.d/S05etherpad
/etc/rc4.d/S05etherpad
/etc/rc5.d/S05etherpad
/etc/rc6.d/K95etherpad
/etc/rcS.d/K95etherpad

müssen dann nicht mehr weiter händisch angepasst werden, sondern übernehmen auf Grund der Verlinkung den Eintrag.

Weitere Punkte zum Update oder Skripte mit dem falschen Pfad sind mir bisher nicht aufgefallen – können aber durchaus noch zu finden sein. Ich freu mich jetzt mal, dass die alten Pads das Update überlebt haben und mein Server wieder rund läuft.

Umbenennen

Die wie immer üble Ausgangslage, wenn ich Materialienlieferungen für den LFB erhalte:

Auf der Suche nach einem ordentlichen Skript für das Umbenennen von Datei- und Verzeichnisnamen bin ich hier über die Arbeit von Andi Latte gestolpert, die ich nur unwesentlich für meine Bedürfnisse anpassen musste:


#!/bin/bash
# Ersetzt Zeichen im Dateinamen rekursiv
# Vorlage: http://www.linux-community.de/Community/Fragen/Bash-Rename-Skript
# Aufruf des Skriptes auf Korrektheit pruefen
if [ -z $1 ];then echo Verwendung: umbenennen "/PFAD" ; exit 0;fi
# Meldung ungueltige Kodierung bearbeiten
convmv -f iso-8859-15 -t utf8 -r "$1" --notest
#
# Skript Start
#
find "$1" -depth -name "*" | while read file ; do
directory=$(dirname "$file")
oldfilename=$(basename "$file")
# sed und tr als Mittel der Bearbeitung
# Befehle sind so aufgestellt, dass einzelne Aktionen
# leicht durch Loeschen zwischen den Pipes
# veraendert werden koennen
newfilename=$(echo "$oldfilename" | tr "'" "_" | tr '!@#+ ' '_____' | tr '[]{}' '()()()' | sed -e 's/[\`\´\"\]//g' | sed -e 's/\&/and/g' | sed -e 's/[àáâãäå]/ae/g;s/[ÀÁÂÃÄÅ]/Ae/g;s/[éëêè]/e/g;s/[ÈÉÊË€]/E/g;s/[ìíîï]/i/g;s/[ÌÍÎÏ¡]/I/g;s/[òóôõöø]/oe/g;s/[ÒÓÔÕÖ]/Oe/g;s/[ùúûü]/ue/g;s/[ÙÚÛÜ]/Ue/g;s/[ÿý?]/y/g;s/[ÝŸ]/Y/g;s/[æ]/ae/g;s/[Æ]/AE/g;s/[碩]/c/g;s/[Ç]/C/g;s/[ßš]/s/g;s/[$§Š]/S/g;s/[=¦#:~*¿·¸°¯\%";+^˜‰…‡†???•]/_/g;s/[²]/2/g;s/[³]/3/g' | sed -e 's/[^\(\)\.\/\_a-zA-Z0-9-]//g' | tr [:upper:] [:lower:])
# Katastrophenpotential einschraenken
if [ "$oldfilename" != "$newfilename" ]; then
# Umbenennen beginnen
mv -i "$directory/$oldfilename" "$directory/$newfilename"
# Benutzer informieren
echo ""$directory/$oldfilename" ---> "$directory/$newfilename""
#echo "$directory"
#echo "$oldfilename"
#echo "$newfilename"
#echo
fi
done
exit 0

Das nun erträgliche Ergebnis, das eine automatisierte Weiterverarbeitung bei der Umsetzung nach HTML erlaubt:

Da WordPress sicherlich aus dem Skript oben wieder einmal Wurstsalat macht, hier das Skript für den Download: umbenennen_v2.zip und zur Sicherheit auch noch mal bei pastebin.

Nachteil des Skriptes: Der Backslash wird nicht berücksichtigt. Außerdem wäre ein iconv -t ascii nicht schlecht, um die exotischen Zeichen mit zu erwischen, die nicht im Skript selbst auftauchen. Ein paar Dummheiten sind außerdem auch noch drin: Z.B. wird ? am Ende durch _ ersetzt, dabei ist es da schon lange ein y.

Das Grundgerüst steht aber.