Tag Archives: fcitx5

Fcitx 5 开发(二)一个按键事件的后半生

当按键被 Fcitx 的前端接收到之后,首先它需要找到对应的输入上下文,然后创建对应的按键事件结构: https://github.com/fcitx/fcitx5/blob/c492be884540b55ee590d0e3312c4889c8bf4300/src/lib/fcitx/event.h#L242 首先对于一个按键来说,我们先要区分和按键相关的好几个不同的值的含义:Code,State,Symbol。Code 表达的是这个按键对应的物理按键,例如键盘上的 A,不论你在什么情况下按 A(Caps Lock / Shift),产生的 Code 是一样的。State,表示了按键发生时键盘的状态,包括了锁定键的状态,比如 Num Lock 和 Caps Lock,还有各种修饰键(Modifier)的状态是否被按下。当然,对于 32 个 Bit 来说,键盘并没有那么多的按键,因此有一些位在 Fcitx 中也被挪作他用,例如 https://github.com/fcitx/fcitx5/blob/c492be884540b55ee590d0e3312c4889c8bf4300/src/lib/fcitx-utils/keysym.h#L51 这个就是新加入的按键是否是重复键的。 Symbol 则是表达了经过键盘布局转换之后得到的符号,一般来说,输入法的逻辑是直接和 Symbol 打交道的,而不关心从 Code 到 Symbol 之间的转换。Fcitx 的 Symbol 对应的数值是采用和 X11 Symbol 一样的值来简化判断,这样在大部分情况下都不需要重新进行映射。 … Continue reading

Posted in fcitx development | Tagged , | Leave a comment

Client Side Input panel for Fcitx 5

(English version is at the end of this post.) 输入框的定位相关的问题其实很复杂,过去 Fcitx 总是自己绘制相关的窗口。X11 这个办法还好使,但是其他情况可能就没这么好使了。让客户端绘制窗口的想法其实比 Fcitx 5 要早得多,最早是为了 fbterm 而增加的支持。 显然 fbterm 没法利用任何来自显示管理器的界面,所以它需要自己绘制它自己的界面。那会儿我添加了一个很简单的实现来支持这个功能。 为了正确显示界面需要支持以下功能: 窗口显示在光标的位置 窗口不能移出屏幕 在 wayland 里,和 X 最大的区别就是不知道窗口的位置,所以不得不使用特别的方法来支持。 用 wayland 的输入法协议的话,它确实是支持将某个窗口标记为输入法窗口并让混成器帮你进行定位,但是需要程序自己先使用 wayland 的输入法协议,混成器也要支持这个协议。目前这两部分的支持并不好。 或者让窗口传送一个相对坐标,然后让混成器帮忙移动窗口。gnome wayland + kimpanel 的扩展就是这样进行定位的,因为 kimpanel … Continue reading

Posted in fcitx development | Tagged , , , | 3 Comments

如何现在就用上 Fcitx 5 (Flatpak)

折腾了很久的自动构建,现在终于可以拿出来给大家用一下了。当然,据说 flathub 有特色网络问题……这部分我就不负责解决了。 首先添加源: 安装 Fcitx 5 和输入法: 然后,在本地非 flatpak 程序上使用的话,还需要安装 fcitx 4/5 的 im module。这个 repo 除了提供另一种更新方式之外,也主要是为了方便还没提供 fcitx 5 的发行版测试。fcitx 4 只要是最近的版本,都可以直接和 fcitx 5 配合使用。环境变量方面当然还是和过去一样,比较传统的就是设置在 ~/.xprofile 里面(和过去一样,如果你已经对 fcitx 4 进行设置了就不用修改什么。) 自动启动就把 flatpak 的 fcitx 5 的 desktop file 加入到自动启动即可。但相对的也需要阻止 … Continue reading

Posted in fcitx development | Tagged , , | Leave a comment

关于之前发在 Archlinux CN 群里 Fcitx 5 问卷里面问题的几个回答

1、sni图标似乎不响应系统(kde)配色了? 图标上来说用的是 input-keyboard-symbolic ,不幸他们没这个图标的 plasma 版本。其他图标都挺正常的啊?可以给 breeze 提交一个希望增加 input-keyboard 这个图标的请求。 2、非kde下面托盤和托盤右鍵菜單太醜了,還沒之前的4好看。 右键菜单和输入框一个主题吧。自带主题来说应该还行,没有修改的打算。如果你用的别的主题那就和 Fcitx 无关了。 3、更好康的皮肤,更佳的英文混输体验 皮肤本身就不说了,我自己应该不会再做什么别的皮肤。不过目前给皮肤增加了好几个新的功能,应该能帮助大家做出更好的皮肤。一个是 Overlay 图片,一个不会受到缩放的图片,可以固定显示在背景上。另一个是增加了 KWin 的模糊背景的支持,目前暂时可以设定一个矩形区域并模糊。 混合输入这个应该继续学习一下有什么办法……短期内肯定是没有大的改进。 4、Doesn’t work well on Sway, but that’s mainly a Wayland input protocol issue, no rush. 这个确实是比较难的事情…不过我对 wlroots 那个协议很不满意,下一步反正是打算自己实现一个新的协议。 5、fcitx5 … Continue reading

Posted in fcitx development | Tagged , | Leave a comment

Fcitx 5 的拼音有哪些新功能

拼音方面做了特别多的改进,但是目前还没有比较集中的地方说明到底有哪些新功能,所以这里特别列举一下。 1、算法的改进数据采用了和 sunpinyin 相同的 open-gram(也是为什么没有 fcitx5-sunpinyin的原因),算法来说是类似的基于统计语言模型计算概率,在用户的历史处理上和 sunpinyin 有所不同,但是整体来说是类似的。和原本的 Fcitx 4 自带拼音相比的话改进则是巨大的。 2、笔画过滤按 ` (反引号)键触发,可以输入 hpszn(横撇竖折捺)进行搜索。 3、输入颜文字对于有对应颜文字的词组可以直接输入,具体列表可以参考 https://github.com/fcitx/fcitx5-chinese-addons/blob/master/im/pinyin/emoji.txt 4、查询读音选中一段文字之后,可以用快速输入输入 duyin 来列出文字的读音。 5、自定义双拼方案音节例如可以直接指定某个音节对应的双拼,而不是根据单独声母/韵母来指定。此外之前似乎一直和标准不符的自然码方案也得到了修复。 6、多词库管理可以直接导入搜狗的细胞词库,单独启用或者禁用某个词库等。 7、Lua 扩展目前加入了针对候选词匹配的功能,而且预置了一些 lua 功能,例如输入时间: 8、拆字输入通过输入汉字部件来找到对应汉字。例如: 9、一些之前就有的功能笔画输入(直接hpszn输入笔画查找汉字),以词定字,联想,简繁转换,输入单词,云拼音,还有 Fcitx 一直以来就有的高度可扩展的快速输入功能。

Posted in fcitx development | Tagged , , | 1 Comment