错误 + 错误 = ?

在奇葩的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

This entry was posted in fcitx development and tagged . Bookmark the permalink.

8 Responses to 错误 + 错误 = ?

  1. yyc says:
    Google Chrome 18.0.1025.168 GNU/Linux x64

    貌似讲的这几个都跟闭源软件有关~~~

    p.s. 终于见识到了除了acroread, google-desktop以外的gtk闭源软件了~

    [Reply]
  2. csslayer says:
    Firefox 12.0 GNU/Linux

    @yyc firefox 和 libreoffice 不算这个case
    google gadget 不是闭源的,并且不光可以是gtk的,也有qt的。(另外其实应该说flash的)

    主要原因之一是闭源软件或者那些非常非常复杂的软件都喜欢自己造widget,或者无法正确使用输入法或者是采用hack的方式来实现,100个这样情况几乎有99个都会犯错。

    [Reply]
  3. yyc says:
    Google Chrome 18.0.1025.168 GNU/Linux x64

    libreoffice ~~ java嘛~~~ (我是对他没啥好印象反正~~~)

    +1 鄙视+反对某些大型软件不用已有的库的资源而写一些不可重用的代码实现类似的功能 (跑题了~)

    google-desktop 我指的是桌面搜索 (aur上的包叫这个名字), 有没有qt版不知道, 不过应该是闭源的.

    [Reply]
  4. 荒野无灯 says:
    Opera 11.62 Windows 7

    Sublime我用过一段时间后,换回Vim了。。。

    [Reply]
  5. 依云 says:
    Firefox 11.0 Windows XP

    gvim hacked XIM for a legacy Korean input method, which causes problems for fcitx…

    [Reply]
  6. kevin says:
    Chromium 18.0.1025.151 Ubuntu 12.04 x64

    喵了个咪的,一会Unity出问题,一会这个那个出问题,Linux下的环境太他妈坑爹了,什么时候出个大一统的解决方案啊。

    [Reply]
  7. maplebeats says:
    Firefox 9.0.1 Windows XP

    每次输入法有什么问题就用盲打解决,所以五笔的好处不只那么一点两点啊。不过还是最怕输入法调不出来。。。

    [Reply]
  8. Pingback: OpenSUSE (Linux) 下安装 Sublime Text | 钉子の次元

Leave a Reply

Your email address will not be published. Required fields are marked *

Note: Commenter is allowed to use '@User+blank' to automatically notify your reply to other commenter. e.g, if ABC is one of commenter of this post, then write '@ABC '(exclude ') will automatically send your comment to ABC. Using '@all ' to notify all previous commenters. Be sure that the value of User should exactly match with commenter's name (case sensitive).

This site uses Akismet to reduce spam. Learn how your comment data is processed.