Skip to content

Configuration

The keyboard.toml file

The keyboard file controls the capabileties of your keyboard.
There are two places where this file can be placed.

  • keyboards/my_keyboard.toml:
    for keyboards published in the repository
  • user/keyboard.toml:
    Your own independent configuration

If you compile with an predefined configuration keyboards/.., but also provide a user configuration,
their contents will be merged.
You can also use this to adjust official configurations to your taste.

Keyboard

These are the general device informations used for usb or bluetooth.

toml
# keyboard.toml

# keyboard device definition
[keyboard] 
# your product id
# can be left at 0 for non commercial products
product_id = 0x0000
# your vendor id
# can be left at 0 for non commercial products
vendor_id = 0x0000
# The keyboards name
name = "My Keyboard"
# the keyboards manufacturer
manufacturer = "orbit Inc."
# What mcu/chip the keyboard is using 
chip = "stm32f303cb"

INFO

A list of chips can be found here.

Settings

toml
# keyboard.toml
# keyboard settings
[settings]  
# language specific keycodes 
keycodes = "german"
# key debounce time frame in ms
debounce_time = 10
# default time for the hold behavior to activate in ms
hold_time = 180
# default time in between taps in ms
tapping_term = 220

Behaviors

This controls wich behaviors are enabled for your keyboard.

toml
# keyboard.toml
# which behaviors are active
[behaviors]   
press = true
hold = true

Actions

This controls wich actions are enabled for your keyboard.

toml
# keyboard.toml
# which actions are active
[actions]  
layers = true
mouse = true

Flavors

This controls wich flavors are enabled for your keyboard.

toml
# keyboard.toml
# which actions are active
[flavors]  
space_cadet = true

Matrix

toml
# keyboard.toml
# if the keyboard uses a matrix
# NOTE: cant be defined together with [multiplexers]
[matrix]  
# default false
analogue_read = true
row_count = 3
col_count = 12
row_pins = ["PA0", "PA1", "PA2"]  
col_pins = ["PA3", "PA4", "PA5", "PA6", "PA8", "PA9", "PA10", "PA15", "PB0", "PB1", "PB2", "PB10"]  
layout = [  
  [0,9], [0,1], [0,3], [0,4], [1,0], [1,1], [1,2], [1,5], [2,0], [2,1], [2,2], [2,4],   
  [0,8], [0,2], [0,5], [1,9], [1,8], [1,3], [1,4], [2,9], [2,8], [2,3], [0,6],   
  [0,7], [0,0], [1,5], [1,4], [1,3], [1,0], [2,6], [2,5], [2,3], [2,0], [0,3],   
  [0,2], [0,1], [0,1], [1,2], [1,1], [2,4], [2,2], [2,1],   
]   

Multiplexers

toml
# keyboard.toml
# if the keyboard uses multiplexers
# NOTE: cant be defined together with [matrix]
[multiplexers]  
 # default false
analogue_read = true
count = 3
channels = 16
sel_pins = ["PB3", "PB4", "PB6", "PB5"]  
com_pins = ["PA13", "PA10", "PA9"]  
layout = [  
  [0,9], [0,1], [0,3], [0,4], [1,0], [1,1], [1,2], [1,5], [2,0], [2,1], [2,2], [2,4],   
  [0,8], [0,2], [0,5], [1,9], [1,8], [1,3], [1,4], [2,9], [2,8], [2,3], [0,6],   
  [0,7], [0,0], [1,5], [1,4], [1,3], [1,0], [2,6], [2,5], [2,3], [2,0], [0,3],   
  [0,2], [0,1], [0,1], [1,2], [1,1], [2,4], [2,2], [2,1],   
]   

Lighting

toml
# keyboard.toml

[lighting]   
driver = "wsqwe456"
per_key_rgb = "PA7"
underglow  = ["PA8"] 

Serial Wire Debug

toml
# keyboard.toml
# serial wire debug pin configuration
[swd]  
swo = "PB2"
swclk = "PA14"
swdio = "PA15"