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
|
# The list of input methods that we support. The input methods metadata is
# also defined here. We use this data for the following purposes.
#
# 1. Exclude unnecessary input methods. For example, we don't need
# "ja:anthy", and "zh:pinyin" engines in ibus-m17n since we have better
# alternatives outside of ibus-m17n. Excluding these input methods from
# the IBus engine XML files, such as /usr/share/ibus/component/m17n.xml,
# makes the startup time of the IBus daemon faster. This filtering is
# done using a python script at build time of ibus-m17n.
# See crosbug.com/4161 for details.
#
# 2. Provide the input methods metadata to Chrome at build time. Chrome
# needs to know about the supported input methods for the input method
# features, such as the input method switching and the options page,
# to work. Note that we can retrieve the same metadata from the IBus
# daemon, but Chrome needs be able to get the metadata without talking
# to the IBus daemon. This requirement comes from the fact that the
# IBus daemon should not run if the user is just using keyboard layouts
# such as US keyboard. The metadata generation is done using a python
# script at build time of Chrome. See crosbug.com/16961 for details.
#
# The order of the list is important. In Chrome's "Languages and input" options
# page, we list input methods in this order, when more than one input methods
# are available for a language (ex. French).
#
# Each non-comment line contains the following tab-separated columns.
#
# 1) The input method ID used by Chrome. (ex. "xkb:ca::fra") You should *NEVER*
# change the ID since the ID might be written in user's ~/Preferences. For
# example, three-letter ISO 639-2/B codes are used for IDs start with "xkb:"
# for histrical reason, but we should not replace them with two-letter 639-1
# codes that are currently in use in the 3rd column.
# 2) The keyboard layout ID used by XKB. (ex. "us", "us(dvorak)", "ca",
# "handwriting-vk,jp"). See also: /usr/share/X11/xkb/symbols.
# 3) The language code (ex. "fr"). Only one format, ISO 639-1 compliant two-
# letter language code which can be recognized by ICU, is allowed. Do not use
# three-letter ones (ISO 639-2/T and 639-2/B) here. For "en", "pt", and "zh",
# two-letter upper-case country code should be added (ex. "en-US", "zh-TW").
# See http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes for details.
# 4) [optional] The #if condition for the input method.
# (ex. "defined(A)", "!defined(A)||defined(B)")
#
# Notes:
# When adding a line to this list, please also add a mapping from the input
# method ID to the keyboard overlay ID to INPUT_METHOD_ID_TO_OVERLAY_ID in
#
# * tools/gen_keyboard_overlay_data/gen_keyboard_overlay_data.py
#
# and update the following files by running this script.
#
# * chrome/app/generated_resources.grd
# * chrome/browser/resources/chromeos/keyboard_overlay_data.js
# * chrome/browser/ui/webui/chromeos/keyboard_overlay_ui.cc
#
# If you add an XKB layout which depends on X11's Mod3Mask (e.g. Germany Neo2
# XKB layout), you should also update IsMod3UsedByCurrentInputMethod() method
# in chrome/browser/ui/ash/event_rewriter.cc. Otherwise, Mod3Mask might be
# removed unexpectedly by the rewriter.
# U.S. English
xkb:us::eng us en-US
xkb:us:intl:eng us(intl) en-US
xkb:us:altgr-intl:eng us(altgr-intl) en-US
xkb:us:dvorak:eng us(dvorak) en-US
xkb:us:colemak:eng us(colemak) en-US
english-m us en-US
# U.S. English entiries have to be above the Dutch entry so that xkb:us:intl:eng
# will be selected as the default keyboard when the UI language is set to Dutch.
# Dutch
xkb:be::nld be nl
# We don't support xkb:nl::nld. See b/4430951.
# French
xkb:fr::fra fr fr
xkb:be::fra be fr
xkb:ca::fra ca fr
xkb:ch:fr:fra ch(fr) fr
# German
xkb:de::ger de de
xkb:de:neo:ger de(neo) de
xkb:be::ger be de
xkb:ch::ger ch de
# Japanese
mozc us ja
mozc-jp jp ja
mozc-dv us(dvorak) ja
# |kMozcJaInputMethodIds| in ibus_ui_controller.cc should also be updated when
# a new Mozc Japanese IME for another keyboard layout is added.
xkb:jp::jpn jp ja
# Russian
xkb:ru::rus ru ru
xkb:ru:phonetic:rus ru(phonetic) ru
# Thai
m17n:th:kesmanee us th
m17n:th:pattachote us th
m17n:th:tis820 us th
# Simplified Chinese
pinyin us zh-CN
pinyin-dv us(dvorak) zh-CN
# Traditional Chinese
mozc-chewing us zh-TW
m17n:zh:cangjie us zh-TW
m17n:zh:quick us zh-TW
# Vietnamese
m17n:vi:tcvn us vi
m17n:vi:telex us vi
m17n:vi:viqr us vi
m17n:vi:vni us vi
# Note: Since Chrome does not support "get surrounding text" feature yet,
# Vietnames input methods, except 4 input methods above, in m17n-db should
# not work fine. The 4 input methods in m17n-db (>= 1.6.0) don't require the
# feature.
# Korean
mozc-hangul kr(kr104) ko
xkb:kr:kr104:kor kr(kr104) ko
# Arabic
m17n:ar:kbd us ar
# TODO(yusukes,jshin): Check if we can use ibux-xkb-layouts for Arabic, Hindi,
# etc.
# Hindi
m17n:hi:itrans us hi
# Note: the m17n-contrib package has some more Hindi IMEs.
# Farsi (Persian)
m17n:fa:isiri us fa
# Bengali
m17n:bn:itrans us bn
# TODO(yusukes): Support the following IMEs in m17n-db (unijoy) and
# m17n-db-contrib (inscript, probhat).
# m17n:bn:unijoy us bn
# m17n:bn:inscript us bn
# m17n:bn:probhat us bn
# Gujarati
m17n:gu:itrans us gu
# TODO(yusukes): Support the following IMEs in m17n-db-contrib.
# m17n:gu:phonetic us gu
# m17n:gu:inscript us gu
# Malayalam
m17n:ml:itrans us ml
# TODO(yusukes): Support the following IMEs in m17n-db-contrib.
# m17n:ml:inscript us ml
# m17n:ml:mozhi us ml
# Marathi
# Note: m17n:mr:itrans is in m17n-db-contrib.
m17n:mr:itrans us mr
# TODO(yusukes): Support the following IMEs in m17n-db-contrib.
# m17n:mr:phonetic us mr
# m17n:mr:inscript us mr
# Tamil
m17n:ta:phonetic us ta
m17n:ta:inscript us ta
m17n:ta:tamil99 us ta
m17n:ta:itrans us ta
m17n:ta:typewriter us ta
# Telugu
m17n:te:itrans us te
# Kannada
m17n:kn:itrans us kn
# Amharic
m17n:am:sera us am
# Keyboard layouts.
xkb:br::por br pt-BR
xkb:bg::bul bg bg
xkb:bg:phonetic:bul bg(phonetic) bg
xkb:ca:eng:eng ca(eng) en-CA
xkb:cz::cze cz cs
xkb:ee::est ee et
xkb:es::spa es es
xkb:es:cat:cat es(cat) ca
xkb:dk::dan dk da
xkb:gr::gre gr el
xkb:il::heb il he
xkb:latam::spa latam es
xkb:lt::lit lt lt
xkb:lv:apostrophe:lav lv(apostrophe) lv
xkb:hr::scr hr hr
xkb:gb:extd:eng gb(extd) en-GB
xkb:gb:dvorak:eng gb(dvorak) en-GB
xkb:fi::fin fi fi
xkb:hu::hun hu hu
xkb:it::ita it it
xkb:no::nob no nb
xkb:pl::pol pl pl
xkb:pt::por pt pt-PT
xkb:ro::rum ro ro
xkb:se::swe se sv
xkb:sk::slo sk sk
xkb:si::slv si sl
xkb:rs::srp rs sr
xkb:tr::tur tr tr
xkb:ua::ukr ua uk
# TODO(yusukes): Support xkb:latam:deadtilde:spa and/or xkb:latam:nodeadkeys:spa
# if necessary.
|