Author Archives: csslayer

世纪未解之谜之 Emacs 为什么要设置 LC_CTYPE 才能用输入法终于

在 Linux 上用 Emacs 和输入法的人可能都曾经有这样的疑惑,为什么只有 emacs 非常奇怪经常要额外设置一个 LC_CTYPE 才能正常使用输入法。很多年以前,我也一直不明白,直到最近 LibX11 的一个 bug 让我们有机会找到了…Emacs 不能用输入法的真正原因。 首先声明,并不是 Emacs 对这个环境变量有任何的判断。设置它,只是触发了一个副作用让 Emacs 能够正常工作。而这个真实原因的线索其实在几年前就已经被发现了并且写到了 Fcitx Wiki 的 FAQ 上,但是一直没有被联系起来。 首先要说 XIM。XIM 这个协议里面其实有很多过时的部分,过时的意思主要是指,实际上在今天完全没有人使用了的部分,但是因为 LibX11 的实现和 XIM 高度绑定,所以不得不依然使用的部分。其中一个就是需要设置一个字体。这个字体的本意,大概只是为了让输入法知道程序在用什么字体,可能让输入法可以选择配合窗口的字体来绘制输入框。XIM 的协议,主要是通过 X11 的 ClientMessage 来实现的,发送字体的部分,是传递一大堆字体的名字列表过去。但是好巧不巧,Emacs 判断这部分关于字体的代码可能会出现很多不同的问题。 可能的问题包括: 1、找不到字体2、找到太多字体 几年前一个 … Continue reading

Posted in fcitx development | Tagged , | Leave a comment

The Road to Fcitx 5: 7 Get event order right

I didn’t expect this to be a thing that is only fixed recently. And the fix itself goes through a little bit back and forth. So I’d just like to share it since it is an interesting experience. Between the … Continue reading

Posted in 日志 | Leave a comment

如何现在就在 Arch Linux 用上 Fcitx 5

一开始想了想要不要在标题写 Arch Linux,觉得还是必要的,因为目前只有 Arch Linux (和 Debian)出于套近乎的关系有了 Fcitx 5 全家桶。 1、需要安装的包 IM Module:fcitx5-gtk / fcitx5-qt 拼音和码表:fcitx5-chinese-addons 其他输入法可以参照 fcitx 4 的对应包名安装(例如 fcitx5-chewing 等) 配置工具:kcm-fcitx5(内含 fcitx5-config-qt 对于依赖纠结的人请去拍打 @felixonmars 拆包) 和 Fcitx 4 有一些文件冲突,不能同时安装。 2、环境变量和启动 和 Fcitx 4 一致即可,如果要多说几句的话那就是: ~/.xprofile (X11) 或者 ~/.bash_profile … Continue reading

Posted in fcitx development | Tagged , | 1 Comment

QML 的 Repeater 和 Loader 组合使用问题

Repeater,在对于需要生成多个 Item,但又不适合 ListView 的情况是很适用的。对于 Repeater 需要嵌套不同种类的 Delegate 的情况,有一些不同的解决方案。 例如,你针对不同的数据需要生成不同的 Item A 或者 Item B,那么一种选择就是把他们都作为子 Item 放到 Delegate 里面,然后选择性的进行 visible 的设置,来达到只现实一个的目的。这样带来的缺点也是显而易见的: 需要真的实际创建多个并不使用的 Item 对不同的 Item 设置值的时候,可能并不一定会有适合当前不显示的这个 Item 的值。例如,某项属性并不见于 Type B中,在实现的时候却不得不放进一个 dummy value 来避免程序错误。 而另一种选择就是,会选择 Repeater 嵌套一个 Loader ,用 loader 来动态的选择加载某个源文件,或者 Component,通过使用 … Continue reading

Posted in Qt | Tagged | Leave a comment

The Road to Fcitx 5: 6. Addon Loader

Due to a frequently request about adding scripting support to Fcitx, I tried to make Fcitx 5 able to be extended in a different way. During Fcitx 4 times, the addon must be written with Shared library and those assumptions … Continue reading

Posted in fcitx development | Tagged , | Leave a comment