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
|
# 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-xkb-layouts and
# 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 a single
# keyboard layout 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 IBus. (ex. "xkb:ca::fra")
# 2) The keyboard layout ID used by XKB. (ex. "ca", "handwriting-vk,jp")
# 3) The language code (ex. "fra")
# 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/chromeos/input_method/xkeyboard.cc
# * chrome/browser/resources/keyboard_overlay_data.js
# * chrome/browser/ui/webui/chromeos/keyboard_overlay_ui.cc
# U.S. English
xkb:us::eng us eng
xkb:us:intl:eng us(intl) eng !defined(USE_VIRTUAL_KEYBOARD)
xkb:us:altgr-intl:eng us(altgr-intl) eng !defined(USE_VIRTUAL_KEYBOARD)
xkb:us:dvorak:eng us(dvorak) eng !defined(USE_VIRTUAL_KEYBOARD)
xkb:us:colemak:eng us(colemak) eng !defined(USE_VIRTUAL_KEYBOARD)
english-m us en-US !defined(USE_VIRTUAL_KEYBOARD)
# 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 nld !defined(USE_VIRTUAL_KEYBOARD)
# We don't support xkb:nl::nld. See b/4430951.
# French
xkb:fr::fra fr fra
xkb:be::fra be fra !defined(USE_VIRTUAL_KEYBOARD)
xkb:ca::fra ca fra !defined(USE_VIRTUAL_KEYBOARD)
xkb:ch:fr:fra ch(fr) fra !defined(USE_VIRTUAL_KEYBOARD)
# German
xkb:de::ger de ger !defined(USE_VIRTUAL_KEYBOARD)
xkb:de:neo:ger de(neo) ger !defined(USE_VIRTUAL_KEYBOARD)
xkb:be::ger be ger !defined(USE_VIRTUAL_KEYBOARD)
xkb:ch::ger ch ger !defined(USE_VIRTUAL_KEYBOARD)
# Japanese
mozc us ja
mozc-jp jp ja !defined(USE_VIRTUAL_KEYBOARD)
mozc-dv us(dvorak) ja !defined(USE_VIRTUAL_KEYBOARD)
xkb:jp::jpn jp jpn !defined(USE_VIRTUAL_KEYBOARD)
zinnia-japanese handwriting-vk,jp ja defined(USE_VIRTUAL_KEYBOARD)
# Russian
xkb:ru::rus ru rus !defined(USE_VIRTUAL_KEYBOARD)
xkb:ru:phonetic:rus ru(phonetic) rus !defined(USE_VIRTUAL_KEYBOARD)
# 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 !defined(USE_VIRTUAL_KEYBOARD)
# TODO(yusukes): Define zh_CN_dvorak if it's *really* necessary.
# Traditional Chinese
mozc-chewing us zh_TW
m17n:zh:cangjie us zh
m17n:zh:quick us zh
# 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) kor
# 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:itrans us ta
# TODO(yusukes): Support the following IMEs in m17n-db-contrib.
# m17n:ta:phonetic us ta
# m17n:ta:inscript us ta
# m17n:ta:tamil99 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
# ibux-xkb-layouts input methods (keyboard layouts).
xkb:br::por br por !defined(USE_VIRTUAL_KEYBOARD)
xkb:bg::bul bg bul !defined(USE_VIRTUAL_KEYBOARD)
xkb:bg:phonetic:bul bg(phonetic) bul !defined(USE_VIRTUAL_KEYBOARD)
xkb:ca:eng:eng ca(eng) eng !defined(USE_VIRTUAL_KEYBOARD)
xkb:cz::cze cz cze !defined(USE_VIRTUAL_KEYBOARD)
xkb:ee::est ee est !defined(USE_VIRTUAL_KEYBOARD)
xkb:es::spa es spa !defined(USE_VIRTUAL_KEYBOARD)
xkb:es:cat:cat es(cat) cat !defined(USE_VIRTUAL_KEYBOARD)
xkb:dk::dan dk dan !defined(USE_VIRTUAL_KEYBOARD)
xkb:gr::gre gr gre !defined(USE_VIRTUAL_KEYBOARD)
xkb:il::heb il heb !defined(USE_VIRTUAL_KEYBOARD)
xkb:latam::spa latam spa !defined(USE_VIRTUAL_KEYBOARD)
xkb:lt::lit lt lit !defined(USE_VIRTUAL_KEYBOARD)
xkb:lv:apostrophe:lav lv(apostrophe) lav !defined(USE_VIRTUAL_KEYBOARD)
xkb:hr::scr hr scr !defined(USE_VIRTUAL_KEYBOARD)
xkb:gb:extd:eng gb(extd) eng !defined(USE_VIRTUAL_KEYBOARD)
xkb:gb:dvorak:eng gb(dvorak) eng !defined(USE_VIRTUAL_KEYBOARD)
xkb:fi::fin fi fin !defined(USE_VIRTUAL_KEYBOARD)
xkb:hu::hun hu hun !defined(USE_VIRTUAL_KEYBOARD)
xkb:it::ita it ita !defined(USE_VIRTUAL_KEYBOARD)
xkb:no::nob no nob !defined(USE_VIRTUAL_KEYBOARD)
xkb:pl::pol pl pol !defined(USE_VIRTUAL_KEYBOARD)
xkb:pt::por pt por !defined(USE_VIRTUAL_KEYBOARD)
xkb:ro::rum ro rum !defined(USE_VIRTUAL_KEYBOARD)
xkb:se::swe se swe !defined(USE_VIRTUAL_KEYBOARD)
xkb:sk::slo sk slo !defined(USE_VIRTUAL_KEYBOARD)
xkb:si::slv si slv !defined(USE_VIRTUAL_KEYBOARD)
xkb:rs::srp rs srp !defined(USE_VIRTUAL_KEYBOARD)
xkb:tr::tur tr tur !defined(USE_VIRTUAL_KEYBOARD)
xkb:ua::ukr ua ukr !defined(USE_VIRTUAL_KEYBOARD)
# TODO(yusukes): Support xkb:latam:deadtilde:spa and/or xkb:latam:nodeadkeys:spa
# if necessary.
|