开发者最新消息
GNOME 46 为使用 GNOME 平台的用户带来了大量新功能和增强功能。这些包括 GNOME 开发工具的更新、改进的库以及更新的语言绑定。
我们鼓励您探索 GNOME 开发者网站,以全面了解可用的资源。开始构建并贡献下一代 GNOME 体验吧!
GTK
GNOME 46 的发布与最新 GTK 版本 4.14 协同进行,后者包含一些重要的更改。
新的默认渲染器
此最新的 GTK 版本具有新的默认渲染器,名为 NGL。开发者会注意到使用新的渲染器进行了一些改进,包括增强的抗锯齿、更好的分数缩放处理、更强大的渐变支持以及使用 Dmabufs 改进的性能。
NGL 是目前正在开发的两个新的 GTK 渲染器之一,标志着 GTK 应用程序渲染未来迈出了重要一步。对于那些想了解更多信息的人,GTK 开发博客上有两篇文章:GTK 的新渲染器 和 关于分数刻度、字体和字体提示。
可访问性改进
GTK 4.14 包含一组重要的可访问性改进。
- 可访问文本元素:新的 AccessibleText 接口 提供了将可访问性信息添加到诸如文本编辑器和终端模拟器之类的窗口小部件的能力。
- 应用内通知:使用应用内通知发送消息的应用程序,例如 libadwaita 中的 AdwToast,现在可以使用 gtk_accessible_announce() 向辅助技术宣布这些通知。
- 桥接可访问性树:诸如 WebKit 之类的具有自身可访问性树的库现在可以将它们与 GTK 提供的可访问性树桥接起来。
更多信息可以在 GTK 开发博客 上找到。
Libadwaita
libadwaita 1.5 的主要新增功能是新的对话框(AdwDialog),它们显示在父窗口内,而不是作为自己的窗口,并且具有自适应性,在移动设备上显示为底部工作表。现有基于窗口的小部件的端口可用(AdwAlertDialog、AdwPreferencesDialog、AdwAboutDialog)。旧的小部件计划在下一个周期中被弃用。
除了新的对话框之外,libadwaita 1.5 还包含一组新的 API
| 类 | 新增方法/属性 |
|---|---|
| EntryRow | :text-length |
| BreakpointBin | remove_breakpoint() |
| SwipeTracker | :allow-window-handle |
一篇 详细的博客文章 可用。
WebKitGTK
以下 Web 功能现在可以在沙盒化的 Flatpak 应用程序中运行
- Gamepad API(当前需要
--device=input权限) - Geolocation API
- 从系统拖放文件到
WebKit.WebView
WebView 和 GTK4 的可访问性树现在也已连接。
其他 GNOME 平台增强功能
GNOME 46 针对 GNOME 平台的其他改进包括
- GLib:现在生成自己的内省数据,从而加快构建时间,并用于发布 在线 API 文档。
- 平台/SDK:最新版本的 GNOME Flatpak SDK 和运行时包含 WebP 加载器,为应用程序带来内置的 WebP 图像格式支持。
- Tracker:已添加对带有语言标签的字符串的 API 支持,新增了 tracker_sparql_statement_bind_langstring() 和 tracker_sparql_cursor_get_langstring()。数据库完整性检查也得到了增强。
- libmanette:游戏手柄枚举和监控现在可以在 Flatpak 应用程序中正常工作。
增强的开发者应用程序
GNOME 46 包含对 GNOME 开发者应用程序的许多增强功能。
- VTE:所有 GNOME 终端应用程序(GNOME 终端、Console、Ptyxis)都可以看到 VTE 的显著性能改进。通过优化内部流程,常见任务的实际时间减少了 40%。计划进行进一步的优化,利用本机 GTK 4 绘图原语,旨在专门减少 GTK 4 系统上的绘制延迟,而不会影响 GTK 3 性能。
- 系统监视器:已移植到 GTK 4,具有现代的外观和感觉。还添加了一个磁盘资源使用情况图表。
- 新的第三方应用程序:在 GNOME 46 开发周期中发布了两个新的有趣的开发者应用程序。第一个名为 Ptyxis,是一个新的终端应用程序,专为容器化用例而设计和构建(阅读博客文章)。第二个是 Biblioteca,一个全新的文档应用程序,提供离线访问并具有出色的用户界面(在 Flathub 上查找)。
Workbench
Workbench 46 使得尝试、学习和探索 GNOME 应用程序开发变得容易,并且是尝试新的 GNOME 46 开发者功能(例如 libadwaita 的新样式对话框)的好方法(查看“Library”中的“Dialog”和“Message Dialogs”条目)。
Workbench 45 和 46 之间更改的亮点包括
- 添加了 Python 支持,带有格式化程序、诊断和 90 个可用演示
- Blueprint 和 Vala 代码现在在运行时自动格式化
- Library 显示每个演示中可用的语言
- 文档已移动到独立应用程序 - Biblioteca
- 大大减少了下载和安装大小
- “Extensions”窗口,其中包含有关启用 Vala 和 Rust 支持的说明
- 显示 Rust 的内联诊断
- 演示已更新为 GNOME 46
- 4 个新演示,总共 106 个:“CSS Gradients”、“Context Menu”、“HTTP Server”、“Snapshot”
- 增加了语言覆盖范围
- 90 个演示在 Python 中可用
- 10 个新的演示在 Rust 中可用,总共 45 个
- 27 个新的演示在 Vala 中可用,总共 59 个
分发说明
计划包含 GNOME 46 的发行版应注意以下更改
- Mutter 现在具有减少的依赖足迹。有关更多详细信息,请参阅 博客文章。
- GLib 现在生成自己的内省数据,而不是将其推迟给 gobject-introspection。此更改在 GLib 和 gobject-introspection 之间引入了循环依赖关系,可以通过两阶段构建来解决;有关更多信息,请参阅 Discourse 上的主题。
- gnome-software 现在具有 AppStream 合并功能,允许从不同来源合并应用程序元数据,这对于修改浏览体验的呈现方式很有用。
- librsvg 不再使用 gdk-pixbuf 加载图像,但仍然提供 gdk-pixbuf 加载器用于 SVG 图像。如果遇到问题,例如不同的性能或内存使用情况或不受支持的图像变体,请在 librsvg 错误跟踪器中提交错误。
- gnome-keyring 已弃用 ssh 组件。现在建议使用 gcr-ssh-agent 而不是 gnome-keyring ssh。