L’équipe de Gajim a travaillé dur ces derniers mois pour préparer la prochaine version v1.4. Cette version apportera une grande refonte de l’interface. Dans cet article, nous allons expliquer comment cette interface fonctionne et ce qui reste à décider ou à implémenter avant sa sortie.
Évidemment, vos retours sont importants ! Aucune interface ne peut plaire à tout le monde, alors réagissez à cet article en indiquant comment cela vous affectera positivement et négativement, et avec vos idées pour l’améliorer encore avant la sortie.
Cet article est en partie basé sur la présentation Gajim 1.4 UI/UX donnée par lovetox, un des mainteneurs actuels de Gajim. Donc si vous préférez le format vidéo, cliquez sur ce lien Youtube ou utilisez votre instance Invidious préférée pour la visionner avec un client léger, et respectueux de la vie privée. Cette présentation a été donnée dans le cadre des permanences XMPP, où vous pourrez trouver d’autres présentations intéressantes autour de l’écosystème Jabber/XMPP, ou bien même proposer la vôtre !
Application mono-fenêtre
Le principal changement dans la nouvelle version de Gajim, dans son implémentation actuelle, c’est qu’il s’agit désormais d’une application à une seule fenêtre. Nous avons été habitués depuis une décennie à avoir des fenêtres séparées pour la liste de contacts et pour les discussions. Ce concept d’interface était courant dans les applications de tchat des années 2000 comme avec MSN et ICQ.
Dans cette future version, nous faisons de Gajim une application mono-fenêtre, où toutes les fonctionnalités sont toujours à portée de main. Ce changement est inspiré des messageries modernes comme Element, Discord ou Mattermost (entre autres). Voici à quoi cela ressemble pour l’instant :
Certaines personnes se sentiront exclues par cette nouvelle fonctionnalité et la suppression du mode multi-fenêtres, mais nous espérons concilier les besoins de nos utilisateurs dans le cadre du projet Gajim, comme expliqué dans la section Axes d’amélioration de cet article de blog.
Espaces de travail
Gajim v1.4 va introduire un nouveau concept : les espaces de travail. Auparavant, tous les onglets étaient d’importance égale sous forme d’une simple liste dans une fenêtre. Nous comprenons le besoin d’organiser certaines activités en fonction de contextes spécifiques, mais sans avoir recours à de multiple fenêtres, nous les organisons par espace de travail.
Un espace de travail est un ensemble de salons et de discussions privées, organisées côté client. Pour le moment, c’est une fonctionnalité non standard, spécifique à Gajim, mais les efforts de standardisation sont expliqués dans la section Axes d’amélioration.
Nous inaugurons une nouvelle barre latérale de largeur fixe à gauche, permettant de naviguer parmi vos espaces de travail et comptes. Après avoir cliqué sur un espace de travail, la liste des discussions sera affichée dans la barre latérale. Cette liste de discussions, à droite de la liste des espaces de travail, permet la navigation parmi les discussions (de salon ou privées) de l’espace de travail en actif. L’espace de travail actif possède une barre colorée indiquant qu’il s’agit du contexte en cours.
En dessous de la liste des espaces de travail, la liste de vos comptes. Cliquer sur un compte affichera une page contenant la liste de contacts, votre avatar, un sélecteur d’état, et une liste des notifications en attente. Les contacts dans la liste de contacts sont organisés par groupes, comme c’était déjà le cas dans les précédentes versions.
Contexte de compte
Chaque compte se voit attribuer une couleur spécifique, en plus de son avatar. Cette couleur est reprise dans la liste des discussions, au côté de l’avatar de l’onglet de sorte que vous voyez immédiatement lequel de vos comptes est utilisé dans chaque discussion. Lorsqu’une discussion ou un compte n’a pas d’avatar défini, un avatar est généré à partir de la première lettre de son nom d’affichage.
Lorsqu’une notification est reçue dans un espace de travail donné, un indicateur avec le nombre de messages non-lus sera affiché sur l’icône de l’espace de travail et sur la discussion.
Organiser votre interface
Les espaces de travail peuvent être réorganisés manuellement par glisser-déposer à l’intérieur de la barre latérale. Cependant, ces deux différents types de contextes restent séparés : les espaces de travail apparaissent en haut de la liste, alors que les comptes sont listés en bas. Lorsqu’il y a trop d’éléments à afficher, la liste des espaces de travail/discussions devient déroulante.
Les discussions peuvent également être déplacées d’un espace de travail à un autre, mais pas par glisser-déposer : faites un clic-droit sur une discussion et à partir de là, le menu “Déplacer vers” déplacera la discussion dans l’espace de travail sélectionné. Cependant, il n’est pas possible actuellement de copier une discussion vers un autre espace de travail. Déplacer une entrée vers un nouvel espace de travail la supprime du précédent espace de travail.
Dans un espace de travail donné, les discussions peuvent être épinglées. Celles-ci restent alors à la même place en haut de la liste des discussions de l’espace de travail. Les discussions non épinglées sont triées selon l’activité la plus récente. De cette façon, vous n’avez plus besoin de défiler indéfiniment à la recherche des discussions qui comptent vraiment pour vous. Pour le moment, les onglets épinglés ne peuvent pas être réordonnés comme les espaces de travail, mais nous avons prévu de l’implémenter.
Essayez-la et faites-nous des retours
Il y a encore beaucoup de changements majeurs à prévoir dans la prochaine version v1.4 de Gajim, alors restez à l’écoute du blog pour les prochaines nouvelles. En attendant, vous pouvez tester la nouvelle interface en lançant Gajim à partir des sources avec quelques commandes. Cette fonctionnalité n’est pas publiée dans les versions beta car elle est encore trop instable, donc ne commencez pas toute de suite à l’utiliser pour de vrai.
Important : Remarquez que vous devez lancer Gajim avec un profil de test en utilisant gajim -s -p testprofile
ou launch.py -s -p testprofile
pour préserver votre profil actuel. Un retour arrière n’est pas possible.
git clone https://dev.gajim.org/gajim/gajim && cd gajim
pour télécharger le code source de Gajim dans un dossiergajim
et s’y rendregit checkout mainwindow
pour parcourir la branche de développement avec la nouvelle interface utilisateurpip install .
pour installer la version de développement de Gajim ainsi que toutes ses dépendances dans votre environnement python, puisgajim -s -p testprofile
pour démarrer- sinon,
./launch.py -s -p testprofile
pour démarrer Gajim sans l’installer, dans ce cas les dépendances devront avoir été installées manuellement d’abord (par exemple sous Ubuntu)
Les retours de toute forme sont les bienvenus, que ce soit sur notre système de tickets, notre salon de discussion communautaire gajim@conference.gajim.org ou sous forme d’un article de blog sur votre propre site. Le ticket principal pour cette nouvelle interface utilisateur est #10628.
Axes d’amélioration
Dans cette section, nous expliquons les lacunes de l’implémentation actuelle de la fonctionnalité des espaces de travail, et ce qui peut être fait pour l’améliorer. Nous recherchons activement des idées sur ces sujets, donc si vous le pouvez, veuillez prendre le temps d’organiser vos idées et nous aider à améliorer Gajim.
Accessibilité
Le contexte d’un compte repose sur les couleurs définies par l’utilisateur. Cependant, pour des raisons d’accessibilité (daltonisme), nous serions intéressés de prendre en charge des approches graphiques autres que les couleurs. Par exemple des pointillés et des tirets ou d’autres motifs visuels qui sont fréquents dans les graphiques et les tableaux. Mais à moins que nous n’ayons plus de contributions, il est peu probable que cette fonctionnalité arrive dans la v1.4.
Internationalisation
La fenêtre principale ne prend pas encore en charge de façon particulière les langues écrites de droite à gauche. La barre de navigation sera affichée sur la partie gauche de l’écran dans tous les cas.
Personnalisation d’interface utilisateur
Certains utilisateurs nous ont déjà fait part de leur inquiétude à l’idée d’abandonner la prise en charge des fenêtres multiples dans Gajim. Cependant, il n’y a pas de barrière technique qui nous empêcherait de réimplémenter ça avec notre nouvelle interface utilisateur. C’est “juste” beaucoup de boulot.
Par exemple, il pourrait y avoir un mode où chaque compte a sa propre fenêtre qui pourrait être déplacée séparément des autres ? Ou bien extraire un espace de travail de la fenêtre principale vers une fenêtre à part ? Ça pourrait être utile lorsqu’on utilise des bureau virtuels (parfois appelés espaces de travail, comme par hasard) dans votre environnement de bureau préféré.
Ou alors, nous pourrions envisager de prendre en charge plusieurs barres latérales sur plusieurs axes, de sorte que vous pourriez décider où placer votre liste de comptes, et diviser votre liste d’espaces de travail en une barre du haut et une barre du bas.
Seules votre imagination et vos contributions au projet Gajim sont les limites de l’ergonomie que nous pouvons fournir, mais il est hautement improbable que des personnalisations profondes de l’interface utilisateur soient implémentées à temps pour la version v1.4. Ce projet est mené par des bénévoles et nous ne pouvons pas nous permettre de passer du temps pour satisfaire tous les besoins, même si les contributions sont toujours les bienvenues.
Plus d’organisation d’espace de travail
Actuellement, les onglets épinglés dans la liste des discussions ne peuvent pas être réordonnés de la même façon que les espaces de travail peuvent l’être dans la liste des espaces de travail. Est-ce que ça vous serait utile ?
De plus, la nouvelle interface des espaces de travail de Gajim ne dispose que d’une représentation à 2 niveaux comme Mattermost, où chaque discussion n’appartient qu’à un seul espace de travail. La liste de contacts est une exception, car elle dispose de 3 niveaux d’imbrication afin de permettre les groupes de contacts, où chaque entrée fait partie d’un groupe, qui lui-même fait partie du contexte d’espace de travail d’un compte. Peut-être que les espaces de travail pourraient bénéficier de cette approche de façon à représenter des hiérarchies à 3 niveaux comme les interfaces de Discord ou Element.
Une discussion ne peut apparaître que dans un seul espace de travail, par souci de simplicité. C’est une décision raisonnable tant que les espaces de travail ne sont gérés que par un seul utilisateur pour ses propres besoins, mais ça ne fonctionnerait plus très bien s’il fallait partager des espaces de travail avec d’autres utilisateurs, auquel cas une même discussion pourrait apparaître plus d’une fois dans l’arborescence des espaces de travail.
Standardisation et interopérabilité
Comme indiqué rapidement, nous réfléchissons à un moyen de représenter notre nouvelle fonctionnalité d’espaces de travail côté serveur, de sorte qu’elle pourrait être utilisées par d’autres clients, et pourquoi pas être partagée avec d’autres utilisateurs.
Partager un espace de travail avec plusieurs utilisateurs, à la façon des “espaces” Matrix ou des “serveurs” Discord, pourrait s’avérer fort utile pour les communautés en ligne qui gèrent un grand nombre de canaux, par exemple pour définir des permissions à l’échelle de tout un espace de travail. Cela permettrait aussi de s’abonner à un espace de travail public maintenu par l’un de vos contacts, incluant toute une panoplie de salons tiers sur un sujet donné.
Bien qu’il n’y ait encore aucune spécification pour une telle organisation hiérarchisée des discussions dans l’écosystème XMPP, il y a eu un Sprint XMPP en ligne l’hiver dernier pour étudier l’ergonomie de Discord et pour en faire profiter l’écosystème Jabber/XMPP.
Plus récemment, certaines personnes ont commencé à rassembler des idées qui devraient mener à une spécification. Il y a une document en cours de rédaction (un pad que n’importe qui peut compléter avec des avis, et un salon spaces@joinjabber.org a été ouvert pour discuter ce sujet de manière transversale à tous les projets. Vos idées et vos contributions sont plus que bienvenues, même si vous n’êtes pas particulièrement à l’aise avec l’écosystème Jabber/XMPP. Tout avis sur la façon dont la nouvelle spécification pourrait être rendue interopérable avec d’autres réseaux décentralisés serait également très apprécié.