You're not going to get away from XKB. Yes, it has its flaws (believe me, many of them), but it's so deeply embedded in the X protocol - and Xlib API/ABI which we can never change - that you cannot have a usable desktop X11 implementation without XKB. For Wayland, my current solution has been to pare down the XKB parser to the bare essentials that both clients and server require for useful and fully-capable keyboard input and then see where that takes us in terms of file format. I've already been able to deprecate quite a few features and remove a fair bit of complexity, and I'm not done yet. But for X11, I'm afraid you're pretty much stuck with XKB as it is from now until the end of days.