23
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

Wayland intro with_i18n_hacks

  • Upload
    peng-wu

  • View
    124

  • Download
    0

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Wayland intro with_i18n_hacks

with i18n hacks

Peng WuPresented by

Red Hat

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

Wayland intro

Page 2: Wayland intro with_i18n_hacks

Today's Topics

1. X Window Background

2. Wayland intro

3. Wayland with input method frameworks

4. Wayland i18n hacks

5. Summary

Page 3: Wayland intro with_i18n_hacks

X Window Background

Page 4: Wayland intro with_i18n_hacks

X originated at the MIT in 1984

Since then, never touched the core protocol

X Window History

Page 5: Wayland intro with_i18n_hacks

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?

Page 6: Wayland intro with_i18n_hacks

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

Page 7: Wayland intro with_i18n_hacks

Wayland intro

Page 8: Wayland intro with_i18n_hacks

Wayland - Wayland Compositor Infrastructure

Weston - The Weston Wayland Compositor

libinput - input device management and event handling library

Wayland dissected

Page 9: Wayland intro with_i18n_hacks

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

Page 10: Wayland intro with_i18n_hacks

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

Page 11: Wayland intro with_i18n_hacks

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

Page 12: Wayland intro with_i18n_hacks

it's tractable

'every frame is perfect'

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

Wayland Pros

Page 13: Wayland intro with_i18n_hacks

client says, 'display this'

server displays it

job done.

solely frame-based

Page 14: Wayland intro with_i18n_hacks

Wayland with input method

frameworks

Page 15: Wayland intro with_i18n_hacks

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

Page 16: Wayland intro with_i18n_hacks

ibus architecture

ibus daemon

Application (GTK+)

Application (QT)

ibus XIM Server

ibus panel UI

ibus engine pinyin

ibus engine anthy

ibus config

Page 17: Wayland intro with_i18n_hacks

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

Page 18: Wayland intro with_i18n_hacks

Proposed architecture

Gtk+ App

Wayland

D-BUS ibus daemon

Page 19: Wayland intro with_i18n_hacks

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

Page 20: Wayland intro with_i18n_hacks

Wayland i18n hacks

Page 21: Wayland intro with_i18n_hacks

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

Page 22: Wayland intro with_i18n_hacks

Wayland is wonderful

more works on Wayland i18n supports

input methods

font rendering

Summary

Page 23: Wayland intro with_i18n_hacks

Questions?

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

[email protected]: