Gajim 1.4 预览:工作区

Gajim 开发新闻

Gajim 1.4 预览:工作区

Gajim 开发新闻

Gajim 团队在过去几个月里一直在努力准备下一个 v1.4 版本。即将发布的版本带来了重大的界面 redesign。在这篇文章中,我们解释了新界面的工作原理以及在发布之前仍需决定或实施的内容。

当然,您的反馈很重要!没有任何界面可以让每个人都满意,因此请对这篇文章做出反应,告诉我们这一变化对您产生的积极和消极影响,以及您在发布之前使其更好的想法。

这篇博客文章部分基于 Gajim 1.4 UI/UX 预览,由 Gajim 的现任维护者 lovetox 提供。因此,如果您更喜欢视频格式,请点击该 YouTube 链接或 使用您最喜欢的 Invidious 实例 以轻量级、隐私友好的客户端观看。该演示是 XMPP 办公时间 计划的一部分,您可以在其中找到有关 Jabber/XMPP 生态系统的其它有趣演示,或提出自己的演示!

单窗口应用程序

Gajim 新版本的主要变化是,在当前实现中,它成为了一个单窗口应用程序。我们已经习惯于在过去十多年中为联系人列表(名册)和聊天使用单独的窗口。这种用户界面模式在 2000 年代初的即时通讯软件中很常见,例如 MSNICQ

在即将发布的版本中,我们将 Gajim 变成一个单窗口应用程序,所有功能始终触手可及。这个变化受到更现代的消息应用程序的启发,例如ElementDiscordMattermost(以及其它)。目前的样子如下:

Gajim的新主窗口

Gajim的新主窗口

一些人对这个新功能和多窗口模式的移除感到被排斥,然而我们希望在 Gajim 项目中调和用户的需求,正如本博客文章的改进领域部分所解释的那样。

工作区

Gajim v1.4 将引入一个新概念:工作区。之前,所有标签在窗口内被视为平面列表。我们理解将某些活动组织到特定上下文中的需求,但在没有多个窗口的情况下,我们通过工作区来组织这些活动。

工作区是一个客户端组织的群聊和私聊的集合。目前,这是一个非标准的、特定于 Gajim 的功能,但标准化的努力在改进领域部分中有解释。

我们在窗口左侧引入了一个新侧边栏,允许您导航工作区和账号。点击任何工作区后,聊天列表将在侧边栏中显示。这个聊天列表位于工作区列表的右侧,提供当前工作区内聊天(包括群聊和私聊)的导航。当前聚焦的工作区有一个彩色条,指示它是当前上下文。

在工作区列表下方,侧边栏列出了您的账号。点击一个账号将显示一个页面,其中包含联系人列表、您的头像、状态选择器和待处理通知列表。联系人列表中的联系人按_名册_组组织,正如以前版本中的情况一样。

账号上下文

每个账号都有一个特定的颜色,除了其头像外。这个颜色在聊天列表中重复使用,与标签的头像一起显示,以便您可以立即看到在特定聊天中使用的是您的哪个账号。当某个聊天/账号没有定义头像时,将从其显示名称的第一个字符生成一个头像。

Gajim与多个账号

Gajim与多个账号

当在特定工作区收到通知时,工作区图标和聊天中将显示未读消息的数量指示器。

整理你的界面

工作区可以通过拖放手动重新排序在侧边栏中。然而,这两种不同类型的上下文是分开的:工作区出现在列表的顶部,而账号则列在底部。当条目过多以至于无法显示时,工作区/聊天列表将变得可滚动。

聊天也可以从一个工作区移动到另一个工作区,但不能通过拖放:只需右键单击聊天,从那里选择“移动到”菜单即可将选定的聊天移动到请求的工作区。然而,目前无法将聊天复制到另一个工作区;将条目移动到新工作区将从其之前的工作区中移除。

在给定的工作区内,聊天可以被固定。这些聊天将保持在工作区的聊天列表顶部。未固定的聊天按最新活动排序。这样,你就不必无休止地滚动以找到对你重要的聊天。目前,固定的标签无法像工作区一样重新排序,但我们计划实现这一点。

试试看,让我们知道

在即将发布的 Gajim v1.4 版本中有许多重大变化,因此请关注博客以获取更多信息。在此期间,你可以通过运行 Gajim 的源代码并使用几个命令来测试新界面。此功能尚未在夜间版本中发布,因为它仍然不稳定,因此请不要将其用作日常驱动程序。

