3.5 KiB
Configurando KMK
KMK é configurado mediante uma enorme classe Python da velha guarda chamada
KMKKeyboard
. Existem subclasses desta configuração que já vem com padrões
previamente preenchidos para diversos teclados conhecidos (por exemple, muitos
teclados QMK, TMK ou ZMK são suportados com um nice!nano, ou mediante nosso
adaptador de pinagem ItsyBitsy-para-ProMicro). Esta classe é a interface
principal entre usuários finais e os funcionamentos internos do KMK. Vamos
mergulhar!
-
Edite ou crie um arquivo chamado
main.py
em nosso driveCIRCUITPY
. Você também pode manter este arquivo em seu computador (possivelmente dentro deuser_keymaps
- sinta-se livre para submeter um PR com suas definições de layout!) e copie-o (seja manualmente, ou se você é adepto de ferramentas de desenvolvimento e linha de comando, usando nosso Makefile). Definitivamente é recomendado que você mantenha uma cópia extra de segurança em algum lugar que não o micro-controlador - chips pifam, Circuitpython pode ter problemas de corrupção. ou você pode estar em um dia ruim e apagar o arquivo errado. -
Atribuir uma instância
KMKKeyboard
a uma variável, por exemplo,keyboard = KMKKeyboard()
(note os parênteses). -
Certificar-se quie esta instância de
KMKKeyboard
é realmente executada ao fim do arquivo usando um bloco como este:
if __name__ == '__main__':
keyboard.go()
- Atribuir os pinos e a orientação do diodo (necessário apenas em teclados artesanais), por exemplo:
import board
from kmk.scanners import DiodeOrientation
col_pins = (board.SCK, board.MOSI, board.MISO, board.RX, board.TX, board.D4)
row_pins = (board.D10, board.D11, board.D12, board.D13, board.D9, board.D6, board.D5, board.SCL)
rollover_cols_every_rows = 4
diode_orientation = DiodeOrientation.COL2ROW
Os pinos devem ser baseados naquilo que o CircuitPython chama de pinos na sua placa particular. Você pode encontrá-los na REPL do seu dispositivo CircuitPython:
import board
print(dir(board))
Note:
rollover_cols_every_rows
só é suportado comDiodeOrientation.COLUMNS
/DiodeOrientation.COL2ROW
, nãoDiodeOrientation.ROWS
/DiodeOrientation.ROW2COL
. Este é usado em placas como a Planck Rev6 que reusa pinos de coluna para simular uma matriz 4x12 na forma de uma matriz 8x6.
-
Importe a lista global de definições com
from kmk.keys import KC
. Você pode ou exibi-la no REPL como fizemos acima comboard
, ou simplesmente olhar na nossa documentação. Tentamos manter a lista razoavelmente atualizada, mas se tiver algo faltando, você pode ter que ler o arquivo-fontekmk/keys.py
(e daí abrir um ticket para nos avisar que os documentos estão desatualizados, ou mesmo abrir um PR ajustando os documentos!) -
Definir um keymap, que é, em termos Python, uma lista de listas de objetos
Key
. Um keymap bem simples, para um teclado com apenas duas teclas físicas em apenas uma camada, teria essa aparência:
keyboard.keymap = [[KC.A, KC.B]]
Você pode definir um monte de outras coisas
-
keyboard.debug_enabled
que vai atirar um monte de informação de depuração para o console serial. Raramente isso é necessário, mas pode fornecer informação verdadeiramente valiosa se você precisa abrir um ticket. -
keyboard.tap_time
que define quanto tempoKC.TT
eKC.LT
vão esperar antes de condiderar uma tecla "segurada" (vejalayers.md
).