1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2024-12-24 02:39:48 +01:00

kime: fix configuration

Switches the kime configuration format to use unstructured text. This
is necessary since version 3 and upwards use YAML tags.
This commit is contained in:
s.seidenath 2023-10-07 18:06:10 +02:00 committed by Robert Helgesson
parent 7b3fca5adc
commit 865bef3435
No known key found for this signature in database
GPG key ID: 96E745BD17AA17ED
2 changed files with 56 additions and 27 deletions

View file

@ -1,34 +1,33 @@
{ config, pkgs, lib, generators, ... }:
with lib;
{ config, pkgs, lib, ... }:
let
inherit (lib) literalExpression mkIf mkOption mkRemovedOptionModule types;
cfg = config.i18n.inputMethod.kime;
yamlFormat = pkgs.formats.yaml { };
in {
imports = [
(mkRemovedOptionModule [ "i18n" "inputMethod" "kime" "config" ] ''
Please use 'i18n.inputMethod.kime.extraConfig' instead.
'')
];
options = {
i18n.inputMethod.kime = {
config = mkOption {
type = yamlFormat.type;
default = { };
extraConfig = mkOption {
type = types.lines;
default = "";
example = literalExpression ''
{
daemon = {
modules = ["Xim" "Indicator"];
};
indicator = {
icon_color = "White";
};
engine = {
hangul = {
layout = "dubeolsik";
};
};
}
daemon:
modules: [Xim,Indicator]
indicator:
icon_color: White
engine:
hangul:
layout: dubeolsik
'';
description = ''
kime configuration. Refer to
<https://github.com/Riey/kime/blob/develop/docs/CONFIGURATION.md>
<https://github.com/Riey/kime/blob/v${pkgs.kime.version}/docs/CONFIGURATION.md>
for details on supported values.
'';
};
@ -44,8 +43,7 @@ in {
XMODIFIERS = "@im=kime";
};
xdg.configFile."kime/config.yaml".text =
replaceStrings [ "\\\\" ] [ "\\" ] (builtins.toJSON cfg.config);
xdg.configFile."kime/config.yaml".text = cfg.extraConfig;
systemd.user.services.kime-daemon = {
Unit = {

View file

@ -1,14 +1,45 @@
{ config, pkgs, ... }:
{
let
kimeConfig = ''
daemon:
modules: [Xim,Indicator]
indicator:
icon_color: White
engine:
hangul:
layout: dubeolsik
'';
in {
i18n.inputMethod = {
enabled = "kime";
kime.config = { engine = { hangul = { layout = "dubeolsik"; }; }; };
kime.extraConfig = kimeConfig;
};
test.stubs.kime = { outPath = null; };
test.stubs = {
kime = { outPath = null; };
gtk2 = {
buildScript = ''
mkdir -p $out/bin
echo '#/usr/bin/env bash' > $out/bin/gtk-query-immodules-2.0
chmod +x $out/bin/*
'';
};
gtk3 = {
buildScript = ''
mkdir -p $out/bin
echo '#/usr/bin/env bash' > $out/bin/gtk-query-immodules-3.0
chmod +x $out/bin/*
'';
};
};
nmt.script = ''
assertFileExists home-files/.config/systemd/user/kime-daemon.service
assertFileExists home-files/.config/kime/config.yaml
assertFileContent home-files/.config/kime/config.yaml \
${builtins.toFile "kime-expected.yaml" kimeConfig}
'';
}