summary refs log tree commit diff
path: root/pkgs/os-specific/darwin
diff options
context:
space:
mode:
authorpennae <82953136+pennae@users.noreply.github.com>2022-09-01 16:10:09 +0200
committerGitHub <noreply@github.com>2022-09-01 16:10:09 +0200
commit3bddcf5f9002814a8bec50025418faa3fd3f6138 (patch)
tree5ae3ebf10acce3ad00d4a2468f8e64c41a2c749b /pkgs/os-specific/darwin
parent1d41cff3dc4c8f37bb5841f51fcbff705e169178 (diff)
parente7312d54f184e5c3e0f1ef29028f6dae8fa34a97 (diff)
downloadnixpkgs-3bddcf5f9002814a8bec50025418faa3fd3f6138.tar
nixpkgs-3bddcf5f9002814a8bec50025418faa3fd3f6138.tar.gz
nixpkgs-3bddcf5f9002814a8bec50025418faa3fd3f6138.tar.bz2
nixpkgs-3bddcf5f9002814a8bec50025418faa3fd3f6138.tar.lz
nixpkgs-3bddcf5f9002814a8bec50025418faa3fd3f6138.tar.xz
nixpkgs-3bddcf5f9002814a8bec50025418faa3fd3f6138.tar.zst
nixpkgs-3bddcf5f9002814a8bec50025418faa3fd3f6138.zip
Merge branch 'master' into option-docs-md
Diffstat (limited to 'pkgs/os-specific/darwin')
-rw-r--r--pkgs/os-specific/darwin/karabiner-elements/default.nix50
1 files changed, 50 insertions, 0 deletions
diff --git a/pkgs/os-specific/darwin/karabiner-elements/default.nix b/pkgs/os-specific/darwin/karabiner-elements/default.nix
new file mode 100644
index 00000000000..6444c7f0e0f
--- /dev/null
+++ b/pkgs/os-specific/darwin/karabiner-elements/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenv, fetchurl, cpio, xar, undmg }:
+
+stdenv.mkDerivation rec {
+  pname = "karabiner-elements";
+  version = "14.8.0";
+
+  src = fetchurl {
+    url = "https://github.com/pqrs-org/Karabiner-Elements/releases/download/v${version}/Karabiner-Elements-${version}.dmg";
+    sha256 = "sha256-sQJgK3EoJf8wcr0iL9iZXl6NJArptUDTrDeNKwgEfuM=";
+  };
+
+  outputs = [ "out" "driver" ];
+
+  nativeBuildInputs = [ cpio xar undmg ];
+
+  unpackPhase = ''
+    undmg $src
+    xar -xf Karabiner-Elements.pkg
+    cd Installer.pkg
+    zcat Payload | cpio -i
+    cd ../Karabiner-DriverKit-VirtualHIDDevice.pkg
+    zcat Payload | cpio -i
+    cd ..
+  '';
+
+  sourceRoot = ".";
+
+  postPatch = ''
+    for f in *.pkg/Library/Launch{Agents,Daemons}/*.plist; do
+      substituteInPlace $f \
+        --replace "/Library/" "$out/Library/"
+    done
+  '';
+
+  installPhase = ''
+    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"
+  '';
+
+  meta = with lib; {
+    description = "Karabiner-Elements is a powerful utility for keyboard customization on macOS Sierra (10.12) or later.";
+    homepage = "https://karabiner-elements.pqrs.org/";
+    platforms = platforms.darwin;
+    maintainers = with maintainers; [ Enzime ];
+    license = licenses.unlicense;
+  };
+}