aboutsummaryrefslogtreecommitdiff
path: root/modules/default.nix
diff options
context:
space:
mode:
authorChris Wells <chris@mathematicaster.org>2025-10-16 12:41:27 -0500
committerChris Wells <chris@mathematicaster.org>2025-10-16 12:41:27 -0500
commit3c986ff650f04bb19597e3d519d3ebcfbd9e18a7 (patch)
treeeddf1701ecf92ea896f4d36d1b21f5ad1ccd02bc /modules/default.nix
parent93a6c43ae005b39cce3b33a1dddf0e50ca5e06ad (diff)
downloadfw-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/default.nix')
-rw-r--r--modules/default.nix40
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 = ''