Google Summer of Code 2021:IBus 自定义

2021年7月5日 | 江松林 | CC-BY-SA-3.0

Google Summer of Code 2021: IBus Customize

你好!我叫江松林,来自中国兰州大学,计算机科学与技术专业的大二学生。这是我第一次参与Google Summer of Code,与openSUSE 项目的导师们一起工作。在这篇博文中,我将向您介绍我目前的工作和经验。

关于 IME 和 IBus

对于不熟悉非拉丁语系语言的人来说,输入法 (IME)可能是一个全新的概念,因为他们会在打字时发现键盘上存在所有字符。然而,对于亚洲的大多数人来说,如果没有输入法,用他们的语言打字是不可能的。例如,如果你想输入中文,总共有数千个汉字,而键盘太小了,无法全部容纳。但是,借助输入法,你可以选择使用拼音或其他类型的输入方案,如五笔。然后,标准的美国键盘就足以输入所有汉字了。

IBus 是一个用于开发输入法的输入法框架,提供统一的用户界面。许多流行的输入法都是基于 IBus 的,IBus 也是 GNOME 上的默认输入法框架。即使你没有使用非拉丁语系语言,安装了 IBus Typing Booster 后,你可能也会觉得 IBus 有用。

我的项目:IBus 自定义

由于 IBus 的前端基于 GTK,并且 GNOME 用其 GJS 版本替换了该前端,使其与 GNOME 更加统一,目前 IBus 主题遵循 GNOME 中的全局 GNOME-Shell 主题,在其他桌面环境中遵循全局 GTK 主题,并且由于 ibus-setup (IBus 首选项命令) 的原因,IBus 在 GNOME 上缺乏自定义功能。

因此,我的项目旨在使 IBus 主题与当前的 GNOME-Shell 主题和 GTK 主题分离,以便用户可以使用其他 GNOME-Shell 主题GTK 主题对其进行自定义。同时,在 GNOME 上提供一个扩展,为 IBus 提供外观、行为、系统托盘和输入源指示器的完全自定义功能。

该项目分为三个部分:Customize IBusIBus Theme ToolsIBus Theme Hub。这里有一个 用户指南,用于使用这些项目,我将在以下部分中逐一向您介绍它们,以及我创建这些项目的经验。

IBus Customize Project Logo

用户需要什么?

由于使用输入法是许多非拉丁语系用户在使用计算机时日常生活中不可分割且最重要的部分,因此最重要的是提供足够的自定义选项来适应用户的需求。此外,由于每个操作系统都提供自己的一套输入法,输入法应该能够以一种用户熟悉的方式进行配置,而无需更改当前的用户习惯,从而降低他们刚从另一个平台切换时的学习成本。

Customize IBus

Customize IBus 是一个 GNOME 扩展,提供 IBus 的完全自定义功能。此扩展支持的功能列表可以在 这里 找到。

该项目最初是从 ibus-tweaker 导入的,因为我必须从头开始完成整个项目,并且在申请 GSoC 之前我没有创建 GNOME Shell 扩展的经验。

Ibus-tweaker 是一个很好的起点。通过学习和重用其部分代码,我理解了 IBus GJS 前端背后的机制,并进一步参考了 GJS 文档,最终成功创建了一个全新的扩展,提供了更多功能。

你可以在 这里 查看项目的演变过程。

你可以在这里找到 Customize IBus 仓库!

IBus Theme Tools

IBus Theme Tools 专门用于从 GNOME Shell 主题中提取 IBus 相关样式(样式类名以 candidate- 开头,以及一些补丁,以便它可以像定义的那样显示)到样式表中,这些样式表可以在 GNOME 中的 Customize IBus 扩展中使用。它还支持在非 GNOME 桌面中直接使用可用的 GTK 主题更改 IBus 主题。

该工具使用 Python 编写,使用 tinycss2 作为 GNOME Shell 主题样式表的解析器。

你可以在这里找到 IBus Theme Tools 仓库!

IBus Theme Hub

IBus Theme Hub 是一个主题集合,可供 Customize IBus 扩展使用。

目前,它包含 Microsoft IME 主题

如果你为 IBus 设计了一个主题,欢迎你 贡献你的 IBus 主题

你可以在这里找到 IBus Theme Hub 仓库!

最后…

希望你喜欢这篇文章。如果你认为我的项目对你有所帮助,请不要忘记与你的朋友分享这篇文章,以便每个人都能充分利用我的 GSoC 2021 项目。

分享此帖子