79 lines
1.5 KiB
Nix
79 lines
1.5 KiB
Nix
{
|
|
stdenv,
|
|
lib,
|
|
fetchFromGitHub,
|
|
systemd,
|
|
runtimeShell,
|
|
python3,
|
|
nixosTests,
|
|
}:
|
|
|
|
let
|
|
version = "2.5.0";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "rvaiya";
|
|
repo = "keyd";
|
|
rev = "v" + version;
|
|
hash = "sha256-pylfQjTnXiSzKPRJh9Jli1hhin/MIGIkZxLKxqlReVo=";
|
|
};
|
|
|
|
pypkgs = python3.pkgs;
|
|
|
|
appMap = pypkgs.buildPythonApplication rec {
|
|
pname = "keyd-application-mapper";
|
|
inherit version src;
|
|
format = "other";
|
|
|
|
postPatch = ''
|
|
substituteInPlace scripts/${pname} \
|
|
--replace-fail /bin/sh ${runtimeShell}
|
|
'';
|
|
|
|
propagatedBuildInputs = with pypkgs; [ xlib ];
|
|
|
|
dontBuild = true;
|
|
|
|
installPhase = ''
|
|
install -Dm555 -t $out/bin scripts/${pname}
|
|
'';
|
|
|
|
meta.mainProgram = "keyd-application-mapper";
|
|
};
|
|
|
|
in
|
|
stdenv.mkDerivation {
|
|
pname = "keyd";
|
|
inherit version src;
|
|
|
|
postPatch = ''
|
|
substituteInPlace Makefile \
|
|
--replace-fail /usr/local ""
|
|
|
|
substituteInPlace keyd.service.in \
|
|
--replace-fail @PREFIX@ $out
|
|
'';
|
|
|
|
installFlags = [ "DESTDIR=${placeholder "out"}" ];
|
|
|
|
buildInputs = [ systemd ];
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
# post-2.4.2 may need this to unbreak the test
|
|
# makeFlags = [ "SOCKET_PATH/run/keyd/keyd.socket" ];
|
|
|
|
postInstall = ''
|
|
ln -sf ${lib.getExe appMap} $out/bin/${appMap.pname}
|
|
rm -rf $out/etc
|
|
'';
|
|
|
|
passthru.tests.keyd = nixosTests.keyd;
|
|
|
|
meta = with lib; {
|
|
description = "Key remapping daemon for Linux";
|
|
license = licenses.mit;
|
|
maintainers = with maintainers; [ alfarel ];
|
|
platforms = platforms.linux;
|
|
};
|
|
}
|