.

VIM als Texte-Umkodierer

Wer zwischendurch mal vor dem Problem steht, eine Textdatei wg. falsch kodierter Umlaute nicht richtig lesen oder weiterbearbeiten zu können, dem sei vim empfohlen.

Möchte man seinen Text beispielsweise UTF-8-kodiert abspeichern, reicht da ein:
:w ++enc=utf-8


App-Empfehlung: WinWrangler

WinWrangler ist ein Tool, das per Hotkey ein kleines Problem der meisten Windowmanager elegant löst:

Der in der Regel unübersichtlich angeordnete Fensterwust wird per Tastendruck ordentlich sortiert dargestellt.

Nach dem Start mit “winwrangler -d” – oder “winwrangler -t” für die, die ein Icon im Benachrichtigungsfeld des Panels bevorzugen – lassen sich folgende Fensteranordnungen erzwingen:

[ctrl][super]1 – Das aktuelle Fenster wird so groß wie möglich dargestellt, ohne die anderen geöffneten Fenster zu verdecken

[ctrl][super]2 – Alle geöffneten Programmfenster werden nebeneinander dargestellt (”Tile”)

[ctrl][super]3 – dem aktuell aktiven Fenster wird zwei/drittel der Desktopfläche zugewiesen, die anderen Fenster teilen sich den Rest der freien Fläche.

WinWrangler

Besonders die dritte Option ist sehr praktisch, bleibt einem bei der aktuell genutzten Anwendung recht viel Platz zum Arbeiten, und erhöht dabei auch noch die Übersicht über alle geöffneten Fenster.

Wer dem Fensteraufteiler andere Shortcuts zuweisen möchte, kann dies über die Datei ~/.config/hotkey/winwrangler.hotkeys tun.

WinWrangler arbeitet auch im Zweischirmbetrieb ganz gut, ordnet die Fenster aber nicht wirklich optimal an. So bekommt in der Zwei/Drittel-Ansicht das fokussierte Fenster zwar einen kompletten Bildschirm als Arbeitsfläche zugewiesen, die anderen Programme teilen sich jedoch nur Zwei/Drittel des anderen Bildschirms unter sich auf.

Wer das Programm auf seiner Debian-Maschine übersetzen möchte, benötigt neben einigen Bibliotheken, die über das distributionseigene Paketmanagement nachinstalliert werden können, auch noch die “Gtk Hotkey Library“.

Für Ubuntu-Benutzer gibt es aber auch fertige Pakete bei launchpad.net:

$ echo deb http://ppa.launchpad.net/kamstrup/ppa/ubuntu jaunty main >/etc/apt/sources.list.d/winwrangler.list
$ sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys BDD11F68EE2196C9
$ sudo aptitude update
$ sudo aptitude install winwrangler


Gloobus Preview und ein zurechtgestutzter Dateimanager

Vor ein paar Tagen auf aptgetupdate.de gesehen, hat mich Gloobus Preview schon gereizt.

Das Programm ist ein Pendant zu Quicklook, der wirklich gut gemachten Datei-Vorschau von Mac OS.

Noch lange nicht fertig zwar, aber durchaus schon einsetzbar und sogar auch inkl. einer Coverflow-Funktion:

Einige schimpfen zwar, dass Gloobus nichts anderes sei, als das billige Remake einer geilen Funktion eines anderen Betriebssystems – aber ich denke: warum soll man gute Sachen nicht übernehmen? Das passiert tagtäglich – und nicht selten halten auch unter Linux entwickelte Funktionen als Vorlage für andere Betriebssysteme her. Ad hoc fällt mir da Dexpot ein, das unter Windows mehrere Desktops zur Verfügung stellt.

Doch nun zur Installation:
Es gibt von Gloobus fertige Pakete für Ubuntu 9.04 Jaunty Jackalope – Oliver beschreibt in seinem oben angesprochenen Artikel die Installation, hier fehlt aber die Coverflow-Funktion.

Außerdem bin ich im Zuge meiner Recherchen zu Gloobus auch auf “Nautilus, Simplified” gestoßen, einem Nautilus, dessen Menüs auf das Wesentliche zurechtgestutzt sind. Und da ich, wenn ich Nautilus schon einmal benutze, das Hauptmenü sowieso nicht benötige und auf eher minimalistische GUIs stehe, sollte das auch gleich mit auf mein System.

Deshalb sahen meine Installations-Schritte folgendermaßen aus:

Zunächst die Installation des Gloobus-Preview-Paketes aus dem PPA-Archiv:

$ su -
# echo deb http://ppa.launchpad.net/tualatrix/gloobus/ubuntu jaunty main >> /etc/apt/sources.list.d/gloobus.list
# apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 0624A220
# apt-get update && apt-get install gloobus-preview
# apt-get upgrade
# exit

Damit wäre Gloobus-Preview selbst schon einmal installiert.

Jetzt zum Coverflow:

$ wget http://www.deviantart.com/download/123645797/Gloobus_0_4_by_JordiHP.gz
$ gunzip Gloobus_0_4_by_JordiHP.gz; tar xvf Gloobus-0.4.tar
$ cd Gloobus-0.4-deb/i386
$ sudo dpkg -i gloobus_0.4_i386.deb

Um Coverflow aufzurufen, gibt es leider noch nicht die Möglichkeit, dies wie bei der eigentlichen Vorschau auch über die Space-Taste zu tun.

Ich habe mir daher eine Nautilus-Aktion erstellt (Menü System/Einstellungen/Nautilus-Aktionen):
Einfach eine Aktion “Cover Flow” erstellen, als Pfad “/usr/bin/gloobus” und als Parameter “%M/” angeben. Unter dem Aktenreiter “Bedingungen” sollte die Aktion auf Ordner beschränkt werden.

Sollte der Menüpunkt zu den Nautilus-Aktionen fehlen, muss das Debian-Paket “nautilus-actions” nachinstalliert werden.

Schlussendlich habe ich meinen Nautilus noch um den Menüzeilen-Ballast erleichtert:

Dazu benötigt es einen Patch für Nautilus, den “ammonkey im Ubuntu-Forum gepostet hat. Diesen habe ich nach /tmp heruntergeladen.

$ su -
# mkdir tmp; cd tmp
# tar xvf /tmp/newbar_mouse_forward_back_gloobus.patch.tar
# apt-get build-dep nautilus
# apt-get source nautilus
# cp newbar_mouse_forward_back_gloobus.patch nautilus-2.26.2/debian/patches/99-newbar_mouse_forward_back_gloobus.patch
# cd nautilus-2.26.2
# fakeroot dpkg-buildpackage
# cd ..
# dpkg -i nautilus_2.26.2-0ubuntu3_i386.deb nautilus-data_2.26.2-0ubuntu3_all.deb libnautilus-extension1_2.26.2-0ubuntu3_i386.deb

Fehlt eigentlich nur noch die wirkliche Nautilus-Integration von Gloobus. Aber an der wird auch schon gewerkelt.

Es sollte natürlich erwähnt sein, dass es keinerlei Garantie gibt, dass ein so zusammengebasteltes Nautilus auch stabil läuft, vom Einsatz des Paketes auf Produktivmaschinen rate ich also ab.

Außerdem passt sich diese Installationsweise nicht wirklich in das Paketmanagement ein, ein Nautilus-Update schmeißt also die eigenkreierten Pakete aus dem System, die Patcherei ginge also von vorne los. Und auf “Hold” würde ich die Nautilus-Pakete auch nicht setzen, dafür sind sie zu sehr mit der Gnome-Umgebung verzahnt.

Aber hoffentlich entwickelt sich Gloobus einmal von einer “netten Spielerei” zu einem produktivitätsfördernden Feature und wird genauso gut in Gnome integriert, wie Quicklook unter Mac OS.


Bash – Befehlshistorie speichern

Die Bash bringt mit “history” ja eigentlich schon ein Protokoll der zuletzt eingegebenen Befehle mit. Praktisch auch, dass man in dieser Historie mit “[strg]+r” Kommandos, die man bereits abgesetzt hat, über die Eingabe einiger Zeichen aus der Befehlskette noch einmal aufrufen kann. Auch das “!”-Kommando in seinen verschiedenen Spielarten kann ganz nützlich sein (siehe “man history”).

Einzig ein “Langzeit-Protokoll” ist über diese Funktion nicht möglich, zu alte Befehle werden aus der Datei ~/.history nach einiger Zeit rausgeschmissen.

Und genau so ein Langzeitprotokoll macht gerade bei aufwändigen Programm- oder Dienstinstallationen und -Konfigurationen durchaus Sinn, wenn man im Nachhinein noch einmal den Installationsverlauf nachvollziehen möchte. Dann fehlen nämlich gerade die Teile des Verlaufes, die man sich später noch einmal ansehen möchte.

Zur Lösung dieses “Problems” gibt es beispielsweise folgende Ansätze.

Richtig gut ist “script”. Hier werden nicht nur die eingegebenen Befehle protokolliert, auch die Rückgaben der Kommandos werden in die Protokolldatei geschrieben. Das Protokoll entspricht somit genau der Ausgabe, die man in seiner Sitzung auf dem Bildschirm hatte.

Interessieren einen jedoch nur die eingegebenen Befehle selbst, hilft die Umgebungsvariable “PROMPT_COMMAND”:
export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND ; }"'echo $$ $USER "$(history 1)" >> ~/installationsverlauf'

Links: Bash eternal history


X11 – Multimediatasten bei gesperrtem Bildschirm …

wären eine feine Sache.

Mal eben den Rhythmbox pausieren oder die Lautstärke runterregeln ohne den Arbeitsplatz vorher mühsam entsperren zu müssen. Da ginge es gleich viel entspannter an’s Telefon.

Eigentlich ein schönes “Nice to have” für die Aktion “one hundred papercuts“, oder?

Aber ob der Wunsch da schon irgendwo aufgenommen wurde, kann ich nicht sagen, die Seite scheint gerade down zu sein – ich hoffe, die Aktion selbst nicht auch.

Vielleicht finde ich ja noch eine Lösung. Das gibt’s dann auf jeden Fall hier zu lesen.


App-Empfehlung: Vimperator

Eigentlich ist Vimperator keine eigene Applikation, sondern “nur” ein Firefox-Plugin.

Aber das Addon verändert (resp. ergänzt) die Bedienung des Browsers so grundlegend, dass ich Vimperator schon gerne als “App-Empfehlung” vorstellen möchte.

Das Plugin erweitert Firefox um das typische vi-Gefühl. Es gibt den Command- und Normal-Modus, Kurzbefehle um neue Seiten zu öffnen, auf Seiten zu suchen und zu navigieren und alles das, was man sich als vi-User nur wünscht.

Auffälligste Veränderung nach der Installation der Erweiterung ist, dass die Kopfzeile und das Menü verschwunden sind.

vimperator

Stattdessen gibt’s die vim-typische Statuszeile, und die Kommando-Zeile, über die im Command-Mode Befehle abgesetzt werden können.

