先把大神顶在最前,一步一步教你做一款自己的输入法
https://www.jianshu.com/p/2ff655bdb9f7
在讲weston之前,先脑洞一个问题:
我们打开一个记事本notepad.exe,记事本本身是一个客户端程序;
搜狗输入法又是一个客户端程序,两个程序进程间怎么调用呢?
![](https://img.haomeiwen.com/i7710482/9f57ec1227867d7b.png)
先说搜狗输入法,输入法本身有自己的词库(有自己的词库服务+本地常用词库,有自己的个性化界面,各种OEM定制款)。我们在研究Weston的时候,且将注意力集中在搜狗输入法客户端程序本身,我们认为它是一个进程。
任务管理器里可以打开word、excel、ppt、记事本,这些每个客户端程序都是进程。
我们想将搜狗输入法客户端程序中编辑好的“你好”,输入到word客户端程序中,搜狗输入法为我们在系统层面做了怎样的支持?这个问题是需要大家思考的。
----------------------------------------下面 正式开始Weston的讲解------------------------------------------------------------
运行树莓派,调取终端输入$weston-editor,将看到一个很简单的输入法界面,如下:
![](https://img.haomeiwen.com/i7710482/5785ba8563ae8e94.png)
运行后出现两个client,一个text-input clent, 一个input-method client。
两个客户端程序如何通讯呢?
![](https://img.haomeiwen.com/i7710482/5e2fc356ed160d25.png)
a/b两个进程要通讯,需要server传递消息,weston就是这个勤劳的接线员。
weston的源码可以在https://github.com/wayland-project/weston获取。
weston/compositor/text-backend.c 里有 input-method 和 text-input 2个协议的服务端实现。
clients/keyboard.c 是 input-method client 端的简易实现。
clients/editor.c 是 text-input client 端的简易实现。
网友评论