diff --git a/community/keyd/APKBUILD b/community/keyd/APKBUILD
index ebf500d8455942f8bd37e628a0dce32df0314a6c..b4dda38f03eb944d1d4c3e5833d1aa7a5208caf6 100644
--- a/community/keyd/APKBUILD
+++ b/community/keyd/APKBUILD
@@ -1,8 +1,8 @@
 # Contributor: Jakub Jirutka <jakub@jirutka.cz>
 # Maintainer: Jakub Jirutka <jakub@jirutka.cz>
 pkgname=keyd
-pkgver=2.4.2
-pkgrel=1
+pkgver=2.4.3
+pkgrel=0
 pkgdesc="A key remapping daemon for Linux"
 url="https://github.com/rvaiya/keyd"
 arch="all"
@@ -61,8 +61,8 @@ application_mapper() {
 }
 
 sha512sums="
-185d548fdcec3bdd444a0e6d18045493ac082d7d98afcbd53ba6f1b17b39200eb472cf4d4162da80d0a5e623af359a629f325254df71b4adad9033622690f8e6  keyd-2.4.2-2.tar.gz
-5c072715b194f0305fdb7d130a2189b4a6fee00ff005321fbf70f4b6b63cb8d0add7e70730b5b0d79ffdd56d6e8eb090b698d45000d1d7cd105a685e9a1be7fe  musl-time64.patch
-db1d32b292a6ae6a28b6fd8e0337f38bfbd7d8b314889b0aa24984a22e8baf658394eea216d4a57c46c8c5baab262c834608e756e5e06de34d54d3fd1a1f9581  fix-makefile.patch
+9d5f3a8aa9398c45fb5062ab152a0b1e09efc13fd12b658b993e991df727085ad8ccd69267f87e159abfb79265c8650bd070174b83b4b1cb3f1b3396d55727bd  keyd-2.4.3-2.tar.gz
+2c9340cda19f6b64ec6be02f79caec83d7bf21c6813081fb763615c03969dd7050281b61fa3951635eaa953f99520b875d5b1b088c083ff1154ffe50bbdb6fd1  musl-time64.patch
+a6d63fdea7c277a4580bc14b51eccef5288ae7456496b6983b20c4433143a390e5f1c0a993e699acaa1ae0babad0ff8d130f39ca3da0708f1ccd898ce7d84ed8  fix-makefile.patch
 5fb22510cd89ce23e347773d2b49a7be5b342899f1653f8dbac1ca0a85dca54091be3f165dd0952a9384851c109ab6b20ec3dfa15dc7c6b7ce53d46e1723b2e2  keyd.initd
 "
diff --git a/community/keyd/fix-makefile.patch b/community/keyd/fix-makefile.patch
index f65f3496531b54c7c805c0573b3dda80929c59fd..c1e3fa2f237da3073330b603bede1f4c09f72044 100644
--- a/community/keyd/fix-makefile.patch
+++ b/community/keyd/fix-makefile.patch
@@ -1,13 +1,16 @@
 diff --git a/Makefile b/Makefile
-index c291392..cb7aca8 100644
+index 1f9dcce..05ed55b 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -3,12 +3,9 @@ DESTDIR=
- PREFIX=/usr
- 
- VERSION=2.4.2
+@@ -1,15 +1,12 @@
+ .PHONY: all clean install uninstall debug man compose test-harness
+ VERSION=2.4.3
 -COMMIT=$(shell git describe --no-match --always --abbrev=7 --dirty)
  VKBD=uinput
+ PREFIX=/usr
+ 
+ CONFIG_DIR=/etc/keyd
+ SOCKET_PATH=/var/run/keyd.socket
  
 -CFLAGS:=-DVERSION=\"v$(VERSION)\ \($(COMMIT)\)\" \
 -	-I/usr/local/include \
@@ -16,12 +19,12 @@ index c291392..cb7aca8 100644
  	-Wall \
  	-Wextra \
  	-Wno-unused \
-@@ -28,7 +25,7 @@ endif
+@@ -34,7 +31,7 @@ endif
  all:
  	-mkdir bin
  	cp scripts/keyd-application-mapper bin/
