理解kcm文件的意义
- # keycode display number base caps fn caps_fn
- A 'A' '2' 'a' 'A' '#' 0x00
- B 'B' '2' 'b' 'B' '<' 0x00
- C 'C' '2' 'c' 'C' '9' 0x00E7
- D 'D' '3' 'd' 'D' '5' 0x00
- E 'E' '3' 'e' 'E' '2' 0x0301
- F 'F' '3' 'f' 'F' '6' 0x00A5
- G 'G' '4' 'g' 'G' '-' '_'
- H 'H' '4' 'h' 'H' '[' '{'
- I 'I' '4' 'i' 'I' '$' 0x0302
- J 'J' '5' 'j' 'J' ']' '}'
- K 'K' '5' 'k' 'K' '"' '~'
- L 'L' '5' 'l' 'L' ''' '`'
- M 'M' '6' 'm' 'M' '!' 0x00
- N 'N' '6' 'n' 'N' '>' 0x0303
- O 'O' '6' 'o' 'O' '(' 0x00
- P 'P' '7' 'p' 'P' ')' 0x00
- Q 'Q' '7' 'q' 'Q' '*' 0x0300
- R 'R' '7' 'r' 'R' '3' 0x20AC
- S 'S' '7' 's' 'S' '4' 0x00DF
- T 'T' '8' 't' 'T' '+' 0x00A3
- U 'U' '8' 'u' 'U' '&' 0x0308
- V 'V' '8' 'v' 'V' '=' '^'
- W 'W' '9' 'w' 'W' '1' 0x00
- X 'X' '9' 'x' 'X' '8' 0xEF00
- Y 'Y' '9' 'y' 'Y' '%' 0x00A1
- Z 'Z' '9' 'z' 'Z' '7' 0x00
keycode列:由kernel层发出,经*.kl键盘映射文件得到keycode;
base列:META_KEY没有被激活时的状态,即MetaState==0时映射的字符;
caps列:毫无疑问,是SHIFT或CAPS_LOCK被激活时的状态,此时MetaState==1时,映射的字符;
fn列:ALT被激活,对应MetaState==2时映射的字符;
caps_fn列:ALT,SHIFT或CAPS_LOCK同时被激活时映射的字符;此时MetaState==3;
通过这种方式,实现了一键对应多个字符的输出,