diff options
author | Lin Jian <me@linj.tech> | 2024-05-24 05:28:22 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-24 05:28:22 +0800 |
commit | 5fc645efaefeb790db011601da223372e704cae1 (patch) | |
tree | 8845d3ee696ea2ac496c88966c2fa75945c68ea9 | |
parent | 93301b0b310be904eaf448ede91a6555541ddc2f (diff) | |
parent | 882082a4116a9a77e0383e4df68b9f2c8e62f2da (diff) |
Merge pull request #314057 from NixOS/backport-313822-to-release-24.05
[Backport release-24.05] nixos/kanata: add a configFile option
-rw-r--r-- | nixos/modules/services/hardware/kanata.nix | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/nixos/modules/services/hardware/kanata.nix b/nixos/modules/services/hardware/kanata.nix index 46af3e36b9859..60fb33881f256 100644 --- a/nixos/modules/services/hardware/kanata.nix +++ b/nixos/modules/services/hardware/kanata.nix @@ -7,7 +7,7 @@ let upstreamDoc = "See [the upstream documentation](https://github.com/jtroo/kanata/blob/main/docs/config.adoc) and [example config files](https://github.com/jtroo/kanata/tree/main/cfg_samples) for more information."; - keyboard = { + keyboard = { name, config, ... }: { options = { devices = mkOption { type = types.listOf types.str; @@ -48,6 +48,21 @@ let ${upstreamDoc} ''; }; + configFile = mkOption { + type = types.path; + default = mkConfig name config; + defaultText = + "A config file generated by values from other kanata module options."; + description = '' + The config file. + + By default, it is generated by values from other kanata + module options. + + You can also set it to your own full config file which + overrides all other kanata module options. ${upstreamDoc} + ''; + }; extraArgs = mkOption { type = types.listOf types.str; default = [ ]; @@ -85,6 +100,10 @@ let ${keyboard.config} ''; + # Only the config file generated by this module is checked. A + # user-provided one is not checked because it may not be available + # at build time. I think this is a good balance between module + # complexity and functionality. checkPhase = '' ${getExe cfg.package} --cfg "$target" --check --debug ''; @@ -96,7 +115,7 @@ let Type = "notify"; ExecStart = '' ${getExe cfg.package} \ - --cfg ${mkConfig name keyboard} \ + --cfg ${keyboard.configFile} \ --symlink-path ''${RUNTIME_DIRECTORY}/${name} \ ${optionalString (keyboard.port != null) "--port ${toString keyboard.port}"} \ ${utils.escapeSystemdExecArgs keyboard.extraArgs} |