QPlatformInputContextPlugin Gtk.IMContext zwp_input_method_context_v1 zwp_input_method_v2 xim zwp_text_input_v3? send backend: zwp_virtual_keyboard_v1? ## Scheme Note: I'm not a Scheme professional, this is an experiment, feel free to suggest improvements. Concepts: - Layout - a procedure that returns a UI layout API: popup.setLayout(layout: Layout | null) keyboard.setLayout(layout: Layout | null) TODO: multiple inheritance, diamond problem (it's technically allowed but the semantics aren't very good) MAYBE PLANNED: associated data (currently classes instances are singletons, which really simplifies ffi) NOT PLANNED: dynamic classes (i.e. updating classes after their definition). You can probably hack something up if you really need it.