Das Jahr 2011 mit alten Rechnern in der Retrospektive

83 Millionen. Diese interessante Zahl veröffentliche vorgestern der IT-Branchenverband Bitkom und bezifferte damit die potentielle Anzahl von in deutschen Haushalten herumliegenden Althandys, wie heise.de berichtet. Grob geschätzt hat also jeder Deutsche irgendwo noch ein Mobiltelefon zu Hause herumliegen, dass er womöglich gar nicht mehr benutzt.
Für mich rief diese Zahl Erinnerungen an meine vor einiger Zeit veröffentlichten Ergebnisse zum Energieverbrauch meiner Computer wach. Wie viele ältere PCs, Laptops und Netbooks wird es wohl in Deutschland noch geben und wie viel Energie wurde in ihre Herstellung investiert, was wird verbraucht und vor allem was lässt sich mit all der Elektronik noch anstellen?
Ich gebe mich nicht der Illusion hin zu glauben, dass sich in naher Zukunft etwas an diesem IT-Trend ändern wird. Es ist wohl heute schon eher der Regelfall mehrere Handys, Smartphones, Tablets, Laptops und normale PCs gleichzeitig zu besitzen. Auf einen allgemeinen Willen, der Fortschritt und Nutzen sowie wirtschaftliche als auch ökologische Vernunft zusammenführt, müssen wir wohl noch eine Weile warten.
Bevor ich mich nun als Moralapostel aufspiele, der nicht wenige dieser IT-Goodies selbst besitzt, ist hier einfach mal ein Überblick über meinen Rechenpark und die Freie Software, die dort zum Einsatz kommt, was man damit noch machen kann und warum es sich lohnt an gebrauchter Hardware nicht nur festzuhalten, sondern sie einfach weiterhin wie einen neuen Rechner zu benutzen.

Core Duo

Wenn man einen klassischen Desktop-PC mit einem 2,8 GHz Dual-Core-Prozessor betreibt, stellt man schnell fest, dass es kaum eine Anwendung gibt, die man damit nicht zum Laufen bringen kann. Dieser PC gehört schon lange wieder zur Low-End Kategorie, aber ernsthaft, mir ist noch keine Applikation untergekommen, die hier drauf nicht funktionieren würde.
Anfang des letzten Jahres habe ich mich entschieden ein Multiboot-System aufzusetzen, wo heute noch Ubuntu, Debian Testing und Debian Sid parallel installiert sind. Die Vorteile überwiegen für mich eindeutig. Auf einer weiteren Partition teste ich gerne auch andere Distributionen oder benutze sie für meine Experimente zum Thema Softwareentwicklung.
Ich denke, ich habe damit eine Menge neue und gute Erfahrungen gemacht und das System erfüllt alle meine Erwartungen. Insbesondere Debian Testing hat mich überzeugt, weil es dieses Jahr bis auf meine Nvidia-Probleme zuverlässig und mit aktueller Software funktionierte. Trotz des für die Debianentwickler aufwändigen Wechsels von Gnome 2 zu Gnome 3 geriet Testing nie ins stottern. Für einen klassischen Arbeits- und Multimedia-PC hat sich Debian auf jeden Fall bewährt und die Vorurteile, dass es mit Debian viel schwieriger sei ein solches Setup einzurichten und zu pflegen, konnte ich für mich nicht bestätigen.
Auch ein leichtgewichtiges Spielesystem macht sich bezahlt, dass nicht nur eine gute Performance liefert, sondern auch eine praktische und gefahrlose Trennung zwischen wichtigen und optionalen Anwendungen ermöglicht.
Ubuntu habe ich letztes Jahr etwas vernachlässigt. Das liegt weniger daran, dass mir Gnome 3 gegenüber Unity besser gefällt, als dass ich bisher wenig Zeit für mein Projekt, Ubuntu als Videoschnittplatz zu benutzen, gefunden habe. Doch aufgeschoben ist nicht aufgehoben.

Dell Inspiron 4000

Seit 2008 benutze ich diesen mittlerweile 10 Jahre alten Laptop. Als Betriebssystem stand Debian Sid mit Openbox als Fenstermanager eindeutig im Fokus. Trotz des hohen Alters sorgen beide dafür, dass sich Anwendungen flüssig bedienen lassen. Bis zu diesem kleinen Missgeschick hat er mich auch oft unterwegs begleitet. Zur Zeit dient er als Couch-Laptop, wer sich unter dem Begriff etwas vorstellen kann. 🙂
Internetsurfen, Mails abrufen oder Feeds lesen lässt sich natürlich auch mit einem älteren Laptop erledigen. Wozu also immer den wesentlich energiehungrigeren Core Duo bemühen?
Sicherlich ist er auch weiterhin perfekt um als Testrechner für die brandneuste Entwicklung mit Debian zu dienen. Es macht einfach Spaß mit Sid zu arbeiten, auch wenn oder gerade deswegen, manchmal etwas nicht so funktioniert wie es sollte.
Als Zweitsystem dient mir Arch Linux, womit ich interessante neue Ideen kennenlerne und ausprobiere. Arch Linux gelingt es an manchen Stellen wie z.B. der Paketverwaltung noch etwas reaktionsfreudiger zu sein.
Ansonsten dürfen sowohl KolibriOS als auch der Plop Bootmanager auf Grund ihrer Vielseitigkeit und des schieren "WoW-Faktors" auf diesem Laptop nicht fehlen.
Bevor ich mit dieser Einteilung zufrieden war, habe ich noch verschiedene Distributionen mit dem Inspiron ausprobiert, darunter unter anderem Crunchbang und Linux Mint Debian.

IBM Thinkpad 600

Erst vor wenigen Monaten habe ich einen Thinkpad als mobilen Ersatz für den Inspiron 4000 erworben, den ich dann am liebsten neben MacBook Pro Besitzern aufbaue. :mrgreen:
Neben seinem Gastauftritt auf einem Weihnachtsmarkt als Jukebox, ist er vor allem mit einer Menge nützlicher Konsolenanwendungen bestückt, die von Debian Stable geliefert werden. Benötige ich eine grafische Oberfläche, komme ich mittlerweile mit dwm sehr gut zurecht, das zum einen ressourcensparend ist und sich zum anderen bequem über die Tastatur bedienen lässt.
Als Alternative hat sich das parallel installierte ConnochaetOS etabliert, dass durch eine gute Vorauswahl von leichtgewichtiger Software und den effizienten Unterbau von Arch Linux besticht. Mit Hilfe von Partimage tausche ich manchmal dieses Zweitsystem aus.
Auch Slitaz hat sich nicht schlecht geschlagen und beeindruckt vor allem durch seinen äußerst geringen Verbrauch an Festplattenspeicher und sehr effiziente Systemprogramme. KolibriOS und der Plop Bootmanager dürfen ebenfalls nicht fehlen.
Zusammengenommen vermisse ich nicht besonders viel mit dem Thinkpad, sieht man mal von der Fähigkeit ab h264 Videos ruckelfrei abspielen zu können. Hier muss die Pentium II CPU einfach passen.

Toshiba Portégé 3110CT

Toshiba ist mit diesem kompakten Subnotebook 1999 schon ein kleines Kunststück gelungen. Portabilität ist sicher seine große Stärke. Umso merkwürdiger scheint es da zu sein, dass ich dieses Geschenk zur Zeit hauptsächlich als kleinen Heimserver und Testplatz für Fenstermanager und Konsolenanwendungen benutze. Viel zu klagen hatte ich 2011 nicht, denn dank Debian Stable läuft der Rechner rund und stabil. Durch die geringe Größe nimmt der Laptop nicht besonders viel Platz weg und trotz des kleineren 64 MB Arbeitsspeichers, sind seine anderen Systemspezifikationen besser als die des Thinkpad. Das macht ihn leistungsfähig genug, um alle meine privaten Serveransprüche zu erfüllen.

Toshiba Satellite 220CS

Dieser 15 Jahre alte Laptop ist mit Sicherheit eine Herausforderung. Das Problem liegt weniger an der 1,4 GB großen Festplatte oder dem Pentium I Prozessor. Hätte dieser Toshiba etwas mehr RAM, ich könnte sehr wahrscheinlich von den gleichen Ergebnissen wie bei den anderen Computern erzählen. Die Herausforderung besteht tatsächlich darin ein geeignetes Betriebssystem zu finden, welches sowohl die Hardwareanforderungen von 16 MB RAM erfüllt und zum anderen zeitgemäße Software zur Verfügung stellt.
Den besten Kompromiss aus Geschwindigkeit, Bedienbarkeit und Softwareauswahl liefert hier zur Zeit Slitaz. Es ist eine der wenigen Distributionen, deren Installationsmedien selbst bei so wenig RAM noch funktionieren und die, typische Linuxkenntnisse vorausgesetzt, keine großen Hürden für den Anwender darstellen. Idealerweise bringt Slitaz mit tazpkg einen äußerst reaktionsfreudigen Paketmanager mit, mit dessen Hilfe das Installieren von Software ein Kinderspiel ist.
Zur Zeit eignen sich insbesondere Konsolenanwendungen für einen effizienten Einsatz und auch der Betrieb als Torrent-Sklave oder Jukebox ist möglich. Für die Zukunft sollte man sich auch Do-it-yourself-Distributionen wie CRUX merken, mit denen sich ein maßgeschneidertes und sehr effizientes System erstellen lässt, dass aber mehr Wissen des Anwenders voraussetzt.
Schon heute gibt KolibriOS mit einer grafischen Oberfläche ein gutes Bild auf dem Satellite 220CS ab, auch wenn sich damit nicht jedes Benutzerszenario abdecken lässt. Ebenfalls beeindruckend ist FreeDOS, das eine ideale Wahl für Rechner Anfang und Mitte der 90iger Jahre ist und mit dem sich mehr erreichen lässt als nur Spiele aus der damaligen Zeit zu spielen.

Fazit

Mein Blog gäbe es in dieser Form nicht, wenn es selbstverständlich wäre, ältere Hardware weiterhin mit Freier Software weiterzuverwenden. Menschen, die so etwas tun, etikettiert man gerne mit negativ konnotierten Begriffen wie nostalgisch, antiquiert und rückwärts gewandt. Ich kann nicht garantieren, dass die in diesem Blog beschriebenen Wege für jeden das Richtige sind, ich sage nur, sie funktionieren für mich.
Alle meine privaten Anwendungsfälle werden mit den alten Rechnern abgedeckt. Es lohnt schon allein aus informativen Gründen, sich näher mit der Thematik rund um Freie Software und ältere Rechner zu beschäftigen. Man muss nur offen für Neues sein und immer an die Vielzahl von Verwendungsmöglichkeiten zurückdenken.
Und irgendwann kommt der Zeitpunkt, wann sich das alles mit der aktuellen Hardware von heute wiederholen wird.

Zsh und vils: Leerzeichen von Dateinamen in Vim durch Unterstriche ersetzen

Ich habe vor einiger Zeit aus Neugier die Bash mit Zsh ersetzt und dabei auf die sehr nützliche Konfiguration von .zshrc und .zshrc.local von Grml zurückgegriffen. Seitdem habe ich auf jedem Rechner mit Ausnahme des Toshiba Satellite 220cs, dort läuft immer noch die ash von Busybox, die Shell ausgetauscht.
An dieser Stelle will ich nicht lange über Zsh schwärmen und davon erzählen, warum euer Leben sinnlos ist, solange ihr Zsh nicht selbst ausprobiert habt. (Es gibt genug Seiten, die das tun.) Nein, womöglich kommt man als normaler Mensch auch wunderbar mit der Bash aus, sowie das bei mir jahrelang der Fall war. Dennoch...der Austausch war einfach und ich konnte mir das Installieren der bash-completion und die farbenfrohe Veränderung der Bash dank Grml sparen.
Abgesehen davon, dass ich nun eine phänomenale Tab-Vervollständigung habe und nicht mehr nur eine großartige, dass meine Tippfehler praktischerweise korrigiert werden und ich mit Hilfe von vils problemlos Dateien und Ordner in Vim umbenennen kann, musste ich mich bisher auch kaum umstellen.
Mehr über vils lässt sich auf freshports.org erfahren, wo es zwei Links zum Herunterladen dieses kleinen Skripts gibt.

Das Skript sollte man mit chmod u+x ausführbar machen und am besten gleich nach /usr/local/bin kopieren, damit man es im $PATH benutzen kann.
Die Bedienung ist simpel. Man führt es im Verzeichnis aus, indem man die Dateien oder Unterverzeichnisse umbenennen möchte, wodurch alle Namen in Vim importiert werden und dann beliebig geändert werden können. Speichert man danach, werden alle Dateien und Ordner dementsprechend umbenannt.
Als Hinweise werden im Skript genannt:

  1. Man solle die Nummern vor jeder Zeile nicht entfernen.
  2. Wenn man eine Zeile löscht und abspeichert, wird die Datei nicht gelöscht.
  3. Man kann jedes Zeichen zum Ersetzen benutzen, nur muss man doppelt angeben.
  4. Es wird vor dem Überschreiben gleichlautender Dateinamen gefragt.
  5. Man kann den Dateinamen von zwei oder mehr Dateien nicht austauschen.
  6. Man kann gezielt einzelne oder mehrere Dateinamen in Vim laden, indem sie auf der Kommandozeile übergeben werden. (vils datei1 datei2 datei3)

Leerzeichen mit Unterstriche tauschen

Ich entferne im Visual-Block-Modus immer die vorangestellten Nummern und füge sie nach der Umbenennung wieder ein. STRG+v, dann d zum Löschen und später p zum Einfügen. Das ist ein Weg um zu verhindern, dass das erste Leerzeichen zwischen der Nummer und dem Dateinamen durch einen Unterstrich ersetzt wird. Danach genügt im Normalmodus:
:%s/ /_/g
Nachdem die Nummern wieder eingefügt und alles abgespeichert wurde, sind sämtliche Leerzeichen durch Unterstriche ersetzt worden.
Wenn man sich nun noch ein paar Reguläre Ausdrücke vorstellt, lässt sich so ziemlich jedes Umbenennungsproblem innerhalb von Vim mit Hilfe von vils lösen und man kann auf diese Lösung, die aber ebenso gut funktioniert, verzichten.

Debian Live: Installations-Images

Mir ist im Rückblick zu dem Beitrag Zurück zu den Wurzeln noch aufgefallen, dass es Debian neuen Benutzern noch einfacher machen könnte die richtige Wahl zu treffen. Vielleicht mit einer Grafik und den passenden Fragen, welche Geschmacksrichtung von Debian zu einem passt und man dann dadurch die Alternativen gezeigt bekommt.
Ich benutze mittlerweile ausschließlich nur noch die Multiarch-Netzinstallation für amd64 und i386, die auch besonders deutlich oben rechts auf www.debian.org verlinkt ist.

Ich persönlich finde mich auch sofort auf der Seite Debian auf CDs zurecht und auch die Übersicht zur Installation von Debian Squeeze, welche Installationsmedien es gibt, verstehe ich. Aber wenn ich dann mehrmals drauf schaue und versuche mich in jemanden zu versetzen, der nur an einem Betriebssystem für den Desktop, sprich für die I386- und AMD64-Architektur, interessiert ist, erscheinen mir die vielen Links eher verwirrend als förderlich zu sein.
Dabei besteht leicht die Möglichkeit, dass ein weiteres tolles Angebot untergeht.

