Ibus-GJS主题制作
2012.04.29 | 天气: 晴 | 标签: Linux软件, Ubuntu, 技术, 折腾因为我的个人的电脑是12′小屏又高分辨率(1280×800),所以不改就看起来字就很小。而Ibus-GJS(Gnome JavaScript)版本用的前端是JS+CSS,这就给Ibus输入法主题定制提供了可能性(以前是代码里面写死的样式)
修改前

可以明显看出,连火狐的字体都比输入法的待选词框里的要大。不进行修改的话,打起字来很难受……
待修改文件
只有两个,ibus-gjs的版本是3
/usr/share/gnome-shell/extensions/ibus-indicator@example.com/stylesheet.css/usr/share/gnome-shell/js/ui/status/ibus/candidatePanel.js
分析代码
不喜欢看的同学可以直接跳到:修改主题
文件1里面的内容是标准的CSS框架,文件2里面的是JS代码,写过网页前端的同学一定不会陌生这两个东西。
从文件2源代码看,选词框的结构是
candidate-panel > candidate-area > candidate-vertical > candidate-vcontent > *candidateTextStyle
当然,水平的选词框就把vertical换成horizontal就可以了。而candidateTextStyle之所以打星号,是因为在Ibus的源代码里并没有给这个应该有的属性添加上类别……因为标签本身就属于popup-menu,本身这样的标签是不必要的,但作者认为这样是很有效的,没办法,我们只能自己来改了。
style_class: 'popup-menu-item',
style: candidateTextStyle,
了解以后我们就可以通过修改CSS来更改Ibus的主题样式了。
修改主题
理论上应该用stylesheet.css来控制这些参数的,但就像我之前说的,作者觉得这样更方便……我会尽力做出更好的patch,让作者改变心意。
const里的candidateTextStyle值
添加
font-size:11pt;text-shadow:0 0 5px #69d6ff;
就可以改变候选词的样式成酷酷的发蓝光的样子,而且变大了~

同理,如果想改变候选编号的话就要改变candidateLabelStyle就可以了。
在stylesheet.css里面的参数基本是控制了整个候选区域的边框等,当然要是你有CSS经验,还可以加上背景图什么的都可以,这样一来相当于皮肤的功能就实现了