“t www.google.de” (oder als Kommando “:tabopen www.google.de” beispielsweise öffnet die Suchmaschine in einem neuen Tab.

Nach ausgelöster Suche kann man mit “f” eine Kürzelliste auf die Links anzeigen lassen (siehe Screenshot). Möchte man dann im Beispiel zum zweiten Suchergebnis springen, muss man einfach “39″ eintippen.

“gt” springt zum nächsten Tabulator, “gT” zum Tabulator davor, ein “G” bringt einen auf der aktuellen Seite an das Seitenende, “gg” wieder nach oben.

In der Historie geht es mit “CTRL-o” zurück und mit “CTRL-i” vorwärts, ss gibt eine “Bookmark-Liste” (”:bmarks”), die aktuelle Seite fügt man mit “:bmark” den Favoriten hinzu, und, und, und …

Ach, ich könnte jetzt stundenlang schwärmen. Aber besser, Du installierst die das Plugin und liest Dich durch die per “F1″ verfügbare Hilfe durch das Quickstart-Tutorial.


Tasklist-Plugin für vim

Mein Liferea machte mich vor ein paar Tagen auf ein sehr interessantes VIM-Plugin aufmerksam:

Tasklist öffnet über “\t” über dem aktuell geöffneten Text einen Splitscreen und zeigt dort kumuliert alle Zeilen an, die die Schlüsselwörter “TODO”, “FIXME” oder “XXX” enthalten. In dieser Liste kann man mit den Cursortasten (resp. “j” und “k”) navigieren.

Drückt man vor einem Eintrag die Enter-Taste, schließt sich der Splitscreen, und der Cursor wird an die gewählte Textstelle gesetzt.

Das kommt meiner Arbeitsweise sehr entgegen, schreibe ich beim Coden eigentlich an jede Stelle, die noch einer Überarbeitung bedarf, einen Kommentar, der mit “debug stpe” beginnt. Um diesen String in das Plugin mit aufzunehmen, kann einfach die Tokenliste “g:tlTokenList” in tasklist.vim entsprechend erweitert werden.

Um das Plugin zu installieren, reicht es, die Datei tasklist.vim nach ~/.vim/plugin/ zu kopieren.


Xen Server 5.5 – Virtuelle Maschinen über Snapshots sichern

Letzte Woche haben wir unsere Xen-Server-Farm auf die aktuelle Version 5.5 hochgezogen. Herausragendste Merkmale des aktuellen Virtualisierers sind imho v.a. das Workload-Loadbalancing, die “native” Unterstützung unseres SAN sowie die Möglichkeit, Snapshots von laufenden virtuellen Maschinen anzulegen.

So ist es endlich möglich, automatisiert Backups der Server anzulegen. Ich habe für unsere Umgebung ein kleines Sicherungsscript erstellt, das für einen Server einen Snapshot anlegt, aus diesem eine virtuelle Maschine generiert, und diese in einen NFS-Share wegsichert:

#!/bin/bash

### Backup einer virtuellen Maschine in NFS-Share
# $1 – Name der zu sichernden Maschine
#
# (w) 07/2009 Stefan Peters
#

PATH=/opt/xensource/bin:/sbin:/bin:/usr/bin:$PATH

# Variablen definieren
BACKUP_SHARE=server:/var/nfsshare
BACKUP_DIR=/media/backup

DATUM=$(date +%F)

logger -s “Backup VM ${1} – Backup gestartet”

# Existiert das Zielverzeichnis für den NFS-Mountpoint?
if [ ! -d ${BACKUP_DIR} ]; then
mkdir -p ${BACKUP_DIR}
fi

# pruefen, ob die NFS-Freigabe fuer die Backups gemountet ist und ggf. einhaengen
mount |grep ${BACKUP_DIR} >/dev/null
if [ "$?" -ne "0" ]; then
mount.nfs $BACKUP_SHARE $BACKUP_DIR 2>/dev/null
if [ "$?" -gt "0" ]; then
logger -s “Backup VM ${1} – Backup-Share konnte nicht gemounted werden”
exit 1
fi
fi

# pruefen, ob die zu sichernde VM existiert
xe vm-list |egrep “RW\): ${1}$” >/dev/null
if [ "$?" -ne "0" ]; then
logger -s “Backup VM ${1} – VM existiert nicht”
exit 1
fi

# Snapshot erstellen
strSnapshot=$(xe vm-snapshot vm=${1} new-name-label=${DATUM}_${1})

# Snapshot zu VM wandeln
xe template-param-set is-a-template=false uuid=${strSnapshot}

# Snapshot sichern
BACKUP_VM=${BACKUP_DIR}/${1}.xva
BACKUP_VM_OLD=${BACKUP_VM}_TMP

if [ -f "${BACKUP_VM}" ]; then
mv “${BACKUP_VM}” “${BACKUP_VM_OLD}”
fi

xe vm-export vm=${strSnapshot} filename=”${BACKUP_VM}”
if [ "$?" -ne "0" ]; then
logger -s “Backup VM ${1} – Backup fehlgeschlagen”
else
rm “${BACKUP_VM_OLD}”
logger -s “Backup VM ${1} – Backup erfolgreich abgeschlossen”
fi

