理解kcm檔案的意義
# keycode display number base caps fn caps_fn</p><p>A 'A' '2' 'a' 'A' '#' 0x00<br />B 'B' '2' 'b' 'B' '<' 0x00<br />C 'C' '2' 'c' 'C' '9' 0x00E7<br />D 'D' '3' 'd' 'D' '5' 0x00<br />E 'E' '3' 'e' 'E' '2' 0x0301<br />F 'F' '3' 'f' 'F' '6' 0x00A5<br />G 'G' '4' 'g' 'G' '-' '_'<br />H 'H' '4' 'h' 'H' '[' '{'<br />I 'I' '4' 'i' 'I' '$' 0x0302<br />J 'J' '5' 'j' 'J' ']' '}'<br />K 'K' '5' 'k' 'K' '"' '~'<br />L 'L' '5' 'l' 'L' ''' '`'<br />M 'M' '6' 'm' 'M' '!' 0x00<br />N 'N' '6' 'n' 'N' '>' 0x0303<br />O 'O' '6' 'o' 'O' '(' 0x00<br />P 'P' '7' 'p' 'P' ')' 0x00<br />Q 'Q' '7' 'q' 'Q' '*' 0x0300<br />R 'R' '7' 'r' 'R' '3' 0x20AC<br />S 'S' '7' 's' 'S' '4' 0x00DF<br />T 'T' '8' 't' 'T' '+' 0x00A3<br />U 'U' '8' 'u' 'U' '&' 0x0308<br />V 'V' '8' 'v' 'V' '=' '^'<br />W 'W' '9' 'w' 'W' '1' 0x00<br />X 'X' '9' 'x' 'X' '8' 0xEF00<br />Y 'Y' '9' 'y' 'Y' '%' 0x00A1<br />Z 'Z' '9' 'z' 'Z' '7' 0x00</p><p>
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;
通過這種方式,實現了一鍵對應多個字元的輸出,