kmk_firmware/docs/ptBR/config_and_keymap.md

86 lines
3.6 KiB
Markdown
Raw Normal View History

# 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 drive `CIRCUITPY`. Você
também pode manter este arquivo em seu computador (possivelmente dentro de
`user_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](https://github.com/KMKfw/kmk_firmware/blob/master/docs/flashing.md)).
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.
2022-04-29 20:21:16 +02:00
- 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
2022-04-29 20:21:16 +02:00
fim do arquivo usando um bloco como este:
```python
if __name__ == '__main__':
keyboard.go()
```
- Atribuir os pinos e a orientação do diodo (necessário apenas em teclados
artesanais), por exemplo:
```python
import board
2022-04-09 02:09:24 +02:00
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:
```python
import board
print(dir(board))
```
> Note: `rollover_cols_every_rows` só é suportado com
> `DiodeOrientation.COLUMNS`/`DiodeOrientation.COL2ROW`, não `DiodeOrientation.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 com `board`, ou simplesmente olhar na
nossa
[documentação](https://github.com/KMKfw/kmk_firmware/blob/master/docs/keycodes.md).
Tentamos manter a lista razoavelmente atualizada, mas se tiver algo faltando,
você pode ter que ler o arquivo-fonte `kmk/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:
```python
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 tempo `KC.TT` e `KC.LT` vão esperar
antes de condiderar uma tecla "segurada" (veja `layers.md`).