其实我本人并没有很强的这种需求,因为我英语还行(自夸)。之前同学安装了 Ubuntu,试了下 Unity 可以做到用拼音直接搜索程序,于是就畅想为什么 GNOME 不行?没人做吗?……

……那我就自己做一个!

拼音搜索

拼音搜索就是我这半天折腾的结果。

根据之前的调查,可以得出以下结论:

  • GNOME 真的没考虑国际化,让本地化寸步难行。
  • Hack 真的不好做,因为根本没接口。
  • 这帮开发者技术可能很强,但是不会组织软件,你见过谁把搜索功能做到底层库里面的?做就做了还 undefined,摆明了不想让除了 GNOME 开发者以外的人用。

然后结合我本人的使用实际:从来没想到 Gnome Shell 会考虑 .desktop 中的 Comment、Keywords,所以之后我也没做这些。(也许有人用?)

做了一个非常非常 dirty 的 hack:直接把 getInitialResultSet 覆盖掉

主要思路是做一个预处理,把汉字转换成拼音存到表里面,搜索的时候匹配。那么如何做部分匹配呢?还是一个很 naive 的做法:直接把字符串从左到右一个个匹配,这样虽然比较方便,但是会造成匹配范围过大。又不愿意想更复杂的做法…… = =b

其实用这个思路的话这个项目的主要难点就是把汉字转换成拼音了,我直接用了闲耘hotoo/pinyin 中的字典。但是因为对 Javascript 和 Gnome Shell 都不熟,所以写了整整半天……(其实就是你比较弱吧!!

总之现在问题还很多,所以不敢发布到 GNOME Extensions 上。先这样吧。

Pinyin Search @ Github