Fcitx 4.2.0

fcitx 4.2.0
1. 码表支持构词码(郑码要求),显示时提示文本可以码表(仓颉要求)。
2. 重命名并整理API
3. API增加全局的上下文变量支持
4. 支持检测kimpanel进行自动切换。
5. 支持 alt + shift 作为激活/非激活模式的切换
6. 支持将第一个输入法作为非激活状态
7. kimpanel新的图标集
8. 大幅降低码表以及拼音的内存占用
9. 支持标点按当前输入法语言切换不同配置
10. -r 选项,用于替换已存在的fcitx。

fcitx-cloudpinyin 0.2.0
1. 取词单独放入一个线程中,解决curl multi在极少数时候依然是同步调用的问题
2. 修复一个在较新版本curl导致崩溃的bug

fcitx-configtool 0.4.0
1. 增加kcm-fcitx一样的修改输入法列表的功能
2. 支持使用gtk3进行编译

fcitx-fbterm 0.1.2
与主干代码同步

fcitx-googlepinyin 0.1.4
与主干以及libgooglepinyin同步

fcitx-sunpinyin 0.3.3
与主干代码同步

fcitx-ui-light 0.1.3
与主干代码同步

fcitx-keyboard 0.1.0
使用键盘布局作为输入法,支持对应语言的单词补全,需要安装对应语言的拼写检查。同时可以解决非gtk/qt程序中无法使用compose key的问题。

fcitx-libpinyin 0.1.0
libpinyin 支持,提供不包含在libpinyin中额外的繁体中文数据。依赖 libpinyin >= 0.5.0

fcitx-chewing 0.1.0
libchewing 支持

fcitx-table-extra 0.1.0
包含,郑码,仓颉3/5/大字符,嘸蝦米等额外码表

kcm-fcitx 0.3.0
1. 增加仅显示当前语言的输入法

另外对于gnome-shell用户,可以自行尝试
https://github.com/csslayer/kimpanel-for-gnome-shell
插件,目前还处于实验性阶段。发布时会直接提交到gnome-shell插件的网站。

关于部分新功能的介绍参见
https://www.csslayer.tk/wordpress/fcitx-dev/fcitx-keyboard/
https://www.csslayer.tk/wordpress/kde/fcitx-impanel-autoswitch/

另 外fcitx的m17n,anthy,hangul支持在开发中。同时也非常感谢参与fcitx的开发的taylorchu(fcitx- chewing),pipitu(fcitx-anthy),ELizabeth HONG(fcitx-hangul),Cheer Xiao(fcitx-m17n) (排名不分先后),繁体中文的翻译Alisha,以及一起开发kimpanel的gnome-shell版本的bigeagle。另外感谢debian的fcitx维护者,Aron Xu和Yunqiang Su,opensuse的doublechou,stecue,以及其他一起帮助测试fcitx的朋友和所有fcitx用户,非常感谢。

Posted in fcitx development | 56 Comments

Re-ask: Why Fcitx?

I wrote some post about “Why Fcitx” before, while I was little bit worried about fcitx’s future. But for now, I already have some idea for this question.

There is already several input method framework on Linux world, why Fcitx is needed? First let’s review the history of Fcitx. Fcitx was born in 2002, which by that time was named “gWubi”. It got renamed “fcitx” some year later. It’s never an input method framework, but an input method collection.

In 2007, there is some incident for Fcitx, you can find the detailed link on wikipedia. At that time I didn’t even use Linux yet. The story for me on Fcitx began with that I became a KDE user. At that time, IBus nor Scim is not a good choice for Qt based program, so I moved to Fcitx, and found there is a little plasmoid, called kimpanel. Fcitx’s kimpanel support is only a branch inside fcitx, and didn’t sync with trunk for a long time. So I decided to port it to the trunk. That‘s the chance that I become a Fcitx developer, till now. I want to make Fcitx a unique framework, which cannot be replaced. I carefully learn the all existing function of Fcitx, and I thought I finally found an awesome road for Fcitx.

Fcitx is famous of its lightweight, and quick speed, this idea didn’t chance even after I change Fcitx a lot. And it’s become even more light for the core, actually. Now I want to add some new properties to Fcitx, including native feeling, flexibility, and consistency.

Thanks to dbus, and kimpanel, I could make fcitx to use the most native UI on all the desktop, including GNOME, and KDE. And if you just want a xlib based UI? Ok, fcitx-ui-light is for you. And I even provides two configuration tool, for gtk users and KDE users, which could brings them the most native feeling on theirs system.

The second property is flexibility . Fcitx don’t choose the interprocess model, because that will breaks some flexibility of Fcitx. Input method is basically interprocess key stroke and mouse event passing between program. But I want input method can access some global property easily, and interact with each other, that’s why I stop my step for the interprocess input method support. Fcitx could be extended very easy, with nearly no limitation.

