LWN:Sxmo 基于文本的移动用户界面!

关注了就能看到更多这么棒的文章哦~

Sxmo: a text-centric mobile user interface

July 10, 2024

This article was contributed by Koen Vervloesem
Gemini-1.5-flash translation
https://lwn.net/Articles/981320/

Sxmo (意为“Simple X Mobile”),在其网站上被描述为“一款专为 Linux 移动设备打造的极简环境”,它提供了一个由手机硬件按钮控制的菜单驱动的操作界面。Sxmo 可以让用户从文本编辑器发送 SMS 消息,并且完全可以通过 shell 脚本进行自定义。这种独特的移动用户界面与主流做法截然不同,但它确实可行。

e0eb7228861fd726c8fe0242f36b6ed7.png

虽然移动用户界面,如 Phosh、KDE Plasma Mobile 和 Lomiri 之间存在一些差异,但它们都根植于相同的理念。它们以触控式交互为中心,并通过图标显示应用程序,这种方法受到了传统桌面用户界面中“点击即用”操作方式的影响。然而,在桌面环境中,以键盘输入和遵循 Unix 哲学的终端程序为中心的文本驱动方法,在高级用户中仍然很受欢迎。Sxmo 的目标是为移动设备提供这样的环境。

Sxmo 有两种版本:Xorg 和 Wayland。Xorg 版本基于来自 suckless 项目的几个工具的 分支,该项目“专注于追求简洁、清晰和节俭”。其中包括动态窗口管理器 dwm、菜单系统 dmenu 和简单的终端模拟器 st。Wayland 版本使用了一些受其 Xorg 对等工具启发的工具,包括平铺式 Wayland 合成器 Sway、菜单系统 bemenu 和终端模拟器 foot。实际上,这两个版本的功能类似,在配置方面存在一些细微的底层差异。

Sxmo 在 postmarketOS Linux 移动设备发行版(之前 在这里介绍过)中有最佳支持。在该发行版的 下载 页面上可以找到针对各种设备的带有 Sxmo 的预构建镜像。或者可以通过运行 pmbootstrap init 并选择 sxmo-de-sway (用于 Wayland 版本)或 sxmo-de-dwm (用于 Xorg 版本)作为界面来生成自定义镜像。我通过安装一个自定义构建的 postmarketOS 镜像来测试了 Sxmo 的 Wayland 版本。

菜单驱动的界面

由于 Sxmo 的交互方式与其他移动界面显著不同,因此其 用户指南 是必须要读一下的,尤其是要了解基于手机硬件按钮操作。大多数手机在侧面有三个按钮:音量上、音量下和电源。对于每个按钮,Sxmo 会根据您单击一次、两次或三次来触发操作;长按可以用作三次单击的替代操作。这样,用户只需用拇指就可以通过硬件按钮启动九种不同的操作。触控式输入也能正常工作。

Sxmo 的主屏幕只是一个带有当前日期和时间的背景图像,顶部有一个状态栏,其中包含一个工作区编号(一开始只有一个),以及旁边用于移动网络、Wi-Fi 连接、电池、音量、锁定状态和时间的状态图标。当用户单击音量上按钮或从屏幕顶部向下滑动时,全局系统菜单会打开。在菜单中,硬件按钮的行为会发生变化:音量上按钮导航到上一项,音量下按钮导航到下一项。电源按钮选择当前项目。在触控屏上点击某项也会选择它。

全局系统菜单提供对各种脚本和应用程序的访问。几个菜单项在选择后会在终端窗口中打开一个应用程序。例如,扫描 Wi-Fi 网络会启动 nmcli d wifi list 命令。配置手机(在“配置”子菜单下)可以设置亮度,启用或禁用触控、手势和蓝牙,以及升级软件包,等等。

SMS 消息和通话

312692a05497925b343d329100c39d6b.png

发送 SMS 消息需要先输入电话号码或从联系人列表中选择一个人。然后会打开类似 Vim 的文本编辑器 vis 来撰写消息。用户退出编辑器并确认后,消息会被发送。一条新收到的 SMS 消息会短暂地显示在主屏幕上;它也可以稍后从全局系统菜单中阅读,在那里它被包含在“通知”菜单项和“文本”子菜单中。收到新短信后,手机的 LED 会发出绿光,手机也会短暂地触发一次震动。

通话也使用类似的文本驱动流程。要拨打新电话,请在全局系统菜单中打开“拨号器”子菜单,然后输入电话号码或从联系人列表中选择一个条目。选择号码后,Sxmo 会开始拨号,一旦电话接通,就会弹出一个菜单,提供挂断电话、管理音频路由等选项。来电会触发手机的绿灯和振动马达,并弹出一个菜单,让用户可以接听或挂断电话。

移动终端

当没有菜单处于活动状态时,在音量下按钮上轻点一次会在屏幕底部显示或隐藏虚拟键盘。此操作也可以通过从屏幕底部向上和向下滑动来完成。在音量上按钮上轻点一次会为当前处于焦点的支持应用程序的窗口启动特定于应用程序的上下文菜单。三次轻点或按住电源按钮会打开终端模拟器。三次轻点(或按住)音量下按钮会终止当前处于焦点的窗口。

虽然在主要基于触控的设备上使用终端应用程序可能看起来并不合适,但 Sxmo 定义了一些单指滑动手势来简化操作。例如,从左到右沿底部边缘滑动会向应用程序发送一个回车键。同样,从右到左沿底部滑动会发送退格键。沿右侧边缘从上到下滑动会发送一个向下箭头键,而沿右侧边缘从下到上滑动会发送一个向上箭头键。沿左侧边缘从右到左滑动会发送一个向左箭头键,而沿右侧边缘从左到右滑动会发送一个向右箭头键。这些手势允许用户滚动 shell 历史记录和当前命令,而无需打开虚拟键盘并占用宝贵的屏幕空间。但是,虚拟键盘不支持滑动输入。

纯文本文件和 shell 脚本

Sxmo 的配置完全基于纯文本文件。例如,联系人详细信息存储在一个制表符分隔的 ~/ .config/sxmo/contacts.tsv 文件中。该文件有两列:第一列是电话号码,第二列是联系人姓名。可以通过手动编辑文件或从全局系统菜单中的“联系人”条目添加联系人。同样, ~/ .config/sxmo/block.tsv 文件列出了用户想要屏蔽的电话号码和对应的联系人姓名。

Sxmo 的行为定义在 ~/ .config/sxmo/profile 文件中,以及数十个钩子中,这些钩子是具有特定名称的 shell 脚本。例如,当手机接到来电时, /usr/share/sxmo/default_hooks/sxmo_hook_ring.sh 中的 shell 脚本会执行,第一个参数( $1 )设置为联系人姓名或来电号码。如果用户想要更改默认行为,可以通过 ~/ .config/sxmo/hooks/sxmo_hook_ring.sh 文件来覆盖该脚本。用户脚本也可以添加到全局系统菜单中,以实现自定义功能。postmarketOS wiki 上有一个 技巧和窍门 页面,其中包含一些有用的建议和配置片段。对于更深入的内部探索,Sxmo 的 系统指南 提供了一个极佳的信息来源。

为 Sxmo 做出贡献

Sxmo 的大部分核心功能都是基于 shell 脚本构建的。虽然这允许完全自定义,但它需要一些 Linux 和 shell 脚本知识。开发人员积极邀请 贡献,特别是针对 设备配置文件,这些配置文件是 Sxmo 在早期加载的 shell 脚本,用于设置一些属性,以确保设备能与 Sxmo 良好地协同工作。

Sxmo 最初是为 PinePhone 设计的。与此同时,已经添加了对其他几个设备的支持,包括 Librem 5 和 Fairphone 4,以及带有物理键盘的 15 年前的诺基亚 N900 和 Kobo Clara HD 电子阅读器。试图在不支持的设备上运行 Sxmo 的用户可以在上面链接的 sxmo-utils 存储库中找到一些创建设备配置文件的说明。结果是一个 shell 脚本,它为触控设备、显示输出、屏幕缩放、按钮等导出一些环境变量。

在过去的两年里,Sxmo 进行了八次 发布,在过去的一年里发布速度有所放缓。最近一次是 Sxmo 1.16.1,发布于 6 月 3 日,这是一个小版本更新。它在挂起功能的控制方面有一些细微的改进,以及 PINE64 的 PineTab 2 平板电脑和小米的 Redmi Note 4 手机的初始设备配置文件。有一个 问题列表 用于跟踪错误和功能改进,但看起来并不活跃。sxmo-devel 邮件列表定期收到针对该项目各种存储库的补丁。

由于 Sxmo 专注于提供一个极简环境,因此该项目不打算切换到 systemd,正如 postmarketOS 所做的那样 ,这也并不奇怪。在关于切换的常见问题解答中,postmarketOS 开发人员明确表示 Sxmo 将继续使用 OpenRC 作为其 init 系统。

结论

Sxmo 甚至比 postmarketOS 更不适合大多数用户。但是,对于那些想要在手机上拥有轻量级且完全可脚本化的界面的技术娴熟的资深 Linux 用户来说,Sxmo 提供了一条与传统移动用户界面不同的道路。需要一些时间来适应使用硬件按钮来控制手机的基于菜单的界面,但一段时间后,它运行得非常好。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

43756ef16adf0b9442f224b97414f677.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值