在成功部署 Matrix 服务器之后,读者们通常已经掌握了服务器的基础知识,包括拥有一个运行中的服务器实例和相应的域名。如果具备服务器管理和编程基础,那么搭建一个 Matrix 服务器本身已经是一个复杂的成就。然而,仅仅拥有一个服务器是不够的,还需要一个客户端来与之交互。本篇教程的目的,就是为那些追求极致体验的极客们,介绍一款名为 iamb 的 Matrix 客户端。iamb 是一款独特的 TUI(Text User Interface)客户端,它借鉴了类似 Vim 的操作模式。我们选择 iamb,并非是因为所有 Matrix 客户端都采用这种纯文本界面,而是基于一种个人偏好:我们认为市面上大多数图形化客户端在界面设计上往往不够美观。

既然我们自诩为极客,为何不选择一个纯粹、高效、不被花哨图形所干扰的纯文本工具呢?普通的聊天客户端,其核心功能如好友、群组、房间等概念,对熟悉现代社交软件的用户来说,早已是基础常识,无需冗长地重复讲解。iamb 最大的魅力,正是它成功地将用户从那些视觉上令人感到“丑陋”的图形化界面中解救出来。它提供了一种极简而高效的交互方式,完全摒弃了传统 GUI 客户端的视觉干扰。更值得一提的是,iamb 具有出色的跨平台能力,这意味着无论用户是在 Windows、Linux 还是 macOS 环境下运行它,都能获得一致且稳定的体验。与那些提供图形化引导配置的客户端不同,iamb 是一款纯粹的 TUI 工具。

它不会提供任何图形界面来指导用户进行配置,而是要求用户自行编写一套配置。这种设计哲学,要求用户具备一定的技术背景,能够手动创建和维护配置文件。对于不熟悉命令行和配置文件的用户来说,这可能是一个挑战,但对于追求底层控制和极简主义的极客而言,这正是其最大的吸引力所在。iamb 的配置过程是完全手动化的,这与现代软件的“一键安装”模式形成了鲜明的对比。用户需要参考 iamb 官方提供的详细教程,了解各个操作系统下配置文件应该放置的位置。配置的核心在于 TOML 格式的文件结构。例如,在定义用户身份时,我们会使用 user_id 字段,格式通常为 @username:example.com

1
2
[profiles.user]
user_id = "@user2:example.com"

这个 user_id 必须准确填写用户的身份标识。值得注意的是,在配置文件中,我们并没有填写用户的密码。这是因为密码属于登录凭证,它是在用户成功启动客户端并进行登录操作时才会被要求输入的。iamb 允许用户创建多套配置,这在需要切换不同身份或角色时非常有用。通过设置 default_profile 字段,可以指定一个默认使用的配置,例如 admin。如果需要切换身份,用户可以手动执行 iamb -P admin 这样的命令来切换到名为 admin 的配置,从而实现多账号的无缝切换,这一点对管理 Matrix 服务器而又不想在管理员账户和普通账户反复横跳的 Matrix 主十分有用:

1
2
3
4
5
6
7
default_profile = "user"

[profiles.admin]
user_id = "@user1:example.com"

[profiles.user]
user_id = "@user2:example.com"

首次使用 iamb 登录一个特定的用户配置时,客户端会启动一个交互式流程。系统会询问用户是选择输入登录密码还是进行新用户注册。在绝大多数情况下,用户会选择输入密码(通常对应选项 p),然后回车。紧接着,客户端会弹出一个对话提示,要求用户输入当时在 Matrix 服务器初始化时设置的密码。输入密码并回车后,即完成了登录过程。iamb 的操作逻辑借鉴了 Vim 的思维模式,用户可以在客户端中使用一系列键盘快捷键来执行命令。例如,按下 Shift 键和冒号键(:)可以触发一个命令模式,而按 i 键则代表进入输入模式。在使用这些快捷键时,有一个关键的注意事项:必须确保客户端处于英文输入模式,否则快捷键将无法正常生效。

这种基于文本和快捷键的交互方式,为用户提供了一种高度集中和高效的控制感。iamb 的强大之处体现在其简洁而强大的命令集上。这些命令允许用户在纯文本界面中完成复杂的社交互动。例如,要查看当前可用的房间列表或好友列表,用户只需输入 :rooms 即可。如果需要加入某个用户会话或进入一个房间,则可以使用 :join 命令,后跟目标标识。目标标识可以是 @ 开头的用户名,用于建立一个用户会话,也可以是 # 开头的房间名称,用于加入一个群组。创建新房间的操作则更为精细,例如使用 :create ++alias=name ++public 这样的命令。如果未加上 ++public 标识,新创建的房间将默认为私密房间,无法被其他用户主动搜索。

此外,iamb 也支持邀请机制。用户可以使用 :invite send @username:example.com 将特定用户拉入私密群组。当被邀请的用户在 :rooms 列表中看到该房间时,他们需要确认是否加入,通常通过输入 :invite accept:invite reject 来做出选择。这些基础而强大的命令,构成了 iamb 客户端高效社交的核心功能。本文参考文档来自 iamb 官网文档,你可以查看该官方网站了解如何在自己的系统上安装 iamb,以及自己系统上的配置文件位置、注意事项以及更加深入的用法。值得注意的是,目前 iamb 不支持主动将创建好的房间公开或者加密,因此请在创建房间的时候经过脑子思考。