{ lib, stdenv, fetchFromGitHub, pkg-config, libX11, libXtst, xorgproto, libXi }: stdenv.mkDerivation rec { pname = "xcape"; version = "unstable-2018-03-01"; src = fetchFromGitHub { owner = "alols"; repo = pname; rev = "a34d6bae27bbd55506852f5ed3c27045a3c0bd9e"; sha256 = "04grs4w9kpfzz25mqw82zdiy51g0w355gpn5b170p7ha5972ykc8"; }; nativeBuildInputs = [ pkg-config ]; buildInputs = [ libX11 libXtst xorgproto libXi ]; makeFlags = [ "PREFIX=$(out)" "MANDIR=/share/man/man1" ]; postInstall = "install -Dm444 --target-directory $out/share/doc README.md"; meta = with lib; { description = "Utility to configure modifier keys to act as other keys"; longDescription = '' xcape allows you to use a modifier key as another key when pressed and released on its own. Note that it is slightly slower than pressing the original key, because the pressed event does not occur until the key is released. The default behaviour is to generate the Escape key when Left Control is pressed and released on its own. ''; homepage = "https://github.com/alols/xcape"; license = licenses.gpl3 ; maintainers = with maintainers; [ raskin ]; platforms = platforms.linux; mainProgram = "xcape"; }; }