Gajim 1.4 Vorschau: Workspaces

Gajim development news

Gajim 1.4 Vorschau: Workspaces

Gajim development news

Das Gajim-Team hat in den letzten Monaten hart daran gearbeitet, die neue Version 1.4 zu entwickeln. Die nächste Version bietet eine komplett überarbeite Nutzeroberfläche. In diesem Post erklären wir, wie die neue Oberfläche funktioniert und was es noch zu entscheiden und zu implementieren gilt vor der Veröffentlichung.

Natürlich ist dein Feedback wichtig! Keine Nutzeroberfläche kann alle Nutzer zufriedenstellen, weshalb wir euch um eure Meinung bitten wollen. Inwiefern würden dich die kommenden Änderungen positiv oder negativ betreffen? Oder du hast sogar Ideen, wie wir es noch besser machen können.

Dieser Post ist zum Teil auf dem Gajim 1.4 UI/UX Preview von lovetox, einem der derzeitigen Maintainer von Gajim. Wenn du also das Videoformat bevorzugst, klicke den Youtube-Link oder nutze deine bevorzugte Invidious-Instanz, um das Video in einem schnellen und deine Privatsphäre würdigenden Player anzusehen. Die Präsentation wurde im Rahmen der XMPP Office Hours gehalten. Dort findest du weitere interessante Präsentationen über das Jabber/XMPP-Ökosystem oder kannst sogar selber ein Projekt vorstellen!

Einzelfensteranwendung

Die größte Änderung in Gajims neuer Version wird sein, dass Gajim zu einer Einzelfensteranwendung wird. Aus dem vergangenen Jahrzehnt sind wir separate Fenster für die Kontaktlist (Roster) und die Chats gewöhnt gewesen. Dieses Muster war in den Messengern der frühen 2000er, wie z.B. MSN und ICQ weit verbreitet.

In der kommenden Version wird Gajim also zu einer Einzelfensteranwendung, in der alle Features immer in Reichweite sein werden. Diese Änderung ist von modernen Messengern wie z.B. Element, Discord oder Mattermost (u.a.) inspiriert. Hier ein aktuelles Beispiel von Gajims neuer Nutzeroberfläche:

Gajims neues Hauptfenster

Gajims neues Hauptfenster

Sicher können wir nicht alle Nutzer mit diesem neuen Feature abholen und mancher Nutzer mag sich nicht von dem Mehrfenstermodus trennen. Wir hoffen allerdings, möglichst viele Nutzerinteressen beachten zu können, wie im Abschnitt Raum für Verbesserungen dieses Posts beschrieben.

Workspaces

Gajim 1.4 wird ein neues Konzept einführen: Workspaces. Bisher wurden alle Chats ohne weitere Gliederung als flache Liste innerhalb des Fensters angezeigt. Wir wissen um die Notwendigkeit, manche Aktivitäten nach Kontext zu sortieren. Statt mit mehreren Fenstern organisieren wir verschiedene Aktivitäten nun über Workspaces.

Ein Workspace ist eine Sammlung von Chats und Gruppenchats, die lokal von Gajim verwaltet wird. Im Moment ist dies ein nicht-standardisiertes, Gajim-spezifisches Feature, jedoch werden Bemühungen für eine Standardisierung im Abschnitt Raum für Verbesserungen erläutert.

Für die Navigation zwischen deinen Workspaces und Konten haben wir eine Seitenleiste auf der linken Fensterseite eingefügt. Nach dem Klick auf einen Workspace wird die Chatliste zur rechten Seite der Seitenleiste angezeigt. Über die Chatliste gelangst du zu deinen Chats (sowohl private Chats als auch Gruppenchats) des aktuell geöffneten Workspace. Der derzeit geöffnete Workspace wird durch einen Farbbalken angezeigt.

Unter der Workspace-Liste werden deine Konten aufgelistet. Mit einem Klick auf ein Konto wird eine Seite mit deiner Kontaktliste, deinem Profilbild, einem Statuswähler und einer Liste von Benachrichtigungen angezeigt. Kontakte in der Kontakliste sind über roster groups (Gruppen innerhalb der Kontaktliste) organisiert, wie es in vorigen Versionen auch der Fall war.

Kontokontext

Jedem Konto wird eine spezifische Farbe zugeordner, zusätzlich zum Profilbild des Kontos. Diese Farbe wird in der Chatliste wieder aufgegriffen und neben dem Profilbild des jeweiligen Chats angezeigt, um direkt sichtbar zu machen, über welches Konto man schreibt. Falls ein Chat oder Konto kein Profilbild hat, dann wird eines aus dem ersten Buchstaben des Nutzernamens generiert.

Gajim mit mehreren Konten

Gajim mit mehreren Konten

Sobald eine Benachrichtigung innerhalb eines bestimmten Workspace eingeht, wird sowohl auf dem Workspace-Icon als auch auf dem Chat die Anzahl der ungelesenen Nachrichten angezeigt.

Oberfläche einrichten

Workspaces können innerhalb der Seitenleiste manuell per drag and drop sortiert werden. Allerdings werden dabei zwei verschiedene Kontexttypen voneinander getrennt: die Workspaces erscheinen oben in der Liste, während die Konten an der Unterseite aufgelistet werden. Die Liste ist scrollbar, falls mehr Einträge vorhanden sind als angezeigt werden können.

Auch Chats können von einem zum anderen Workspace verschoben werden, allerdings nicht per Drag and Drop: über ein Rechtsklick auf einen Chat mit anschließendem Klick auf “Verschieben nach” lässt sich der gewählte Chat in einen anderen Workspace verschieben. Derzeit ist es jedoch nicht möglich, einen Chat zu kopieren und in mehreren Workspaces anzuzeigen; ein verschobener Chat wird dem neuen Workspace hinzugefügt und aus dem alten entfernt.

Innerhalb eines Workspace können Chats angepinnt werden. Diese Chat verbleiben angepinnt an der Oberseite der Chatliste des Workspace. Nicht angepinnte Chat werden nach letzter Aktivität sortiert. Somit musst du nicht mehr endlos scrollen, um die für dich wichtigen Chat zu finden. Im Moment können angepinnte Chats nicht manuell sortiert werden, aber die Möglichkeit ist geplant.

Probiere es aus und erzähle und davon

Es gibt jede Menge große Änderungen in der kommenden Gajim 1.4, also lasse dir keinen Post entgehen. In der Zwischenzeit kannst du die neue Nutzeroberfläche ausprobieren, indem du Gajim aus dem Quellcode heraus startest über ein paar wenige Kommandos. Dieses Feature ist derzeit noch nicht in den Nightlies veröffentlicht, da es noch instabil ist und sich nicht für den Produktiveinsatz eignet.

Wichtig: Du musst Gajim mit einem Testprofil über gajim -s -p testprofil oder launch.py -s -p testprofil starten, um dein aktuelles Profil zu behalten. Andernfalls gibt es keinen Weg zurück.

  • git clone https://dev.gajim.org/gajim/gajim && cd gajim, um Gajims Quellcode in den Ordner gajim herunterzuladen und in diesen zu wechseln
  • git checkout mainwindow, um den Entwicklungszweig mit der neuen Nutzeroberfläche auszuwählen
  • pip install ., um die Entwicklerversion von Gajim inkl. aller Abhängigkeiten in deiner Python-Umgebung zu installieren, dann gajim -s -p testprofile zum Starten
  • alternativ ./launch.py -s -p testprofile zum Starten ohne Installation. In diesem Fall musst du alle Abhängigkeiten selber installieren, wie es z.B. hier für Ubuntu beschrieben ist

Feedback ist in jeder Form willkommen, sei es auf unserem Gitlab, unserem Chat unter gajim@conference.gajim.org oder als Post auf deiner eigenen Website. Für Feedback zur neuen Nutzeroberfläche haben wir ein Issue #10628 geöffnet.

Raum für Verbesserungen

In diesem Abschnitt erklären wir die Mängel der derzeitigen Implementierung des Workspaces-Features und darüber hinaus, welche Verbesserungen es geben könnte. Wir suchen aktiv nach Ideen in diesen Bereichen. Wenn du kannst, dann lass uns deine Gedanken zukommen, um Gajim zu verbessern.

Barrierefreiheit

Der Kontokontext baut auf Farben auf, die vom Nutzer vergeben werden können. Allerdings sind wir aus Gründen der Barrierefreiheit daran interessiert, andere grafische Muster abseits von Farben zu unterstützen. Zum Beispiel könnten Punkte und Striche oder andere visuelle Muster verwendet werden, wie sie in Grafiken oder Tabellen üblich sind. Dieses Feature wird jedoch, wenn wir keine weitere Unterstützung durch Code-Beiträge bekommen, sehr wahrscheinlich nicht bis zur Veröffentlichung von Gajim 1.4 entwickelt.

Internationalisierung

Die Neugestaltung des Hauptfensters bringt bislang keine besondere Berücksichtigung von rechts-nach-links (RTL)-Sprachen mit. Die Seitenleiste zur Navigation wird ausschließlich auf der linken Seite des Fensters angezeigt.

Anpassungen der Oberfläche

Ein paar Nutzer haben bereits ihre Sorgen zum Thema Einzelfenstermodus in Gajim bekundet. Es besteht keine technische Barriere einen Mehrfenstermodus zu reimplementieren. Es ist “nur” eine Menge harter Arbeit.

Zum Beipiel wäre ein Modus denkbar, in dem jedes Konto ein eigenständiges Fenster bekäme? Oder ein Modus, in dem ein Workspace ein separates Fenster erhält? Das wäre z.B. dann nützlich, wenn virtuelle Arbeitsflächen (manchmal auf Workspaces genannt, was für ein Zufall) in deiner Desktopumgebung verwendet werden.

Zusätzlich kann man über die Unterstützung mehrerer Seitenleisten auf verschiedenen Achsen nachdenken, sodass du entscheiden könntest, an welcher Stelle deine Kontoliste oder deine Workspace-Liste dargestellt wird.

Nur deine Fantasie und deine Beiträgen zu Gajim bilden die Grenzen des Machbaren. Derzeit ist es sehr unwahrscheinlich, dass weitere große Änderungen an der Nutzeroberfläche implementiert werden bis zur Veröffentlichung von Gajim 1.4. Wir sind ein Projekt aus Freiwilligen, weshalb nicht alle Wünsche berücksichtigt werden können - allerdings sind Beiträge jederzeit willkommen.

Mehr organisieren über Workspaces

Derzeit können angepinnte Chats in der Chatliste nicht umsortiert werden wie Workspaces in der Workspace-Liste. Würde das für dich nützlich sein?

Desweiteren bietet Gajims neue Oberfläche mit ihren Workspaces eine 2-Ebenen-Repräsentation ähnlich Mattermost, wo jeder Chat nur einen einzigen Stamm-Workspace besitzt. Die Kontaktliste bildet dabei eine Ausnahme, da dort eine dritte Ebene hinzukommt, in der jeder Eintrag ein Teil einer Gruppe ist, die wiederum im Kontokontext dargestellt wird. Vielleicht können Workspaces von dieser Herangehensweise profitieren, um eine Darstellung ähnlich Discord/Element zu erreichen.

Außerdem kann ein Chat derzeit nur einem einzigen Workspace zugeordnet werden, aus Gründen der Einfachheit. Das funktioniert, solange Workspaces von einem einzelnen Nutzer verwaltet werden, würde jedoch Schwierigkeiten bereiten, wenn Workspaces mit anderen Nutzern geteilt werden. In diesem Fall können Chats in mehr als einem Workspace auftauchen.

Standardisierung und Interoperabilität

Wie bereits kurz erwähnt überlegen wir, wie unser neues Workspaces-Feature serverseitig repräsentiert werden kann, sodass es auch von anderen Anwendungen genutzt werden kann oder sogar über mehrere Nutzer geteilt werden kann.

Das Teilen von Workspaces mit mehreren Nutzern, ähnlich wie Matrix “spaces” oder Discod “servers” könnte für Communities nützlich sein. Es könnte außerdem möglich sein, einen öffentlichen Workspace zu abonnieren, der von einem deiner Kontakte verwaltet wird und Chats über ein bestimmtes Thema zusammenschließt.

Während es derzeit noch keine Spezifikation für solch eine hierarchische Organisation von Chats im XMPP-Ökosystem gibt, gab es jedoch einen XMPP Online Sprint im letzten Winter, bei dem Discords Nutzeroberfläche zum Zweck der Verbesserung des Jabber/XMPP-Ökosystems analysiert wurde.

Jüngst haben einige Leute damit begonnen, Gedanken zusammenzutragen, die zu einer Spezifizierung führen können. Es gibt ein Dokument in Bearbeitung (ein Pad), über das jeder Feedback geben kann und ein spaces@joinjabber.org Gruppenchat zur Diskussion über Projekte hinweg wurde eingerichtet. Deine Ideen und Beiträge sind sehr willkommen, auch wenn du dich nicht mit dem Jabber/XMPP-Ökosystem auskennst. Feedback dazu, wie die neue Spezifikation Kompatibilität zu anderen dezentralen Netzwerken erreichen werden kann ist gern gesehen.

Gajim