我也! 用上 fcitx5 了
已然开发两年半了
新 fcitx 很棒, 棒到甚至可以干掉 ibus 的服务然后直接使用 ibus 的 im module
虽然目前没有配置界面也没有文档, 不过我们不需要!
来上个图:
至于安装, 其实按照 肥猫的博客里讲的 来就好了
此文完 本来应该是这样
然而我现在用的是 Deepin, 所以需要自己编译, 并且中途还有几个小坑
源码
挨个 clone
注意这也是编译的推荐顺序
依赖
按照 CMakeLists.txt
缺哪个装哪个, 下面是大概的列表, 不保证全, 其他 debian 系应该也没差
build-essential cmake extra-cmake-modules libxcb1-dev libxcb-keysyms1-dev libxcb-util0-dev libdbus-1-dev libevent-dev uuid-dev gettext libsystemd-dev libxkbfile-dev libxkbcommon-x11-dev libxcb-xkb-dev libxcb1-dev libpango1.0-dev libpangocairo-1.0-0 libenchant-dev libxcb-ewmh-dev libxcb-xinerama0-dev libxcb-icccm4-dev libxcb-ewmh-dev wayland-protocols libboost-dev libcurl4-gnutls-dev libopencc-dev libqt5webengine5-dev libqt5webchannel5-dev qt4-qmake libqt4-dev qtbase5-dev libboost-iostreams-dev gobject-introspection libgirepository1.0-dev libgtk2.0-dev libgtk-3-dev
源里的 libfmt3-dev
不带 cmake 文件, cmake 找不到, 得自己编译安装
编译
mkdir build && cd $_ && cmake .. && make -j`nproc` && sudo make install
编译那几个依赖 Qt5 的项目的时候可能会报错, 因为最低 Qt 版本要求是 5.7, Deepin 的是 5.6
比如找不到合适的 QAction
构造器, 是因为 5.7 新加了默认值, 手动把默认值填上就行了
diff --git a/qt5/widgetsaddons/fcitxqtkeysequencewidget.cpp b/qt5/widgetsaddons/fcitxqtkeysequencewidget.cpp
index a774282..a6d8b78 100644
--- a/qt5/widgetsaddons/fcitxqtkeysequencewidget.cpp
+++ b/qt5/widgetsaddons/fcitxqtkeysequencewidget.cpp
@@ -143,7 +143,7 @@ void FcitxQtKeySequenceWidgetPrivate::init() {
clearButton_ = new QToolButton(q);
layout_->addWidget(clearButton_);
- keyCodeModeAction_ = new QAction(_("Key code mode"));
+ keyCodeModeAction_ = new QAction(_("Key code mode"), nullptr);
keyCodeModeAction_->setCheckable(true);
keyCodeModeAction_->setEnabled(isX11LikePlatform());
q->setContextMenuPolicy(Qt::ActionsContextMenu);
还有找不到 qOverload
, 也是自己声明个就行, 实现在:
https://github.com/qt/qtbase/blob/5.7/src/corelib/global/qglobal.h#L1041-L1086
配置
在 ~/.config/fcitx5/profile
写上以下内容, 如果不写靠默认配置是不会有拼音输入法可以用的
配置格式在未来版本可能会变, 自己照着改改吧
[Groups/0]
# Group Name
Name=默认
# Layout
Default Layout=us
# Default Input Method
DefaultIM=pinyin
[Groups/0/Items/0]
# Name
Name=keyboard-us
# Layout
Layout=
[Groups/0/Items/1]
# Name
Name=pinyin
# Layout
Layout=
[GroupOrder]
0=默认
不要在 fcitx 运行时修改, 因为进程退出后会覆写所有配置文件
环境变量
GTK_IM_MODULE=fcitx5
XMODIFIERS=@im=fcitx
QT_IM_MODULE=fcitx5
启动
终端运行 fcitx5
, 看看有没有错误
自动运行
在 ~/.config/autostart/
建个 fcitx5.desktop
, 填上
[Desktop Entry]
Name=Fcitx5
GenericName=Fcitx5 Input Method
Comment=Start Fcitx5
Exec=fcitx5
Icon=fcitx
Terminal=false
Type=Application
Categories=System;Utility;
StartupNotify=false
X-GNOME-Autostart-Phase=Applications
X-GNOME-AutoRestart=false
X-GNOME-Autostart-Notify=false
X-KDE-autostart-after=panel
X-KDE-StartupNotify=false
X-GNOME-Autostart-enabled=true
关闭云拼音
默认用的是 Google 的云拼音, 也可以切换到 Baidu 的, 但我不用
关闭的快捷键是 Control+Alt+Shift+C
, 参见 这里
也可以修改 ~/.config/fcitx5/conf/pinyin.conf
# Enable Cloud Pinyin
CloudPinyinEnabled=False
其他
默认界面的配置文件在 ~/.config/fcitx5/conf/classicui.conf
如果遇到多屏幕字体大小不一致的情况, 设置
PerScreenDPI=False
因为 fcitx5 会自动计算每个屏幕的物理 DPI 大小然后进行缩放
最后我移植了个主题, 有兴趣的话可以试试:
https://github.com/iovxw/fcitx5-simple-theme