diff options
| author | Chris Wells <chris@mathematicaster.org> | 2025-10-16 12:41:27 -0500 |
|---|---|---|
| committer | Chris Wells <chris@mathematicaster.org> | 2025-10-16 12:41:27 -0500 |
| commit | 3c986ff650f04bb19597e3d519d3ebcfbd9e18a7 (patch) | |
| tree | eddf1701ecf92ea896f4d36d1b21f5ad1ccd02bc /modules | |
| parent | 93a6c43ae005b39cce3b33a1dddf0e50ca5e06ad (diff) | |
| download | fw-manager-3c986ff650f04bb19597e3d519d3ebcfbd9e18a7.tar fw-manager-3c986ff650f04bb19597e3d519d3ebcfbd9e18a7.tar.gz fw-manager-3c986ff650f04bb19597e3d519d3ebcfbd9e18a7.tar.bz2 fw-manager-3c986ff650f04bb19597e3d519d3ebcfbd9e18a7.tar.lz fw-manager-3c986ff650f04bb19597e3d519d3ebcfbd9e18a7.tar.xz fw-manager-3c986ff650f04bb19597e3d519d3ebcfbd9e18a7.tar.zst fw-manager-3c986ff650f04bb19597e3d519d3ebcfbd9e18a7.zip | |
qmk_firmware package and started writing build modules
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/default.nix | 40 |
1 files changed, 25 insertions, 15 deletions
diff --git a/modules/default.nix b/modules/default.nix index c5b8e4e..b6ac53a 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -19,7 +19,9 @@ in { kbds = mkOption { default = {}; - type = types.attrsOf <| types.submodule (args: { + type = types.attrsOf <| types.submodule (args: let + cfg = args.config; + in { options = { firmware = { type = mkOption { @@ -40,32 +42,40 @@ in { name = mkOption { type = types.str; description = "path to keyboard"; + example = "4pplet/steezy60"; }; revision = mkOption { type = types.nullOr types.str; description = "keyboard revision"; + example = "rev_a" }; - _path = mkOption { + _basePath = mkOption { type = types.str; - default = lib.concatStringsSep "/" ([ args.config.name ] ++ optional (args.config.revision != null) args.config.revision); + internal = true; + default = "keyboards/${cfg.qmk.keyboard.name}"; }; - _keymapsPath = mkOption { + _path = mkOption { type = types.str; - default = lib.concatStringsSep [ args.config.qmk.keyboard._path "keymaps" ]; + internal = true + default = lib.concatStringsSep "/" ([cfg.qmk.keyboard.basePath] ++ optional (cfg.qmk.keyboard.revision != null) cfg.qmk.keyboard.revision); }; + }; keymap = { name = mkOption { type = types.str; + default = "default"; + example = "default"; }; _path = mkOption { type = types.str; - default = "${args.config.qmk.keyboard._path}/keymaps/${args.config.qmk.keymap.name}"; + default = "${cfg.qmk.keyboard._basePath}/keymaps/${cfg.qmk.keymap.name}"; + internal = true; }; src = mkOption { @@ -78,13 +88,13 @@ in { bin = mkOption { type = types.path; default = let - ksrc = args.config.keymap.src; + ksrc = cfg.qmk.keymap.src; in pkgs.stdenv.mkDerivation { - name = "qmk:${args.config.qmk.keyboard._path}:${args.config.qmk.keymap.name}"; + name = "qmk:${cfg.qmk.keyboard._path}:${cfg.qmk.keymap.name}"; srcs = [ { name = "qmk_firmware"; - src = args.config.firmware.qmk_firmware; + src = cfg.qmk_firmware; } ] ++ lib.optional (ksrc != null) { name = "keymap"; @@ -93,18 +103,18 @@ in { sourceRoot = "qmk_firmware"; - nativeBuildImports = [ - pkgs.qmk - ]; + # nativeBuildImports = [ + # pkgs.qmk + # ]; postUnpack = lib.optionalString (ksrc != null) '' - mkdir -pv "keyboards/${args.config.keymap._path}" - cp -rv ../keymap/* "keyboards/${args.config.keymap._path}" + mkdir -pv "${cfg.qmk.keymap._path}" + cp -rv ../keymap/* "${cfg.qmk.keymap._path}" ''; buildPhase = '' SKIP_GIT=yes SKIP_VERSION=yes \ - make "keyboards/${args.config.keyboard._path}:${args.config.keymap.name}" + make "${cfg.qmk.keyboard._path}:${cfg.qmk.keymap.name}" ''; installPhase = '' |
