错误 + 错误 = ?

在奇葩的Linux输入法世界里面呢,经常上演着这样的事情。

被程序不幸没有做正确的行为。

但是有办法可以walkaround,但这个walkaround又可能导致另一个没有做正确事情的程序出问题。

于是 ╮(╯_╰)╭ 。

来讲两个故事。

首先是WPS和Opera的故事。

XIM 有两种 Style,On The Spot 和 Over The Spot,前者不可以光标跟随,后者可以(当然这只是Qt自己的实现的问题)。我在考虑了很多人用 Fcitx 的以前都手动设置过环境变量强制用了xim,于是虽然 Fcitx 可以支持 On The Spot,不过默认没有开启(程序选择Style的时候优先选择 On The Spot,其次是Over The Spot)。

于是假设来了两个程序,Opera和WPS,Opera不幸只能在On The Spot下光标跟随,WPS由于多数发行版的Qt是4.8的,无法使用系统的IM Module,于是只能fallback到xim。那么Fcitx的这个默认设置就只能导致Opera不能光标跟随,WPS可以 ╮(╯_╰)╭

其次是Sublime和Thunar的故事。

有个人先给我汇报了一个Bug:“当fcitx启动时,在thunar里不能使用字母直接跳到相关的文件夹或是文件名上。实际上,只有打开thunar,什么也不按,直接按字母能跳到相关名字的文件上,但当点击鼠标或是进入下一级目录,就不能用了。”

研究了一下发现这应该是gtk所有list view类的搜索共同的问题……于是我很快发现应该判断当前是否获得了焦点,以决定让IM Module是否处理输入法的按键。

然后于是我 Push 了代码。

http://code.google.com/p/fcitx/source/detail?r=11784e514dd3d1654481bdf12bd1e368832229c4

后来 Sublime 这破玩意出来了(闭源的Gtk程序,感觉这辈子没见过几个……),由于刚刚说过的那个Bug,反而导致Fcitx可以在里面输入,但是修复之后就变得不可以了。(老实讲我后来gdb attach进去手动改掉某个bool变量测试发现果然就变得可以输入了,以证明我发现的原因是正确的……)

再回来抱怨两句Sublime,这玩意闭源就不说了,唯一能够获得支持的只有个论坛,关键这论坛还他妈要发信给某个邮箱才能获得邀请码注册,您防Spam能换个友好点的方式吗?老子好不容易注册了然后发帖了还没人鸟我,我擦!再加上这破玩意是闭源的,老子连替他擦屁股的方法都没有。

===========================================

只要微笑就可以了……

===========================================

P.S. 这故事要讲下去还有很多后续

比如LibreOffice和Firefox的故事等等等等。

只想在最后重复一下我的原则。

1、当能同时Walkaround两者时,我会选择Walkaround两者。例如LibreOffice里面的历史悠久的掉键,在换成IM Module之后可以得到Fix的话,那我就不会使用会让firefox产生一个小问题的Walkaround。

2、当不能同时Walkaround两者时,我会选择我认为比较重要的那方Walkaround。例如前文说的那两个。

3、我基本不会使用针对某个程序特别的hack,除非我认为这个程序非常重要,例如在代码里面判断当前程序是不是sublime我是不会做的。

=-=-=-=-=
Powered by Blogilo

Posted in fcitx development | Tagged | 8 Comments

Open Source 和控制

仅代表个人观点。

这些话其实我很早就想说了。

Open Source 本来应当是自由的,或者被许多人认为是自由的,实际上完全不是这么一回事。

1、关于开源和开放

比如这个项目 Mozc,很明显他是个开源项目,但是并不是开放的,看看他的提交人就知道了:http://code.google.com/p/mozc/people/list

清一色的Google 雇员。而且在svn的提交历史内是几乎看不到它是如何开发的 。(写过代码的人都知道,一般都不会有如此大的commit)。

不开放体现在:

1)不公开的代码历史

2)不接受其他人加入

当然这实际上阻碍不了我们去用它,uim和fcitx都干了类似的事情。

2、选择权

用了开源的东西你就拥有了选择权吗?不一定。选择权其实还基本处于开发者的手里。举一些不恰当的例子。

有些人喜欢用平铺式窗口管理器,那么如果某一天发行版被切换到了Wayland,那么可以想见的是曾经的那些五花八门的窗口管理器都将不能使用。好也许你的回答是我可以不换到Wayland,继续用我的XServer。但几乎可以肯定的一点就是,选择权在多数人手里,对于一个复杂的系统来说,单枪匹马的维护几乎是不可能的。

