commit 3a4410509bd64e5a4439d932e8d3a289a604526d
Author: vin <git@vineetk.net>
Date: Sat, 15 Mar 2025 04:09:10 -0400
setup zmk-config via github:lilyinstarlight/zmk-nix
Diffstat:
8 files changed, 239 insertions(+), 0 deletions(-)
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
@@ -0,0 +1,8 @@
+version: 2
+updates:
+ - package-ecosystem: github-actions
+ directory: "/"
+ schedule:
+ interval: daily
+ commit-message:
+ prefix: "ci"
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
@@ -0,0 +1,26 @@
+name: CI
+
+on:
+ pull_request:
+ push:
+ branches:
+ - main
+ workflow_dispatch:
+
+jobs:
+ build:
+ name: Build
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - uses: DeterminateSystems/nix-installer-action@v11
+
+ - run: nix -vL --show-trace flake check
+
+ - run: nix -vL --show-trace build
+
+ - uses: actions/upload-artifact@v4
+ with:
+ name: zmk_firmware
+ path: result
diff --git a/.github/workflows/deps.yml b/.github/workflows/deps.yml
@@ -0,0 +1,44 @@
+name: Dependencies
+
+on:
+ schedule:
+ - cron: '0 0 * * 0'
+ workflow_dispatch:
+
+permissions:
+ pull-requests: write
+ contents: write
+
+jobs:
+ update:
+ name: Update
+ runs-on: ubuntu-latest
+ permissions:
+ actions: write
+ contents: write
+ pull-requests: write
+ steps:
+ - uses: actions/checkout@v4
+
+ - uses: DeterminateSystems/nix-installer-action@v12
+
+ - run: nix -vL run --show-trace .#update
+
+ - id: create-pr
+ uses: peter-evans/create-pull-request@v6
+ with:
+ branch: update_zmk_config_deps
+ delete-branch: true
+ committer: 'github-actions[bot] <github-actions[bot]@users.noreply.github.com>'
+ author: 'github-actions[bot] <github-actions[bot]@users.noreply.github.com>'
+ commit-message: 'config,nix: update deps'
+ title: 'config,nix: update deps'
+ labels: 'dependencies'
+ body: |
+ Automated bump of ZMK dependencies
+
+ - uses: benc-uk/workflow-dispatch@v1
+ if: ${{ contains(fromJSON('["created", "updated"]'), steps.create-pr.outputs.pull-request-operation) }}
+ with:
+ workflow: ci.yml
+ ref: refs/heads/update_zmk_config_deps
diff --git a/.github/workflows/flake.yml b/.github/workflows/flake.yml
@@ -0,0 +1,32 @@
+name: Flake
+
+on:
+ schedule:
+ - cron: '0 0 * * 0'
+ workflow_dispatch:
+
+jobs:
+ update:
+ name: Update
+ runs-on: ubuntu-latest
+ permissions:
+ actions: write
+ contents: write
+ pull-requests: write
+ steps:
+ - uses: actions/checkout@v4
+
+ - uses: DeterminateSystems/nix-installer-action@v11
+
+ - id: update-flake-lock
+ uses: DeterminateSystems/update-flake-lock@v21
+ with:
+ commit-msg: 'flake: update inputs'
+ pr-title: 'flake: update inputs'
+ pr-labels: 'dependencies'
+
+ - uses: benc-uk/workflow-dispatch@v1
+ if: ${{ contains(fromJSON('["created", "updated"]'), steps.update-flake-lock.outputs.pull-request-operation) }}
+ with:
+ workflow: ci.yml
+ ref: refs/heads/update_flake_lock_action
diff --git a/.gitignore b/.gitignore
@@ -0,0 +1,5 @@
+/.west
+/modules
+/zephyr
+/zmk
+/build
diff --git a/config/west.yml b/config/west.yml
@@ -0,0 +1,34 @@
+manifest:
+ remotes:
+ - name: zmkfirmware
+ url-base: https://github.com/zmkfirmware
+ projects:
+ - name: zmk
+ remote: zmkfirmware
+ revision: 4da89bd99716bf6c1d7d788f3cdaec4cee7403e9 # main
+ import: app/west.yml
+ - name: zephyr
+ remote: zmkfirmware
+ revision: 0fa4cc26d8b1e5243570ccc0f7f66c4c428d2961 # v3.5.0+zmk-fixes
+ import:
+ name-blocklist:
+ - ci-tools
+ - hal_altera
+ - hal_cypress
+ - hal_infineon
+ - hal_microchip
+ - hal_nxp
+ - hal_openisa
+ - hal_silabs
+ - hal_xtensa
+ - hal_st
+ - hal_ti
+ - loramac-node
+ - mcuboot
+ - mcumgr
+ - net-tools
+ - openthread
+ - edtt
+ - trusted-firmware-m
+ self:
+ path: config
diff --git a/flake.lock b/flake.lock
@@ -0,0 +1,48 @@
+{
+ "nodes": {
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1741865919,
+ "narHash": "sha256-4thdbnP6dlbdq+qZWTsm4ffAwoS8Tiq1YResB+RP6WE=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "573c650e8a14b2faa0041645ab18aed7e60f0c9a",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "nixpkgs": "nixpkgs",
+ "zmk-nix": "zmk-nix"
+ }
+ },
+ "zmk-nix": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1741480308,
+ "narHash": "sha256-dt1dNtAu0uL/Hm5SAjrUXxk9/J2n0qn87BYg0rCKC3E=",
+ "owner": "lilyinstarlight",
+ "repo": "zmk-nix",
+ "rev": "ea2d2b41854960a8f991302ea75c7b93596e6244",
+ "type": "github"
+ },
+ "original": {
+ "owner": "lilyinstarlight",
+ "repo": "zmk-nix",
+ "type": "github"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
@@ -0,0 +1,42 @@
+{
+ inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
+
+ zmk-nix = {
+ url = "github:lilyinstarlight/zmk-nix";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+ };
+
+ outputs = { self, nixpkgs, zmk-nix }: let
+ forAllSystems = nixpkgs.lib.genAttrs (nixpkgs.lib.attrNames zmk-nix.packages);
+ in {
+ packages = forAllSystems (system: rec {
+ default = firmware;
+
+ firmware = zmk-nix.legacyPackages.${system}.buildSplitKeyboard {
+ name = "firmware";
+
+ src = nixpkgs.lib.sourceFilesBySuffices self [ ".board" ".cmake" ".conf" ".defconfig" ".dts" ".dtsi" ".json" ".keymap" ".overlay" ".shield" ".yml" "_defconfig" ];
+
+ board = "nice_nano_v2";
+ shield = "cradio_%PART%";
+
+ zephyrDepsHash = "sha256-8h5lSnwxLTIqlvDNNl8fpv6hJFNF146Ck1qUWI/Cqqw=";
+
+ meta = {
+ description = "ZMK firmware";
+ license = nixpkgs.lib.licenses.mit;
+ platforms = nixpkgs.lib.platforms.all;
+ };
+ };
+
+ flash = zmk-nix.packages.${system}.flash.override { inherit firmware; };
+ update = zmk-nix.packages.${system}.update;
+ });
+
+ devShells = forAllSystems (system: {
+ default = zmk-nix.devShells.${system}.default;
+ });
+ };
+}