-
Notifications
You must be signed in to change notification settings - Fork 16
/
README
298 lines (266 loc) · 25.9 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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
Ibus-typing-booster
Get faster typing experience by intelligent context sensitive completion.
Backdrop & Introduction
Ibus-typing-booster is a completion input method to speed-up typing.
The project was started in 2010 for [1]Fedora 15. The original purpose was to
make typing of Indic languages easier and faster by providing completion and
spell checking suggestions.
Originally it was forked from [2]ibus-table whose developer was Yu Yuwei [3]
[email protected], with contributions from Caius("kaio") [4][email protected]
.
Since then ibus-typing-booster has been improved to support many other
languages as well (i.e. most languages except Chinese and Japanese are
supported).
Recently the capability to type different languages at the same time without
having to switch between languages has been added.
Developers
• Mike Fabian [5][email protected]
• Anish Patil: [6][email protected]
Features
• Context sensitive completions.
• Learns from user input.
• Can be trained by supplying files containing typical user input.
• If available, [7]hunspell dictionaries will also be used to provide not
only completion but also spellchecking suggestions (But
ibus-typing-booster can also work without hunspell by learning from user
input alone).
• Can be used with almost any keyboard layout.
• Almost all input methods supplied by [8]libm17n are supported (including
the [9]inscript2 input methods).
• Several input methods and languages can be used at the same time without
switching.
• Predicts [10]Unicode symbols and emojis as well.
Online documentation
You can find online documentation here:
• [11]ibus-typing-booster home page on github
• [12]ibus-typing-booster documentation page
Feature Requests & Bug reports
• You can report bugs here: [13]ibus-typing-booster issue tracker on github
• Request for new features here: [14]ibus-typing-booster pull request on
github
Contributing translations
The best (& the easiest) way to contribute translations is using this [15]
online translation platform.
Development
If you want to build from source or contribute to the development, see the
[16]ibus-typing-booster development page. There you'd also find the
requirements for building from source for most systems.
Table of default key bindings
• [17]Default key bindings
• [18]Default mouse bindings
Note: A copy of these bindings is also shown below for convenience. Some of
these key bindings can be customized in the setup tool.
The following table explains the defaults:
┌───────────────┬───────────────────────────────────────────────────────────┐
│Key Combination│ Effect │
├───────────────┼───────────────────────────────────────────────────────────┤
│ │Commit the preëdit (or the selected candidate, if any) and │
│Space │send a Space to the application, i.e. commit the typed │
│ │string followed by a space. │
├───────────────┼───────────────────────────────────────────────────────────┤
│Return or │Commit the preëdit (or the selected candidate, if any) and │
│KP_Enter │send a Return or KP_Enter to the application. │
├───────────────┼───────────────────────────────────────────────────────────┤
│ │Bound by default to the commands "select_next_candidate" │
│ │and "enable_lookup". │
│ │ │
│ │ • If the option "Enable suggestions by Tab" is not set │
│ │ (☐) then Tab always just executes │
│ │ "select_next_candidate" which selects the next │
│ │ candidate from the candidate list. │
│ │ • If the option "Enable suggestions by Tab" is set (☑), │
│ │ then no candidate list is shown by default: │
│Tab │ □ If no candidate list is shown: "enable_lookup" is │
│ │ executed which requests to show the candidate list │
│ │ (nothing might be shown if no candidates can be │
│ │ found). │
│ │ □ If a candidate list is already shown: │
│ │ "select_next_candidate" is executed which selects │
│ │ the next candidate in the list. After each commit │
│ │ and after each change of the contents of the │
│ │ preëdit, the candidate list will be hidden again │
│ │ until the "enable_lookup" requests it again. │
├───────────────┼───────────────────────────────────────────────────────────┤
│ │Bound by default to the command │
│Shift+Tab │"select_previous_candidate". Selects the previous candidate│
│ │in the candidate list. │
├───────────────┼───────────────────────────────────────────────────────────┤
│ │Bound by default to the command "cancel". │
│ │ │
│ │ • When a candidate is selected (no matter whether this is│
│ │ a normal lookup table or a "related" lookup table): │
│ │ Show the first page of that lookup table again with no │
│ │ candidate selected. │
│Esc │ • When no candidate is selected: │
│ │ □ When a lookup table with related candidates is │
│ │ shown or a lookup table where upper/lower-case has │
│ │ been changed by typing the Shift key is shown: go │
│ │ back to the original lookup table. │
│ │ □ When a normal lookup table is shown: close it and │
│ │ clear the preëdit. │
├───────────────┼───────────────────────────────────────────────────────────┤
│← │Move cursor one typed key left in the preëdit text. May │
│ │trigger a commit if the left end of the preëdit is reached.│
├───────────────┼───────────────────────────────────────────────────────────┤
│ │Move cursor to the left end of the preëdit text. If the │
│Control+← │cursor is already at the left end of the preëdit text, │
│ │trigger a commit and send a Control+← to the application. │
├───────────────┼───────────────────────────────────────────────────────────┤
│ │Move cursor one typed key right in preëdit text. May │
│→ │trigger a commit if the right end of the preëdit is │
│ │reached. │
├───────────────┼───────────────────────────────────────────────────────────┤
│ │Move cursor to the right end of the preëdit text. If the │
│Ctrl+→ │cursor is already at the right end of the preëdit text, │
│ │trigger a commit and send a Ctrl+→ to the application. │
├───────────────┼───────────────────────────────────────────────────────────┤
│Backspace │Remove the typed key to the left of the cursor in the │
│ │preëdit text. │
├───────────────┼───────────────────────────────────────────────────────────┤
│Ctrl+Backspace │Remove everything to the left of the cursor in the preëdit │
│ │text. │
├───────────────┼───────────────────────────────────────────────────────────┤
│Delete │Remove the typed key to the right of the cursor in the │
│ │preëdit text. │
├───────────────┼───────────────────────────────────────────────────────────┤
│Ctrl+Delete │Remove everything to the right of the cursor in the preëdit│
│ │text. │
├───────────────┼───────────────────────────────────────────────────────────┤
│↓ │Bound by default to the command "select_next_candidate". │
│ │Selects the next candidate. │
├───────────────┼───────────────────────────────────────────────────────────┤
│ │Bound by default to the command │
│↑ │"select_previous_candidate". Selects the previous │
│ │candidate. │
├───────────────┼───────────────────────────────────────────────────────────┤
│Pg Up │Bound by default to the command "lookup_table_page_up". │
│ │Shows the previous page of candidates. │
├───────────────┼───────────────────────────────────────────────────────────┤
│Pg Down │Bound by default to the command "lookup_table_page_down". │
│ │Shows the next page of candidates. │
├───────────────┼───────────────────────────────────────────────────────────┤
│F1 │Commit the candidate with the label "1" followed by a │
│ │space. │
├───────────────┼───────────────────────────────────────────────────────────┤
│F2 │Commit the candidate with the label "2" followed by a │
│ │space. │
├───────────────┼───────────────────────────────────────────────────────────┤
│... │... │
├───────────────┼───────────────────────────────────────────────────────────┤
│F9 │Commit the candidate with the label "9" followed by a │
│ │space. │
├───────────────┼───────────────────────────────────────────────────────────┤
│ │Remove the candidate with the label "1" from the database │
│Ctrl+F1 │of learned user input (If possible, if this candidate is │
│ │not learned from user input, nothing happens). │
├───────────────┼───────────────────────────────────────────────────────────┤
│ │Remove the candidate with the label "2" from the database │
│Ctrl+F2 │of learned user input (If possible, if this candidate is │
│ │not learned from user input, nothing happens). │
├───────────────┼───────────────────────────────────────────────────────────┤
│... │... │
├───────────────┼───────────────────────────────────────────────────────────┤
│ │Remove the candidate with the label "3" from the database │
│Ctrl+F9 │of learned user input (If possible, if this candidate is │
│ │not learned from user input, nothing happens). │
├───────────────┼───────────────────────────────────────────────────────────┤
│ │Same as F1...F9 if the option "Use digits as select keys" │
│ │is enabled. Enabling that option makes selecting candidates│
│ │a bit easier because the number keys 1...9 are closer to │
│ │the fingers than F1...F9 on most keyboards. On the other │
│ │hand, it makes completing when typing numbers impossible │
│1...9 │and it makes typing strings which are combinations of │
│ │letters and numbers like "A4" more difficult. If digits are│
│ │used as select keys, numbers can only be typed when no │
│ │candidate list is shown. In most cases this means that │
│ │numbers can only be typed when nothing else has been typed │
│ │yet and the preëdit is empty. │
├───────────────┼───────────────────────────────────────────────────────────┤
│Ctrl+1...Ctrl+9│Same as Ctrl+F1...Ctrl+F9 if the option “Use digits as │
│ │select keys” is enabled. │
├───────────────┼───────────────────────────────────────────────────────────┤
│ │Bound by default to the command "toggle_emoji_prediction". │
│Alt+F6 │Toggle the emoji and Unicode symbol prediction on/off. This│
│ │has the same result as using the setup tool to change this.│
├───────────────┼───────────────────────────────────────────────────────────┤
│ │Bound by default to the command "toggle_off_the_record". │
│ │Toggle the "Off the record" mode. This has the same result │
│ │as using the setup tool to change this. While "Off the │
│ │record" mode is on, learning from user input is disabled. │
│Alt+F9 │If learned user input is available, predictions are usually│
│ │much better than predictions using only dictionaries. │
│ │Therefore, one should use this option sparingly. Only if │
│ │one wants to avoid saving secret user input to disk it │
│ │might make sense to use this option temporarily. │
├───────────────┼───────────────────────────────────────────────────────────┤
│Alt+F10 │Bound by default to the command "setup". Opens the setup │
│ │tool. │
├───────────────┼───────────────────────────────────────────────────────────┤
│Alt+F12 │Bound by default to the command "lookup_related". Shows │
│ │related emoji and Unicode symbols or related words. │
├───────────────┼───────────────────────────────────────────────────────────┤
│Alt+Space │Insert a literal space into the preëdit. │
└───────────────┴───────────────────────────────────────────────────────────┘
When more than one input method at the same time is used, the following
additional key bindings are available:
┌───────────┬───────────────────────────────────────────────────────────────┐
│ Key │ Effect │
│Combination│ │
├───────────┼───────────────────────────────────────────────────────────────┤
│Ctrl+↓ │Bound by default to the command "next_input_method". Switches │
│ │the input method used for the preëdit to the next input method.│
├───────────┼───────────────────────────────────────────────────────────────┤
│ │Bound by default to the command "previous_input_method". │
│Ctrl+↑ │Switches the input method used for the preëdit to the previous │
│ │method. │
└───────────┴───────────────────────────────────────────────────────────────┘
Mouse bindings
These mouse bindings are currently hard-coded and cannot yet be customized.
┌────────────────┬──────────────────────────────────────────────────────────┐
│ Mouse Event │ Effect │
├────────────────┼──────────────────────────────────────────────────────────┤
│Button 1 click │Commit the candidate clicked on followed by a space (Same │
│on a candidate │as F1...F9). │
├────────────────┼──────────────────────────────────────────────────────────┤
│Ctrl + Button 1 │Remove clicked candidate from database of learned user │
│click on a │input (If possible, if this candidate is not learned from │
│candidate │user input, nothing happens). │
├────────────────┼──────────────────────────────────────────────────────────┤
│Button 3 clicks │Show related emoji and Unicode symbols or related words │
│on a candidate │(Same as Alt+F12). │
├────────────────┼──────────────────────────────────────────────────────────┤
│Ctrl + Button 3 │Toggle the emoji and Unicode symbol prediction on/off │
│clicks anywhere │(Same as Alt+F6). This has the same result as using the │
│in the candidate│setup tool to change this. │
│list │ │
├────────────────┼──────────────────────────────────────────────────────────┤
│ │Toggle the “Off the record” mode (Same as Alt+F9). │
│ │This has the same result as using the setup tool to change│
│ │this. │
│Alt + Button 3 │While "Off the record" mode is on, learning from user │
│clicks anywhere │input is disabled. If learned user input is available, │
│in the candidate│predictions are usually much better than those which │
│list │predictions use only dictionaries. Therefore, one should │
│ │use this option sparingly. Only if one wants to avoid │
│ │saving secret user input to disk it might make sense to │
│ │use this option temporarily. │
└────────────────┴──────────────────────────────────────────────────────────┘
References:
[1] https://en.wikipedia.org/wiki/Fedora_version_history#Fedora_15
[2] https://github.com/acevery/ibus-table
[3] mailto:[email protected]
[4] mailto:[email protected]
[5] mailto:[email protected]
[6] mailto:[email protected]
[7] https://github.com/hunspell/hunspell
[8] https://pkgs.org/download/libm17n.so.0
[9] https://fedoraproject.org/wiki/QA:Inscript2_Keymaps
[10] https://en.wikipedia.org/wiki/Unicode
[11] http://mike-fabian.github.io/ibus-typing-booster/
[12] http://mike-fabian.github.io/ibus-typing-booster/documentation.html
[13] https://github.com/mike-fabian/ibus-typing-booster/issues
[14] https://github.com/mike-fabian/ibus-typing-booster/pulls
[15] https://translate.fedoraproject.org/projects/ibus-typing-booster/
[16] http://mike-fabian.github.io/ibus-typing-booster/development.html
[17] http://mike-fabian.github.io/ibus-typing-booster/documentation.html#key-bindings
[18] http://mike-fabian.github.io/ibus-typing-booster/documentation.html#mouse-bindings