nixos/filesystems: don't silently ignore label when device is set (#361418)
[NixPkgs.git] / pkgs / by-name / ke / keyd / package.nix
blob7395c807389a1be1d3ca75039c93f1050e3355de
1 { stdenv
2 , lib
3 , fetchFromGitHub
4 , systemd
5 , runtimeShell
6 , python3
7 , nixosTests
8 }:
10 let
11   version = "2.5.0";
13   src = fetchFromGitHub {
14     owner = "rvaiya";
15     repo = "keyd";
16     rev = "v" + version;
17     hash = "sha256-pylfQjTnXiSzKPRJh9Jli1hhin/MIGIkZxLKxqlReVo=";
18   };
20   pypkgs = python3.pkgs;
22   appMap = pypkgs.buildPythonApplication rec {
23     pname = "keyd-application-mapper";
24     inherit version src;
25     format = "other";
27     postPatch = ''
28       substituteInPlace scripts/${pname} \
29         --replace-fail /bin/sh ${runtimeShell}
30     '';
32     propagatedBuildInputs = with pypkgs; [ xlib ];
34     dontBuild = true;
36     installPhase = ''
37       install -Dm555 -t $out/bin scripts/${pname}
38     '';
40     meta.mainProgram = "keyd-application-mapper";
41   };
44 stdenv.mkDerivation {
45   pname = "keyd";
46   inherit version src;
48   postPatch = ''
49     substituteInPlace Makefile \
50       --replace-fail /usr/local ""
52     substituteInPlace keyd.service.in \
53       --replace-fail @PREFIX@ $out
54   '';
56   installFlags = [ "DESTDIR=${placeholder "out"}" ];
58   buildInputs = [ systemd ];
60   enableParallelBuilding = true;
62   # post-2.4.2 may need this to unbreak the test
63   # makeFlags = [ "SOCKET_PATH/run/keyd/keyd.socket" ];
65   postInstall = ''
66     ln -sf ${lib.getExe appMap} $out/bin/${appMap.pname}
67     rm -rf $out/etc
68   '';
70   passthru.tests.keyd = nixosTests.keyd;
72   meta = with lib; {
73     description = "Key remapping daemon for Linux";
74     license = licenses.mit;
75     maintainers = with maintainers; [ alfarel ];
76     platforms = platforms.linux;
77   };