Usei IA para me ajudar a aprender Keyman e resultou nisso:
c My Fantasy Script Keyboard
store(&VERSION) '1.0'
store(&NAME) 'My Fantasy Script'
store(&BITMAP) 'fntsy.ico'
store(&LAYOUTFILE) 'fntsy.kmn'
store(&TARGETS) 'windows macosx linux web'
begin Unicode > use(main)
group(main) using keys
+ '0' > U+00A1 c Mapping for the '0' key
+ '1' > U+00A6 c Mapping for the '1' key
+ '2' > U+00A2 c Mapping for the '2' key
+ '3' > U+00A3 c Mapping for the '3' key
+ '4' > U+00A5 c Mapping for the '4' key
+ '5' > U+00A4 c Mapping for the '5' key
+ '6' > U+00A9 c Mapping for the '6' key
+ '7' > U+00A7 c Mapping for the '7' key
+ '8' > U+00AB c Mapping for the '8' key
+ '9' > U+00AE c Mapping for the '9' key
O que estou fazendo de errado?
Por que obtenho esta saída ao executar este comando (instalando @keymanapp/kmc )?
$ kmc build --color --debug fntsy.kmn
fntsy.kmn - info KM05002: Building fntsy.kmn
fntsy.kmn:2 - warn KM02081: The keyboard file is an old version
fntsy.kmn:2 - error KM0200D: Invalid 'version' command
fntsy.kmn - info KM05007: fntsy.kmn failed to build.
Como faço para corrigir isso? Essa documentação é muito difícil de seguir e encontrar soluções, então provavelmente estou usando a versão errada do formato de arquivo (embora não tenha conseguido encontrar a correta ou o que há de errado com a minha), e a versão inválida está me confundindo também.
Atualizar:
Alterar a versão para fazer referência à versão de Keymans (não à versão do meu idioma) parece superar isso:
store(&VERSION) '17.0'
Mas agora recebo uma série destes avisos:
fntsy.kmn:11 - warn KM02084: There are too many characters in the keystroke part of the rule.
fntsy.kmn:12 - warn KM02084: There are too many characters in the keystroke part of the rule.
Eu tenho regras como essa, o que há de errado?
group(main) using keys
+ 'I$&--@_^' [K_TAB] > 'I%9440005' c Mapping for the 'I$&--@_^' key, the vowel i with stress, lengthening, tense, stress, nasalization and extra low tone
+ 'I$&-@_^' [K_TAB] > 'I%940005' c Mapping for the 'I$&-@_^' key, the vowel i with stress, lengthening, tense, stress, nasalization and low tone
+ 'I$&++@_^' [K_TAB] > 'I%9330005' c Mapping for the 'I$&++@_^' key, the vowel i with stress, lengthening, tense, stress, nasalization and extra high tone
+ 'I$&+@_^' [K_TAB] > 'I%930005' c Mapping for the 'I$&+@_^' key, the vowel i with stress, lengthening, tense, stress, nasalization and high tone
A loja(&VERSION) '1.0' refere-se à versão da linguagem Keyman. Deixe isso de fora e o compilador irá (quase sempre) descobrir.
Se você quiser dar uma versão ao seu teclado, use store(&KEYBOARDVERSION) '1.0'
As regras do teclado são escritas com um contexto (opcional), um sinal “+”, um único toque de tecla, um “>” e os caracteres ou ações resultantes. Os caracteres de saída são caracteres Unicode: 'a' ou "a" ou U+0061 são formas equivalentes. Não está claro para mim quais teclas e caracteres você está tentando usar em suas regras