Hallo Gajim!

Schon lange kommuniziere ich per Jabber mit meinem nerdigen Umfeld. Nun wurde es Zeit für einen neuen modernen Client auf dem Desktop!

XMPP ohje ohje

Seien wir ehrlich, XMPP (aka Jabber) ist eine echt verzwickte Kiste. Denn im Laufe der Jahre hat sich der Anwendungszweck für messaging deutlich verschoben. Damit man eine gleichwertige Alternative zu whatsapp bekommt (und nicht nur ICQ ebenbürtig ist 😉 ) muss auch der Client zahlreiche Erweiterungen(XEPs) unterstützen. Bei Pidgin hatte ich den Eindruck, dass die Entwicklung eher stehengeblieben ist und moderne Erweiterungen dadurch kaum mehr Einzug halten. Vielleicht ist es als multiprotokoll-messenger einfach auch ein zu weites Feld…

Neben den oben verlinkten XEPs erscheinen mir auch ein paar weitere Techniken als wichtig:

  • MUC – die Chaträume wie bei IRC
  • OTR / besser OMEMO – Verschlüsselung, am besten auch bei Serverstorage und Geräte-übergreifend
  • ICE – zur Umgehung von NAT/Firewalls und für direkte Audio/Video/Datei-Streams
  • avahi – XMPP im LAN ohne Server nutzen

Andere Kandidaten

Schon vor längerem hatte ich angefangen, parallel andere Clients zu testen. Ich will da gar nicht zu viel Wind machen, deshalb nur eine kurze Übersicht:

  • PSI – die Bedienung ist irgendwie krude
  • jitsi – mir zu schwergewichtig fürs chatten
  • kopete – nur schlecht in Gnome integrierbar
  • CLI / TUI Clients sind mir zu minimalistisch (z.B. weechat, irssi, profanity, …)
  • webclients fielen auch raus (es gibt aber sehr schicke die BOSH nutzen z.B. kaiwa, converse.js, candy, …)

Feinheiten von Gajim

rooster fullGajim ähnelt den üblichen IMs, da gibt es keinerlei Überraschungen. Mir gefällt, dass er in Python geschrieben ist und sich auch per DBus kontrollieren lässt. Beides sind für mich sehr gute Möglichkeiten ihn weiter zu automatisieren.
In Debian-distros ist oft eine recht alte Version enthalten, man sollte deshalb eine unstable Quelle einbinden, um eine Version >= 16.5. mit OMEMO-Unterstützung zu bekommen.
Der Client bringt einen eigenen Manager für Erweiterungen mit, wo man die folgenden unbedingt nachinstallieren sollte:

  • http upload
  • image preview
  • emoticon pack
  • omemo
  • otr
  • (set location, funktioniert aber nicht gut)

Schau unbedingt in die Plugin-Beschreibung, öfters gibt es auch noch weitere Abhängigkeiten zu Python-Bibliotheken, welche nicht automatisch installiert werden (bzw. man besser über den OS Packetmanager installiert). Auch der STUN-Server ist wichtig (siehe ICE) wenn ihr später Multimedia haben wollt.
Danach sollte man sich gleich noch ein mächtigeres emoji-set installieren (z.B. twemoji resized) und im OS auch eine passende Schriftart für die emojis ergänzen.
Nach und nach kann man dann noch nachjustieren (Benachrichtigungen, eigene Statusnachrichten, …) und ein bisschen experimentieren. Denn ähnlich wie bei Firefox hat auch Gajim einen Editor für erweiterte Einstellungen.

Dann kann man die Konten ergänzen und ggF. noch avatar und den Namen der Maschine (xmpp ressource) feinjustieren. Fertig!

Alles schick?

Damit ist man eigentlich bestens gerüstet und kann sowohl auf Desktop als auch Laptop und mit mobilen Gadgets einheitlich chatten. Mit ein bisschen Glück klappen so auch Videocalls, andernfalls kann man dafür noch Jitsi bemühen. Das ganze läuft bei XMPP relativ privat durch verschiedenste Server und zumindest nicht unter Aufsicht eines großen Konzerns. Für maximale Sicherheit kann Verschlüsselung aktiviert und die Identitäten bestätigt werden!

Negativ sind mir bisher nur einige Fehlermeldungen (meistens wenn Rechner offline ist) aufgefallen, worauf sich der Client manchmal nicht mehr mit dem Server verbinden mag. Ein Neustart von Gajim behebt das aber sofort. An einigen Stellen fehlt in der Oberfläche auch noch die deutsche Übersetzung, aber das sind eher Kleinigkeiten. Auch wie gut sich das Programm unter Windows macht, kann ich leider nicht beurteilen.
Insgesamt scheint auch hier die dev-Community (leider!) etwas eingeschlafen zu sein und die Webpräsenz wirkt vielleicht auch deshalb etwas altbacken und trac und mercurial machen es nicht unbedingt besser 😉
Aktuell ärgere ich mich noch, dass es keine automatische Erkennung von Orten gibt. Bei Pidgin hatte ich das mit dynstatus gelöst, vielleicht kann man das ja portieren.

xmpp service discovery aka. discoJedem muss natürlich auch klar sein, dass es bei Kommunikation auch auf die Gegenstelle ankommt. Also muss auch der Client des Gesprächspartners möglichst viele der Erweiterungen unterstützen (z.B. insbesondere Verschlüsselung, Emojis, Stimmungen & Aktivitäten …) , aber auch (beide) Server müssen für einige XEPs eine zusätzliche Unterstützung bieten. Es gibt mit XEP-375 zwar jüngste Bestrebungen, dies Bündel an Erweiterungen verpflichtend zu machen, aber vermutlich wird es noch etwas dauern, ehe jeder Server entsprechend konfiguriert wurde. Eine gute Gelegenheit also, euren Server mal zu testen (Kontaktliste -> rechtsklick Konto -> Dienste durchsuchen) und dem operator mal euren Wunsch kund zu tun 🙂

Author: Matthias
Betreibt dies Blog und probiert so einiges aus Technik herauszuholen. Oft mit Bezug zur Wirklichkeit, aber manchmal auch weil es eben geht ;-) Hat sich von Robotron über Basic, ASM, qC, ... soweit hochgearbeitet, dass er eigentlich gar nicht mehr so oft codet.

2 thoughts on “Hallo Gajim!

  1. Danke für deine Anregung – das Programm sieht gut aus!

    Die Einrichtung eines Accounts ist für Neueinsteiger wirklich hübsch minimal und einfach gestaltet: niemand muss mehr wissen, dass Jabber eigentlich „XMPP“ heisst …

    Du hast bestimmt im Winter begonnen, dieses Artikel zu schreiben, oder? 🙂
    Seit Januar gibt es bei Debian die von dir vermisste aktuelle Version.

    Bezüglich der „wo bin ich“-Information: willst du auf eine Verknüpfung von dynstatus und dem gajim-Plugin „SetLocalition“ (https://trac-plugins.gajim.org/wiki/SetLocalitionPlugin) hinaus? Wäre so etwas Teil von
    dynstatus oder SetLocalition oder einfach nur ein separater Schnipsel?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert