解决 calibre6+ 无法使用 Fcitx5 故障
之前手贱更新了 Calibre ,结果输入法又不能用了,之前的解决方法是拷贝 libFcitx5Qt5DBusAddons.so.1
和 libfcitx5platforminputcontextplugin.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 上是否能用,保险起见可以去网络上找相应的历史镜像,唯一的区别是包的解压方式不同而已。