nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 rustPlatform,
4 fetchFromGitHub,
5 installShellFiles,
6 unixtools,
7 pkg-config,
8 alsa-lib,
9 xorg,
10}:
11
12rustPlatform.buildRustPackage rec {
13 pname = "daktilo";
14 version = "0.6.0";
15
16 src = fetchFromGitHub {
17 owner = "orhun";
18 repo = "daktilo";
19 rev = "v${version}";
20 hash = "sha256-gIBWonJGX6IpxyBeMulcfQEExsG1GrBVQLZbBBA1ruc=";
21 };
22
23 cargoHash = "sha256-MV2XvBtVQyxu2PVCgE+5C9EBec11JwYgyeoyg29C7Ig=";
24
25 nativeBuildInputs = [
26 installShellFiles
27 pkg-config
28 ];
29
30 buildInputs = [
31 alsa-lib
32 xorg.libX11
33 xorg.libXi
34 xorg.libXtst
35 ];
36
37 nativeCheckInputs = [
38 unixtools.script
39 ];
40
41 postInstall = ''
42 mkdir -p man completions
43
44 OUT_DIR=man $out/bin/daktilo-mangen
45 OUT_DIR=completions $out/bin/daktilo-completions
46
47 installManPage man/daktilo.1
48 installShellCompletion \
49 completions/daktilo.{bash,fish} \
50 --zsh completions/_daktilo
51
52 rm $out/bin/daktilo-{completions,mangen}
53 '';
54
55 meta = with lib; {
56 description = "Turn your keyboard into a typewriter";
57 homepage = "https://github.com/orhun/daktilo";
58 changelog = "https://github.com/orhun/daktilo/blob/${src.rev}/CHANGELOG.md";
59 license = with licenses; [
60 asl20
61 mit
62 ];
63 maintainers = with maintainers; [ orhun ];
64 mainProgram = "daktilo";
65 };
66}