nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{ stdenv
2, lib
3, fetchurl
4, libxkbcommon
5, systemd
6, xorg
7, electron_13
8, makeWrapper
9, makeDesktopItem
10}:
11let
12 desktopItem = makeDesktopItem rec {
13 name = "Obinskit";
14 exec = "obinskit";
15 icon = "obinskit";
16 desktopName = "Obinskit";
17 genericName = "Obinskit keyboard configurator";
18 categories = [ "Utility" ];
19 };
20 electron = electron_13;
21in
22stdenv.mkDerivation rec {
23 pname = "obinskit";
24 version = "1.2.11";
25
26 src = fetchurl {
27 url = "https://s3.hexcore.xyz/occ/linux/tar/ObinsKit_${version}_x64.tar.gz";
28 sha256 = "1kcn41wmwcx6q70spa9a1qh7wfrj1sk4v4i58lbnf9kc6vasw41a";
29 };
30
31 unpackPhase = "tar -xzf $src";
32
33 sourceRoot = "ObinsKit_${version}_x64";
34
35 nativeBuildInputs = [ makeWrapper ];
36
37 dontConfigure = true;
38 dontBuild = true;
39
40 installPhase = ''
41 mkdir -p $out/opt/obinskit
42
43 cp -r resources $out/opt/obinskit/
44 cp -r locales $out/opt/obinskit/
45
46 mkdir -p $out/share/{applications,pixmaps}
47 install resources/icons/tray-darwin@2x.png $out/share/pixmaps/obinskit.png
48 ln -s ${desktopItem}/share/applications/* $out/share/applications
49 '';
50
51 postFixup = ''
52 makeWrapper ${electron}/bin/electron $out/bin/${pname} \
53 --add-flags $out/opt/obinskit/resources/app.asar \
54 --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc.lib libxkbcommon (lib.getLib systemd) xorg.libXt xorg.libXtst ]}"
55 '';
56
57 meta = with lib; {
58 description = "Graphical configurator for Anne Pro and Anne Pro II keyboards";
59 homepage = "https://www.hexcore.xyz/obinskit";
60 license = licenses.unfree;
61 maintainers = with maintainers; [ shou ];
62 platforms = [ "x86_64-linux" ];
63 };
64}