Nexus 7にANKERのウルトラスリム・ミニ Bluetooth 3.0 ワイヤレスキーボードを接続したときに使われるKLファイル(Vendor_05ac_Product_0293.kl)とKCMファイル(Generic.kcm)の中身を調べて対応表を作った(長いので一番下に記載)。
この表を見ていくと、
- Androidを使う上で必須の「HOME」、「BACK」、「MENU」が定義されていない。 正確には、KCMファイルで「ESCAPE」キーのコンビネーションに割り当てられているが、肝心の「ESCAPE」に対応するLKC「1」がこのキーボードから発せられていないので入力できない。
- 「SEARCH」、「FORWARD_DEL」は「fn」キーと一緒に押す必要があり使いにくい。
これら以外にもKLファイルで定義されているがキーボードから該当コードが出ていないものもいろいろある(例:「F1」~「F10」)が、特に必要ではないと思われるので今回は触らない、必要あればKCMファイルで定義すればよいはず。
変更箇所をまとめると下表の通り。 変更はKLファイルだけで、KCMファイルは変更しない。
Vendor_05ac_Product_0239.klの変更はWindowsのNotepadでは改行にCR+LFが入ってしまうので、Notepad++を使った。
LKC | KLファイルの定義(変更前) | KLファイルの定義(変更後) | 変更内容 |
---|---|---|---|
100 | ALT_RIGHT | MENU | 右「ALT」キーに「MENU」を割り当てる |
111 | FORWARD_DEL | POWER | 「fn」+「Del」キー(最上段右端のキー)に「POWER」を割り当てる |
116 | (未定義) | FORWARD_DEL | 「Del」キー(最上段右端のキー)に「FORWARD_DEL」を割り当てる |
126 | META_RIGHT | HOME | 右「MRTA」キーに「HOME」を割り当てる |
172 | (未定義) | BACK | 「Esc」キー(最上段左端のキー)に「BACK」を割り当てる |
204 | (未定義) | (未定義) | |
217 | (未定義) | SEARCH | 「F3」キーに「SEARCH」を割り当てる |
229 | (未定義) | (未定義) | |
230 | (未定義) | (未定義) | |
374 | (未定義) | (未定義) |
割り当てたキーと配置は下図の通り。
キーボードが発生させるコードとKLファイル、KCMファイルとの対応表
LKC | KBD | AKC by KL | label | base | shift | capslock | cntl | alt | alt+shift | meta | |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | ESCAPE | BACK | fallback MENU | fallback HOME | fallback HOME | ||||||
2 | 2 | 1 | 1 | 1 | ! | ||||||
3 | 3 | 2 | 2 | 2 | @ | ||||||
4 | 4 | 3 | 3 | 3 | # | ||||||
5 | 5 | 4 | 4 | 4 | $ | ||||||
6 | 6 | 5 | 5 | 5 | % | ||||||
7 | 7 | 6 | 6 | 6 | ^ | ||||||
8 | 8 | 7 | 7 | 7 | & | ||||||
9 | 9 | 8 | 8 | 8 | * | ||||||
10 | 10 | 9 | 9 | 9 | ( | ||||||
11 | 11 | 0 | 0 | 0 | ) | ||||||
12 | 12 | MINUS | – | – | _ | ||||||
13 | 13 | EQUALS | = | = | + | ||||||
14 | 14 | DEL | |||||||||
15 | 15 | TAB | t | t | |||||||
16 | 16 | Q | Q | q | Q | Q | |||||
17 | 17 | W | W | w | W | W | |||||
18 | 18 | E | E | e | E | E | u0301 | ||||
19 | 19 | R | R | r | R | R | |||||
20 | 20 | T | T | t | T | T | |||||
21 | 21 | Y | Y | y | Y | Y | |||||
22 | 22 | U | U | u | U | U | u0308 | ||||
23 | 23 | I | I | i | I | I | u0302 | ||||
24 | 24 | O | O | o | O | O | |||||
25 | 25 | P | P | p | P | P | |||||
26 | 26 | LEFT_BRACKET | [ | [ | { | ||||||
27 | 27 | RIGHT_BRACKET | ] | ] | } | ||||||
28 | 28 | ENTER | n | n | |||||||
29 | 29 | CTRL_LEFT | |||||||||
30 | 30 | A | A | a | A | A | |||||
31 | 31 | S | S | s | S | S | u00df | ||||
32 | 32 | D | D | d | D | D | |||||
33 | 33 | F | F | f | F | F | |||||
34 | 34 | G | G | f | G | G | |||||
35 | 35 | H | H | h | H | H | |||||
36 | 36 | J | J | j | J | J | |||||
37 | 37 | K | K | k | K | K | |||||
38 | 38 | L | L | l | L | L | |||||
39 | 39 | SEMICOLON | ; | ; | : | ||||||
40 | 40 | APOSTROPHE | ’ | ’ | “ | ||||||
41 | 41 | GRAVE | ` | ` | ~ | u0300 | u0303 | ||||
42 | 42 | SHIFT_LEFT | |||||||||
43 | 43 | BACKSLASH | |||||||||
44 | 44 | Z | Z | z | Z | Z | |||||
45 | 45 | X | X | x | X | X | |||||
46 | 46 | C | C | c | C | C | u00e7 | u00e7 | |||
47 | 47 | V | V | v | V | V | |||||
48 | 48 | B | B | b | B | B | |||||
49 | 49 | N | N | n | N | N | |||||
50 | 50 | M | M | m | M | M | u0303 | ||||
51 | 51 | COMMA | , | , | |||||||
52 | 52 | PERIOD | . | . | > | ||||||
53 | 53 | SLASH | / | / | ? | ||||||
54 | 54 | SHIFT_RIGHT | |||||||||
56 | 56 | ALT_LEFT | |||||||||
57 | 57 | SPACE | ’ ’ | ’ ’ | fallback LANGUAGE_SWITCH | fallback SEARCH | fallback SEARCH | ||||
58 | 58 | CAPS_LOCK | |||||||||
59 | F1 | ||||||||||
60 | F2 | ||||||||||
61 | F3 | ||||||||||
62 | F4 | ||||||||||
63 | F5 | ||||||||||
64 | F6 | ||||||||||
65 | F7 | ||||||||||
66 | F8 | ||||||||||
67 | F9 | ||||||||||
68 | F10 | ||||||||||
(中略) | |||||||||||
87 | F11 | ||||||||||
88 | F12 | ||||||||||
(中略) | |||||||||||
100 | 100 | ALT_RIGHT | |||||||||
102 | MOVE_HOME | ||||||||||
103 | 103 | DPAD_UP | |||||||||
104 | PAGE_UP | ||||||||||
105 | 105 | DPAD_LEFT | |||||||||
106 | 106 | DPAD_RIGHT | |||||||||
107 | MOVE_END | ||||||||||
108 | 108 | DPAD_DOWN | |||||||||
109 | PAGE_DOWN | ||||||||||
110 | NUMPAD_ENTER | n | n fallback ENTER | none fallback ENTER | none fallback ENTER | none fallback ENTER | |||||
111 | 111 | FORWARD_DEL | |||||||||
113 | 113 | VOLUME_MUTE | |||||||||
114 | 114 | VOLUME_DOWN | |||||||||
115 | 115 | VOLUME_UP | |||||||||
116 | 116 | ||||||||||
(中略) | |||||||||||
120 | 120 | APP_SWITCH | |||||||||
(中略) | |||||||||||
125 | 125 | META_LEFT | |||||||||
126 | 126 | META_RIGHT | |||||||||
(中略) | |||||||||||
161 | MEDIA_EJECT | ||||||||||
163 | 163 | MEDIA_NEXT | |||||||||
164 | 164 | MEDIA_PLAY_PAUSE | |||||||||
165 | 165 | MEDIA_PREVIOUS | |||||||||
(中略) | |||||||||||
172 | 172 | ||||||||||
(中略) | |||||||||||
204 | 204 | # show gadgets | |||||||||
(中略) | |||||||||||
217 | 217 | ||||||||||
(中略) | |||||||||||
224 | 224 | BRIGHTNESS_DOWN | |||||||||
225 | 225 | BRIGHTNESS_UP | |||||||||
(中略) | |||||||||||
229 | 229 | # blank special function on F5 | |||||||||
230 | 230 | # blank special function on F6 | |||||||||
(中略) | |||||||||||
374 | 374 | ||||||||||
(中略) | |||||||||||
464 | FUNCTION |