forked from janghe11/dasom
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
98 lines (74 loc) · 3.14 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
Dasom is a multilingual input method framework, which provides
* Input Method Server
* dasom-daemon including XIM
* Client Modules
* GTK+2, GTK+3, Qt4, Qt5
* Indicators
* GNOME shell: dasom agent extension
* KDE, Unity, GNOME panel: dasom-indicator (using libappindicator3)
Project Homepage: https://github.com/cogniti/dasom
INSTALL
-------
* Compile
./autogen.sh
make
sudo make install
sudo ldconfig
sudo make update-gtk-im-cache
sudo make update-gtk-icon-cache
* For gnome-shell, enable [email protected]
gnome-shell-extension-tool -e [email protected]
* Configure im-config
Run im-config, then select Dasom, logout and login.
Troubleshoot
------------
* Failed to load shared library
Check /etc/ld.so.conf and /etc/ld.so.conf.d/ for /usr/local/lib path
Architecture
------------
+- im modules --+ +---- each process -----+ +- a process --+
| gtk im module | | gnome-shell-extension | | X server |
| qt im module | | dasom-indicator | +--------------+
+---------------+ +-----------------------+ ^ |
| calls | calls | |
+------------------+ +---------------------+ | |
| dasom IM library | | dasom agent library | | | communicates
+------------------+ +---------------------+ | |
^ | ^ | | |
| | communicates | | | |
| | via Unix Socket | | | |
| v | v | v
+---------------------- a process ----------------------+
| dasom-daemon (including XIM) |
+-------------------------------------------------------+
| calls | create instance
| singleton instance | (not module yet)
+---------------+ +------------------+
| engine module | calls | candidate module |
| interface | ---------> | interface |
+---------------+ +------------------+
| |
+- dasom-english +- dasom-candidate (gtk3)
Debugging
---------
dasom-daemon --debug
tail -f /var/log/daemon.log
export GTK_IM_MODULE="dasom"
export QT4_IM_MODULE="dasom"
export QT_IM_MODULE="dasom"
export G_MESSAGES_DEBUG=dasom
export XMODIFIERS="@im=dasom"
gedit # or kate for Qt
References
----------
http://www.x.org/releases/X11R7.6/doc/libX11/specs/XIM/xim.html
http://www.w3.org/TR/ime-api/
https://developer.chrome.com/extensions/input_ime
http://docs.enlightenment.org/auto/efl/ecore_main.html
http://doc.qt.io/qt-4.8/qinputcontext.html
http://doc.qt.io/qt-5/qinputmethod.html
https://git.gnome.org/browse/gtk+
https://github.com/ibus/ibus
https://github.com/fcitx/fcitx
https://github.com/fcitx/fcitx-qt5
https://github.com/uim/uim