Es ist schon ein paar Tage her, dass ich ein Iconset für Psi mit Smileys einer beliebten lokalen Internet-Community gebastelt und hier zum Download bereitgestellt habe. Unterdessen habe ich die eine oder andere Beschwerde von Leuten bekommen, die zwar die selbe Community aber andere Instant Messenger benutzen. Wenn diese beispielsweise einen Smiley der Form :puppy:
empfangen, sehen die im dümmsten Fall einen Smiley, der die Zunge rausstreckt und danach uppy:. Egoistisch gesehen, hätte ich damit leben können, aber da mir ja speziell meine lieben Mitbewohner am Herzen liegen, schaute ich mal, ob ich nicht auch für andere Messenger als Psi so Icon-Themes, Smiley-Sets oder wie auch immer die bezeichnet werden, basteln könnte.
Ein Theme für Kopete hatte ich schnell zusammen und kündigte das in jener Community an. Die Begeisterung war groß, zumindest bei den beiden Nutzern von Kopete… Stimmen wurden laut, man hätte sowas auch gern für Pidgin, Adium, Miranda usw. Ich nutzte dann mal direkt das eingangs erwähnte Psi um mit Tux Kontakt aufzunehmen und wir sponnen ein paar Ideen zusammen. Das Ergebnis darf ich an dieser Stelle nun verkünden, doch zunächst noch ein kleiner Abstecher in die Welt der Smiley-Themes.
Wie sieht so ein Theme intern aus? Für den Fall der bereits erwähnten Psi, Kopete, Pidgin und Adium sieht das so aus, dass man einen Ordner hat mit den kleinen Grafik-Dateien, entweder im GIF-Format für animierte Viecher oder für unbegliche auch GIF oder besser PNG. Dazu kommt dann eine Textdatei zur Zuordnung von Textsequenzen zu diesen Dateien und dann wird das in ein Archiv gepackt und gut. Der interessante Punkt ist diese Beschreibungsdatei, die sieht nämlich für jeden Messenger anders aus. Mal ist das XML, in unterschiedlicher Struktur natürlich, mal ist es Plain-Text, angereichert mit unterschiedlich viel Meta-Information. Aber es sind überall die selben Grafiken und es sind alles Textdateien, die man rein theoretisch ja auch einfach von einem cleveren Programm generieren lassen kann, das einmal die richtige Zuordnung von Smileys zu Dateien kennt.
In diesem Fall war die Kanone meiner Wahl Perl Template Toolkit 2. Im Rahmen der Neugestaltung meiner privaten Homepage (nein, kein Link, ist schließlich noch nicht fertig :P ) hatte ich das schon benutzt und es erschien mir geeignet, was sich auch später bestätigt hat. Nach dem Erzeugen der Beschreibungsdateien erledigt das Verpacken ein simples Shell-Skript. Die Smiley-Themes für Kopete, Pidgin und Psi können wir damit schon erzeugen. Für die Unterstützung weiterer Messenger brauchen jetzt nur noch die passenden Templates geschrieben werden.
Eins fehlt natürlich noch: die fertigen Templates und die Skripte an sich für die Leute, die das nachspielen wollen. Eine kleine Dokumentation nebst Download-Links für bereits gebaute Iconsets gibt’s im Wiki von den Penguineering Tools. Wer selbst dran rumfummeln will, schaut am besten ins Subversion-Repository.