{ lib, stdenv, fetchFromGitHub, rustPlatform, nix-update-script, cargo, rustc, meson, ninja, pkg-config, appstream, blueprint-compiler, desktop-file-utils, gettext, wrapGAppsHook4, libadwaita, }: stdenv.mkDerivation (finalAttrs: { pname = "keypunch"; version = "4.0"; src = fetchFromGitHub { owner = "bragefuglseth"; repo = "keypunch"; rev = "refs/tags/v${finalAttrs.version}"; hash = "sha256-Xd4fzreComOUnoJ6l2ncMWn6DlUeRCM+YwApilhFd/8="; }; cargoDeps = rustPlatform.fetchCargoTarball { inherit (finalAttrs) pname version src; hash = "sha256-agFOxSZBi8f0zEPd+ha5c3IAbSH2jHfUx2iNeHFs9jI="; }; strictDeps = true; nativeBuildInputs = [ rustPlatform.cargoSetupHook cargo rustc meson ninja pkg-config appstream blueprint-compiler desktop-file-utils gettext wrapGAppsHook4 ]; buildInputs = [ libadwaita ]; passthru = { updateScript = nix-update-script { }; }; meta = { description = "Practice your typing skills"; homepage = "https://github.com/bragefuglseth/keypunch"; license = lib.licenses.gpl3Plus; mainProgram = "keypunch"; maintainers = with lib.maintainers; [ tomasajt getchoo ]; platforms = lib.platforms.linux; }; })