zmk-studio: init at 0.3.1 (#400653)

This commit is contained in:
@mjones
2026-01-25 01:49:38 +00:00
committed by GitHub
2 changed files with 111 additions and 0 deletions
@@ -0,0 +1,13 @@
diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json
index 8fd57bf..6a27557 100644
--- a/src-tauri/tauri.conf.json
+++ b/src-tauri/tauri.conf.json
@@ -33,7 +33,7 @@
"exceptionDomain": "",
"frameworks": [],
"providerShortName": null,
- "signingIdentity": "-"
+ "signingIdentity": null
},
"resources": [],
"shortDescription": "",
+98
View File
@@ -0,0 +1,98 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
fetchNpmDeps,
npm-lockfile-fix,
cargo-tauri,
makeBinaryWrapper,
nodejs,
npmHooks,
pkg-config,
wrapGAppsHook3,
glib-networking,
udev,
webkitgtk_4_1,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "zmk-studio";
version = "0.3.1";
src = fetchFromGitHub {
owner = "zmkfirmware";
repo = "zmk-studio";
tag = "v${finalAttrs.version}";
postFetch = ''
# add missing integrity fields to lockfile
${lib.getExe npm-lockfile-fix} $out/package-lock.json
'';
hash = "sha256-7UwY+272JNqzQf1juOzDkiW2DNKHC5xg4cGguwAgwNc=";
};
patches = [
./darwin-dont-sign.patch
];
# building the download page requires the app to fetch the github API at build-time
# this page would only ever be visited if it wasn't built with tauri, so we disable it instead
postPatch = ''
# turn `npm run generate-data` into a NOOP
substituteInPlace package.json \
--replace-fail '"generate-data": "' '"generate-data": "true || '
# remove download page
rm download.html src/download.tsx src/DownloadPage.tsx
substituteInPlace vite.config.ts \
--replace-fail 'download: "./download.html",' ""
'';
cargoRoot = "src-tauri";
buildAndTestSubdir = "src-tauri";
cargoHash = "sha256-BNX2vhsHaSk3eiadVPH6To0CgbOEGJ1JVKkW3Hw7QH0=";
npmDeps = fetchNpmDeps {
name = "zmk-studio-${finalAttrs.version}-npm-deps";
inherit (finalAttrs) src patches;
hash = "sha256-htCqTX/w1GP3b8wBD9p60Lwpjr2V7sv05unRv2IrP1A=";
};
nativeBuildInputs = [
cargo-tauri.hook
nodejs
npmHooks.npmConfigHook
]
++ lib.optionals stdenv.hostPlatform.isLinux [
pkg-config
wrapGAppsHook3
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
makeBinaryWrapper
];
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
glib-networking # for image loading
udev
webkitgtk_4_1
];
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
makeWrapper "$out/Application/ZMK Studio.app/Contents/MacOS/zmk-studio" "$out/bin/zmk-studio"
'';
meta = {
description = "Tool for runtime keymap updates on ZMK-powered devices without reflashing firmware";
homepage = "https://github.com/zmkfirmware/zmk-studio";
changelog = "https://github.com/zmkfirmware/zmk-studio/blob/${finalAttrs.src.rev}/CHANGELOG.md";
license = lib.licenses.asl20;
mainProgram = "zmk-studio";
maintainers = with lib.maintainers; [ tomasajt ];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
})