diff --git a/srcpkgs/keyd/files/keyd/run b/srcpkgs/keyd/files/keyd/run index 868cb747ab6..5e62cef91c7 100644 --- a/srcpkgs/keyd/files/keyd/run +++ b/srcpkgs/keyd/files/keyd/run @@ -1,2 +1,11 @@ #!/bin/sh + +# Sometimes when starting the keyd service, the keyboard can become unresponsive. +# This is the result of keyd starting when the early udevd process is still running but +# before the udevd runit service has started. The udevd runit service kills the early udevd +# process causing the keyboard to become unresponsive until the keyd process has been +# terminated. The below code verifies that the supervised udevd process is the same as +# the currently running udevd process. +[ "$(cat /var/service/udevd/supervise/pid)" = "$(pgrep -x udevd)" ] || exit 1 + exec keyd diff --git a/srcpkgs/keyd/template b/srcpkgs/keyd/template index 39b6aeaff0a..b9d4b6aefe2 100644 --- a/srcpkgs/keyd/template +++ b/srcpkgs/keyd/template @@ -1,7 +1,7 @@ # Template file for 'keyd' pkgname=keyd version=2.4.1 -revision=1 +revision=2 build_style=gnu-makefile make_use_env=yes short_desc="Key remapping daemon for linux"