1{ config, pkgs, lib, generators, ... }:
2with lib;
3let
4 cfg = config.i18n.inputMethod.kime;
5 yamlFormat = pkgs.formats.yaml { };
6in
7{
8 options = {
9 i18n.inputMethod.kime = {
10 config = mkOption {
11 type = yamlFormat.type;
12 default = { };
13 example = literalExpression ''
14 {
15 daemon = {
16 modules = ["Xim" "Indicator"];
17 };
18
19 indicator = {
20 icon_color = "White";
21 };
22
23 engine = {
24 hangul = {
25 layout = "dubeolsik";
26 };
27 };
28 }
29 '';
30 description = ''
31 kime configuration. Refer to <link xlink:href="https://github.com/Riey/kime/blob/v${pkgs.kime.version}/docs/CONFIGURATION.md"/> for details on supported values.
32 '';
33 };
34 };
35 };
36
37 config = mkIf (config.i18n.inputMethod.enabled == "kime") {
38 i18n.inputMethod.package = pkgs.kime;
39
40 environment.variables = {
41 GTK_IM_MODULE = "kime";
42 QT_IM_MODULE = "kime";
43 XMODIFIERS = "@im=kime";
44 };
45
46 environment.etc."xdg/kime/config.yaml".text = replaceStrings [ "\\\\" ] [ "\\" ] (builtins.toJSON cfg.config);
47 };
48}
49