nixos/fcitx5: add the setting of RIME_DATA_DIR and options for rime-data

This commit is contained in:
Vonfry
2022-04-02 19:22:24 +08:00
parent 6031ae21f6
commit 2474c8c89a

View File

@@ -5,7 +5,9 @@ with lib;
let let
im = config.i18n.inputMethod; im = config.i18n.inputMethod;
cfg = im.fcitx5; cfg = im.fcitx5;
fcitx5Package = pkgs.fcitx5-with-addons.override { inherit (cfg) addons; }; addons = cfg.addons ++ optional cfg.enableRimeData pkgs.rime-data;
fcitx5Package = pkgs.fcitx5-with-addons.override { inherit addons; };
whetherRimeDataDir = any (p: p.pname == "fcitx5-rime") cfg.addons;
in { in {
options = { options = {
i18n.inputMethod.fcitx5 = { i18n.inputMethod.fcitx5 = {
@@ -17,16 +19,29 @@ in {
Enabled Fcitx5 addons. Enabled Fcitx5 addons.
''; '';
}; };
enableRimeData = mkEnableOption "default rime-data with fcitx5-rime";
}; };
}; };
config = mkIf (im.enabled == "fcitx5") { config = mkIf (im.enabled == "fcitx5") {
i18n.inputMethod.package = fcitx5Package; i18n.inputMethod.package = fcitx5Package;
environment.variables = { environment = mkMerge [{
GTK_IM_MODULE = "fcitx"; variables = {
QT_IM_MODULE = "fcitx"; GTK_IM_MODULE = "fcitx";
XMODIFIERS = "@im=fcitx"; QT_IM_MODULE = "fcitx";
}; XMODIFIERS = "@im=fcitx";
};
}
(mkIf whetherRimeDataDir {
pathsToLink = [
"/share/rime-data"
];
variables = {
NIX_RIME_DATA_DIR = "/run/current-system/sw/share/rime-data";
};
})];
}; };
} }