Wayland Input Methods Michael Hasselmann Openismus GmbH Wayland Input Methods
Input methods? Wayland Input Methods
Input method developers want a unified architecture! (And UI toolkits don't want to bother too much …) Wayland Input Methods
No protocol evolution in XIM https://mail.gnome.org/archives/wm-spec- list/2007-August/msg00025.html Wayland Input Methods
One display server, many platforms Shell Extensions Applications Shells & Window Managers Toolkits Qt Quick Qt Quick Gnome Gnome Plasma/ Plasma/ ST/Mx Elementary ST/Mx Elementary Unity Unity Components Components Shell Plasma Active Shell Plasma Active Qt/QML Qt/QML GTK+ GTK+ Clutter Clutter Evas/Edje Evas/Edje SDL SDL Mutter Compiz KWin Mutter Compiz KWin Display Server Weston Weston Xorg Xorg Kernel Much better, more detailed: http://blog.mecheye.net/2012/06/the-linux-graphics-stack/ (Jasper „magcius“ St. Pierre) Wayland Input Methods
Wayland 1.0: No input methods (but lots of crazy talk @ FOSDEM 2012) Wayland Input Methods
One protocol, three interfaces Input methods protocol/input_method.xml interfaces : input_method_context, input_method, input_panel, input_panel_surface requests : commit_string, preedit_string, preedit_styling, keysym … events : surrounding_text, reset, content_type, invoke_action, commit, … Wayland Input Methods
One protocol, three interfaces Input methods Weston protocol/input_method.xml examples : clients/keyboard.c interfaces : clients/editor.c input_method_context, clients/weston-simple-im.c input_method, input_panel, input_panel_surface generated headers: input-method-client- requests : protocol.h commit_string, input-method-server- preedit_string, protocol.h preedit_styling, keysym … text-client-protocol.h text-server-protocol.h events : surrounding_text, reset, content_type, invoke_action, commit, … Wayland Input Methods
One protocol, three interfaces Input methods UI toolkits Weston protocol/input_method.xml protocol/text.xml examples : clients/keyboard.c interfaces : interfaces: clients/editor.c input_method_context, clients/weston-simple-im.c text_model, input_method, input_panel, text_model_factory input_panel_surface API (generated from XML): requests: input-method-client- requests : set_surrounding_text, protocol.h commit_string, activate, deactivate, input-method-server- preedit_string, set_content_type, … protocol.h preedit_styling, keysym, … text-client-protocol.h events: text-server-protocol.h events : commit_string, surrounding_text, reset, preedit_string, content_type, preedit_styling, keysm, … invoke_action, commit, … Wayland Input Methods
Architecture Overview Application (Qt) Application (Qt) Application (EFL) Application (EFL) Application (GTK+) Application (GTK+) Wayland & Wayland & Wayland text Wayland text Interface Interface (text_model) (text_model) Weston Input Method Weston Input Method Wayland & Wayland input method Interfaces (input_method_context, input_panel_surface) https://wiki.maliit.org/Wayland_Input_Method_System_Proposal Wayland Input Methods
Weston Keyboard & EFL Wayland Input Methods
Maliit Keybord & EFL Wayland Input Methods
Sub-surfaces (in X11: transient hints) Wayland Input Methods
Sub-surfaces & input methods Wayland Input Methods
IPC with sync calls application compositor input method Wayland Input Methods
IPC + sequence numbers input method requests: application requests: activate(n) (idle) set_surrounding_text(n) set_cursor_position(n) commit(n) preedit_string(n) commit_string(n) reset(n+1) reset(n+1) commit_string(n+1) Wayland Input Methods
Videos & more details @ blog.jpetersen.org Wayland Input Methods
? Wayland Input Methods
Recommend
More recommend