Die Arbeiten an Gajim 1.4 machen große Fortschritte! Nach neun Monaten Entwicklungszeit wurde der Code für Gajims neues Hauptfenster endlich in den Hauptentwicklungszweig master
eingefügt. Damit sind nun automatische Builds der Nightlies für Linux und Windows verfügbar.
Änderungen in Gajim
Gajims neues Hauptfenster bringt einige Änderungen mit sich: ein neues Layout der Fenster mit Arbeitsbereichen und einer komplett überarbeiteten Darstellung der Unterhaltungen mit besserem Styling für Nachrichten und vielen weiteren Verbesserungen. Du kannst mehr darüber in früheren Artikeln lesen.
Solltest du Gajims Entwicklung im Detail gefolgt sein, dann wirst du einige Code-Commits zum Thema Type Annotations gesehen haben. Das Hinzufügen von Type-Annotations in allen Möglichen Bereichen hilft uns Entwicklern dabei, Probleme zu lösen, bevor sie zutage treten. Sie machen den Code verständlicher, helfen bei der Dokumentation und sie erlauben eine automatische Überprüfung des Codes beim Entwickeln. Da Gajim auf python-gobject aufbaut, muss der Type-Checker natürlich Kenntnis über die von GObjects Klassen und Methoden zurückgegebenen Werte haben. Hierfür haben wir damit begonnen, sogenannte Stubs zu schreiben: pygobject-stubs sowie ‘Builder-Stubs’ für die Glade-Dateien, die Gajim für die Benutzeroberfläche verwendet.
Auf der Seite des Servers haben wir das automatische Type-Checking von mypy auf pyright umgestellt, was eine deutlich schnellere Überprüfung ermöglicht. Da Type-Checking auch strukturelle Probleme aufdeckt, haben wir Gajim im selben Zug an den verschiedensten Stellen umgebaut.
Ein weiterer großer Schritt vorwärts wurde beim Message Styling
gegangen. Gajim unterstützt nun eine Formatierung von Nachrichten im
Chateingabefeld in Echtzeit. Das Menü für die Textformatierung wurde
entsprechend angepasst, sodass es nun Elemente von
XEP-0393 (Message Styling)
nutzt. Desweiteren ist das Message Styling nun auf Windows und Linux
gleichwertig. Zu guter Letzt funktioniert das Emoji-Parsing unter Windows
wieder und auch das Verarbeiten von /me
-Nachrichten funktioniert wieder.
Das Aktualisieren deiner Gajim-Installation unter Windows sollte nun auch deutlich reibungsloser vonstatten gehen. Der Installer erkennt nun automatisch bereits installierte Versionen und führt den Uninstaller automatisch und versteckt (natürlich erst nach deiner Bestätigung) aus.
Was außerdem passiert ist:
- Du kannst nun Chats zwischen Arbeitsbereichen verschieben per Ziehen und Ablegen
- Die Chatliste bietet nun ein “Als gelesen markieren” Menüeintrag
- Markierungen für ungelesene Nachrichten werden nun gespeichert, sodass sie auch über einen Neustart hinweg erhalten bleiben
- Die Darstellung größerer Code-Schnipsel im Code-Widget wurde verbessert
- Dateivorschau zeigt nun einen Fortschrittsbalken beim Herunterladen
- Verbesserungen für moderierte Gruppenchats (Chateingabefeld ist deaktiviert, kurze Erläuterung sowie ein neuer Button für das “Anfragen der Schreibrechte”)
- Neuer und verbesserter Mechanismus für das Einladen in Gruppenchats
- Minimalbreite von Gajims Fenster wurde reduziert, sodass Gajim besser auf deinen Bildschirm passt
- Es ist jetzt möglich, eigene Kurzbefehle festzulegen für einige Aktionen
in Gajim, also z.B. kannst du
Strg+N
für das Starten eines neuen Chats verändern - Die Verwaltung der Nachrichtenverläufe ist obsolet: exportieren und löschen von Nachrichten ist jetzt direkt aus Gajim heraus möglich
- Anrufe werden jetzt durch Echounterdrückung und Töne für Klingeln und Freizeichen verbessert (danke @emil)
- Gajim zeigt nun eine Benachrichtigung, wenn dein Server heruntergefahren wurde
- XML-Konsole: Syntax-Highlighting für den XML-Stream
- XEP-0107 (User Mood), XEP-0108 (User Activity) und XEP-0209 (Metacontacts) wurden entfernt
Plugin-Aktualisierungen
Gajims Triggers Plugin wurde umgebaut und an das neue Benachrichtigungssystem angepasst.
Änderungen in python-nbxmpp
Die Websocket-Implementation wurde an das Größenlimit für Stanzas angepasst, welches derzeit im Produktivbetrieb sichtbar ist.
Wie immer freuen wir uns über Anregungen und Diskussionen in unserem Gruppenchat.