Debian Live: Installations-Images

Wer sich noch unschlüssig ist, zu welcher Desktopumgebung er überhaupt tendiert, hat hier die Möglichkeit einen Überblick zu gewinnen. Praktischerweise lässt sich dann Dank des grafischen Debian-Installer alles auch direkt auf eine Festplatte installieren. So sieht dann z.B. Debian Live mit LXDE-Desktop aus.

Was jetzt noch fehlt sind werbewirksame Namen wie
Kebian für KDE
Lebian für LXDE
Xebian für Xfce
und natürlich Debian für Gnome
Voilà schon sind wieder ein paar neue Distributionen geboren. 😉

Zurück zu den Wurzeln: Welches Debian ist das Richtige

Viele Distributionen setzen auf Debian als Unterbau. Im Grunde genommen tauschen die meisten davon nur die Oberfläche aus, darunter bleibt aber alles gleich. Mit dem Original lässt sich das gleiche Ergebnis erreichen. Debian hat verschiedene Zweige, die auch als Repositorien oder Distributionen bezeichnet werden. Dabei bietet Debian schon heute vom fortlaufend aktuellen Desktopsystem bis zur grundsoliden Serverdistribution alle Optionen an. Hier eine kurze Übersicht über die Möglichkeiten.

Experimental

Experimental ist im Grunde genommen kein vollständiger Zweig, sondern lediglich die Spielwiese der Debianentwickler und ist nicht für Endbenutzer gedacht. Hier werden Alpha-Versionen von Software und wie der Name schon andeutet experimentelle Pakete hochgeladen. Sie haben standardmäßig die Pin Priorität 1, was verhindert, dass automatisch ein Upgrade auf Pakete in Experimental stattfindet. Ich benutze Experimental im Regelfall äußerst selten, wenn ich z.B. eine Beta-Version von Iceweasel ausprobieren möchte.
Die Quintessenz: Wenn du fragen musst, ob Experimental das Richtige für dich ist, ist es das nicht.

Unstable alias Sid

Wenn der Entwickler zuversichtlich ist, dass sein Paket eine gewisse Reife erlangt hat und alle Abhängigkeiten erfüllt werden, wird es Zeit für das Einstellen in Unstable. Sid ist nie fertig und fortlaufenden Änderungen unterworfen. Es gibt deswegen auch keine Installations-CDs. Debian Unstable wird in der Regel über ein dist-upgrade von Stable oder Testing installiert.
Debian Sid ist der Zweig, der in der Regel von Entwicklern und Nutzern gewählt wird, die immer am aktuellsten Stand der Technik interessiert sind. Wenn du dazu beitragen möchtest Debian noch besser zu machen und Fehlerberichte zu verfassen, ist Debian Unstable die perfekte Wahl. Die Benutzung erfolgt aber auf eigene Gefahr. Es ist keine Frage, ob Fehler mit der Zeit auftreten, sondern nur wann.
Ich habe Debian Sid auf dem Dell Inspiron 4000 Laptop und für ein Spielesystem auf dem Core Duo installiert. Meine Erfahrung ist, dass ein leichtgewichtiges und minimales System mit Debian Sid sich ohne weiteres pflegen lässt, wenn man folgende Punkte beachtet.
Man muss bereit sein temporär auf bestimmte Software zu verzichten und sie mit vergleichbarer ersetzen, z.B. Iceweasel mit Chromium tauschen oder umgekehrt. Man sollte wissen wie ein Downgrade funktioniert oder wie man Pakete auf "hold" setzt, damit sie nicht durch ein Update ersetzt werden. Ein entsprechendes Problem mit Bugs hatte ich dieses Jahr mit Midori und Claws Mail.
In vielen Fällen hilft apt-listbugs, um die schwerwiegendsten Fehler schon vor einem Update zu erkennen. Das einzige wirklich gravierende Problem hatte ich dieses Jahr nur mit dem Nvidia-Treiber, der bekanntermaßen unfrei ist. Mit Hilfe von Backups, Downgrades oder dem Wechsel zu freien Treibern ließ sich das Problem lösen.
Wenn diese Beschreibung eher Magendrücken als Begeisterung ausgelöst hat, ist Debian Unstable nicht der richtige Zweig. Auf der anderen Seite ist es ideal, wenn man Debian besser machen möchte.

Testing

Nachdem ein Paket in der Regel 10 Tage in Unstable verbracht hat, migriert es automatisch nach Testing, solange alle Abhängigkeiten erfüllt werden und das Paket keine "RC Bugs", veröffentlichungskritische Bugs, beinhaltet.
Im Gegensatz zu Unstable verändert sich das System weniger dramatisch bei jedem Update und man ist vor den offensichtlichsten Fehlern geschützt, die in Sid abgefangen werden. Leider hat Testing momentan zwei Nachteile, die man vor der Benutzung sich in Erinnerung rufen sollte.
Sollte wider Erwarten ein Fehler in Testing auftreten, erfolgt keine zeitgerechte Beseitigung des Problems. Das neue Paket wird in Unstable eingestellt und erneut dauert es 10 Tage bis es in Testing ankommt. In besonders kritischen Fällen kann der Paketbetreuer entscheiden dem Paket eine höhere Priorität zuzuordnen und es gelangt dann nach 5 oder 2 Tagen nach Testing. Debian Testing wird zur Zeit nicht vom Sicherheitsteam betreut! Unter Umständen kann das bedeuten, dass man 10 Tage oder länger auf die Lösung eines kritischen Sicherheitsproblems warten muss.
Problematisch ist auch, dass Pakete aus Testing vom Debian Release Team entfernt werden können, wenn sie auf Grund von Fehlern andere Pakete blockieren. Eine Initiative namens CUT versucht diese Probleme langfristig zu lösen.
Ich benutze Testing auf meinem leistungsfähigsten Rechner und habe bisher nur Probleme mit dem Nvidia-Treiber gehabt. Für mich funktioniert Testing zur Zeit ausgesprochen gut. Um Sicherheitsprobleme zu lösen oder gezielt neuere Software zu installieren, greife ich auf Apt-Pinning zurück.
Prinzipiell gilt das Gleiche wie für Unstable, wobei Testing weniger schnell bricht als Unstable, dafür die Lösung des Problems teilweise länger auf sich warten lässt. Wer keine Server betreiben muss und bereit ist nach der Lösung eines Problems zu recherchieren sollte sich Testing merken.

Stable

Alle Wege führen zu Stable. Dies ist die Version, die veröffentlicht wird, der Fels auf den alle anderen Debian-Derivate bauen. Wer sich unschlüssig ist, welchen Zweig er wählen muss, sollte immer zu Stable greifen.
In der Vergangenheit habe ich Debian Stable benutzt und ich komme nur zu einem Schluss: Es eignet sich nicht zum Bloggen! Keine heftigen Bugs oder katastrophalen Systemabstürze. Einfach nur total langweilig!
Egal was ich vorher geschrieben habe, Stable ist davon nicht betroffen. Sicherheitsprobleme werden schnell gefixt, dies ist der Zweig, den man einsetzen sollte, wenn einem Stabilität wichtiger als die neuesten Feature ist.
Das Einzige was Benutzer bemängeln sind veraltete Software oder schlechte Hardwareunterstützung. Dieses Problem haben natürlich die Debianentwickler schon lange erkannnt. Eine Lösung dafür sind Debians Backports.
Ansonsten bereiten höchstens Webbrowser wie Chromium oder Iceweasel ein Problem. Die Anleitung auf mozilla.debian.net oder mein Beitrag zu Iceweasel zeigen aber die Alternativen auf.
Abgesehen von Browsern sehe ich keinen Grund, warum man als durchschnittlicher Benutzer immer und überall die neueste, aber instabile Software haben müsste. Mit der Installation von Stable ist man in der Regel für zwei Jahre vollkommen von allen Computerproblemen befreit.

