原链接由我做了校验,修正了部分表达。
大家好!我叫 蒋嵩林,是一名来自兰州大学的大三学生,主修计算机科学与技术专业。这是我第一次和 openSUSE 项目的导师们一起参与到 谷歌编程之夏中 。在这篇博客中,我将向你介绍我目前的工作和经历。
关于 IME 和 IBus
对于不熟悉非拉丁语系语言的人来说,IME(输入法)可能是一个全新的概念,因为他们在打字的时候会发现键盘上存在所有的字符。然而,对于亚洲的大多数人来说,如果没有 IME,用他们的语言打字将是不可能的。例如,如果你想打中文,总共有几千个 汉字,而键盘太小,无法将它们全部放在上面。但在 IME 的帮助下,你可以选择使用拼音或其他类型的 输入模式,如五笔。这样,一个标准的美国键盘就足以输入所有的汉字了。
IBus 是一个输入法框架,用于开发提供统一的用户界面的输入法。很多流行的输入法都是基于 IBus 的,而且 IBus 也是 GNOME 上默认的输入法框架。即使你不使用非拉丁语系的语言,在安装了 IBus 输入法助推器( Ibus-typing-booster) 之后,你也会发现 IBus 很有用。
我的项目:IBus 定制
由于 IBus 的前端是基于 GTK 的,而 GNOME 用它的 GJS 版本取代了这个前端,使其与 GNOME 更加统一,目前,IBus 的主题在 GNOME 中遵循全局 GNOME-Shell 主题,在其他桌面环境中遵循全局 GTK 主题,并且 IBus 在 GNOME 中缺乏自定义,因为 ibus-setup
(IBus 首选项设置命令)由于前面的原因在 GNOME 上无法工作。
因此,我的项目旨在使 IBus 主题与当前的 GNOME-Shell 主题 和 GTK 主题 分开,以便用户可以用其他 GNOME-Shell 主题和 GTK 主题来定制它。此外,在 GNOME 上做一个扩展,提供对 IBus 的外观、行为、系统托盘和输入源指示器的完全定制。
该项目分为三个部分:自定义 IBus 、IBus 主题工具 以及 IBus 主题中心。这是使用这些项目的 用户指南 ,我将在下面的部分逐一向大家介绍这些项目,同时也介绍我创建这些项目的经验。
用户需要什么?
由于使用输入法是许多非拉丁语系的人在使用电脑时不可分割的、最重要的一部分,所以最重要的是提供足够的定制化,以适应用户的需求。另外,由于每个操作系统都提供了自己的一套 IME,所以 IME 的配置方式应该让用户觉得熟悉,而不改变目前的用户习惯,这样可以减少用户刚从其他平台转换过来时的学习成本。
自定义 IBus
自定义 IBus 是 GNOME 的一个扩展,为 IBus 提供全面的自定义功能。这个扩展所支持的功能列表可以在 这里 找到。
这个项目最初是从 ibus-tweaker 导入的,因为我需要从无到有来做这个项目,而在我申请 GSoC 之前,我没有创建 GNOME Shell 扩展的经验。
Ibus-tweaker 是一个很好的入门项目。通过学习和重用它的部分代码,我理解了 IBus GJS 前端 背后的机制,并进一步参考了 GJS 文档,我最终成功地创建了一个全新的扩展,提供了更多的功能。
你可以从 这里 看到这个项目的演变过程。
IBus 主题工具
IBus 主题工具专门用于从 GNOME Shell 主题中提取 IBus 相关的样式(样式类名称以 candidate-
开头,另外应用了一些补丁,这样它就可以按照定义显示)到样式表中,可以在 GNOME 的自定义 IBus 扩展中使用。它还支持在非 GNOME 桌面中直接用可用的 GTK 主题改变 IBus 主题。
该工具是用 Python 编码的,使用 tinycss2 作为 GNOME Shell 主题样式表的解析器。
IBus 主题集合
IBus 主题集合是可以被自定义 IBus 扩展使用的主题集合。
目前,它有 Microsoft IME Themes。
如果你已经为 IBus 设计了一个主题,我欢迎你在这里 贡献你的 IBus 主题!
最后……
我希望你喜欢这篇文章。如果你认为我的项目对你有很大帮助,别忘了与你的朋友分享这篇文章,这样每个人都能从我的 GSoC 2021 项目中获得方便。
原文: Google Summer of Code 2021: IBus Customize ,作者:蒋嵩林