From 056358b26dc0c91ab8d49ec8c87df76b30f42d75 Mon Sep 17 00:00:00 2001 From: Alexis Hildebrandt Date: Sun, 27 Apr 2025 10:59:56 +0200 Subject: [PATCH 1/4] keymapp: add darwin platform --- pkgs/by-name/ke/keymapp/package.nix | 132 +++++++++++++++++----------- 1 file changed, 81 insertions(+), 51 deletions(-) diff --git a/pkgs/by-name/ke/keymapp/package.nix b/pkgs/by-name/ke/keymapp/package.nix index ab67776b821d..b2470135e5a9 100644 --- a/pkgs/by-name/ke/keymapp/package.nix +++ b/pkgs/by-name/ke/keymapp/package.nix @@ -9,66 +9,96 @@ webkitgtk_4_1, makeDesktopItem, copyDesktopItems, + undmg, }: let - desktopItem = makeDesktopItem { - name = "keymapp"; - icon = "keymapp"; - desktopName = "Keymapp"; - categories = [ - "Settings" - "HardwareSettings" - ]; - type = "Application"; - exec = "keymapp"; - }; -in -stdenv.mkDerivation rec { pname = "keymapp"; version = "1.3.6"; - - src = fetchurl { - url = "https://oryx.nyc3.cdn.digitaloceanspaces.com/keymapp/keymapp-${version}.tar.gz"; - hash = "sha256-LWO4aeNmGgZ+T41pb6HwC3tnwaiGviDIq63QMsrlkEc="; - }; - - nativeBuildInputs = [ - copyDesktopItems - autoPatchelfHook - wrapGAppsHook4 - ]; - - buildInputs = [ - libusb1 - webkitgtk_4_1 - libsoup_3 - ]; - - sourceRoot = "."; - - installPhase = '' - runHook preInstall - - install -m755 -D keymapp "$out/bin/keymapp" - install -Dm644 icon.png "$out/share/pixmaps/keymapp.png" - - runHook postInstall - ''; - - preFixup = '' - gappsWrapperArgs+=(--set-default '__NV_PRIME_RENDER_OFFLOAD' 1) - ''; - - desktopItems = [ desktopItem ]; - - meta = with lib; { + meta = { homepage = "https://www.zsa.io/flash/"; description = "Application for ZSA keyboards"; maintainers = with lib.maintainers; [ jankaifer shawn8901 ]; - platforms = platforms.linux; + platforms = lib.platforms.linux ++ lib.platforms.darwin; license = lib.licenses.unfree; }; -} + + linux = stdenv.mkDerivation (finalAttrs: { + inherit pname version meta; + + src = fetchurl { + url = "https://oryx.nyc3.cdn.digitaloceanspaces.com/keymapp/keymapp-${finalAttrs.version}.tar.gz"; + hash = "sha256-LWO4aeNmGgZ+T41pb6HwC3tnwaiGviDIq63QMsrlkEc="; + }; + + nativeBuildInputs = [ + copyDesktopItems + autoPatchelfHook + wrapGAppsHook4 + ]; + + buildInputs = [ + libusb1 + webkitgtk_4_1 + libsoup_3 + ]; + + sourceRoot = "."; + + installPhase = '' + runHook preInstall + + install -m755 -D keymapp "$out/bin/keymapp" + install -Dm644 icon.png "$out/share/pixmaps/keymapp.png" + + runHook postInstall + ''; + + preFixup = '' + gappsWrapperArgs+=(--set-default '__NV_PRIME_RENDER_OFFLOAD' 1) + ''; + + desktopItem = makeDesktopItem { + name = "keymapp"; + icon = "keymapp"; + desktopName = "Keymapp"; + categories = [ + "Settings" + "HardwareSettings" + ]; + type = "Application"; + exec = "keymapp"; + }; + }); + + darwin = stdenv.mkDerivation (finalAttrs: { + inherit pname version meta; + + src = fetchurl { + # Upstream does not provide archives of previous versions, + # therefore a capture using the wayback machine is used + url = "https://web.archive.org/web/20250427080926/https://oryx.nyc3.cdn.digitaloceanspaces.com/keymapp/keymapp-latest.dmg"; + hash = "sha256-sn8IkSV8AEqm8z/TiS1399hITBC9lnSSjQn/k0xWl6I="; + }; + + dontPatch = true; + dontConfigure = true; + dontBuild = true; + + nativeBuildInputs = [ undmg ]; + + sourceRoot = "."; + + installPhase = '' + runHook preInstall + + mkdir -p $out/Applications + mv Keymapp.app $out/Applications + + runHook postInstall + ''; + }); +in +if stdenv.hostPlatform.isDarwin then darwin else linux From 9d73295f719fd574fec8ed993703715c6ef3b216 Mon Sep 17 00:00:00 2001 From: Alexis Hildebrandt Date: Mon, 12 May 2025 10:22:37 +0200 Subject: [PATCH 2/4] keymapp: split linux and darwin into separate files --- pkgs/by-name/ke/keymapp/darwin.nix | 34 ++++++++ pkgs/by-name/ke/keymapp/linux.nix | 62 ++++++++++++++ pkgs/by-name/ke/keymapp/package.nix | 121 +++++++++++----------------- 3 files changed, 142 insertions(+), 75 deletions(-) create mode 100644 pkgs/by-name/ke/keymapp/darwin.nix create mode 100644 pkgs/by-name/ke/keymapp/linux.nix diff --git a/pkgs/by-name/ke/keymapp/darwin.nix b/pkgs/by-name/ke/keymapp/darwin.nix new file mode 100644 index 000000000000..bc4e47ba76f9 --- /dev/null +++ b/pkgs/by-name/ke/keymapp/darwin.nix @@ -0,0 +1,34 @@ +{ + stdenv, + undmg, + pname, + version, + src, + meta, + ... +}: +stdenv.mkDerivation { + inherit + pname + version + src + meta + ; + + dontPatch = true; + dontConfigure = true; + dontBuild = true; + + nativeBuildInputs = [ undmg ]; + + sourceRoot = "."; + + installPhase = '' + runHook preInstall + + mkdir -p $out/Applications + mv Keymapp.app $out/Applications + + runHook postInstall + ''; +} diff --git a/pkgs/by-name/ke/keymapp/linux.nix b/pkgs/by-name/ke/keymapp/linux.nix new file mode 100644 index 000000000000..07f93bb5075a --- /dev/null +++ b/pkgs/by-name/ke/keymapp/linux.nix @@ -0,0 +1,62 @@ +{ + stdenv, + copyDesktopItems, + autoPatchelfHook, + wrapGAppsHook4, + makeDesktopItem, + libusb1, + webkitgtk_4_1, + libsoup_3, + pname, + version, + src, + meta, + ... +}: +stdenv.mkDerivation { + inherit + pname + version + src + meta + ; + + nativeBuildInputs = [ + copyDesktopItems + autoPatchelfHook + wrapGAppsHook4 + ]; + + buildInputs = [ + libusb1 + webkitgtk_4_1 + libsoup_3 + ]; + + sourceRoot = "."; + + installPhase = '' + runHook preInstall + + install -m755 -D keymapp "$out/bin/keymapp" + install -Dm644 icon.png "$out/share/pixmaps/keymapp.png" + + runHook postInstall + ''; + + preFixup = '' + gappsWrapperArgs+=(--set-default '__NV_PRIME_RENDER_OFFLOAD' 1) + ''; + + desktopItem = makeDesktopItem { + name = "keymapp"; + icon = "keymapp"; + desktopName = "Keymapp"; + categories = [ + "Settings" + "HardwareSettings" + ]; + type = "Application"; + exec = "keymapp"; + }; +} diff --git a/pkgs/by-name/ke/keymapp/package.nix b/pkgs/by-name/ke/keymapp/package.nix index b2470135e5a9..d01ad8729826 100644 --- a/pkgs/by-name/ke/keymapp/package.nix +++ b/pkgs/by-name/ke/keymapp/package.nix @@ -2,6 +2,7 @@ stdenv, lib, fetchurl, + callPackage, autoPatchelfHook, wrapGAppsHook4, libusb1, @@ -14,6 +15,25 @@ let pname = "keymapp"; version = "1.3.6"; + + sources = rec { + aarch64-darwin = { + # Upstream does not provide archives of previous versions, + # therefore a capture using the wayback machine is used + url = "https://web.archive.org/web/20250427080926/https://oryx.nyc3.cdn.digitaloceanspaces.com/keymapp/keymapp-latest.dmg"; + hash = "sha256-sn8IkSV8AEqm8z/TiS1399hITBC9lnSSjQn/k0xWl6I="; + }; + x86_64-darwin = aarch64-darwin; + aarch64-linux = { + url = "https://oryx.nyc3.cdn.digitaloceanspaces.com/keymapp/keymapp-${version}.tar.gz"; + hash = "sha256-LWO4aeNmGgZ+T41pb6HwC3tnwaiGviDIq63QMsrlkEc="; + }; + x86_64-linux = aarch64-linux; + }; + src = fetchurl { + inherit (sources.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}")) url hash; + }; + meta = { homepage = "https://www.zsa.io/flash/"; description = "Application for ZSA keyboards"; @@ -22,83 +42,34 @@ let shawn8901 ]; platforms = lib.platforms.linux ++ lib.platforms.darwin; + sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; license = lib.licenses.unfree; }; - linux = stdenv.mkDerivation (finalAttrs: { - inherit pname version meta; - - src = fetchurl { - url = "https://oryx.nyc3.cdn.digitaloceanspaces.com/keymapp/keymapp-${finalAttrs.version}.tar.gz"; - hash = "sha256-LWO4aeNmGgZ+T41pb6HwC3tnwaiGviDIq63QMsrlkEc="; - }; - - nativeBuildInputs = [ - copyDesktopItems +in +if stdenv.hostPlatform.isDarwin then + callPackage ./darwin.nix { + inherit + pname + version + src + meta + undmg + ; + } +else + callPackage ./linux.nix { + inherit + pname + version + src + meta + libusb1 + libsoup_3 + webkitgtk_4_1 autoPatchelfHook wrapGAppsHook4 - ]; - - buildInputs = [ - libusb1 - webkitgtk_4_1 - libsoup_3 - ]; - - sourceRoot = "."; - - installPhase = '' - runHook preInstall - - install -m755 -D keymapp "$out/bin/keymapp" - install -Dm644 icon.png "$out/share/pixmaps/keymapp.png" - - runHook postInstall - ''; - - preFixup = '' - gappsWrapperArgs+=(--set-default '__NV_PRIME_RENDER_OFFLOAD' 1) - ''; - - desktopItem = makeDesktopItem { - name = "keymapp"; - icon = "keymapp"; - desktopName = "Keymapp"; - categories = [ - "Settings" - "HardwareSettings" - ]; - type = "Application"; - exec = "keymapp"; - }; - }); - - darwin = stdenv.mkDerivation (finalAttrs: { - inherit pname version meta; - - src = fetchurl { - # Upstream does not provide archives of previous versions, - # therefore a capture using the wayback machine is used - url = "https://web.archive.org/web/20250427080926/https://oryx.nyc3.cdn.digitaloceanspaces.com/keymapp/keymapp-latest.dmg"; - hash = "sha256-sn8IkSV8AEqm8z/TiS1399hITBC9lnSSjQn/k0xWl6I="; - }; - - dontPatch = true; - dontConfigure = true; - dontBuild = true; - - nativeBuildInputs = [ undmg ]; - - sourceRoot = "."; - - installPhase = '' - runHook preInstall - - mkdir -p $out/Applications - mv Keymapp.app $out/Applications - - runHook postInstall - ''; - }); -in -if stdenv.hostPlatform.isDarwin then darwin else linux + copyDesktopItems + makeDesktopItem + ; + } From fa95dd9c5d6de8bfaa369fa20be82ba4ae1c5b29 Mon Sep 17 00:00:00 2001 From: Alexis Hildebrandt Date: Mon, 12 May 2025 10:25:25 +0200 Subject: [PATCH 3/4] keymapp: add afh as maintainer --- pkgs/by-name/ke/keymapp/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/ke/keymapp/package.nix b/pkgs/by-name/ke/keymapp/package.nix index d01ad8729826..e3cdc7a08794 100644 --- a/pkgs/by-name/ke/keymapp/package.nix +++ b/pkgs/by-name/ke/keymapp/package.nix @@ -38,6 +38,7 @@ let homepage = "https://www.zsa.io/flash/"; description = "Application for ZSA keyboards"; maintainers = with lib.maintainers; [ + afh jankaifer shawn8901 ]; From 0de482a5fc659bd2f14de9078b5c72afd233b58a Mon Sep 17 00:00:00 2001 From: Alexis Hildebrandt Date: Tue, 20 May 2025 16:01:12 +0200 Subject: [PATCH 4/4] keymapp: 1.3.6 -> 1.3.7 --- pkgs/by-name/ke/keymapp/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ke/keymapp/package.nix b/pkgs/by-name/ke/keymapp/package.nix index e3cdc7a08794..afbeb5bd3c75 100644 --- a/pkgs/by-name/ke/keymapp/package.nix +++ b/pkgs/by-name/ke/keymapp/package.nix @@ -14,19 +14,19 @@ }: let pname = "keymapp"; - version = "1.3.6"; + version = "1.3.7"; sources = rec { aarch64-darwin = { # Upstream does not provide archives of previous versions, # therefore a capture using the wayback machine is used - url = "https://web.archive.org/web/20250427080926/https://oryx.nyc3.cdn.digitaloceanspaces.com/keymapp/keymapp-latest.dmg"; - hash = "sha256-sn8IkSV8AEqm8z/TiS1399hITBC9lnSSjQn/k0xWl6I="; + url = "https://web.archive.org/web/20250520135916/https://oryx.nyc3.cdn.digitaloceanspaces.com/keymapp/keymapp-latest.dmg"; + hash = "sha256-H6xRau7pWuSF5Aa6lblwi/Lg5KxC+HM3rtUMjX+hEE8="; }; x86_64-darwin = aarch64-darwin; aarch64-linux = { url = "https://oryx.nyc3.cdn.digitaloceanspaces.com/keymapp/keymapp-${version}.tar.gz"; - hash = "sha256-LWO4aeNmGgZ+T41pb6HwC3tnwaiGviDIq63QMsrlkEc="; + hash = "sha256-qHvHCDzWRhuhDg2kuU8kmikQDXElQtVEmPAelHz4aPo="; }; x86_64-linux = aarch64-linux; };