Oldstable

Nach der Veröffentlichung von Debian Stable wird die vorangegangene Version zu Oldstable und noch ein weiteres Jahr mit Sicherheitsaktualisierungen versorgt. Insbesondere für Server lohnt es sich deshalb mit dem Upgrade zu warten, solange neue Feature nicht gebraucht werden. Wer als Desktopbenutzer zufrieden mit seinem System ist, schätzt den langen Support von Debian.

Jahresrückblick 2011: Spiele mit Linux

Das Jahr geht zu Ende, was man daran erkennt, dass sie im Radio wieder John Lennons Happy Xmas spielen: "Another year over, what have you done?"

Ein Blog macht es ziemlich einfach diese Frage zu beantworten. Bis zum Ende des Jahres wollte ich ein paar Themen einfach mal Revue passieren lassen und mit dem sicherlich angenehmsten anfangen: Spiele mit Linux

Oft höre ich irgendwo die Frage, ob Spiel XY für Windows auch unter Linux laufen würde. Meistens entscheidet sich dann nach der Antwort für den Fragesteller, ob er Linux wohlgesonnen ist oder nicht. Warum eigentlich? Es ist ja nicht die Schuld einer Distribution, von Linux und Freier Software im Allgemeinen, dass ein für eine andere Plattform entwickeltes Spiel nicht funktioniert und mit Sicherheit lässt es keine Rückschlüsse über die Bedienbarkeit und Qualität Freier Software zu.
Die Hersteller argumentieren natürlich aus betriebswirtschaftlichen Gründen, dass für eine so kleine Zielgruppe wie Linuxspieler sich eine offizielle Unterstützung aus Kostengründen nicht lohnen würde. Doch wenn es keinen Port gibt, wird die Zahl dieser Gruppe weiter klein bleiben. Ein Teufelskreis?

Ich habe 2008 für mich entschieden unter diese Logik einen Schlussstrich zu ziehen und mein damals ausschließlich für World of Warcraft betriebenes DualBoot-System mit Windows XP endgültig einzustampfen und ab sofort WoW mit Wine zu spielen. Seitdem kaufe ich nur noch Spiele, die entweder unter Wine laufen oder für die es eine native Linuxversion gibt.

Dass auch sehr bekannte Spiele gut mit Linux funktionieren, beweist Blizzard Entertainment mit seinen Titeln. Starcraft II läuft ausgezeichnet mit Linux und Wine und seit Mai spiele ich mit dem minimalen Debian Sid und mit Crossover Games, die zusammen mit allen Freiwilligen des Wine Projekts maßgeblich für die gute Spielbarkeit mit Linux verantwortlich sind.
Wie gut oder wie schlecht ein Spiel unterstützt wird, bleibt aber weiterhin in der Verantwortung des Entwicklers und ich denke die beste Antwort, die man als Kunde liefern kann, ist es nur solche Spiele zu kaufen, die auch mit einem Freien Betriebssystem spielbar sind. Außerdem, wirtschaftliche Gründe hin oder her, es hängt auch von der eigenen Unternehmensphilosophie ab wie wichtig einem Kompatibilität wirklich ist. Dass es auch anders geht, hat in der Vergangenheit Id Software bewiesen.
Spiele unterscheiden sich in einem wesentlichen Punkt von allen anderen Softwarekomponenten. Sie sind absolut optional, auch wenn jetzt sicher einige Zocker aufstöhnen werden. Ich beurteile sie deswegen auch anders als z.B. einen Webbrowser, eine Datenbank oder Blogsoftware. Während man Transparenz und Standards bei Freier Software nicht hoch genug einschätzen kann, geht die freie Welt nicht davon unter, wenn der Quellcode von Starcraft 2 verschlossen ist.

Sicherlich in einer perfekten Welt könnte man jedes Spiel quelloffen veröffentlichen und die Entwickler bekämen trotzdem ihre Entwicklung belohnt. Leider sind wir noch nicht soweit, unmöglich ist es aber auch nicht, wie z.B. das Online Rollenspiel Ryzom zeigt.
In vielen Fällen ist die Lebensdauer und die Bedeutung eines Spiels zu gering. Was heute in ist, ist morgen out. Doch lässt man zwanzig Jahre verstreichen, werden alte Spielkonzepte plötzlich wieder neu und angesagt, man braucht eben nur ein modernes Spielgerät. Aber vielleicht bin ich auch einfach Reif fürs Museum.

Dieses Jahr habe ich einige gute Spiele in den Humble Bundles gefunden. Meine Favoriten: Trine, VVVVVV, Aquaria und Shank. Trotzdem die meisten dieser Indiespiele mit sehr wenig Personal gestemmt werden, ist der Spielspaß hoch und wie es Aquaria zeigt auch möglich ein zuerst verschlossenes Spiel unter der GPL zu veröffentlichen.
Wenn man also mit Linux spielen will, ist sicher ein guter Weg sich zuerst einmal die Übersicht bei holarse.de anzuschauen. Auch 2011 habe ich noch nicht alle Spiele durchgespielt, die dort aufgeführt sind. Oder wenn es schnell gehen soll, lädt man sich einfach eine Live-Distribution für native und quelloffene Spiele herunter.
Fasziniert dieses Jahr hat mich auch das Zusammenspiel von Freier Software und Musik, die unter einer Creative-Commons-Lizenz veröffentlicht wird. M.A.R.S und Obsidian Shell machen es möglich.

Schließlich ist alles nur eine Geduldsfrage. Wartet man lange genug, lässt sich jedes Spiel irgendwann in einem Emulator spielen. ScummVM ist zwar kein Emulator, aber dennoch einer meiner langjährigen Favoriten. Auch 2011 haben Indiana Jones und das Schicksal von Atlantis oder The Dig nichts von ihrem Charme verloren. Wie oft ich schon gewünscht habe, dass diese beiden Titel verfilmt worden wären und nicht was uns stattdessen mit dem letzten Indy Teil oder Armageddon vorgesetzt worden ist. 🙄
Alles in allem ist die Liste mit Linuxspielen auch dieses Jahr wieder größer und nicht kleiner geworden. Kann man mit Linux spielen? Auf jeden Fall!

Humble Indie Bundle 4, Shank, Bit.Trip Runner und Aquaria im Überblick

Der Verkauf des Humble Indie Bundle 4 läuft schon seit einigen Tagen, doch ich wollte mir dieses Mal etwas Zeit nehmen um drei Spiele aus dem aktuellen und erst vor kurzem zu Ende gegangenen letzten Bundle vorzustellen.
Zuletzt habe ich ein paar kritische Stimmen wie z.B. auf linuxundich.de gelesen, ob man als Blog wirklich jedes neue Bundle ankündigen muss, wenn mittlerweile in jeder Linuxecke des Internets darüber berichtet wird. Da ist was Wahres dran. Ich sehe den Sinn eines Blogs ebenfalls nicht in Ankündigungen und Nachrichtenmeldungen. Es gibt mehr als genug Seiten, die sich darauf spezialisiert haben.
Beim Humblebundle werde ich dennoch eine Ausnahme machen, auch wenn die Meldungen nicht immer zeitnah erscheinen. Zum einen ist es schwer einzuschätzen, wie viele Menschen tatsächlich schon die Humble-Bundle-Aktionen kennen und zum anderen kann ich zumindest mit dem Verlinken auf die entsprechenden Spieleseiten oder Rezensionen ein kleines Nachschlagewerk zu Indiespielen mit Linux für mich erstellen, dass ich unter dem Schlagwort Humblebundle schnell aufrufen kann.
Auch wenn kaum Zeit bei der in letzter Zeit hohen Frequenz bleibt alle Titel auch durchzuspielen, könnte von mir aus jeden Tag ein neues Bundle erscheinen, denn das bedeutet, dass wieder ein paar Spiele nativ für Linux angeboten werden. Und solange man frei entscheiden kann, ob man 1 Cent oder 100 Euro dafür zahlen möchte oder das Ganze ganz ignorieren kann, ist es die kurze Erwähnung für alle Linuxspieler und alle die es werden wollen sicher wert.

