GNOME 3.12 引入大量针对 GNOME 开发者的新功能和改进。
3.12 中 GTK+ 工具箱有三个新的界面构件:
GtkActionBar:一个新的容器,其有中心的子构件,比如 GtkHeaderBar。其可用于构件底部已选择内容的展示动作。
GtkPopover: 新的部件可以用于过渡效果视图,作为菜单或者对话框的替换。
GtkFlowBox: 子对象处于回流方格的容器,可以水平或竖直定向。
GNOME 3.12 包含一个新的通知 API:包含在 GIO 被称为 GNotification,此新的 API 替换 libnotify,所以开发者不再需要链接到 libnotify。(GNotification 可以回退到 org.freedesktop.Notifications D-Bus 接口。)
新的 API 整洁地集成到了 GTK+,也可与 GApplication 和 GAction 集成使用。它提供很多 libnotify 的功能以及一些新的功能,比如在程序退出后通知继续存在的能力。也可以在通知被用户激活时重启应用。
关于如何使用 GNotification API 的更多细节可以在 How Do I 页面找到。
一个新的强大的进程启动 API 也包含在了 3.12 中,称为 GSubprocess。此新的 API 允许 gapplication 命令行工具被用于启动应用。打开应用时可以指定打开文件或触发动作。也可以列出可用的应用和动作,此命令行工具是完全兼容 bash 的。
GApplication 支持命令行,包括方便的 --gapplication-service 选项
3.12 也包含了 GTK+ API 参考文档的大量改进。此文档按照更加符合逻辑的顺序重新组织了。简介部分变得整洁易懂了,构件截图也得到了更新。
文档的撰写也在很多库中得到了改进。GTK+, GLib, GDK-Pixbuf 和 Clutter 以及转换到了使用 Markdown。这样使外观更加简洁,源码也更容易维护。
最终,格式改进对所有的文档都完成了,这使其更加吸引人、更加易读。
3.12 中朝着完全的 Wayland 集成迈出了巨大的一步,这包括创建新的 libinput 库和新的登录和会话管理功能。对 Wayland 有兴趣的开发者或者有兴趣在 Wayland 环境测试这些软件的用户可用尝试最新的开发成果。
要在 Wayland 上运行 gnome-shell,请在终端中执行如下命令:
gnome-session --session=gnome-wayland
也可以通过指定 GDK_BACKEND 在 Wayland 中运行单个应用。运行如下命令(请将 application-name 替换为应用可执行文件的名字):
GDK_BACKEND=wayland application-name
如果一个应用在 Wayland 上运行失败,其将尝试回退到 X11。
关于 Wayland 上 GNOME 的更进一步的细节可以在 GNOME Wayland wiki page 看到。
Tracker - 搜索引擎,搜索工具和元数据存储系统在 3.12 中有一长列的改进:
从 Tracker 代码创建了新的名为 libmediaart 的库,以处理艺术效果相关的多媒体文件。libmediaart 可以缓存存储在媒体文件中的艺术效果,并且为艺术家、专辑和媒体项提供了查看艺术和减少缓存大小的一致方式,
另外一个新库,称为 libtracker-control,已经添加用以管理搜索引擎。
新的被动提取通过监听资源改变提供了特定元数据的提取 (比如图片方向) 。以前,插入一个资源的任何信息一步完成。这个功能意味着新的文件数据 (例如文件名字,尺寸等等) 被插入,即使具体元数据没有。
现在可以在索引时区分 RDF 的类型了:这可以在特定情形下微调索引。
现在支持了 tracker:normalize() 和 tracker:unaccent() SPARQL 函数。
新的命令行调用 tracker-sparql --tree 将描述数据库本体,这有助于理解类层级结构。
使用 ICU 对元数据进行编码检测
Tracker store 的 GraphUpdated 单事件延时现在可以配置。这个信号是用来通知数据库资源修改的 (例如增加新文件)。之前它总是持续 1 秒。
Grilo 媒体发现框架 现在允许使用 Lua 强大但仍简单的模式匹配能力添加在线媒体源。更多细节,包括示例,可以在 Bastien Nocera 关于此主题的博客 找到。
客户端装饰可以让应用程序窗口从窗口管理器接管功能。这是在上个周期随新的 GtkHeaderBar 构件引入的。从那时起,GtkHeaderBar 已经成熟多了。此构件现在有固定的高,在触摸设备上窗口可以通过拖动顶栏移动。顶栏除了标准关闭按钮外也可以包含应用菜单以及一些窗口控制。
3.12 也改进了 GNOME 的 Python 绑定:
函数的 Python 文档字符串现在显示准确的调用签名,包含参数和返回类型信息。
现在有为尾部函数参数显式的 None 默认值。
回调连接函数显著接受用户数据参数的数量。
新的展示如何在 GTK+ 中从Python 使用 CSS 的示例。
调用 GObject.threads_init 不再需要多线程编程。
此外还有很多内存和性能优化。
在不同的 UNIX 操作系统之间的可移植性也在 3.12 中得到了极大改进。超过 150 个的 FreeBSD 问题得到了报告和修复,编译测试也定期进行。对其他操作系统的的工作也在进行。新的 平台支持政策 也引入到了 GLib。
关于这些特效的更多细节可以在 Ryan Lortie 关于此主题的博客。
3.12 包含的提供给开发者和系统管理员的其他改进:
大部分 GTK+ 容器可绘制背景。
基于模型的菜单可以在特定情况隐藏元素。
GtkBox 像 GtkHeaderBar 一样支持中心化子对象。
在 Clutter 中现在已支持高 DPI 密度显示,使用 GTK+ 和 GNOME 设置守护进程共享的相同设置。
想要评论?发现了一个错误?发现使用说明让人糊涂? 对此页面发送反馈。