作为开源系统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](https://user-images.githubusercontent.com/43995067/119091176-4055c180-ba3f-11eb-9df2-c0336a232879.png)
指示器部分则是完全根据用户的要求,模仿Fcitx的感觉做的。其实现的功能丰富程度甚至远远多于Fcitx,你可以设定仅切换输入源时指示,或者只在切换到英文时指示,还可以设定指示器的显示动画(不想要也没关系,直接关了就好),以及是否自动隐藏和隐藏时间,其主题自动跟随输入法的候选框。下一个版本中还将添加在指示器上点击鼠标右键时自动隐藏,方便用户看到被遮挡的文字。
主题部分则是此项目的重头戏了,用户可以通过 https://github.com/HollowMan6/IBus-Theme 工具,借助于GNOME Shell丰富的主题生态进行混搭,只需一键即可生成可以用的IBus主题,然后进行导入。用户可以将CSS文件放在任意位置,而不是特定的几个位置。让我们多写一些功能,不要去麻烦用户,否则用户一定就会离开。
而关于背景和拖拽移动输入框,则是目前闭源的搜狗输入法早已实现的功能。全图背景则不再进行叙述,为什么许多普通的在Windows下使用搜狗输入法都对其皮肤的高度定制功能赞不绝口,甚至十分喜爱呢?拖拽移动输入框,可以临时性的看到下面被遮挡的文字,而且普通用户看到一个窗口,像普通的窗口一样,都会想着去拖拽来移动它,不能拖拽移动的窗口是十分反人类的设计。
搜狗输入法在Windows下的表现:
![GIF 2021-5-21 16-28-48](https://user-images.githubusercontent.com/43995067/119107368-bfec8c00-ba51-11eb-8bb3-11d20f0fdba6.gif)
而至于背景图片,用户使用CSS自己定制则更是十分的反人类。难道每个中文输入法Linux用户都必须学会如何使用CSS语言,然后才能自己定制吗?Linux的使用门槛并不是计算机专业人士,而是千千万万的使用计算机的普罗大众。
至于添加边框,在边框中使用图片,现在看来实现的样式并不完善,左边顶端的边框不知为何会显示不出来,大概率是GNOME的问题。目前贸然推出这种丑陋的设计必然会遭到用户的唾弃。
![image](https://user-images.githubusercontent.com/43995067/119091275-64190780-ba3f-11eb-8442-3f8ffe531ed4.png)
关于候选栏淡入淡出动画的需求:ibus/ibus#2279
欢迎提意见!与诸君共勉。