Aquaria

In der zweidimensionalen Unterwasserwelt von Aquaria schlüpft man in die Rolle von Naija, mit der man sich auf die Reise nach ihrer Vergangenheit begibt. Gleichzeitig erfährt man durch die Erzählerin, Naijas Stimme aus der Zukunft, über besondere Ereignisse und Orte, womit sich das Puzzle um ihre Erinnerung nach und nach zusammensetzt.
Naija ist in der Lage mit Hilfe der Aquaria durchströmenden Kraft des Verse mit Objekten zu interagieren und Zauber zu wirken. Die Entwickler haben diesen Teil des Spiels phantasievoll gelöst, indem Naija kurze Töne in einer bestimmten Reihenfolge singen oder einen Ton passend zur Farbe eines Gegenstands längere Zeit halten muss, um an den Inhalt zu gelangen.
Das Spiel vereinigt einige Rollenspielelemente wie das Zubereiten von Speisen und ein Zaubersystem mit typischen Aufgaben wie dem Erkunden der Unterwasserwelt, das Lösen von Rätseln und Kämpfe mit feindlich gesonnenen Kreaturen.
Als Adjektive zu Aquaria fallen mir charmant, bezaubernd und phantasievoll ein. Die Atmosphäre des Spiels ist dicht, wozu auch die sehr gelungene Musik und die Stimme der englischen Erzählerin beiträgt. Eine deutsche Übersetzung scheint es in Form von Untertiteln zu geben. Das Spiel ist für Kinder perfekt geeignet.
Die Installation unter Linux ist sehr gut. Es gibt sowohl 32bit- als auch 64bit-Deb- oder RPM-Pakete. Das Spiel wird nach /opt installiert. Wer eine Fehlermeldung beim Installieren erhält, die auf ein fehlendes Verzeichnis hinweist, sollte den leeren Ordner /usr/local/share/desktop-directories/ anlegen. Das Problem scheint aber ein spezifisches Problem bei einer reinen Lösung mit Fenstermanagern zu sein. Besonders auch: Die Spielengine von Aquaria wurde unter der GPL veröffentlicht.

Shank

Das Erste was mir in den Sinn kam war ein Spruch des Duke : "I'm here to kick ass and chew bubblegum and i'm all outta gum." Shank ist ein im Comicstil gezeichnetes 2D-Haudraufspiel mit Stil. Wer Desperado mochte, wird Shank lieben. Obwohl das Spiel "nur" zweidimensional ist, hat man stellenweise das Gefühl in einem echten Film zu sitzen, der alles hat, was einen guten Actionfilm auszeichnet: Rache, fiese Typen, coole Sprüche und sinnlose Gewalt.
Mit Hilfe zweier Messer und Pistolen, Granaten, einer Schrotflinte und der Kettensäge (fehlt nur noch die BFG9000) macht sich Shank auf seinen Rachefeldzug um den "Butcher" zur Strecke zu bringen. Dass er dabei nicht immer sehr subtil vorgeht versteht sich von selbst, was dem Spiel in Deutschland zu einer USK-18-Freigabe verholfen hat. Ein weiterer Bonus von Shank: Es gibt einen Mehrspielermodus.
Der Bin-Installer für Linux funktionierte problemlos. Das Spielverzeichnis lässt sich frei wählen. Das Einzige was ich bedauert habe war mein fehlender Gamecontroller, mit dem die Komboangriffe sicher noch mehr Spaß machen würden.

Bit.Trip Runner

Bit.Trip Runner ist ein in Retromanier gezeichnetes...Rennspiel? Die Spielfigur, CommanderVideo, läuft dazu ununterbrochen, worin die Schwierigkeit des Spiels liegt, zu Chiptuneklängen in dieser seitwärts scrollenden Pixelwelt. Man muss zum richtigen Zeitpunkt über ein Hindernis springen, hinunter durchgleiten oder es durch einen Tritt aus dem Weg räumen. Der Musikrhythmus passt sich dann passend zu den Aktionen an, was bei 50 verschiedenen Leveln, eben auch zu 50 vollkommen verschiedenen Musikstücken führt.
Am Anfang muss man lediglich über Hindernisse springen, der Schwierigkeitsgrad steigt, wie sollte es anders sein, von Level zu Level an. Ich hatte teilweise Probleme auf Grund der großen Pixel noch die Spielfigur und die Hindernisse zu sehen und bis man den Dreh mit dem Timing raus hat, kann es teilweise mehrere Anläufe brauchen. Ich denke das Youtube-Video zeigt das Spielprinzip ziemlich gut.
Die Installation ist dank vorgefertigter 32bit- und 64bit-Deb-Pakete ein Kinderspiel.

Ansonsten befinden sich im Humble Indie Bundle 4 noch folgende Spiele und Soundtracks.

Oh Freude: Mainboardtausch zu P5QPL-AM bewirkt Wunder

Anfang des Monats dachte ich, ich hätte alles unter Kontrolle und könnte damit leben. Schließlich hatte sich herausgestellt, dass der große und mächtige Core-Duo-Rechner zwar ab sofort nur noch mit 2 GB RAM bestückt werden konnte, merkwürdige Fehlermeldungen und Abstürze sich aber wahrscheinlich auf den aktuellen Nvidia-Treiber bezogen hatten, weswegen ich ein älteres Backup aufspielte und die betreffenden Treiber auf "halt" setzte. Zumindest von den beängstigenden Segfault-Fehlern war weit und breit nichts mehr zu sehen.
Doch dann kam der Tag als ich eine recht große Datei komprimieren wollte, bzip2 sich aber im Laufe des Prozesses schlicht weigerte fortzufahren. Interessanterweise erschien eine sehr ausführliche Fehlermeldung, dass dieser Fehler wahrscheinlich im Zusammenhang mit fehlerhaftem RAM stehen könnte....Möglicherweise war da ja was dran.

Ich startete den Rechner neu und sah..Schwärze. Irgendwann funktionierte dann nicht mal mehr der Einschaltknopf, weswegen ich die Faxen dick hatte und mir ein neues Mainboard kaufte.
Ich suchte zuerst nach dem identischen Modell P5N73-CM, um auch der kleinsten Möglichkeit von Inkompatibilität aus dem Weg zu gehen, musste aber leider feststellen, dass sich dieser Typ in den vergangenen 2,5 Jahren äußerst rar gemacht hatte. Ich entschied mich schließlich für das P5QPL-AM von ASUS, welches vergleichbare Spezifikationen hatte.
Natürlich schaute ich vorher noch einmal nach dem empfohlenen RAM-Speicher auf der Herstellerseite, von TEAM-RAM aber keine Spur. Ich kreuzte also alle Finger und siehe da 2x2 GB TEAM TVDD2048M800 Module laufen stabil in diesem Board. Die einzig heikle Aufgabe war es den Prozessor samt Kühler vom alten Board auf das neue zu bekommen. Ich weiß nun ungefähr wie sich ein Chirurg bei einer Operation am offenen Herzen fühlen muss. 🙂
Um alle Zweifel auszuräumen unterzog ich die Kiste seit letzter Woche noch einigen Stresstests, um mal das Wort des Jahres zu benutzen. Es wurden 2 GB große Dateien xz komprimiert, für die Wissenschaft mit Boinc gerechnet und auch Unity habe ich benutzt.
Fazit: Operation erfolgreich, Patient lebt