# Snapshot loeschen
xe vm-uninstall uuid=${strSnapshot} force=true

exit 0

Dem Script wird als Parameter der Name der zu sichernden Maschine mitgegeben.

Wenn bereits eine Sicherung der betreffenden Maschine existiert, so wird diese zunächst umbenannt und erst nach dem erfolgreichem Abschluss der Serversicherung gelöscht.


Firefox 3.5 unter Ubuntu 9.04

Firefox 3.5 - Shiretoko

Letzte Woche wurde ich auf Ubitquiti aufmerksam. Die Firefox-Erweiterung ergänzt den Browser um eine Art Kommandozeile, über die man auf bequeme Art eine Mail verschicken, das Wetter für einen beliebigen Ort ermitteln, Wikipedia- oder andere Online-Lexika befragen kann, u.v.m. und bildet vom Konzept her so eine Art “Online-Gnome-Do”.

Das wollte ich als sehr tastaturlastiger User natürlich gerne ausprobieren.

Als Voraussetzung für Ubiquiti 0.5 galt jedoch der aktuelle Firefox in der Version 3.5, der in Jaunty jedoch nicht enthalten ist.

Deswegen in aller Kürze der Weg, um den aktuellen Mozilla-Browser in Ubuntu zu integrieren:

Zunächst die Launchpad-Paketquellen, die bei mir als /etc/apt/sources.list.d/firefox35.list abgespeichert wurden:
deb http://ppa.launchpad.net/ubuntu-mozilla-daily/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/ubuntu-mozilla-daily/ppa/ubuntu jaunty main

Nachdem man diese mit:
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 247510BE
$ sudo aptitude update

in sein Paketmanagement aufgenommen hat, reicht ein simples:
$ sudo aptitude install firefox-3.5
und der Browser wird neben dem bestehenden Firefox 3.0 installiert.

Ein:
$ sudo ln -sf /usr/lib/firefox-3.5.1pre/firefox-3.5 /usr/bin/firefox
macht die aktuelle Version zum “Standard”.

Die 3.5er werkelt wirklich gut, in einigen Belangen scheint sie spürbar schneller zu arbeiten, als die Vorgängerversionen.

Einziger Wehrmutstropfen bisher:
Die Erweiterungen “Tab buttons”, “Quickproxy” und die “Ubuntu Firefox Modifications” sind nicht zum neuen Webbrowser kompatibel.

Für die “Tab buttons” gibt’s mittlerweile allerdings eine in den Mozilla-Browser integrierte Funktion “Undo Close Tab” und Quickproxy habe ich durch “FoxyProxy” ersetzt.

Und Ubiquity? Mhh – da muss ich mich wohl erst noch dran gewöhnen. Ich werde hier auf jeden Fall noch darüber berichten, ob ich das Addon bei mir produktivitätssteigernd einsetzen kann.


sudo-write mit vim

Mir passiert es immer mal wieder, dass ich auf meinen Systemen als nicht privilegierter User mit dem vi Dateien zum Bearbeiten aufrufe, für die ich keine Schreibrechte besitze.

Das hieß bislang: geänderte Datei unter einem anderen Namen speichern und dann wieder mit root-Rechten an die richtige Stelle kopieren.

Das hat aber dank Christian nun ein Ende. Sein vim-Plugin sudoedit.vim erweitert den Editor um den Befehl “:SudoWrite”. Und nach Eingabe des root-Passwortes wird die Datei dann erfolgreich an ihren eigentlichen Heimatort zurückgeschrieben.

Das Plugin gibt es: hier zum Download.

Bei manchen Sachen weiß man erst, dass man sie braucht, wenn man sie dann hat…


Kalender
März 2010
M D M D F S S
1234567
891011121314
15161718192021
22232425262728
293031EC
Ereignisse
    • Keine Termine.
Du befindest Dich in der Kategorie: 'Linux'.
Kategorien
Archiv
Wichtiges!?

.