From f761238905f9560a3c57706b62056b6bd975028e Mon Sep 17 00:00:00 2001 From: Ivy Pierlot Date: Tue, 23 Sep 2025 17:25:13 +1000 Subject: [PATCH 1/7] maintainers: add auscyber to maintainers --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 500b13917dc6..5763c28f1782 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -2487,6 +2487,12 @@ githubId = 574938; name = "Jonathan Glines"; }; + auscyber = { + email = "ivyp@outlook.com.au"; + github = "auscyber"; + name = "Ivy Pierlot"; + githubId = 12080502; + }; austin-artificial = { email = "austin.platt@artificial.io"; github = "austin-artificial"; From 4a883e81805c5471681781ccbf10a85ae5ed42e1 Mon Sep 17 00:00:00 2001 From: Ivy Pierlot Date: Tue, 23 Sep 2025 17:25:42 +1000 Subject: [PATCH 2/7] karabiner-dk: init at 6.3.0 Co-authored-by: Fernando Rodrigues --- pkgs/by-name/ka/karabiner-dk/package.nix | 59 ++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 pkgs/by-name/ka/karabiner-dk/package.nix diff --git a/pkgs/by-name/ka/karabiner-dk/package.nix b/pkgs/by-name/ka/karabiner-dk/package.nix new file mode 100644 index 000000000000..1b2deda61d05 --- /dev/null +++ b/pkgs/by-name/ka/karabiner-dk/package.nix @@ -0,0 +1,59 @@ +{ + libarchive, + xar, + lib, + stdenv, + fetchFromGitHub, + common-updater-scripts, + writeShellScript, + curl, + jq, + driver-version ? null, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "karabiner-dk"; + sourceVersion = "6.3.0"; + version = lib.defaultTo finalAttrs.sourceVersion driver-version; + + src = fetchFromGitHub { + owner = "pqrs-org"; + repo = "Karabiner-DriverKit-VirtualHIDDevice"; + tag = "v${finalAttrs.sourceVersion}"; + hash = "sha256-nLu//qG3RzrEDWvNmSJH7YmgVgiTiYTg5FaliiEtdpo="; + }; + + nativeBuildInputs = [ + libarchive + xar + ]; + + unpackPhase = '' + runHook preUnpack + xar -xf $src/dist/Karabiner-DriverKit-VirtualHIDDevice-${finalAttrs.version}.pkg + zcat Payload | bsdcpio -i + runHook postUnpack + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out + cp -R ./Applications ./Library $out + runHook postInstall + ''; + dontFixup = true; + + passthru.updateScript = writeShellScript "karabiner-dk" '' + NEW_VERSION=$(${lib.getExe curl} --silent https://api.github.com/repos/pqrs-org/Karabiner-DriverKit-VirtualHIDDevice/releases/latest $${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} | ${lib.getExe jq} '.tag_name | ltrimstr("v")' --raw-output) + ${lib.getExe' common-updater-scripts "update-source-version"} "karabiner-dk" "$NEW_VERSION" --ignore-same-version --version-key="sourceVersion"; + ''; + + meta = { + changelog = "https://github.com/pqrs-org/Karabiner-DriverKit-VirtualHIDDevice/releases/tag/${finalAttrs.src.tag}"; + description = "Virtual keyboard and virtual mouse using DriverKit on macOS"; + homepage = "https://karabiner-elements.pqrs.org/"; + maintainers = with lib.maintainers; [ auscyber ]; + license = lib.licenses.unlicense; + platforms = lib.platforms.darwin; + sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; + }; +}) From 704930cc5754ff6d7c63b484a4933d5c3aad9576 Mon Sep 17 00:00:00 2001 From: Ivy Pierlot Date: Tue, 23 Sep 2025 17:52:37 +1000 Subject: [PATCH 3/7] karabiner-elements: fix notarization for driver --- pkgs/by-name/ka/karabiner-elements/package.nix | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/ka/karabiner-elements/package.nix b/pkgs/by-name/ka/karabiner-elements/package.nix index 1377ccd15a08..19b9727940e4 100644 --- a/pkgs/by-name/ka/karabiner-elements/package.nix +++ b/pkgs/by-name/ka/karabiner-elements/package.nix @@ -2,7 +2,7 @@ lib, stdenv, fetchurl, - cpio, + libarchive, xar, undmg, nix-update-script, @@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: { ]; nativeBuildInputs = [ - cpio + libarchive xar undmg ]; @@ -32,9 +32,9 @@ stdenv.mkDerivation (finalAttrs: { undmg $src xar -xf Karabiner-Elements.pkg cd Installer.pkg - zcat Payload | cpio -i + zcat Payload | bsdcpio -i cd ../Karabiner-DriverKit-VirtualHIDDevice.pkg - zcat Payload | cpio -i + zcat Payload | bsdcpio -i cd .. ''; @@ -49,13 +49,17 @@ stdenv.mkDerivation (finalAttrs: { ''; installPhase = '' + runHook preInstall mkdir -p $out $driver cp -R Installer.pkg/Applications Installer.pkg/Library $out cp -R Karabiner-DriverKit-VirtualHIDDevice.pkg/Applications Karabiner-DriverKit-VirtualHIDDevice.pkg/Library $driver cp "$out/Library/Application Support/org.pqrs/Karabiner-Elements/package-version" "$out/Library/Application Support/org.pqrs/Karabiner-Elements/version" + runHook postInstall ''; + dontFixup = true; # notarization breaks if fixup is enabled + passthru.updateScript = nix-update-script { }; meta = { @@ -63,7 +67,7 @@ stdenv.mkDerivation (finalAttrs: { description = "Powerful utility for keyboard customization on macOS Ventura (13) or later"; homepage = "https://karabiner-elements.pqrs.org/"; license = lib.licenses.unlicense; - maintainers = [ ]; + maintainers = with lib.maintainers; [ auscyber ]; platforms = lib.platforms.darwin; }; }) From fdd5c1635857215ba4dbd555d6b9e72ad063ebe5 Mon Sep 17 00:00:00 2001 From: Ivy Pierlot Date: Tue, 23 Sep 2025 17:53:00 +1000 Subject: [PATCH 4/7] kanata: add darwinDriver output --- pkgs/by-name/ka/kanata/package.nix | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ka/kanata/package.nix b/pkgs/by-name/ka/kanata/package.nix index 509fc4cd0a21..5fdc17192d90 100644 --- a/pkgs/by-name/ka/kanata/package.nix +++ b/pkgs/by-name/ka/kanata/package.nix @@ -4,20 +4,22 @@ apple-sdk_13, darwinMinVersionHook, rustPlatform, + karabiner-dk, fetchFromGitHub, versionCheckHook, nix-update-script, writeShellScriptBin, withCmd ? false, }: -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage (finalAttrs: { pname = "kanata"; version = "1.9.0"; + darwinDriverVersion = "5.0.0"; # needs to be updated if karabiner-driverkit changes src = fetchFromGitHub { owner = "jtroo"; repo = "kanata"; - rev = "v${version}"; + rev = "v${finalAttrs.version}"; sha256 = "sha256-xxAIwiwCQugDXpWga9bQ9ZGfem46rwDlmf64dX/tw7g="; }; @@ -47,14 +49,22 @@ rustPlatform.buildRustPackage rec { passthru = { updateScript = nix-update-script { }; + darwinDriver = lib.optional stdenv.hostPlatform.isDarwin ( + karabiner-dk.override { + driver-version = finalAttrs.darwinDriverVersion; + } + ); }; meta = with lib; { description = "Tool to improve keyboard comfort and usability with advanced customization"; homepage = "https://github.com/jtroo/kanata"; license = licenses.lgpl3Only; - maintainers = with maintainers; [ linj ]; + maintainers = with maintainers; [ + linj + auscyber + ]; platforms = platforms.unix; mainProgram = "kanata"; }; -} +}) From 8dfe5d494eb092a5f6196e6cbed776ce9ef4c9e1 Mon Sep 17 00:00:00 2001 From: Ivy Pierlot Date: Thu, 25 Sep 2025 10:40:11 +1000 Subject: [PATCH 5/7] kanata: added update script darwinDriverVersion --- pkgs/by-name/ka/kanata/package.nix | 34 +++++++++++++++++++++++------- pkgs/by-name/ka/kanata/update.sh | 8 +++++++ 2 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 pkgs/by-name/ka/kanata/update.sh diff --git a/pkgs/by-name/ka/kanata/package.nix b/pkgs/by-name/ka/kanata/package.nix index 5fdc17192d90..6b5fd10ceb63 100644 --- a/pkgs/by-name/ka/kanata/package.nix +++ b/pkgs/by-name/ka/kanata/package.nix @@ -1,20 +1,24 @@ { stdenv, lib, + gnused, apple-sdk_13, darwinMinVersionHook, rustPlatform, karabiner-dk, fetchFromGitHub, versionCheckHook, - nix-update-script, + common-updater-scripts, + yq, + curl, + jq, + writeShellApplication, writeShellScriptBin, withCmd ? false, }: rustPlatform.buildRustPackage (finalAttrs: { pname = "kanata"; version = "1.9.0"; - darwinDriverVersion = "5.0.0"; # needs to be updated if karabiner-driverkit changes src = fetchFromGitHub { owner = "jtroo"; @@ -48,12 +52,26 @@ rustPlatform.buildRustPackage (finalAttrs: { ]; passthru = { - updateScript = nix-update-script { }; - darwinDriver = lib.optional stdenv.hostPlatform.isDarwin ( - karabiner-dk.override { - driver-version = finalAttrs.darwinDriverVersion; - } - ); + darwinDriverVersion = "5.0.0"; # needs to be updated if karabiner-driverkit changes + updateScript = lib.getExe (writeShellApplication { + name = "update-script-kanata"; + runtimeInputs = [ + curl + gnused + yq + jq + common-updater-scripts + ]; + text = builtins.readFile ./update.sh; + }); + + darwinDriver = + if stdenv.hostPlatform.isDarwin then + (karabiner-dk.override { + driver-version = finalAttrs.passthru.darwinDriverVersion; + }) + else + null; }; meta = with lib; { diff --git a/pkgs/by-name/ka/kanata/update.sh b/pkgs/by-name/ka/kanata/update.sh new file mode 100644 index 000000000000..bc78070bb66b --- /dev/null +++ b/pkgs/by-name/ka/kanata/update.sh @@ -0,0 +1,8 @@ +NEW_VERSION="$(curl --silent https://api.github.com/repos/jtroo/kanata/releases/latest ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} | jq '.tag_name | ltrimstr("v")' --raw-output)" +update-source-version "kanata" "$NEW_VERSION" --ignore-same-version +karabinerDriverCrateVersion="$(curl -L "https://raw.githubusercontent.com/jtroo/kanata/refs/tags/v$NEW_VERSION/Cargo.lock" | tomlq | jq --raw-output '.package[] | select(.name | test("karabiner-driverkit")) |.version')" +newKarabinerDkVersion="$(curl -L "https://crates.io/api/v1/crates/karabiner-driverkit/$karabinerDriverCrateVersion/download" | tar xzvf - --strip-components=1 -O "karabiner-driverkit-$karabinerDriverCrateVersion/c_src/Karabiner-DriverKit-VirtualHIDDevice/version.json" | jq --raw-output0 .package_version)" +importTree="(let tree = import ./.; in if builtins.isFunction tree then tree {} else tree)" +oldDarwinVersion=$(nix-instantiate --eval -E "with $importTree; kanata.passthru.darwinDriverVersion" | tr -d '"') +nixFile=$(nix-instantiate --eval --strict -A "kanata.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/') +sed -i "$nixFile" -re "s|\"$oldDarwinVersion\"|\"$newKarabinerDkVersion\"|" From 308a224f9c1ec17d009bd36ae8e36235ea10fde9 Mon Sep 17 00:00:00 2001 From: Ivy Pierlot Date: Thu, 2 Oct 2025 11:59:40 +1000 Subject: [PATCH 6/7] haskellPackages.kmonad: add darwinDriver --- pkgs/development/haskell-modules/configuration-nix.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index fef271f1fbea..07e1f2b1c04b 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -1865,7 +1865,12 @@ builtins.intersectAttrs super { kmonad = lib.pipe super.kmonad [ enableSeparateBinOutput (overrideCabal (drv: { - passthru = lib.recursiveUpdate drv.passthru or { } { tests.nixos = pkgs.nixosTests.kmonad; }; + passthru = lib.recursiveUpdate drv.passthru or { } { + darwinDriver = pkgs.karabiner-dk.override { + driver-version = "5.0.0"; + }; + tests.nixos = pkgs.nixosTests.kmonad; + }; })) ]; From 2db6f4e8a8cfe3e751c2744b749e723f9aa3aa9c Mon Sep 17 00:00:00 2001 From: Ivy Pierlot Date: Thu, 9 Oct 2025 13:16:36 +1100 Subject: [PATCH 7/7] haskellPackages.kmonad: add auscyber as maintainer --- .../haskell-modules/configuration-hackage2nix/main.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index a44decc86752..977e75c6aa59 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -196,6 +196,8 @@ package-maintainers: - hevm athas: - futhark + auscyber: + - kmonad bdesham: - pinboard-notes-backup berberman: