22 libPath = lib.makeLibraryPath [
23 # used by the Java2D OpenGL backend
25 # jnativehook dependencies
34 stdenv.mkDerivation (finalAttrs: {
35 pname = "keyspersecond";
38 src = fetchFromGitHub {
40 repo = "KeysPerSecond";
41 rev = "v${finalAttrs.version}";
42 hash = "sha256-DGpXbCInq+RS56Ae5Y6xzyWqwXAm26c0vOYrFqDvl+8=";
45 sourceRoot = "${finalAttrs.src.name}/KeysPerSecond";
53 mitmCache = gradle.fetchDeps {
54 inherit (finalAttrs) pname;
58 # this is required for using mitm-cache on Darwin
59 __darwinAllowLocalNetworking = true;
61 gradleFlags = "-PrefName=v${finalAttrs.version}";
66 install -Dm644 resources/kps.png $out/share/icons/hicolor/64x64/apps/keyspersecond.png
67 install -Dm644 build/libs/KeysPerSecond-v*.jar $out/share/keyspersecond/KeysPerSecond.jar
69 # Note: we need to enable the Java2D OpenGL backend for proper transparency support
70 makeWrapper ${jre}/bin/java $out/bin/KeysPerSecond \
71 --prefix LD_LIBRARY_PATH : ${libPath} \
72 --add-flags "-Dsun.java2d.opengl=True" \
73 --add-flags "-jar $out/share/keyspersecond/KeysPerSecond.jar"
80 name = "keyspersecond";
81 desktopName = "KeysPerSecond";
82 exec = "KeysPerSecond";
83 icon = "keyspersecond";
84 comment = finalAttrs.meta.description;
85 categories = [ "Utility" ];
90 changelog = "https://github.com/RoanH/KeysPerSecond/blob/${finalAttrs.src.rev}/CHANGELOG.md";
91 description = "Keys-per-second meter and counter for rhythm games";
92 homepage = "https://github.com/RoanH/KeysPerSecond";
93 license = lib.licenses.gpl3Only;
94 mainProgram = "KeysPerSecond";
95 maintainers = with lib.maintainers; [ tomasajt ];
96 platforms = jre.meta.platforms;
97 sourceProvenance = with lib.sourceTypes; [
100 binaryNativeCode # jnativehook shared library