重要: 请注意,你必须使用gajim -s -p testprofilelaunch.py -s -p testprofile启动 Gajim 以保留当前配置文件。无法迁移回去。

  • git clone https://dev.gajim.org/gajim/gajim && cd gajim将 Gajim 的源代码下载到 gajim 文件夹中并移动到那里
  • git checkout mainwindow 以浏览带有新用户界面的开发分支
  • pip install . 以安装 Gajim 的开发版本及其所有依赖项到你的 Python 环境,然后使用 gajim -s -p testprofile 启动
  • 或者,使用 ./launch.py -s -p testprofile 启动 Gajim,而无需安装,在这种情况下,依赖项应先手动设置(例如 在 Ubuntu 上

欢迎以任何形式提供反馈,无论是在 我们的问题跟踪器 中,还是在我们的社区聊天 gajim@conference.gajim.org 中,还是在你自己的网站上作为博客文章。这个新用户界面的主要跟踪问题是 #10628

改进领域

在本节中,我们解释了当前 工作区 功能实现的不足之处,以及可以做些什么来改进它。我们正在积极寻找这些领域的想法,因此如果你有时间,请花一些时间整理你的想法,帮助我们改进 Gajim。

可访问性

账号上下文依赖于用户提供的颜色。然而,出于可访问性考虑(色盲),我们希望支持其它图形模式而不是颜色。例如,点、虚线和其它在图表和表格中常见的视觉模式。然而,除非我们获得更多贡献,否则这个功能不太可能在 v1.4 中发布。

国际化

主窗口的重新设计尚未以特殊方式支持从右到左(RTL)语言。在所有情况下,导航侧边栏将显示在屏幕的左侧。

用户界面自定义

一些用户已经对放弃 Gajim 中多个窗口的支持表示担忧。然而,从技术上讲,没有障碍阻止我们在新的用户界面中重新实现它。这“只是”需要大量的艰苦工作。

例如,也许我们可以有一种模式,每个账号都有自己的窗口,可以单独移动?或者将主窗口中的一个空间聚焦到自己的窗口中?在你最喜欢的桌面环境中使用 虚拟桌面(有时称为工作区,真是巧合)时,这将非常有用。

此外,我们可以探索在多个轴上支持多个侧边栏,这样您就可以决定将您的 账号列表 放置在哪里,并将您的 工作区列表 分为顶部和底部侧边栏。

只有您的想象力和对 Gajim 项目的贡献才是我们能够提供的体验的限制,但在 v1.4 版本发布之前,深度 UI 自定义的实现可能性非常小。我们是一个志愿者运营的项目,无法花时间满足每一个需求,尽管欢迎任何贡献。

更多工作区组织

目前,聊天列表 中的固定标签无法像 工作区列表 中的工作区那样重新排序。这对您有用吗?

此外,Gajim 的新工作区 UI 目前具有类似 Mattermost 的 2 级表示,其中任何聊天只有一个祖先工作区。账号名册是一个例外,因为它具有第 3 级嵌套,以适应名册组,其中每个条目都是一个组的一部分,而该组又是账号工作区上下文的一部分。也许工作区可以从这种方法中受益,以表示类似 Discord/Element 界面的 3 级层次结构。

此外,聊天目前只能出现在一个工作区中,以保持简单。这是一个合理的假设,只要工作区由单个用户管理以满足他们的需求,但在与其他用户共享工作区的情况下,这种假设就不太适用,因为聊天可能会在工作区树中出现多次。

标准化和互操作性

如前所述,我们正在考虑如何在服务器端表示我们的新工作区功能,以便其它客户端可以使用,甚至可能在用户之间共享。

与多个用户共享工作区,类似于 Matrix 的“空间”或 Discord 的“服务器”,对于在线社区管理多个频道可能非常有用,例如设置空间范围的权限。它还可以使您订阅由您的联系人维护的公共工作区,其中包含关于特定主题的一系列第三方群聊。

虽然在 XMPP 生态系统中尚未有关于这种层次化聊天组织的规范,但去年冬天有一个XMPP 在线冲刺,研究 Discord 的用户体验,以便为 Jabber/XMPP 生态系统带来好处。

最近,一些人开始收集应该导致规范的想法。有一个正在进行中的文档(一个协作实时编辑器),任何人都可以编辑以提供反馈,并且已经建立了一个spaces@joinjabber.org群聊,以跨项目的方式讨论这个问题。即使您对 Jabber/XMPP 生态系统不熟悉,您的想法和贡献也非常欢迎。关于如何使新规范与其它去中心化网络互操作的反馈也非常欢迎。

Gajim