wayland input methods
play

Wayland Input Methods Michael Hasselmann Openismus GmbH Wayland - PowerPoint PPT Presentation

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


  1. Wayland Input Methods Michael Hasselmann Openismus GmbH Wayland Input Methods

  2. Input methods? Wayland Input Methods

  3. Input method developers want a unified architecture! (And UI toolkits don't want to bother too much …) Wayland Input Methods

  4. No protocol evolution in XIM https://mail.gnome.org/archives/wm-spec- list/2007-August/msg00025.html Wayland Input Methods

  5. 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

  6. Wayland 1.0: No input methods (but lots of crazy talk @ FOSDEM 2012) Wayland Input Methods

  7. 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

  8. 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

  9. 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

  10. 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

  11. Weston Keyboard & EFL Wayland Input Methods

  12. Maliit Keybord & EFL Wayland Input Methods

  13. Sub-surfaces (in X11: transient hints) Wayland Input Methods

  14. Sub-surfaces & input methods Wayland Input Methods

  15. IPC with sync calls application compositor input method Wayland Input Methods

  16. 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

  17. Videos & more details @ blog.jpetersen.org Wayland Input Methods

  18. ? Wayland Input Methods

Recommend


More recommend