Mehrere Pbuilder und Hooks: rxvt-unicode-256color von Debian Sid nach Squeeze backporten

Mit Pbuilder wollte ich noch den Terminalemulator rxvt-unicode-256color von Debian Sid nach Debian Squeeze zurückporten. Dabei sind ein paar Probleme aufgetreten und die Lösungen zum Nachschlagen habe ich hier verewigt.
Wie ich hierhin gekommen bin, habe ich in den Artikeln zum Paketbau mit Debian, Mplayer für den Framebuffer, einen Backportversuch mit Pbuilder und den Beitrag zum maßgeschneiderten DWM-Fenstermanager niedergeschrieben. Du kannst dich natürlich auch sofort in die Details stürzen.
Nachdem ich DWM und Surf erfolgreich mit pbuilder kompiliert und in ein Deb-Paket verschnürt hatte, machte ich guten Mutes mit rxvt-unicode-256color weiter. Das Paket ließ sich ebenfalls problemlos übersetzen, doch als ich es auf dem Thinkpad mit Debian Squeeze installieren wollte, fehlte mir eine aktuellere Abhängigkeit von ncurses-term.
Um aber ncurses-term erfolgreich zu bauen, brauchte ich wiederum die aktuelle Version von debhelper aus dem offiziellen Backports-Archiv.

Wie man einen Backport von rxvt-unicode-256color erstellt

apt-get source rxvt-unicode-256color
apt-get source ncurses-term

Randbemerkung: Beim Verändern meiner Tastaturbelegung mit xmodmap habe ich einen 5 Jahre alten Debian Bug ausgegraben. Scheinbar löst die Tastenkombination Strg+Shift ein ISO14755 Feature aus und ein nicht zu übersehendes Rechteck wird auf dem Bildschirm angezeigt. Der Bug ist wohl in rxvt-unicode-lite behoben, in 256color aber absichtlich nicht.
Das Verhalten lässt sich ausschalten, indem man die Option --enable-iso14755 in debian/rules auf --disable-iso14755 setzt. Quellpaket danach mit dpkg -b source aktualisieren!

Kopiert man dann die unten beschriebenen Skripte bzw. Konfigurationsdatei an die richtige Stelle lassen sich DEB-Pakete für i386 und Squeeze mit dem folgenden Befehl bauen. Beim ersten Mal noch --override-config anhängen, damit die geänderte config eingelesen wird!

ARCH=i386 DIST=squeeze pbuilder build ncurses_5.9-4.dsc
ARCH=i386 DIST=squeeze pbuilder build rxvt-unicode_9.12-1.dsc

Die fertigen Pakete befinden sich danach in /var/cache/pbuilder/squeeze-i386/result
Die folgenden Skripte und Konfigurationen wurden mit geringen Änderungen aus dem Pbuilder Howto auf ubuntu.com übernommen. Empfehlenswert zum Nachlesen! Außerdem hilft man pbuilder weiter.
Hat man Pbuilder einmal so eingerichtet, lassen sich damit auch von einem Debiansystem Pakete für Ubuntu und umgekehrt erstellen, womit man ab sofort Software für 2/3 aller Linuxdistributionen leicht selbst übersetzen kann. 😉

Hooks

apt-preferences

Mit sogenannten Hooks lässt sich Pbuilder dazu bewegen, gewisse Prozesse und Abläufe mit Hilfe von Skripten automatisch während des Paketbaus oder davor und danach auszuführen. Mein Hook-Verzeichnis ist /var/cache/pbuilder/hook.d
Mit dem folgenden ausführbaren Skript E01apt-preferences wird den Paketen debhelper und lintian aus dem offiziellen Backport-Archiv eine höhere Pin-Priorität zugewiesen als den regulären Squeeze-Paketen. Damit werden beide Pakete automatisch aus Backports installiert, falls diese angefordert werden. Apt-Pinning hatte ich schon einmal allgemein vorgestellt, diese Methode hier demonstriert das Anpinnen von zwei spezifischen Paketen in /etc/apt/preferences innerhalb der Build-Umgebung von Pbuilder.

#!/bin/sh
set -e
STABLE_VERSION_REGEX='^6.0.[0-9]+

Es wird empfohlen das Verwenden von Backports auf das absolut notwendige Minimum zu begrenzen und so weit es geht auf die reinen Squeeze-Pakete zurückzugreifen.

Eine Shell ausführen, wenn das Bauen fehlschlägt

Das Skript wird als C10Shell in /var/cache/pbuilder/hook.d abgespeichert. Laut Pbuilder-Howto soll es für alle ausführbar sein (a+x). Ich muss hier in Zukunft einmal genauer nachforschen, ob das tatsächlich immer notwendig ist und ob man Pbuilder auch problemlos im User Mode Linux (UML) betreiben kann.

#!/bin/sh
# Shell aufrufen, wenn das Bauen fehlschlägt
apt-get install -y --force-yes vim less bash
cd /tmp/buildd/*/debian/..
/bin/bash < /dev/tty > /dev/tty 2> /dev/tty

Multiple Pbuilder und Archive: Konfiguration für pbuilderrc

HOOKDIR="/var/cache/pbuilder/hook.d/"
OTHERMIRROR="deb http://backports.debian.org/debian-backports squeeze-backports main"
# Codenamen für die verschiedenen Debian Versionen.
# Einfach editieren, falls die Codenamen sich in Zukunft ändern
UNSTABLE_CODENAME="sid"
TESTING_CODENAME="wheezy"
STABLE_CODENAME="squeeze"
STABLE_BACKPORTS_SUITE="$STABLE_CODENAME-backports"
# Liste der Debian Versionen.
DEBIAN_SUITES=($UNSTABLE_CODENAME $TESTING_CODENAME $STABLE_CODENAME
    "unstable" "testing" "stable")
# Liste der Ubuntu Versionen.
UBUNTU_SUITES=("natty" "maverick" "lucid" "karmic" "jaunty" "intrepid" "oneiric")
# Debian-Spiegel
DEBIAN_MIRROR="ftp.de.debian.org"
UBUNTU_MIRROR="mirrors.kernel.org"
# Falls die Version nicht zu ermitteln ist, durchsuche das Changelog nach Hinweisen
if [ -z "${DIST}" ] && [ -r "debian/changelog" ]; then
    DIST=$(dpkg-parsechangelog | awk '/^Distribution: / {print $2}')
    # Benutze die Unstable Version für bestimmte Versions Werte
    if $(echo "experimental UNRELEASED" | grep -q $DIST); then
        DIST="$UNSTABLE_CODENAME"
    fi
    # Benutze die Stable Version für Backports.
    if $(echo "$STABLE_BACKPORTS_SUITE" | grep -q $DIST); then
        DIST="$STABLE"
    fi
fi
# Optional: Standard Distribution/Version angeben
# z.B (${DIST:="unstable"}).
: ${DIST:="$(lsb_release --short --codename)"}
# Optional: Debians generische Namen(stable, testing, unstable) in die jeweiligen Codenamen umändern
case "$DIST" in
    unstable)
        DIST="$UNSTABLE_CODENAME"
        ;;
    testing)
        DIST="$TESTING_CODENAME"
        ;;
    stable)
        DIST="$STABLE_CODENAME"
        ;;
esac
# Optional: Die Standardarchitektur angeben. Z.B. (${ARCH:="i386"}).
: ${ARCH:="$(dpkg --print-architecture)"}
NAME="$DIST"
if [ -n "${ARCH}" ]; then
    NAME="$NAME-$ARCH"
    DEBOOTSTRAPOPTS=("--arch" "$ARCH" "${DEBOOTSTRAPOPTS[@]}")
fi
BASETGZ="/var/cache/pbuilder/$NAME-base.tgz"
# Optional: BASEPATH (und nicht BASETGZ) setzen, wenn man cowbuilder benutzt
# BASEPATH="/var/cache/pbuilder/$NAME/base.cow/"
DISTRIBUTION="$DIST"
BUILDRESULT="/var/cache/pbuilder/$NAME/result/"
APTCACHE="/var/cache/pbuilder/$NAME/aptcache/"
BUILDPLACE="/var/cache/pbuilder/build/"
BINDMOUNTS="/var/cache/archive"
if $(echo ${DEBIAN_SUITES[@]} | grep -q $DIST); then
    # Debian configuration
    MIRRORSITE="http://$DEBIAN_MIRROR/debian/"
    COMPONENTS="main contrib non-free"
    DEBOOTSTRAPOPTS=("${DEBOOTSTRAPOPTS[@]}" "--keyring=/usr/share/keyrings/debian-archive-keyring.gpg")
    #OTHERMIRROR="deb file:///var/cache/archive $DIST/"
elif $(echo ${UBUNTU_SUITES[@]} | grep -q $DIST); then
    # Ubuntu configuration
    MIRRORSITE="http://$UBUNTU_MIRROR/ubuntu/"
    COMPONENTS="main restricted universe multiverse"
    DEBOOTSTRAPOPTS=("${DEBOOTSTRAPOPTS[@]}" "--keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg")
   #OTHERMIRROR="deb file:///var/cache/archive $DIST/"
else
    echo "Unknown distribution: $DIST"
    exit 1
fi
if $(cat "/etc/debian_version" | grep -q -e "$STABLE_VERSION_REGEX"); then cat > "/etc/apt/preferences" << EOF Package: debhelper Pin: release a=squeeze-backports Pin-Priority: 999 Package: lintian Pin: release a=squeeze-backports Pin-Priority: 999 EOF fi

Es wird empfohlen das Verwenden von Backports auf das absolut notwendige Minimum zu begrenzen und so weit es geht auf die reinen Squeeze-Pakete zurückzugreifen.

Eine Shell ausführen, wenn das Bauen fehlschlägt

Das Skript wird als C10Shell in /var/cache/pbuilder/hook.d abgespeichert. Laut Pbuilder-Howto soll es für alle ausführbar sein (a+x). Ich muss hier in Zukunft einmal genauer nachforschen, ob das tatsächlich immer notwendig ist und ob man Pbuilder auch problemlos im User Mode Linux (UML) betreiben kann.

Multiple Pbuilder und Archive: Konfiguration für pbuilderrc

dwm, urxvt, qingy, xmodmap, surf und ein Thinkpad

In diesem Beitrag geht es noch ein wenig um ein paar wissenswerte Funktionen und Hilfsprogramme zum Dynamic Window Manager und um ein paar Merkwürdigkeiten und Einstellungen rund um den Thinkpad 600.

Qingy

Da ich dieses Jahr vor neuen Anwendungen und ein paar Veränderungen keinen Halt gemacht habe, durften natürlich Loginmanager für die Konsole auch nicht fehlen. Qingy ist darunter eine interessante Alternative und ein Mittelding zwischen der minimalen Startx-Lösung und einem voll ausgestatteten Loginmanager wie Gnomes GDM3, wenn man sich in eine grafische X-Umgebung einloggen möchte.
DWM und Qingy scheinen aber nicht richtig zueinander zu finden. Zumindest konnte ich Qingy nicht dazu bewegen eine Login-Shell zu starten, die meine gesamten Umgebungsvariablen wie z.B. die Spracheinstellungen berücksichtigt. Das führte leider dazu, dass Umlaute nicht dargestellt werden konnten.
Mit diesem scheinbar esoterischen Problem war ich aber nicht allein und das Arch-Linux-Wiki hatte dazu mal wieder einen passenden Tipp, z.B. Qingy über eine sogenannte Custom Session zu starten. Ein grafischer Loginmanager wie Qingy berücksichtigt dabei die Datei .xsession. Der Befehl exec zsh -l -c "dwm" brachte mich aber leider nicht ans Ziel.
Lange Rede kurzer Sinn, ich bin wieder ohne Loginmanager unterwegs und habe mir eine Anwendung gespart. Im Gegensatz zu den grafischen Pendants berücksichtigt die Startx/Xinit-Lösung die im Home-Verzeichnis versteckte .xinitrc, was später noch nützlich sein sollte.

rxvt-unicode-256color

Ich greife schon etwas vor, denn ich habe auch einen Backport von rxvt-unicode-256color erstellt. Die 256-Farben-Version von urxvt befindet sich leider nicht in Squeeze. Da ich aber, abgesehen vom Toshiba 220cs, überall schon rxvt-unicode mit der Solarized-Farbpalette benutze, durfte es auf dem Thinkpad auch nicht fehlen und war dank der schon bestehenden Config-Dateien auch schnell eingerichtet.
Mir ist aber aufgefallen, dass die Xft-Schriftarten das Scrollen sehr verlangsamen, was entweder an der Grafikkarte, den Treibern oder auch einer Terminaleinstellung liegen könnte. Da es aber sowohl in Xterm als auch in Urxvt auftrat, bin ich mir bei letzterem nicht so sicher. In einem Forum meine ich gelesen zu haben, dass
urxvt*buffered: false
in der .Xdefaults helfen solle. Mir half hingegen der Wechsel zu einer Bitmap Schrift. Einfach folgendes zur .Xdefaults hinzufügen:

urxvt*font: -xos4-terminus-medium-*-*-*-12-*-*-*-*-*-*-*
urxvt*boldFont: -xos4-terminus-bold-*-*-*-12-*-*-*-*-*-*-*

xmodmap

Mit Hilfe von xmodmap lässt sich die Tastaturbelegung ändern, indem die kerneleigenen Keycodes in sogenannte Keysyms des X-Servers konvertiert werden. Einen guten Überblick über die Thematik findet sich unter dem Stichwort Xmodmap im deutschen ArchLinux-Wiki.
Nachdem ich beim Neukompilieren die MOD-Taste von Mod1 (ALT) auf Mod4(Super) geändert hatte, musste ich noch das Problem lösen wie ich nun bei einem Laptop ohne Super-Taste die Tastenkombinationen ausführen konnte. Als Alternative bot sich z.B. die AltGr-Taste an.

xmodmap -e "keycode 108 = Super_L"

Das funktionierte auch prima, bis ich wieder einmal | als Zeichen benötigte. 🙄
Kein Problem nehmen wir die rechte Strg Taste.

xmodmap -e "keycode 105 = Super_L"

Leider Fehlanzeige, ganz so trivial ist xmodmap dann doch nicht. Vorher war z.B. noch das notwendig:

xmodmap -e "remove control = Control_R"
xmodmap -e "keycode 105 = Super_L"
xmodmap -e "remove mod4 = Super_L"
xmodmap -e "add mod4 = Super_L"

Wer nun schon voll Feuer und Flamme ist und die Enter-Taste auf die Löschen-Taste, Backspace zu Space und Shift zu ESC auf dem Rechner des Arbeitskollegen ummappen möchte, sollte sich auf jeden Fall noch die Befehle xev, xmodmap -pm und xmodmap -pke merken, denn die werdet ihr sicher für das Unterfangen brauchen.
Mit

xmodmap -pke > .Xmodmap

lässt sich die gesamte Keytabelle in die Datei .Xmodmap schreiben, womit die Einstellungen, in der Theorie, mit Hilfe der .xinitrc wiederhergestellt werden können. Das Verhalten ist leicht wahnsinnig, also nichts für schwache Nerven. 🙂

DWM und Xsetroot

So sieht meine .xinitrc im Moment aus.

#!/bin/sh
if [ -f $HOME/.Xmodmap ]; then
	/usr/bin/xmodmap $HOME/.Xmodmap
fi
#xmodmap -e "keycode 108 = Super_L"
urxvtd -q -o -f&
while xsetroot -name "`date` `uptime | sed 's/.*,//'`"
do
	sleep 20
done &
exec dwm

Der erste Abschnitt liest die Einstellungen aus der .Xmodmap bei jedem Login ein, Zeile 9 startet Urxvt im ressourcensparenden Daemon-Modus und von 11-14 benutze ich eine Funktion, um das Hintergrundfenster von X mit einer Statusanzeige zu versehen. Standardmäßig stellt DWM hier die eigene Versionsnummer dar.
Die Anzeige lässt sich mit dem Befehl Xsetroot verändern. Weitere interessante Beispiele gibt es unter dem Stichwort DWM im ... ArchLinux-Wiki. Ebenfalls bemerkenswert ist die Erweiterung dwmstatus, ein Grundgerüst, mit dem es möglich ist fortgeschrittene Statusanzeigen einzubauen.

Surf und Tabbed

Last but not least, im Zusammenspiel mit surf und tabbed ist DWM erst richtig vollständig. Wo surf unter einem "normalen" Fenstermanager vielleicht suspekt erscheint, spielt er hier seine wahre Stärke aus. Startet zuerst tabbed mit dmenu. Shift+Strg+Enter öffnet Surf direkt in den "Tabs", mit Strg+G geht es zur Adresszeile. URL eintippen und mit Shift+Strg h/l zum nächsten Tab wechseln.

Wie zuvor schon erwähnt, hat der Surf-Backport Probleme bei der Darstellung einiger Https-Seiten, weswegen Midori eine sinnvolle Alternative auf dem älteren Laptop bleibt.
Ich denke zum Thema DWM ist vorerst alles gesagt. Immer dann, wenn ich eine grafische Anwendung brauchen sollte, bietet er ab sofort einen Rückzugspunkt vom Konsolensetup mit Screen. 😉

Einen maßgeschneiderten dwm-Fenstermanager von sid nach squeeze backporten

Obwohl ich denke, dass der Fenstermanager dwm in der Standardkonfiguration schnell zu erlernen und außerdem schlicht und ressourcensparend ist, wollte ich dennoch 2-3 Dinge verändern. Da Veränderungen bei dwm nur durch eine Neukompilierung möglich sind, habe ich die Gelegenheit genutzt und mich wieder etwas mehr mit der Erstellung eigener Debianpakete beschäftigt.
Ich hatte in dem Beitrag "Wie man Debian Pakete aus den Quellen baut" mehrere Methoden vorgestellt, wie man eigene Software speziell für Debian kompilieren kann. Die Pbuilder-Methode gefiel mir davon am besten. Erfolgreich wurde damit ein Mplayer nur für den Framebuffer und auch schon ein paar kleinere Backports erstellt.
Bevor ich meinen Weg zum Kompilieren und Anpassen von dwm vorstelle, wollte ich noch auf eine Alternative hinweisen. Im englischen Forum auf forums.debian.net gibt es schon eine sehr ausführliche Anleitung zum Kompilieren und Konfigurieren von dwm, die den Standardweg mit make und den Debian-Weg mit dpkg-buildpackage zeigt. Wie auch immer, ich denke Pbuilder ist noch einfacher.

Der elegante Weg mit pbuilder

Vorbereitung

aptitude install pbuilder
pbuilder create --distribution squeeze

oder wenn man z.B. i386-Pakete mit seinem AMD64-System bauen möchte

pbuilder create --distribution squeeze --debootstrapopts --arch --debootstrapopts i386

Quellen freischalten

deb-src http://ftp.de.debian.org/debian/ sid main in /etc/apt/sources.list hinzufügen.
Als normaler Benutzer das Quellpaket herunterladen und in das Quellverzeichnis wechseln.

apt-get source dwm
cd dwm-5.9/

Zwei Möglichkeiten

Möglichkeit 1

cp config.def.h config.h
vim config.h

Möglichkeit 2

cp config.def.h debian/local/config.apo.h
vim config.apo.h

Das Debian-Quellpaket bietet zum einen die Möglichkeit die Konfigurationsdatei wie gewohnt im Hauptverzeichnis editieren zu können oder aber im Debian-Verzeichnis. Der Paketverwalter von dwm hat hierzu einige Regeln angepasst, so dass beim Kompilieren auch alle Dateien im Verzeichnis debian/local in der Form config.*.h berücksichtigt werden.
Das hat später den enormen Vorteil, dass man gleichzeitig verschiedene Versionen von dwm übersetzen und später mit Debians update-alternatives Mechanismus auswählen kann.

Konfiguration

Ich habe die zweite Möglichkeit gewählt und die config Datei in debian/local namens config.apo.h modifiziert und folgende Dinge geändert.

  1. Farbe von hellblau auf dunkelgrau ändern
    static const char selbordercolor[] = "#333333";
    static const char selbgcolor[] = "#333333";
  2. Anzahl der Tags von 9 auf 6 verringern
    static const char *tags[] = { "1", "2", "3", "4", "5", "6", };
    
  3. Anstelle der ALT-Taste die Super/Windows-Taste benutzen
    #define MODKEY Mod4Mask
  4. rxvt-unicode anstatt xterm benutzen
    static const char *termcmd[] = { "urxvtc", NULL };

Das war es auch schon. Mir war insbesondere der Wechsel von xterm zu rxvt-unicode und von ALT zu Mod4 wichtig, da es einige Programme gibt, bei denen die voreingestellte ALT-Taste zu Problemen führen kann.

Kompilieren

Das Quellpaket aktualisieren

dpkg-source -b dwm-5.9/

Als Benutzer root ausführen

pbuilder build dwm_5.9-1.dsc
Das fertige I386-Squeeze-Paket fällt in /var/cache/pbuilder/result heraus und muss danach nur noch auf dem Zielrechner mit dpkg -i dwm_5.9-1_i386.deb installiert werden.
Mit dem Befehl update-alternatives --config dwm lässt sich danach zwischen der Standardversion, der dwm.web und der dwm.apo Version umschalten.

Fazit

Ich denke die Pbuilder-Methode sollte man sich aus mehreren Gründen beim Bauen von Debianpaketen merken. Zum einen lässt sich damit in einer "Reinraum-Umgebung" ein Paket sauber kompilieren. Man kann auf einer AMD64-Maschine mit Debian Unstable I386-Pakete für Debian Stable bauen und darüber hinaus sogar mehrere Pbuilder-Umgebungen parallel installieren, in denen Pakete für Testing, Unstable oder auch Ubuntu gebaut werden können!
Beachten sollte man aber, dass dieser Backport noch nicht den offiziellen Ansprüchen genügt. Insbesondere wurde das Paket nicht richtig umbenannt, das Changelog nicht geändert oder persönlich mit GnuPG signiert. Aber für den privaten Hausgebrauch sollte es reichen. 😉
Als optionale Ziele hatte ich mir noch vorgenommen surf, den minimalistischen Webkit-Browser aus der Suckless-Familie, und rxvt-unicode-256color "backzuporten", da es für beide keine Version in Squeeze gibt.
Kurz gesagt: Surf lässt sich genauso einfach von Sid nach Squeeze backporten, er funktioniert auch, es gibt aber einen schweren Bug beim Aufruf von Https-Seiten, der so mit Debian Unstable nicht auftritt. Backports sind also unter Umständen gar nicht so schwierig, man sollte aber immer auch im Hinterkopf behalten, das Probleme nicht nur beim Übersetzen auftreten können. Mehr Details zu rxvt-unicode-256color und dwm demnächst auf diesem Kanal.