谁也不能保证在将来的某一天,某个软件就失去了支持。事实上你使用开源软件的道路是不是总是被一股看不见的潮流在推着走呢?

在某些情况下,也许还可以作出辩护,嗯,这个东西更好,所以别人取代了他。更多时候问题是两难的,有两个甚至更多的项目,因为理念的不同而没有合并成一个,但是也无法回答究竟谁是更好的项目。

3、选择权在谁手里

很多时候还是在那些公司手里。事实上我还是更加喜欢那些看起来就直接是想要赚钱的公司,而不是那些号称要拯救世界的公司。

因为无论他们是怎么说的,目的都是一样的。

这也算是我选择KDE的原因之一。

Posted in Linux | 5 Comments

“Farewell Unity”, from Fcitx, or ?…

I can’t really calm down.

If you know something about me, you might know that I HATE where input method cannot work in Linux. So I even make a page in fcitx Wiki.

http://fcitx-im.org/wiki/Hall_of_Shame_for_Linux_IME_Support

So, this time, our old friend, Unity will come back into this hall. Because of this,

https://bugs.launchpad.net/nux/+bug/983254

I can hardly say what they do is wrong, because they might not have time for develop a plugin, or they just want to provide a non-crash Unity (Which from my point of view, their programming skill is sucks.), or something else.

Technically, there might be a way to fix this, which need to introduce an new im module system for nux, which doesn’t exist now. It will need some work and it can hardly be fixed before Ubuntu 12.04 released.

But, if you use fcitx, or any other input method in spite of IBus, and you don’t want to switch to IBus in Ubuntu 12.04, you can click “also affects me” at the top of the page.

I’ve already notified hime and uim community for this.

I don’t use Unity, I can simply throw Unity away from Fcitx’s support list. But I know there ARE some people care about this, so if you have some need for this, please help yourself.

Posted in fcitx development | 4 Comments

精准的传教

虽然这题目是挺无聊的。

传教这事和找女朋友可能差不多……也就是说,有需要的时候优先。找准受众是关键问题。比如,如果你想找的女朋友是百合,那人家看上你的希望就很渺茫。如果要按受众0-1区分的话,性取向有4种,开源界那就更多了。

比如说,一个人如果用LXDE那种烂玩意就能满足了,那您也别费心去让它换别的什么,尤其是在人人优越感都爆棚的地方。这个瞧不起你占资源多,那个瞧不起你功能弱,今天骂你鼠标不友好,明天照样可以骂你键盘不友好。

到底哪些是潜在受众要搞清楚,和找女朋友也差不多,很多人喜欢失恋时趁虚而入,有人抱怨的时候也就是出手的时候,而且最好提前做好功课,直接一条红地毯铺到教堂门口。

敌进我退,敌退我进,传教成功一个您心里开心,不过要是失败也不用少二两肉,有这点闲工夫不如去发展下人际关系早日脱团。

其实这和小时候玩玩具没啥差别,找到能和你一起玩的就最好啦。

Posted in Linux | 16 Comments

Fcitx 4.2.2

A new bugfix release.

主要是Bug修复。

fcitx 4.2.2

Can use text as classic UI icon. Add more key can be used as hotkey. Fixes 536,538. Make tray icon has a maximum size, so it will looks good under other tray.

允许用文本作为经典界面的图标
增加更多可以用作快捷键的键
修复Issue 536,538
托盘图标有最大大小限制,使得它在其他托盘中的显示不会进行放大而导致模糊。

fcitx-m17n 0.1.1

Fix wrong option name. If available, don’t display preedit in input window.

修复错误的配置选项名称
在嵌入显示预编辑字符串时不显示非嵌入的预编辑字符串

fcitx-keyboard 0.1.2

Allow to adjust minimum hint trigger length. If available, don’t display preedit in input window.

允许调整触发提示的长度
在嵌入显示预编辑字符串时不显示非嵌入的预编辑字符串

kcm-fcitx 0.3.2

Add more X key to Qt key conversion.

增加更多 X按键到Qt按键的转换

fcitx-fbterm 0.1.3

Fix combination key handling.

修复组合键的处理

fcitx-sunpinyin 0.3.5

Fix issue 538 of saving dict.

修复保存的bug,Issue 538

fcitx-hangul 0.1.0

Add hangul support.

增加韩文支持。

Posted in fcitx development | Tagged | 10 Comments