Consistency is the last property, which brings together with the first two properties. First, code is largely reused between input method, which brings consistency among different input method. The question about why this input method can customize punctuation, why that cannot, could hardly happen on Fcitx. Fcitx input method can share the built punctuation module, which also reduce the effort for developing an CJK input method. Other great features, like cloud-pinyin, auto switch, and quick phrase, are also shared among different input methods. This idea cannot be achieved by all existing input method framework.

What can be done with fcitx? Everything you can think of, for example, tweet sending could be extended to fcitx easily; bind a hotkey with specific input method could also be possible. You want a ncurses based configuration tool? Ok, just use fcitx-config to do the thing you want. Need some more dbus interface, fcitx-dbus is there and you can implement your own dbus module. I can hardly say there is some limitation to make your own input method module.

Feel free to join the development with Fcitx, to bring some more cool stuff to the input method world.

Posted in fcitx development | Tagged | 11 Comments

Make Fcitx like a system component.

Some days ago, I added a little option to Fcitx, which is called: “Use first input method as inactive state”. What does that mean? Actually that’s how I make Fcitx more like a system input method framework.

Fcitx have three state in the past, called: “Close”, “Inactive”, and “Active”. “Close” is the default state of Fcitx, which means Fcitx will not RECEIVE any key from program, in spite of the trigger key (Which by default is CTRL + SPACE). When trigger key is used, then Fcitx will goes to Active state, so it will receive key from program, and you can compose with your favorite input method. You can switch betwen inactive and active with switch key, which by default is “Left Ctrl”.

When “Use first input method as inactive state” is enabled, close state will be never used (in spite of some special case, like fcitx-fbterm, since fbterm must totally control the state change.), and you can assign your first input method to inactive state, and trigger key and switch key will have the same behavior.

This option will become useful with fcitx-keyboard. Since fcitx-keyboard’s function can replace the “Close” State. For example, if you are simply a Chinese Pinyin User, you can add “English (US)” and Pinyin to your input method list. Then you can just use it as before, but you can also use the extra feature provides by fcitx-keyboard easily. You don’t need to bother extra keyboard configuration, just gives everything to fcitx.

Another benefit is you can use some special switch key as your trigger key. Due to some implement limitation, you cannot configure a hotkey contains only combination keys (ctrl, alt shift).

I just cannot make this option by default right now, since Fcitx is not default component on most system, enable it by default but without proper configuration, it might take more effort to make things work. But I recommend you to give it a try. Or if any distribution interested in using fcitx as a default system component, you can do some specific patch to “config.desc” to reset the default value.

Posted in fcitx development | 6 Comments

折腾Linux桌面中让人迷惑的形容词

用桌面的很多人都对自己的桌面有评价,但很多用词对我来说总是难以把握具体含义。

所以对使用以下描述的词评论都无视。描述个人感受不做到精确(concrete),那和对牛弹琴没什么两样。

1、字体清晰/锐利

这也就是我不和别人讨论字体设置的原因。因为清晰/锐利是个模糊的概念。

想要做到精确,上来第一句话应该先回答,是使用位图字体,还是矢量字体?对有些人来说,清晰/锐利等于位图,对有些人来说,清晰/锐利是使用在矢量字体的前提下的,所以经常会看到一群人互相对牛弹琴。

2、降低效率/专注

这是个主观概念,而且几乎总是预设别人了解你到底平时在干什么。

如果一个人没事就是只对着一个浏览器上网的话,这个概念也许对他完全就没意义。

我直到现在都没明白有些人执着的高效是什么意思。

3、花俏

这又是个模糊的概念,问题在于形容的对象是什么?有些人似乎形容的是动画效果,有些人形容的是样式。那么对应的反义词前者应该是不平滑、或者静态,后者应该是朴素。

4、轻快/轻量

首先很多人把“功能多”和“重量”联系在一起,这显然不是一个正确的联系。功能多寡取决于你的需要。

其次就是不了解内部实现就评价轻量或者重量。

当然由于主观因素过多,最没有价值的评论还是人云亦云,而且还无法区分;以及因果倒错,很多人应该打回去学逻辑。

欢迎补充。

Posted in Linux | 15 Comments

Fcitx Keyboard

Video demonstration:

Fcitx will support spell checker based word hint, and automatically keyboard layout switch.

1. You can use keyboard layout as a single input method, and use corresponding language spell checker.

2. Input method can gives a hint about what keyboard layout it requires, for instance, pinyin will request us layout and fcitx-keyboard can then switch to us layout once pinyin is used.

You can take a look at the code at: https://github.com/fcitx/fcitx-keyboard

Posted in fcitx development | Tagged | 2 Comments