#118 高性能终端
2023年10月20日 • 10 条笔记 • 由 Felix 整理本周(10月13日至10月20日)GNOME 项目的最新进展。
GNOME 核心应用和库
hergertme 报告
VTE,为基于 GTK 的应用程序提供终端模拟器的库,获得了一系列性能改进和新的绘制抽象。
VTE 对回滚缓冲区进行加密,并使用 zlib 减少需要加密的数据量。现在使用 LZ4 代替 zlib,显著加快了该过程。
对字符和属性数组管理方式的性能改进,加快了对双向文本的支持。此外,许多小的字符串操作已优化为使用 GLib 中更快的代码路径。许多内存分配已被完全消除。
许多小的改进相结合,提高了编译器内联重要代码路径的能力。VTE 中的一些代码是 C,一些是 C++,因此完成了删除围绕 C++ 代码的各种 C 包装器。PTY 和 UTF-8 解析器略有调整,允许跳过大量连续的纯文本,而无需通过任一解析器进行处理。
添加了一种新的绘制抽象,允许 GTK 3 支持继续使用 Cairo,而 GTK 4 现在使用带有 GtkSnapshot 的本机渲染节点。文本现在以类似于我们在 GtkTextView 中所做的工作方式进行渲染,它从 GPU 上的纹理图集中渲染字形,同时还支持彩色字体和表情符号,而无需更改着色器程序。
风格化的行绘制是终端模拟器提供的另一个重要功能。VTE 现在利用了 GTK 的 OpenGL 渲染器中最近添加的一个快速路径,该路径可以使用颜色渲染节点渲染 alpha 通道纹理蒙版。这与 GTK 内部渲染文本的方式非常相似,并通过避免额外的离屏帧缓冲区来加快速度。
现在 VTE 使用本机渲染节点,GTK 可以自动计算在将帧提交给合成器时损坏区域。
我仍然预计将在帧调度方面进行更多工作,以便我们可以删除可靠访问 vblank 信息之前的 ~40fps 限制。
Tracker ↗
一个文件系统索引器、元数据存储系统和搜索工具。
Tracker 提取元数据提取工具近几周的 SECCOMP 沙箱得到了改进。感谢 Carlos Garnacho 花费大量精力收紧解析库允许使用的系统调用的列表,并感谢各种贡献者在各种架构 + 操作系统组合上测试和审查更改。
GNOME Circle 应用和库
ashpd ↗
围绕 freedesktop 门户的 Rust 包装器。
ASHPD Demo 的 0.4.1 版本添加了对动态启动器门户的支持
第三方项目
kaii 宣布
overskride,蓝牙应用程序刚刚发布了第一个主要版本!
overskride 是一款简单直接的应用程序,旨在比以往任何时候都更容易地与蓝牙设备交互。主要功能包括
- 发送/接收文件
- 蓝牙身份验证代理
- 多适配器支持
- ……还有更多
Emmanuele Bassi 发布公告
xdg-desktop-portal-gtk,GTK 门户实现,发布了一个新版本!1.15.0 版本带来了各种更改
- Meson 替换 Autotools 作为构建系统
- 依赖 GNOME 私有接口的门户实现,例如背景、屏幕截图/屏幕录像和远程桌面,已被删除以删除依赖项
- 来自 gsettings-desktop-schemas 的日历设置现在包含在设置门户实现中。版本策略也已更改,奇数的小版本号不再特殊。有关更多信息,您可以阅读 1.15.0 版本页面。
填字游戏 ↗
一个填字游戏和创建器。
jrb 宣布
GNOME 填字游戏编辑器的一个快速开发更新。我添加了更好的填字游戏网格选择,并用它来添加一个我长期想要的功能:线索片段高亮显示。
激励这个想法的是,密码线索通常会将答案分解成单独解决的部分。在视频示例中,我们通过短语 “SATING DESTRUCTIVE” 向单词 GIANTS 在答案中提供提示。在这个例子中,它是 “destructive”(即字母异位词)版本的 “sating”。
对于此功能的初始实现,我只是显示所选区域的字母异位词,但这为其他方法提供了一个沃土。我们还计划包括无头/无尾词(例如,CAR ⇒ CART, CARD, SCAR, …)或标出单词反转(BRAG ⇒ GARB)。我也希望添加一个包含定义和同义词的词典。我还可以想象添加常见的文字游戏指示器(F, FF ⇒ LOUD, 等)。
这项工作基于 Pratham Gupta 在 GSoC 项目中向单词列表中添加字母异位词查找表。
Shell 扩展
glerro 宣布
Debian Linux Updates Indicator 已更新至 Gnome Shell45。Debian Linux 发行版更新指示器。
检查更新并显示以下软件包状态(如 Synaptic 中所示)
- 可用更新。
- 仓库中的新软件包。
- 本地/过时的软件包。
- 残留的配置文件。
- 可自动删除的软件包。
Auto Activities ↗
当没有窗口时显示活动概览,或者当有新窗口时隐藏它。
在这个新版本中,Auto Activities v19 已移植到 ESM,使其与 GNOME Shell 45 兼容。除了次要更改外,它现在使用新的 Libadwaita 小部件,例如 AdwSpinRow。
在 extensions.gnome.org 上查看
活动
#GNOMEAsia2023 的注册现已开放!今年的峰会将于 12 月 1 日至 3 日在尼泊尔加德满都举行,并在线上进行。了解更多信息并立即注册:https://foundation.gnome.org/2023/10/20/gnomeasia-2023-registration-open/
GNOME 基金会
Rosanna 报道
GNOME 基金会本周有很多事情发生。最大的新闻是我们宣布了新的执行董事 Holly Million。虽然她才上任一周多,但她管理非营利组织的经验已经显现出来。我们很幸运能有她加入!
我们邀请社区在 11 月 14 日 18:00 UTC 与她见面交流。请在 https://events.gnome.org/e/HollyMillion 注册,来听听 Holly 的想法和对基金会的计划。如果您对 Holly 有任何问题,请在 11 月 7 日之前提交给本次会议!详情请参见上面的链接。
我本周的工作是大量的虚拟文书工作,以及处理账目。我昨天利用了一次意外的停电,整理了桌子上的一些非虚拟文书工作。此外,行为准则委员会的工作仍在进行中,我们本周开会处理未决问题并讨论了可能的改进领域。
本周就到此为止!
下周再见,请务必访问 #thisweek:gnome.org,分享您自己的项目更新!


