Author Archives: csslayer

如何现在就在 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 一致即可,如果要多说几句的话那就是: 目前暂时没有自带 XDG 的自动启动文件,需要自动启动的话暂时可以选择 cp … 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

用拼音输入 Emoji

从技术上来说,没有什么难的,就是挂一个额外的词库。唯一难的就是词库从哪来的问题。因为开源软件总是绕不开一个 License 的问题。 从哪来这件事,Unicode 的 CLDR 提供了一个数据来源,根据语言给不同的颜文字标注了各个语言的文字。所以 Emoji 到汉字的映射就是可以从这里来了。到这里,我们其实可以选择直接像实现笔画输入或者英文输入那样直接匹配插入,但是这样当然会带来一个问题,就是很难把输入的词汇频率和这种外部挂接的候选词组合起来。另一方面,也就无法让句子中混合输入 Emoji 和汉字。所以这里就必须把 Emoji 做成一个从拼音映射过去的词库。然而,如果简单的使用 CLDR 的标记的话,就势必会出现类似现在某个挂载了 Emoji 的 Rime 一样,一个词无数个 Emoji 候选。所以还需要小心的对这些数据进行过滤。所以这部分主要就是我手工来进行修改的,总之有以下几个原则。 1、单个 Emoji 不要对应太多不同的意思,避免“联想”含义的意思。2、避免动词,例如有个🪓的Emoji,在数据里面还有“砍”这样的数据。3、避免单字对应。出于拼音输入的特殊性,如果单字对应 Emoji 过多,可能会影响正常输入。4、避免某个读音有大量的 Emoji 对应。5、避免同一个Emoji的对应汉字互相包含。例如摩托和摩托车都对应了🏍,但是如果它们同时出现在数据中,对于用户来说是无法区分🏍是对应了摩托两个字还是摩托车这三个字的拼音,所以要避免这样的情况发生。 虽然这样有不小的手工工作量,但是为了输入效果应该来说是值得做的。 示例:

Posted in fcitx development | Tagged , | Leave a comment

论我遇见的像是那种只活在自己世界里一样的…

好久好久没有更新过 blog 了…非要说的话,还是时代变了,自己也变了。但偶尔实际上还是会有想说点什么的想法。今天的话,其实是憋在心里很久想说的,当然其实也是想说给某些人听的,但是因为很久以前有段时间发觉自己讲话越来越难听,时常和别人起争吵。自从意识到这个事情之后…我有时候就想尝试不要那么激烈的讲。 那么这个标题……和选择发在这个文章分类到底算是有什么关系呢? 首先我得说,我在上大学的时候,是真的见过民科的。详情已经记不得了,但是那会还真的是年轻,只是走在三角地附近,突然被一个大叔搭讪,问能不能帮他输入一些东西。我本来以为也就是帮忙打字,所以就答应了他。但是带他到实验室的工位之后,却意外发现他让我打的是什么什么数学定理的证明。内容大概只有一页纸,已经不记得是什么定理了,但是反正是个有名的未证明的定理,只要看过科普的话就应该能见过的那种,也许是歌德巴赫吧。然后我这会儿,内心是尴尬的,可是又不想弄得非常麻烦还要讨论是否正确,毕竟我内心觉得和他争论这个事情可能很难能说服他,所以就干脆想赶快打完完事。结果输入的过程中还能发现非常低级的错误(等式左右算错那种)……因为影响输入所以还问他怎么办。结果还被他赞同了一下……最后总之赶快输入完打印了完事,结果他还塞给我50块钱说很有启发就跑走了,连我拒绝收钱的机会都没有给我。 非要说的话,十几年过去了…我是没有想到现在还能看见类似民科气质的人。 我一直有订阅着某论坛的某个版面的RSS,曾经还经常去帮他们回答一些 Fcitx 的配置问题,但是这么多年没见了,突然某天开始这个版面就开始有几个活跃的人。让我想起了那个我曾经遇见过的民科。 那么说到底我这里说的是什么…就是那种觉得自己就是正确的,有点完全活在自己的世界里的那种。当然,这里有几个不同的人,真的要说让我感到尴尬的点也不一样。我们只是说其中的某个提出了一个输入法方案的人。 我觉得他提出的那个方案可以说是有用的,但是他自己在推广的时候……实在是吹的太过头了。为什么我要说是像那个民科一样的感觉呢,就是总是一种“我真的是怀才不遇,四处碰壁”,但是“对的是我,错的是这个世界”。 可惜没人相信这种输入法的便利性、好处、以及潜在的市场优势。 我不太想过于直白的说明是谁但…光看他的回帖有多少个叹号……就知道大概是个什么感觉了。 但有的事情,让我不吐不快的就是,开源世界并不是这样的啊…开源世界的开始都是孤独的。这么长时间以来我自己很赞同 Linus 曾经在某个采访中说过的: In many ways, I actually think the real idea of open source is for it to allow everybody to be “selfish”, not about trying … Continue reading

Posted in fcitx development | Tagged , | Leave a comment