11

解决 calibre6+ 无法使用 Fcitx5 故障

 1 year ago
source link: https://hsingko.github.io/post/2022/12/12/cannot-use-fcitx5-in-calibre6-bug/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

解决 calibre6+ 无法使用 Fcitx5 故障

总算能用了

2022-12-12 bug 2 分钟

之前手贱更新了 Calibre ,结果输入法又不能用了,之前的解决方法是拷贝 libFcitx5Qt5DBusAddons.so.1libfcitx5platforminputcontextplugin.so 这两个文件到 calibre 相应的库文件目录下,但是发现现在不管用了。当时懒得折腾,干脆用 calibre.el ,将 emacs 作为 calibre 的前端将就了;然而最近开始攒自己的 emacs 配置,不想安装不必要的插件,于是决定耐着性子看看要怎么解决,终于花费了半个多小时的时间,把 Fcitx5 鼓捣起来了。

废话少说,直接揭示谜底,为什么之前拷贝 .so 的方法不管用了?那是因为最近的 Calibre 更新到了 Qt6 ,如果还从 qt5 里面拷文件当然行不通了;然而从 qt6 目录拷贝也不行,为什么呢?因为 calibre 的 Qt 也不够新,如果运气不好,恰好卡在系统的 fcitx5-qt 插件库无法应用到 calibre 的旧版本框架这么一个尴尬的位置。比如我用的是 fedora37, fcitx5-qt 的版本是 5.0.16 ,里面的 .so 文件就没法应用在 calibre 里面。

那么怎么解决呢?简单来说,就是从网络上找历史版本的 fcitx5-qt 安装包,然后解压缩拷贝里面的 .so 文件,然后从里面一个个地找,看到底哪个历史版本可以让 calibre 成功调用。以我的例子, calibre 的版本是 6.9 ,那么可以下载 fcitx5-qt 5.0.11 ,fedora 包的下载地址是这里 。下载好之后可以用 rpm2cpio 软件进行解压,然后提取里面的两个文件:

  • libfcitx5platforminputcontextplugin.so, 拷贝到 /opt/calibre/plugins/platforminputcontexts 目录(这是直接从官网下载二进制包安装的目录,其他的安装方式可以有所不同,建议直接用 locate 查找)
  • libFcitx5Qt6DBusAddons.so.1, 拷贝到 /opt/calibre/lib, 这里可能要修改一下文件名,注意不要拷贝成链接文件

重启 Calibre, 大功告成!

不过我不太清楚 fedora 上的二进制文件在其他发行版的 Linux 上是否能用,保险起见可以去网络上找相应的历史镜像,唯一的区别是包的解压方式不同而已。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK