Hi there! First time posting, though I’ve lurked the site for years.
I’m on unstable
, trying to use the kanata module to configure a keyboard rebind, as described in this discourse post.
Here’s my kanata.nix
module where I configure it:
{config, lib, pkgs, ...}: {
environment.systemPackages = [
pkgs.kanata
];
services.kanata = {
enable = true;
keyboards = {
"macha".config = ''
(defsrc
caps
)
(deflayer caps_to_esc
esc
)
'';
};
};
}
When I run nixos-rebuild, I get a stack trace ending with the following:
error: attribute 'lib' missing
at /nix/store/bd4fmzws6n5542khxbifbkr6nrygi232-source/nixos/modules/services/hardware/kanata.nix:118:13:
117| ${lib.optionalString (keyboard.port != null) "--port ${toString keyboard.port}"} \
118| ${utils.lib.escapeSystemdExecArgs keyboard.extraArgs}
| ^
119| '';
Here’s the source file where utils
is being included as an attr to the module.
Checking out nixos/lib/utils.nix
, the desired utility function is right there, not under the lib
attr. This leads me to believe that a potential fix could be to swap utils.lib.escapeSystemdExecArgs
for utils.escapeSystemdExecArgs
.
What’s I would love some clarification on is how utils
is being passed in as an extra attr to the module here. From my “nixos user’s” understanding, the module system supplies just a few attrs on its own ({config, lib, pkgs}
). Anything else can be passed in through nixosSystem {specialArgs = {...}}
.
Additionally, how could I test a patch to the nixos
repo? Whether or not my suspected solution works, it would be awesome to be able to try the patch and see for myself how it changes things