Skip to content

我的设计理念 My design concept #6

@HollowMan6

Description

@HollowMan6

作为开源系统Linux在中国普及的第一步,解决中文输入法的问题应该被放在首要的位置。我本人一直是Linux的粉丝,在日常开发中绝大部分是用Linux完成的。偶尔看到这样的言论:https://www.zhihu.com/question/286602824/answer/1148890621 ,我会感到十分的沮丧。为什么?为什么中文输入法成了中国人使用Linux的一个障碍点?为什么?为什么大家都喜欢Windows的输入法?为什么?为什么大家都喜欢在Windows上使用搜狗输入法进行打字?基于这样的事实,我本人十分希望能为Linux中文输入法做一点微薄的贡献,来让中国普通用户不再恐惧Linux,甚至爱上免费开源的Linux。

正好,我本人十分希望能够参加谷歌的编程之夏活动,然后看到了IBus项目正在openSUSE社区寻找学生做为IBus制作自定义皮肤功能。说到皮肤,我立刻联想到了搜狗拼音丰富多彩的皮肤,许多人在攻击Linux输入法时也会提到Linux输入法太单调丑陋。因而我很想挑战这一项目,让GNOME用户能够随心所欲地自定义IBus皮肤。在借助于编写GNOME扩展插件轻松实现了这一任务之后,我便萌生了另外编写一个全套的IBus自定义插件,让不同来源的用户同时找到使用Fcitx、非GNOME桌面使用IBus,以及Windows下使用搜狗输入法的感觉。

在编写过程中,我借鉴了一些 https://github.com/tuberry/ibus-tweaker 的功能,保留了其的自定义候选框方向、自定义字体、自动切换源、以及识别GNOME夜灯模式的功能,同时结合了其它各大输入法所长,独立地编写了这个添加了各种用户可能喜欢的自定义配置的插件。

对于自动切换源,我增加了一个选项,来使用户选择是否记住该程序的输入状态,来在切换窗口时切换输入源。因为有些用户确实希望能够记住上一次该程序的输入状态,但是还有一些用户则会说,自己平时大部分输入工作是使用中文或英文完成的,自己切换到另一个输入模式只是为了临时输入一些字符,每次切换窗口之后我不希望再返回时恢复到刚才的状态,而是我平时用的最多的那种输入状态,那么请不要记住输入状态,好吗?

在托盘标签处,用户可以查看IBus版本号,如果没安装IBus时则会提示。有一些新手Linux用户会表示,IBus和Fcitx傻傻分不清,你的这个插件怎么没用,在最后发现用的是Fcitx。加一个重启/启动IBus按钮还可以协助用户排查各种问题。

用户还可以为托盘处添加各种菜单选项,找回非GNOME桌面使用IBus的托盘图标感觉。同时,配置IBus可以直接在菜单处点了,不用每次麻烦点击GNOME设置里的选项,甚至打开终端运行ibus-setup命令。

KDE下的IBus菜单:

image

指示器部分则是完全根据用户的要求,模仿Fcitx的感觉做的。其实现的功能丰富程度甚至远远多于Fcitx,你可以设定仅切换输入源时指示,或者只在切换到英文时指示,还可以设定指示器的显示动画(不想要也没关系,直接关了就好),以及是否自动隐藏和隐藏时间,其主题自动跟随输入法的候选框。下一个版本中还将添加在指示器上点击鼠标右键时自动隐藏,方便用户看到被遮挡的文字。

主题部分则是此项目的重头戏了,用户可以通过 https://github.com/HollowMan6/IBus-Theme 工具,借助于GNOME Shell丰富的主题生态进行混搭,只需一键即可生成可以用的IBus主题,然后进行导入。用户可以将CSS文件放在任意位置,而不是特定的几个位置。让我们多写一些功能,不要去麻烦用户,否则用户一定就会离开。

而关于背景和拖拽移动输入框,则是目前闭源的搜狗输入法早已实现的功能。全图背景则不再进行叙述,为什么许多普通的在Windows下使用搜狗输入法都对其皮肤的高度定制功能赞不绝口,甚至十分喜爱呢?拖拽移动输入框,可以临时性的看到下面被遮挡的文字,而且普通用户看到一个窗口,像普通的窗口一样,都会想着去拖拽来移动它,不能拖拽移动的窗口是十分反人类的设计。

搜狗输入法在Windows下的表现:

GIF 2021-5-21 16-28-48

而至于背景图片,用户使用CSS自己定制则更是十分的反人类。难道每个中文输入法Linux用户都必须学会如何使用CSS语言,然后才能自己定制吗?Linux的使用门槛并不是计算机专业人士,而是千千万万的使用计算机的普罗大众。

至于添加边框,在边框中使用图片,现在看来实现的样式并不完善,左边顶端的边框不知为何会显示不出来,大概率是GNOME的问题。目前贸然推出这种丑陋的设计必然会遭到用户的唾弃。

image

关于候选栏淡入淡出动画的需求:ibus/ibus#2279

欢迎提意见!与诸君共勉。

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentation

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions