News aus der Entwicklung - November 2019

News aus Gajims Entwicklung

News aus der Entwicklung - November 2019

News aus Gajims Entwicklung

Dies ist der zweite Artikel einer Reihe von News über die Entwicklung von Gajim. In diesen Artikeln werde ich (wurstsalat) versuchen, das Geschehen aus einem Monat der Entwicklung an Gajim zusammenzufassen. Gelegentlich wird es in den Artikeln auch um python-nbxmpp und XMPP generell gehen. Der November hat Verbesserungen für Gruppenchats, Designs, Drag and Drop, OMEMO und einiges mehr gebracht. Tritt gajim@conference.gajim.org bei und diskutiere mit uns!

Änderungen in Gajim

Gruppenchats

An dem Fenster für Gruppenchats wurden in diesem Monat eine Menge Designänderungen vorgenommen. Neben der neuen Teilnehmerliste, die bereits im letzten Artikel Erwähnung fand, wurde ein Großteil der Dialoge mit Gruppenchatbezug durch “Seiten” ersetzt, die das Chatfenster überdecken. Die Idee dafür ist entstanden, als wir nach einem Ort gesucht haben, an dem die Gruppenchatdetails (das können eine Menge Informationen sein) dargestellt werden können. Ein Beispiel für die Darstellung dieser Informationen ist im folgenden Bildschirmfoto zu sehen.

Gruppenchatdetails von gajim@conference.gajim.org

Gruppenchatdetails von gajim@conference.gajim.org

Über die Zeit der letzten Monate wurden immer mehr Dialoge auf das neue System umgestellt. Aus dem Chatfenster heraus können Nutzer nun:

  • ihren Spitznamen wechseln
  • das Thema des Gruppenchats ändern
  • Nutzer rauswerfen/sperren
  • Passwörter/Captchas eingeben
  • den Gruppenchat auflösen
  • den Gruppenchat umbenennen (lokal)

Gajim kann nun den Namen des Gruppenchats (der vom Inhaber festgelegt wurde, #5406) innerhalb der Kontaktliste, in Tabs und im Bannerbereich überhalb des Chats anzeigen. Falls der Nutzer einen anderen Namen wählt (was jetzt sowohl aus der Kontaktliste heraus als auch innerhalb des Gruppenchats möglich ist, #9783), wird dieser stattdessen verwendet.

Drag and Drop, Designs, Serverinfos

Während der letzten Monate gab es viele Verbesserungen für Drag and Drop in Gajim. Es ist jetzt möglich einen Kontakt zu einem Gruppenchat durch Drag and Drop einzuladen. Per Drag and Drop abgelegte Dateien starten nun eine Dateiübertragung mit dem entsprechenden Kontakt.

Viele Nutzer haben über die Nutzbarkeit des Designfensters geklagt. Wir haben versucht die Arbeitsschritte zu vereinfachen, indem wir die Schritte automatisiert haben, die wir vorher den Nutzern abverlangt haben (#9886). Falls ein Nutzer eine Designeinstellung ändern möchte (z.B. Schriftgröße), dann ist jetzt nur noch ein einfacher Klick auf “Einstellung hinzufügen” nötig, was automatisch a) ein neues Design hinzufügt, b) zu dem neu erstellten Design wechselt und c) die gewünschte Einstellung hinzufügt. Dies ermöglicht Nutzern zusätzlich eine direkte Vorschau ihrer gewünschten Änderungen. Bei dem Entfernen des gerade aktiven Designs wird nun automatisch das Standarddesign geladen, ohne den Nutzer vorher um den Wechsel des Designs zu bitten.

In Gajim 1.0 wurde der Dialog für Serverinfomationen eingeführt. Dieser Dialog ermöglicht es Nutzern die technischen Fähigkeiten des von ihnen genutzten Dienstes durch eine Auflistung der vom Server unterstützten Merkmale zu beurteilen. Zusätzlich zu dieser Auflistung von Merkmalen werden nun auch Verbindungsinformationen (z.B. Transportsicherheit, verwendete Cipher und ggf. genutzter Proxy) (#6096) angezeigt. Das Serverzertifikat kann ebenfalls über den Dialog für Serverinformationen angezeigt werden. Einige Server bieten Kontaktadressen für Unterstützung, Rückmeldung oder Administratorfragen an. Diese Kontaktadressen werden nun auch angezeigt (#9848).

In dem Bemühen die Dialoge zu vereinheitlichen, die Gajim anzeigt wenn die Bestätigung oder Eingabe des Nutzers nötig ist, wird das alte Dialogsystem Stück für Stück ersetzt. Viele alte Dialoge wurden bereits entfernt oder ausgetauscht, was zu einem einheitlicheren Erscheinungsbild führt.

Gajims Code für das interne Festlegen von Tastenkürzeln wurde verbessert. Diese Verbesserung bringt uns einen Schritt näher daran, den Nutzern in Zukunft das Ändern von Tastenkürzeln zu ermöglichen. Außerdem haben wir Strg+E für das Öffnen des Plugin-Fensters und Strg+Umschalt+X für das Anzeigen der XML-Konsole hinzugefügt. Viele der verfügbaren Tastenkürzel in Gajim werden in Über > Tastenkürzel aufgelistet.

Gajims Flatpak-Version hat diesen Monat ebenfalls ein paar Aktualisierungen bekommen, unter anderem eine Fehlerbehebung für das Öffnen von Links sowie eine Aktualisierung der Plugins und ihrer Abhängigkeiten. Sowohl die automatischen Statusnachrichten als auch die Erkennung des Bildschirmschoners wurden für die Flatpak-Version überarbeitet.

Um Fehler beheben zu können ist es für Entwickler oftmals nötig Debug-Logs zu erheben. Es ist möglich einen solchen Debug-Log anzuzeigen, wenn Gajim in der Konsole (mit den entsprechenden Parametern) gestartet wird. Weil dies etwas technisch ist und weil wir allen Nutzern das Erheben dieser Logs ermöglichen wollen, gibt es eine Einstellung (Einstellungen > Erweitert) für das Abspeichern von Debug-Logs. Um diese Schritte weiter zu vereinfachen haben wir einen Button hinzugefügt, der den Ordner mit den gespeicherten Debug-Logs öffnet.

In diesem Monat wurde eine Menge Code aufgeräumt. Das schließt sowohl das Entfernen von ungenutztem Code als auch das Beheben von vielen Linting-Fehlern ein, was zu einer besseren Verständlichkeit des Codes beiträgt.

Was außerdem passiert ist

  • Möglichkeit der “ReStructured text (rst) zu XHTML Konvertierung” wurde entfernt
  • Einstellung für spezielle “öffnen mit” Programme wurde entfernt (stattdessen wird der Systemstandard verwendet)
  • Reste des Codes für SI-Dateiübertragungen wurden entfernt (diese Methode ist veraltet)
  • die Möglichkeit beim Öffnen eines Chats über das Kontextmenü eine XMPP-Ressource auszuwählen wurde entfernt (#8471)
  • Gajims Log-Datenbank (in der unter anderem Unterhaltungsverläufe gespeichert sind) hat ein paar Geschwindigkeitsverbesserungen bekommen und wird nun sowohl den Nachrichtentext als auch dazugehörige XHTML-Daten speichern
  • das Öffnen von Dateien aus Gajim heraus wurde überarbeitet
  • das Ausstellungs- und Ablaufdatum eines Zertifikats wird nun in dem Datumsformat des Nutzers angezeigt
  • Gajims XML-Konsole hat nun eine Suchleiste (Strg+F zum Suchen, F3 zum Fortsetzen der Suche)
  • Fehlerbehebung für ein Problem, bei dem private Nachrichten aus Gruppenchats fälschlicherweise im Fenster des Gruppenchats dargestellt wurden (#9488)
  • Gajim nutzt nun “bare JIDs” (also JIDs ohne XMPP-Ressource) beim Senden von Nachrichten an eine Gruppe von Kontakten (#9738)
  • bei dem Blockieren einer Gruppe von Kontakten wird nun der richtige Dialog angezeigt (#7524)
  • Fehlerbehebung für Importwarnungen (#9874)

Plugin-Aktualisierungen

Dieser Monat hat einige Fehlerbehebungen für Gajims OMEMO-Plugin gebracht. Das Empfangen einer Nachricht, die nicht für das Gerät des Nutzers verschlüsselt wurde löst nun eine Fehlermeldeung aus (#452). Ein Fehler, bei dem eine Nachricht aus dem Archiv (MAM) keiner JID zugeordnet werden kann (#457) und ein Fehler im Konfigurationsdialog des Plugins (kann entstehen wenn kein Konto verfügbar ist) wurden behoben. Des Weiteren kann Gajim nun alle Änderungen in der Konfiguration eines Gruppenchats erkennen und wird sich einheitlicher bei den Kriterien zur Auswahl OMEMO-fähiger Gruppenchats verhalten (#445). Zusätzlich zum Anzeigen einer mit OMEMO verschlüsselten Datei ist es jetzt außerdem möglich, den die Datei enthaltenden Ordner zu öffnen (#430, #425).

Änderungen in python-nbxmpp

Bei der Arbeit an Gajims Dialog zum Entfernen eines Kontos wurde in python-nbxmpp die Unterstützung für In-Band Registration (XEP-0077) implementiert und es wurden Fehler im Umgang mit Stanzas behoben.

Einer der Vorteile bei der Nutzung von XMPP ist die Entscheidungsfreiheit. Nutzer können frei wählen, welchen Server sie verwenden möchten (oder selber einen hosten) und sie können sich einen von vielen verfügbaren Clients auswählen. Manchmal ist mit dieser Entscheidungsfreiheit allerdings auch verbunden, dass es Clients gibt, die sich nicht nach den Protokollspezifikationen verhalten. Gajim muss damit umgehen können, versteht sich. Für einen dieser Fälle, in denen ein Client fehlerhafte Stanzas gesendet hat, wurde kürzlich eine Fehlerbehebung implementiert (#89).