--	$(CC) $(CFLAGS) -O3 $(COMPAT_FILES) src/*.c src/vkbd/$(VKBD).c -o bin/keyd -lpthread $(LDFLAGS)
-+	$(CC) $(CFLAGS) $(COMPAT_FILES) src/*.c src/vkbd/$(VKBD).c -o bin/keyd -lpthread $(LDFLAGS)
+-	$(CC) $(CFLAGS) -O3 $(COMPAT_FILES) src/*.c src/vkbd/$(VKBD).c -lpthread -o bin/keyd $(LDFLAGS)
++	$(CC) $(CFLAGS) $(COMPAT_FILES) src/*.c src/vkbd/$(VKBD).c -lpthread -o bin/keyd $(LDFLAGS)
  debug:
  	CFLAGS="-g -Wunused" $(MAKE)
  compose:
diff --git a/community/keyd/musl-time64.patch b/community/keyd/musl-time64.patch
index af3b40c275d5b219493a950ae3a7e29fb3a8e8b4..c426b614f2d95ef2eff8bfca84d50776e53ef702 100644
--- a/community/keyd/musl-time64.patch
+++ b/community/keyd/musl-time64.patch
@@ -2,9 +2,11 @@ Fix compatibility with musl's time64 on 32-bit arches.
 
 See https://gitlab.alpinelinux.org/alpine/aports/-/commit/1d4742aaaea19666bffb2a71a4312da0dcc41f72#note_180127
 
+diff --git a/src/vkbd/uinput.c b/src/vkbd/uinput.c
+index 90eb4ad..abb0712 100644
 --- a/src/vkbd/uinput.c
 +++ b/src/vkbd/uinput.c
-@@ -194,8 +194,8 @@
+@@ -195,8 +195,8 @@ static void write_key_event(const struct vkbd *vkbd, uint8_t code, int state)
  
  	ev.value = state;
  
@@ -13,9 +15,9 @@ See https://gitlab.alpinelinux.org/alpine/aports/-/commit/1d4742aaaea19666bffb2a
 +	ev.input_event_sec = 0;
 +	ev.input_event_usec = 0;
  
- 	write(vkbd->fd, &ev, sizeof(ev));
+ 	xwrite(fd, &ev, sizeof(ev));
  
-@@ -267,8 +267,8 @@
+@@ -230,8 +230,8 @@ void vkbd_mouse_move(const struct vkbd *vkbd, int x, int y)
  		ev.code = REL_X;
  		ev.value = x;
  
@@ -24,9 +26,9 @@ See https://gitlab.alpinelinux.org/alpine/aports/-/commit/1d4742aaaea19666bffb2a
 +		ev.input_event_sec = 0;
 +		ev.input_event_usec = 0;
  
- 		write(vkbd->pfd, &ev, sizeof(ev));
+ 		xwrite(vkbd->pfd, &ev, sizeof(ev));
  	}
-@@ -278,8 +278,8 @@
+@@ -241,8 +241,8 @@ void vkbd_mouse_move(const struct vkbd *vkbd, int x, int y)
  		ev.code = REL_Y;
  		ev.value = y;
  
@@ -35,9 +37,9 @@ See https://gitlab.alpinelinux.org/alpine/aports/-/commit/1d4742aaaea19666bffb2a
 +		ev.input_event_sec = 0;
 +		ev.input_event_usec = 0;
  
- 		write(vkbd->pfd, &ev, sizeof(ev));
+ 		xwrite(vkbd->pfd, &ev, sizeof(ev));
  	}
-@@ -304,8 +304,8 @@
+@@ -262,8 +262,8 @@ void vkbd_mouse_scroll(const struct vkbd *vkbd, int x, int y)
  	ev.code = REL_WHEEL;
  	ev.value = y;
  
@@ -46,9 +48,9 @@ See https://gitlab.alpinelinux.org/alpine/aports/-/commit/1d4742aaaea19666bffb2a
 +	ev.input_event_sec = 0;
 +	ev.input_event_usec = 0;
  
- 	write(vkbd->pfd, &ev, sizeof(ev));
+ 	xwrite(vkbd->pfd, &ev, sizeof(ev));
  
-@@ -313,8 +313,8 @@
+@@ -271,8 +271,8 @@ void vkbd_mouse_scroll(const struct vkbd *vkbd, int x, int y)
  	ev.code = REL_HWHEEL;
  	ev.value = x;
  
@@ -57,27 +59,27 @@ See https://gitlab.alpinelinux.org/alpine/aports/-/commit/1d4742aaaea19666bffb2a
 +	ev.input_event_sec = 0;
 +	ev.input_event_usec = 0;
  
- 	write(vkbd->pfd, &ev, sizeof(ev));
+ 	xwrite(vkbd->pfd, &ev, sizeof(ev));
  
-@@ -338,8 +338,8 @@
- 	ev.code = ABS_X;
- 	ev.value = x;
- 
--	ev.time.tv_sec = 0;
--	ev.time.tv_usec = 0;
-+	ev.input_event_sec = 0;
-+	ev.input_event_usec = 0;
- 
- 	write(vkbd->pfd, &ev, sizeof(ev));
+@@ -292,8 +292,8 @@ void vkbd_mouse_move_abs(const struct vkbd *vkbd, int x, int y)
+ 		ev.code = ABS_X;
+ 		ev.value = x;
  
-@@ -347,8 +347,8 @@
- 	ev.code = ABS_Y;
- 	ev.value = y;
+-		ev.time.tv_sec = 0;
+-		ev.time.tv_usec = 0;
++		ev.input_event_sec = 0;
++		ev.input_event_usec = 0;
  
--	ev.time.tv_sec = 0;
--	ev.time.tv_usec = 0;
-+	ev.input_event_sec = 0;
-+	ev.input_event_usec = 0;
+ 		xwrite(vkbd->pfd, &ev, sizeof(ev));
+ 	}
+@@ -303,8 +303,8 @@ void vkbd_mouse_move_abs(const struct vkbd *vkbd, int x, int y)
+ 		ev.code = ABS_Y;
+ 		ev.value = y;
  
- 	write(vkbd->pfd, &ev, sizeof(ev));
+-		ev.time.tv_sec = 0;
+-		ev.time.tv_usec = 0;
++		ev.input_event_sec = 0;
++		ev.input_event_usec = 0;
  
+ 		xwrite(vkbd->pfd, &ev, sizeof(ev));
+ 	}