{ lib, stdenv, fetchFromGitHub, rustPlatform, cargo, rustc, meson, ninja, pkg-config, appstream, blueprint-compiler, desktop-file-utils, gettext, wrapGAppsHook4, libadwaita, }: stdenv.mkDerivation (finalAttrs: { pname = "keypunch"; version = "1.0"; src = fetchFromGitHub { owner = "bragefuglseth"; repo = "keypunch"; rev = "refs/tags/v${finalAttrs.version}"; hash = "sha256-S4RckHwrVVQrxy9QngTisNM4+cMM+1dXucwEDnM98Rg="; }; cargoDeps = rustPlatform.fetchCargoTarball { name = "${finalAttrs.pname}-${finalAttrs.version}"; inherit (finalAttrs) src; hash = "sha256-YzENAGy7zEu1dyuhme+x+gJQlE74Vw0JZvRso0vNQXs="; }; strictDeps = true; nativeBuildInputs = [ rustPlatform.cargoSetupHook cargo rustc meson ninja pkg-config appstream blueprint-compiler desktop-file-utils gettext wrapGAppsHook4 ]; buildInputs = [ libadwaita ]; meta = { description = "Practice your typing skills"; homepage = "https://github.com/bragefuglseth/keypunch"; license = lib.licenses.gpl3Plus; mainProgram = "keypunch"; maintainers = with lib.maintainers; [ tomasajt ]; platforms = lib.platforms.linux; }; })