Wayland intro with i18n hacks Presented by Peng Wu Red Hat - - PowerPoint PPT Presentation

wayland intro
SMART_READER_LITE
LIVE PREVIEW

Wayland intro with i18n hacks Presented by Peng Wu Red Hat - - PowerPoint PPT Presentation

Wayland intro with i18n hacks Presented by Peng Wu Red Hat License statement goes here. See https://fedoraproject.org/wiki/Licensing#Content_Licenses for acceptable licenses. T oday's T opics 1. X Window Background 2. Wayland intro 3.


slide-1
SLIDE 1

with i18n hacks

Peng Wu

Presented by

Red Hat

License statement goes here. See https://fedoraproject.org/wiki/Licensing#Content_Licenses for acceptable licenses.

Wayland intro

slide-2
SLIDE 2

T

  • day's T
  • pics
  • 1. X Window Background
  • 2. Wayland intro
  • 3. Wayland with input method frameworks
  • 4. Wayland i18n hacks
  • 5. Summary
slide-3
SLIDE 3

X Window Background

slide-4
SLIDE 4

X originated at the MIT in 1984 Since then, never touched the core protocol

X Window History

slide-5
SLIDE 5

parts of the core protocol seldom used today

X11 core graphics functionality seldom used XIM protocol bypassed by input method frameworks, such as ibus, scim, fcitx.

Why not X?

slide-6
SLIDE 6

clients render locally clients tell the X server what they've drawn the server asks the WM to display it the window manager decides what to draw and where the X server displays what the WM rendered So, the window manager is the new X server

Client Rendering Steps

slide-7
SLIDE 7

Wayland intro

slide-8
SLIDE 8

Wayland - Wayland Compositor Infrastructure Weston - The Weston Wayland Compositor libinput - input device management and event handling library

Wayland dissected

slide-9
SLIDE 9

RPC mechanism designed for window system

Utility functions for client/server development

Generate codes from XML protocol definition

some client/server codes for communicating with the display server.

Define the core wayland protocol

in protocol/wayland.xml

Wayland intro

slide-10
SLIDE 10

The Reference Wayland Compositor

Reference Implementation

Support additionally protocols

in weston/protocol Maybe we could call these as extensions?

For input method support

See text.xml and input-method.xml

Weston display server

slide-11
SLIDE 11

clients render locally clients tell the server what they've drawn the server decides what to draw and where So, Wayland just cut out the middle man

Client Rendering Steps

slide-12
SLIDE 12

it's tractable 'every frame is perfect'

a set of pixels that should be shown in a window coherently at one time

Wayland Pros

slide-13
SLIDE 13

client says, 'display this' server displays it job done.

solely frame-based

slide-14
SLIDE 14

Wayland with input method frameworks

slide-15
SLIDE 15

Bus-Centric Architecture

It has an ibus-daemon, which manages all clients. all engines, panel, config modules & clients are clients of ibus-daemon.

iBus is based on dbus IPC protocol.

ibus intro

slide-16
SLIDE 16

ibus architecture

ibus daemon Application (GTK+) Application (QT) ibus XIM Server ibus panel UI ibus engine pinyin ibus engine anthy ibus config

slide-17
SLIDE 17

XIM protocol is old, and have many problems. Many GUI ToolKits implement own IMModules

Gtk+ - GtkIMContext QT – QinputContext

The XIM is by-passed by default configuration.

ibus with X

slide-18
SLIDE 18

Proposed architecture

Gtk+ App Wayland D-BUS ibus daemon

slide-19
SLIDE 19

Every daemon serves one aspect of functionality.

weston for display dbus for RPC ibus for input

Gtk+ Apps talks to the specific daemon only when needed. Why not by-pass display server again? ;-)

Advantages

slide-20
SLIDE 20

Wayland i18n hacks

slide-21
SLIDE 21

fixes dual-width glyph spaces problem

learned it from vte widget

Fixes cursor problem with vim, emacs

respect the virtual terminal spec

weston terminal hacks

slide-22
SLIDE 22

Wayland is wonderful more works on Wayland i18n supports

input methods font rendering

Summary

slide-23
SLIDE 23

Questions?

License statement goes here. See https://fedoraproject.org/wiki/Licensing#Content_Licenses for acceptable licenses.

example@fedoraproject.org

Contact: