I’ve found it fairly easy to build a custom on-screen keyboard with Widget Blueprints following this YouTube tutorial: