diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-11-21 16:12:21 +0100 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-11-21 16:12:48 +0100 |
commit | 048a4cd441a59cbf89defb18bb45c9f0b4429b35 (patch) | |
tree | f8f5850ff05521ab82d65745894714a8796cbfb6 /pkgs/applications/misc/bazecor | |
parent | 030c5028b07afcedce7c5956015c629486cc79d9 (diff) | |
parent | 4c2d05dd6435d449a3651a6dd314d9411b5f8146 (diff) | |
download | nixpkgs-048a4cd441a59cbf89defb18bb45c9f0b4429b35.tar nixpkgs-048a4cd441a59cbf89defb18bb45c9f0b4429b35.tar.gz nixpkgs-048a4cd441a59cbf89defb18bb45c9f0b4429b35.tar.bz2 nixpkgs-048a4cd441a59cbf89defb18bb45c9f0b4429b35.tar.lz nixpkgs-048a4cd441a59cbf89defb18bb45c9f0b4429b35.tar.xz nixpkgs-048a4cd441a59cbf89defb18bb45c9f0b4429b35.tar.zst nixpkgs-048a4cd441a59cbf89defb18bb45c9f0b4429b35.zip |
Signed-off-by: Alyssa Ross <hi@alyssa.is>
Diffstat (limited to 'pkgs/applications/misc/bazecor')
-rw-r--r-- | pkgs/applications/misc/bazecor/10-dygma.rules | 4 | ||||
-rw-r--r-- | pkgs/applications/misc/bazecor/default.nix | 56 |
2 files changed, 60 insertions, 0 deletions
diff --git a/pkgs/applications/misc/bazecor/10-dygma.rules b/pkgs/applications/misc/bazecor/10-dygma.rules new file mode 100644 index 00000000000..6805e68c064 --- /dev/null +++ b/pkgs/applications/misc/bazecor/10-dygma.rules @@ -0,0 +1,4 @@ +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="2201", MODE="0666" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="2200", MODE="0666" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="35ef", MODE="0666" +KERNEL=="hidraw*", ATTRS{idVendor}=="35ef", MODE="0666" diff --git a/pkgs/applications/misc/bazecor/default.nix b/pkgs/applications/misc/bazecor/default.nix new file mode 100644 index 00000000000..e84cf11b338 --- /dev/null +++ b/pkgs/applications/misc/bazecor/default.nix @@ -0,0 +1,56 @@ +{ lib +, appimageTools +, fetchurl +}: + +appimageTools.wrapAppImage rec { + pname = "bazecor"; + version = "1.3.6"; + + src = appimageTools.extract { + inherit pname version; + src = fetchurl { + url = "https://github.com/Dygmalab/Bazecor/releases/download/v.${version}/Bazecor-${version}-x64.AppImage"; + hash = "sha256-Mz7T/AAlyfMzdfy/ZV4AEP3ClTolwr2pPzkSCPL66/w="; + }; + + # Workaround for https://github.com/Dygmalab/Bazecor/issues/370 + postExtract = '' + substituteInPlace \ + $out/usr/lib/bazecor/resources/app/.webpack/main/index.js \ + --replace \ + 'checkUdev=()=>{try{if(c.default.existsSync(f))return c.default.readFileSync(f,"utf-8").trim()===l.trim()}catch(e){console.error(e)}return!1}' \ + 'checkUdev=()=>{return 1}' + ''; + }; + + # also make sure to update the udev rules in ./10-dygma.rules; most recently + # taken from + # https://github.com/Dygmalab/Bazecor/blob/v1.3.6/src/main/utils/udev.ts#L6 + + extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [ + p.glib + ]; + + # Also expose the udev rules here, so it can be used as: + # services.udev.packages = [ pkgs.bazecor ]; + # to allow non-root modifications to the keyboards. + + extraInstallCommands = '' + mv $out/bin/bazecor-* $out/bin/bazecor + + mkdir -p $out/lib/udev/rules.d + ln -s --target-directory=$out/lib/udev/rules.d ${./10-dygma.rules} + ''; + + meta = { + description = "Graphical configurator for Dygma Products"; + homepage = "https://github.com/Dygmalab/Bazecor"; + changelog = "https://github.com/Dygmalab/Bazecor/releases/tag/v${version}"; + sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ amesgen ]; + platforms = [ "x86_64-linux" ]; + mainProgram = "bazecor"; + }; +} |