port boards and docs

This commit is contained in:
Kyle Brown
2020-11-13 16:10:14 -08:00
parent 33e969230f
commit f94734c28d
32 changed files with 220 additions and 226 deletions

View File

@@ -1,6 +1,6 @@
from kb import KMKKeyboard
from kmk.extensions.layers import Layers
from kmk.keys import KC
from kmk.modules.layers import Layers
keyboard = KMKKeyboard()
@@ -8,10 +8,10 @@ keyboard = KMKKeyboard()
_______ = KC.TRNS
XXXXXXX = KC.NO
RAISE = KC.MO(1)
layers_ext = Layers()
keyboard.modules = [layers_ext]
keyboard.extensions = [layers_ext]
RAISE = KC.MO(1)
keyboard.keymap = [
[ #Base

View File

@@ -1,10 +1,16 @@
from kb import KMKKeyboard
from kmk.extensions.layers import Layers
from kmk.extensions.media_keys import MediaKeys
from kmk.keys import KC
from kmk.modules.layers import Layers
keyboard = KMKKeyboard()
media = MediaKeys()
layers_ext = Layers()
keyboard.extensions = [media]
keyboard.modules = [layers_ext]
# Cleaner key names
_______ = KC.TRNS
XXXXXXX = KC.NO
@@ -12,11 +18,6 @@ XXXXXXX = KC.NO
LOWER = KC.MO(1)
RAISE = KC.MO(2)
media = MediaKeys()
layers_ext = Layers()
keyboard.extensions = [layers_ext, media]
keyboard.keymap = [
[ #QWERTY
KC.TAB, KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P, KC.BSPC,

View File

@@ -1,10 +1,16 @@
from kb import KMKKeyboard
from kmk.extensions.layers import Layers
from kmk.extensions.media_keys import MediaKeys
from kmk.keys import KC
from kmk.modules.layers import Layers
keyboard = KMKKeyboard()
media = MediaKeys()
layers_ext = Layers()
keyboard.modules = [layers_ext]
keyboard.extensions = [media]
# Cleaner key names
_______ = KC.TRNS
XXXXXXX = KC.NO
@@ -12,11 +18,6 @@ XXXXXXX = KC.NO
LOWER = KC.MO(1)
RAISE = KC.MO(2)
media = MediaKeys()
layers_ext = Layers()
extensions = [layers_ext, media]
keyboard.keymap = [
[ #QWERTY
KC.GRV, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.BSPC,

View File

@@ -1,10 +1,19 @@
from kb import KMKKeyboard
from kmk.extensions.ble_split import BLE_Split
from kmk.extensions.layers import Layers
from kmk.keys import KC
from kmk.modules.layers import Layers
from kmk.modules.split import Split, SplitSide, SplitType
keyboard = KMKKeyboard()
# TODO Comment one of these on each side
split_side = SplitSide.LEFT
split_side = SplitSide.RIGHT
split = Split(split_type=SplitType.BLE, split_side=split_side)
layers_ext = Layers()
keyboard.modules = [layers_ext, split]
# Cleaner key names
_______ = KC.TRNS
XXXXXXX = KC.NO
@@ -20,16 +29,6 @@ RGB_SAD = KC.RGB_SAD
RGB_VAI = KC.RGB_VAI
RGB_VAD = KC.RGB_VAD
# TODO Comment one of these on each side
# Left is 0, Right is 1
split_side = 0
split_side = 1
split = BLE_Split(split_side=split_side)
layers_ext = Layers()
keyboard.extensions = [layers_ext, split]
keyboard.keymap = [
[ #QWERTY
KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P,\

View File

@@ -2,14 +2,17 @@ from kb import KMKKeyboard, rgb_pixel_pin
from kmk.extensions.rgb import RGB
from kmk.keys import KC
from kmk.modules.layers import Layers
from kmk.modules.split import Split, SplitType
from kmk.modules.split import Split, SplitSide, SplitType
keyboard = KMKKeyboard()
# Adding extentions
rgb = RGB(pixel_pin=rgb_pixel_pin, num_pixels=27, val_limit=100, hue_default=190, sat_default=100, val_default=5)
split = Split(split_type=SplitType.BLE)
# TODO Comment one of these on each side
split_side = SplitSide.LEFT
split_side = SplitSide.RIGHT
split = Split(split_type=SplitType.BLE, split_side=split_side)
layers_ext = Layers()

View File

@@ -1,11 +1,21 @@
from kb import KMKKeyboard
from kmk.extensions.ble_split import BLE_Split
from kmk.extensions.layers import Layers
from kmk.extensions.media_keys import MediaKeys
from kmk.keys import KC
from kmk.modules.layers import Layers
from kmk.modulessplit import Split, SplitSide, SplitType
keyboard = KMKKeyboard()
# TODO Comment one of these on each side
split_side = SplitSide.LEFT
split_side = SplitSide.RIGHT
split = Split(split_type=SplitType.BLE, split_side=split_side)
media = MediaKeys()
layers_ext = Layers()
keyboard.modules = [layers_ext, split]
keyboard.extensions = (media)
# Cleaner key names
_______ = KC.TRNS
XXXXXXX = KC.NO
@@ -17,17 +27,6 @@ ADJUST = KC.MO(3)
CALTDEL = KC.LCTL(KC.LALT(KC.DEL))
TSKMGR = KC.LCTL(KC.LSFT(KC.KC_ESC))
# TODO Comment one of these on each side
# Left is 0, Right is 1
split_side = 0
split_side = 1
split = BLE_Split(split_side=split_side)
media = MediaKeys()
layers_ext = Layers()
extensions = [layers_ext, media]
keyboard.keymap = [
[ #QWERTY
KC.ESC, KC.Q, KC.W, KC.E, KC.R, KC.T, KC.MINS, KC.EQL, KC.Y, KC.U, KC.I, KC.O, KC.P, KC.BSPC,\

View File

@@ -1,11 +1,18 @@
from kb import KMKKeyboard
from kmk.extensions.layers import Layers
from kmk.extensions.led import LED
from kmk.extensions.modtap import ModTap
from kmk.keys import KC
from kmk.modules.layers import Layers
from kmk.modules.modtap import ModTap
keyboard = KMKKeyboard()
modtap = ModTap()
layers_ext = Layers()
led = LED()
keyboard.extensions = [led]
keyboard.modules = [layers_ext, modtap]
# Cleaner key names
_______ = KC.TRNS
XXXXXXX = KC.NO
@@ -23,11 +30,6 @@ SFT_ENT = KC.SFT(KC.ENT)
BL_DEC = KC.BL_DEC
BL_INC = KC.BL_INC
modtap = ModTap()
layers_ext = Layers()
led = LED()
keyboard.extensions = [layers_ext, led, modtap]
keyboard.keymap = [
[
KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P,

View File

@@ -1,8 +1,8 @@
from kb import KMKKeyboard
from kmk.extensions.layers import Layers
from kmk.extensions.led import LED
from kmk.extensions.rgb import RGB
from kmk.keys import KC
from kmk.modules.layers import Layers
keyboard = KMKKeyboard()
@@ -12,7 +12,8 @@ XXXXXXX = KC.NO
rgb_ext = RGB(pixel_pin=keyboard.rgb_pixel_pin, num_pixels=keyboard.rgb_num_pixels)
led = LED()
layers_ext = Layers()
keyboard.extensions = [rgb_ext, led, layers_ext]
keyboard.extensions = [rgb_ext, led]
keyboard.modules = [layers_ext]
BASE = 0
FN1 = 1

View File

@@ -16,8 +16,8 @@ class KMKKeyboard(_KMKKeyboard):
split_flip = True
split_offsets = (6, 6, 6, 6, 6)
split_type = 'UART'
uart_pin = board.SCL
extra_data_pin = board.SDA
data_pin = board.SCL
data_pin2 = board.SDA
rgb_num_pixels = 12
i2c = board.I2C
rgb_pixel_pin = board.TX

View File

@@ -1,11 +1,11 @@
from kb import KMKKeyboard
from kmk.consts import UnicodeMode
from kmk.extensions.ble_split import BLE_Split
from kmk.extensions.layers import Layers
from kmk.extensions.rgb import RGB
from kmk.handlers.sequences import compile_unicode_string_sequences as cuss
from kmk.handlers.sequences import send_string
from kmk.keys import KC
from kmk.modules.layers import Layers
from kmk.modules.split import Split, SplitSide, SplitType
keyboard = KMKKeyboard()
@@ -57,14 +57,14 @@ HELLA_TD = KC.TD(
rgb_ext = RGB(pixel_pin=keyboard.rgb_pixel_pin, num_pixels=keyboard.rgb_num_pixels)
layers_ext = Layers()
#
# TODO Comment one of these on each side
# Left is 0, Right is 1
split_side = 0
split_side = 1
split = BLE_Split(split_side=split_side)
extensions = [rgb_ext, split, layers_ext]
# TODO Comment one of these on each side
split_side = SplitSide.LEFT
split_side = SplitSide.RIGHT
split = Split(split_type=SplitType.BLE, split_side=split_side)
keyboard.extensions = [rgb_ext]
keyboard.modules = [split, layers_ext]
keyboard.keymap = [

View File

@@ -12,7 +12,7 @@ class KMKKeyboard(_KMKKeyboard):
split_type = 'UART'
split_flip = True
split_offsets = [6, 6, 6, 6, 6]
uart_pin = board.SCL
extra_data_pin = board.SDA
data_pin = board.SCL
data_pin2 = board.SDA
rgb_pixel_pin = board.TX
led_pin = board.D7

View File

@@ -1,11 +1,21 @@
from kb import KMKKeyboard
from kmk.extensions.ble_split import BLE_Split
from kmk.extensions.layers import Layers
from kmk.extensions.rgb import RGB
from kmk.keys import KC
from kmk.modules.layers import Layers
from kmk.modules.split import Split, SplitSide, SplitType
keyboard = KMKKeyboard()
rgb_ext = RGB(pixel_pin=keyboard.rgb_pixel_pin, num_pixels=keyboard.rgb_num_pixels)
layers_ext = Layers()
# TODO Comment one of these on each side
split_side = SplitSide.LEFT
split_side = SplitSide.RIGHT
split = Split(split_type=SplitType.BLE, split_side=split_side)
keyboard.extensions = [rgb_ext]
keyboard.modules = [layers_ext, split]
_______ = KC.TRNS
XXXXXXX = KC.NO
@@ -13,17 +23,6 @@ LOWER = KC.MO(3)
RAISE = KC.MO(4)
ADJUST = KC.MO(5)
rgb_ext = RGB(pixel_pin=keyboard.rgb_pixel_pin, num_pixels=keyboard.rgb_num_pixels)
layers_ext = Layers()
#
# TODO Comment one of these on each side
# Left is 0, Right is 1
split_side = 0
split_side = 1
split = BLE_Split(split_side=split_side)
keyboard.extensions = [rgb_ext, layers_ext, split]
keyboard.keymap = [
# Qwerty
# ,-----------------------------------------------------------------------------------.

View File

@@ -11,7 +11,7 @@ class KMKKeyboard(_KMKKeyboard):
split_type = 'UART'
split_flip = True
uart_pin = board.SCL
data_pin = board.SCL
rgb_num_pixels = 12
rgb_pixel_pin = board.TX
extra_data_pin = board.SDA
data_pin2 = board.SDA

View File

@@ -1,11 +1,22 @@
from kb import KMKKeyboard
from kmk.extensions.ble_split import BLE_Split
from kmk.extensions.layers import Layers
from kmk.extensions.rgb import RGB
from kmk.keys import KC
from kmk.modules.layers import Layers
from kmk.modules.split import Split, SplitSide, SplitType
keyboard = KMKKeyboard()
rgb_ext = RGB(pixel_pin=keyboard.rgb_pixel_pin, num_pixels=keyboard.rgb_num_pixels)
layers_ext = Layers()
# TODO Comment one of these on each side
split_side = SplitSide.LEFT
split_side = SplitSide.RIGHT
split = Split(split_type=SplitType.BLE, split_side=split_side)
keyboard.modules = [layers_ext, split]
keyboard.extensions = [rgb_ext]
_______ = KC.TRNS
XXXXXXX = KC.NO
@@ -13,17 +24,6 @@ LOWER = KC.MO(3)
RAISE = KC.MO(4)
ADJUST = KC.MO(5)
rgb_ext = RGB(pixel_pin=keyboard.rgb_pixel_pin, num_pixels=keyboard.rgb_num_pixels)
layers_ext = Layers()
#
# TODO Comment one of these on each side
# Left is 0, Right is 1
split_side = 0
split_side = 1
split = BLE_Split(split_side=split_side)
keyboard.extensions = [rgb_ext, layers_ext, split]
keyboard.keymap = [
# Qwerty
# ,-----------------------------------------------------------------------------------.

View File

@@ -1,9 +1,9 @@
import board
from kmk.extensions.layers import Layers
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.matrix import DiodeOrientation
from kmk.matrix import intify_coordinate as ic
from kmk.modules.layers import Layers
# Implements what used to be handled by KMKKeyboard.swap_indicies for this
# board, by flipping various row3 (bottom physical row) keys so their
@@ -43,4 +43,4 @@ class KMKKeyboard(_KMKKeyboard):
coord_mapping.extend(ic(3, r3_swap(x)) for x in range(12))
layers_ext = Layers()
extensions = [layers_ext]
modules = [layers_ext]

View File

@@ -1,25 +1,26 @@
from kb import KMKKeyboard
from kmk.extensions.layers import Layers
from kmk.extensions.modtap import ModTap
from kmk.extensions.rgb import RGB
from kmk.keys import KC
from kmk.modules.layers import Layers
from kmk.modules.modtap import ModTap
keyboard = KMKKeyboard()
# Cleaner key names
_______ = KC.TRNS
XXXXXXX = KC.NO
LOWER = KC.MO(1)
RAISE = KC.MO(2)
# Adding extentions
rgb = RGB(pixel_pin=keyboard.rgb_pixel_pin, num_pixels=keyboard.rgb_num_pixels, val_limit=100, hue_default=190, sat_default=100, val_default=5)
modtap = ModTap()
layers_ext = Layers()
keyboard.extensions = [layers_ext, modtap, rgb]
keyboard.modules = [layers_ext, modtap]
keyboard.extensions = [rgb]
# Cleaner key names
_______ = KC.TRNS
XXXXXXX = KC.NO
LOWER = KC.MO(1)
RAISE = KC.MO(2)
keyboard.keymap = [
[ #QWERTY

View File

@@ -1,11 +1,20 @@
from kb import KMKKeyboard
from kmk.extensions.layers import Layers
from kmk.extensions.modtap import ModTap
from kmk.extensions.rgb import RGB
from kmk.keys import KC
from kmk.modules.layers import Layers
from kmk.modules.modtap import ModTap
keyboard = KMKKeyboard()
# Adding extentions
rgb = RGB(pixel_pin=keyboard.rgb_pixel_pin, num_pixels=keyboard.rgb_num_pixels, val_limit=100, hue_default=190, sat_default=100, val_default=5)
modtap = ModTap()
layers_ext = Layers()
keyboard.modules = [layers_ext, modtap]
keyboard.extensions = [rgb]
# Cleaner key names
_______ = KC.TRNS
XXXXXXX = KC.NO
@@ -24,14 +33,6 @@ RGB_SAD = KC.RGB_SAD
RGB_VAI = KC.RGB_VAI
RGB_VAD = KC.RGB_VAD
# Adding extentions
rgb = RGB(pixel_pin=keyboard.rgb_pixel_pin, num_pixels=keyboard.rgb_num_pixels, val_limit=100, hue_default=190, sat_default=100, val_default=5)
modtap = ModTap()
layers_ext = Layers()
keyboard.extensions = [layers_ext, modtap, rgb]
keyboard.keymap = [
[ #QWERTY
KC.TAB, KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P, KC.BSPC,

View File

@@ -1,10 +1,19 @@
from kb import KMKKeyboard
from kmk.extensions.ble_split import BLE_Split
from kmk.extensions.layers import Layers
from kmk.extensions.split import Split, SplitSide, SplitType
from kmk.keys import KC
keyboard = KMKKeyboard()
# TODO Comment one of these on each side
split_side = SplitSide.LEFT
split_side = SplitSide.RIGHT
split = Split(split_type=SplitType.BLE, split_side=split_side)
layers_ext = Layers()
keyboard.extensions = [layers_ext, split]
# Cleaner key names
_______ = KC.TRNS
XXXXXXX = KC.NO
@@ -17,16 +26,6 @@ KC_SLSF = KC.RSFT(KC.SLSH)
KC_11SF = KC.LSFT(KC.F11)
KC_GRSF = KC.RSFT(KC.GRV)
# TODO Comment one of these on each side
# Left is 0, Right is 1
split_side = 0
split_side = 1
split = BLE_Split(split_side=split_side)
layers_ext = Layers()
keyboard.extensions = [layers_ext, split]
keyboard.keymap = [
[ #QWERTY
KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P,

View File

@@ -1,7 +1,7 @@
from kb import KMKKeyboard
from kmk.extensions.layers import Layers
from kmk.extensions.rgb import RGB
from kmk.keys import KC
from kmk.modules.layers import Layers
keyboard = KMKKeyboard()
@@ -14,7 +14,8 @@ rgb = RGB(pixel_pin=keyboard.rgb_pixel_pin, num_pixels=keyboard.rgb_num_pixels,
layers_ext = Layers()
keyboard.extensions = [layers_ext, rgb]
keyboard.modules = [layers_ext]
keyboard.extensions = [rgb]
keyboard.keymap = [
[ #QWERTY

View File

@@ -1,21 +1,14 @@
# Extensions
Extensions allow more features to be added ot KMK such as RGB, power saving and
more. Extensions listed on this page are supported by default on KMK, though
it's possible to add your own!
Extensions add features that change the experience, but not the core features of
the keyboard. They are meant to be easy to add, and create your own. These live in
a sandbox to help prevent any bad code from crashing your keyboard.
## Core extensions
## Core Extensions
These extensions are proveded in all builds and can be enabled. Currently offered
xtensions are
extensions are
- [BLE-Split](split_keyboards.md): Allows keyboards to be split in 2 with no wires
- [International](international.md): Adds international keycodes
- [Layers](layers.md): Adds layer support (Fn key) to allow many more keys to be
put on your keyboard
- [LED](led.md): Adds backlight support. This is for monocolor backlight, not RGB
- [MediaKeys](media_keys.md): Adds support for media keys such as volume
- [ModTap](modtap.md): Adds support for augmented modifier keys to act as one key
when tapped, and modifier when held.
- [Power](power.md): Power saving features. This is mostly useful when on battery power.
- [RGB](rgb.md): RGB lighting for underglow. Will work on most matrix RGB as well
treated the same as underglow.
- [Split](split_keyboards.md): This is for wired splits. Only use wired or wireless, not both.
- [RGB](rgb.md): RGB lighting for underglow. Will work on most matrix RGB as will
be treated the same as underglow.

View File

@@ -1,10 +1,10 @@
# Layers
Layers extention adds keys for accessing other layers. It can simply be added to
Layers module adds keys for accessing other layers. It can simply be added to
the extentions list.
```python
from kmk.extensions.layers import Layers
keyboard.extensions.append(Layers())
from kmk.modules.layers import Layers
keyboard.modules.append(Layers())
```
## Keycodes

View File

@@ -1,10 +1,10 @@
# ModTap Keycodes
Enabling ModTap will give you access to the following keycodes and can simply be
added to the extentions list.
added to the modules list.
```python
from kmk.extensions.modtap import ModTap
keyboard.extensions.append(ModTap())
from kmk.modules.modtap import ModTap
keyboard.modules.append(ModTap())
```
## Keycodes

15
docs/modules.md Normal file
View File

@@ -0,0 +1,15 @@
# Modules
Modules, unlike extensions, change how your keyboard works. These are meant to have
the ability to alter the core code in any way. Unlike extensions, these are not in a
sandbox, and can make massive changes to normal operation.
## Core Modules
These modules are proveded in all builds and can be enabled. Currently offered
modules are
- [Layers](layers.md): Adds layer support (Fn key) to allow many more keys to be
put on your keyboard
- [ModTap](modtap.md): Adds support for augmented modifier keys to act as one key
when tapped, and modifier when held.
- [Power](power.md): Power saving features. This is mostly useful when on battery power.
- [Split](split_keyboards.md): Keyboards split in two. Seems ergonomic!

View File

@@ -1,5 +1,5 @@
# Power(save)
This extention allows you to save power and is targeted to bluetooth/battery
This module allows you to save power and is targeted to bluetooth/battery
based keyboards.
## Keycodes
@@ -12,11 +12,11 @@ based keyboards.
# Enabling the extention
To turn on basic power saving, this is all that is required.
```python
from kmk.extensions.power import Power
from kmk.modules.power import Power
power = Power()
keyboard.extensions.append(power)
keyboard.modules.append(power)
```
@@ -26,14 +26,14 @@ power if OLEDS or RGBs are installed. These drain power even when off, so this
will prevent them from doing so.
```python
from kmk.extensions.power import Power
from kmk.modules.power import Power
# Your kb.py may already have this set. If not, add it like this
# import board
# keyboard.powersave_pin = board.P0_13
power = Power(powersave_pin=keyboard.powersave_pin)
keyboard.extensions.append(power)
keyboard.modules.append(power)
```

View File

@@ -6,60 +6,48 @@ Split keyboards are mostly the same as unsplit. Wired UART and Bluetooth are sup
Wired connections can use UART over 1 or 2 wires. With 2 wires, you will be able
to syncronize the halves allowing additional features in some extentions.
```python
import board
from kmk.extensions.split import Split
from kb import data_pin
:from kmk.modules.split import Split, SplitType
uart_pin = board.SOMETHING
split = Split(uart_pin=uart_pin)
keyboard.extensions.append(split)
split = Split(split_type=Split.UART, data_pin=data_pin, split_side=SplitSide.LEFT)
keyboard.modules.append(split)
```
## Bluetooth split (aka no TRRS)
Wireless splits are fully featured with 2 way communication allowing all extentions to work 100%.
```python
from kb import data_pin
from kmk.modules.split import Split, SplitType, Split_Side
split = Split(split_type=Split.BLE, split_side=SplitSide.LEFT)
OR
split = Split(split_type=Split.BLE, split_side=SplitSide.LEFT)
keyboard.modules.append(split)
```
### Config
Useful config options:
```python
split = Split(
is_target=True, # If this is the side connecting to the computer
extra_data_pin=None, # Second uart pin to allow 2 way communication
split_offset=None, # Default is column pins but allows an override
split_flip=True, # If both halves are the same, but flipped, set this True
split_side=None, # Sets if this is to 0 if left, 1 if right, or use EE hands
split_side=None, # Sets if this is to SplitSide.LEFT or SplitSide.RIGHT, or use EE hands
split_type=SplitType.UART, # Defaults to UART
split_target_left=True, # If you want the right to be the target, change this to false
uart_interval=20, # Sets the uarts delay. Lower numbers draw more power
data_pin=None, # The primary data pin to talk to the secondary device with
data_pin2=None, # Second uart pin to allow 2 way communication
target_left=True, # Assumes that left will be the one on USB. Set to folse if it will be the right
uart_flip=True, # Reverses the RX and TX pins if both are provided
uart_pin=None, # The primary uart pin to talk to the secondary device with
uart_timeout=20, # Rarely needed to change, but is avaliable
)
```
## Bluetooth split (aka no TRRS)
Wireless splits are fully featured with 2 way communication allowing all extentions to work 100%.
```python
split_side = 0 # Left
OR
split_side = 1 # Right
split = BLE_Split(split_side=split_side)
keyboard.extensions.append(split)
```
### Config
Useful config options:
```python
split = BLE_Split(
split_side=split_side, # See EE hands below
uart_interval=30, # Sets the uarts delay. Lower numbers draw more power
hid_type=HIDModes.BLE, # If using USB to connect to a computer, change this appropriately.
)
```
### EE HANDS
If you want to plug USB in on either side, or are using bluetooth, this is for
you. Pick one of the 2 options but not both.
you.
## Renaming CIRCUITPY Drive
The easiest way is to rename your CIRCUITPY drive to something. The left side must
Rename your CIRCUITPY drive to something different. The left side must
end in L, the right must is in R. The name must be 11 characters or less! This is
a limitation of the filesystem. You will receive an error if you choose a name
longer than 11 characters. Instructions on how to do that are
@@ -68,24 +56,6 @@ For example on NYQUISTL for left and NYQUISTR for the right.
For wired connections you are done. For bluetooth, remove the `split_side` like this
```python
split = BLE_Split()
keyboard.extensions.append(split)
split = Split(split_type=Split.UART, data_pin=data_pin)
split = Split(split_type=Split.BLE)
```
## Adding an extra file
If you have changed the name of the drive as stated above, do not follow this section.
On each half of your keyboard make a file called kmk_side.py and add one of these lines to the file
depending on where each piece is physically located.
```python
split_side = 0 # Left
OR
split_side = 1 # Right
```
and then in your keymap, add the line
```python
from kmk_side import split_side
```

View File

@@ -28,10 +28,9 @@ class Split(Module):
self,
split_flip=True,
split_side=None,
split_type=SplitType.BLE,
split_type=SplitType.UART,
split_target_left=True,
uart_interval=20,
hid_type=HIDModes.BLE,
data_pin=None,
data_pin2=None,
target_left=True,
@@ -39,7 +38,6 @@ class Split(Module):
):
self._is_target = True
self._uart_buffer = []
self.hid_type = hid_type
self.split_flip = split_flip
self.split_side = split_side
self.split_type = split_type
@@ -138,7 +136,7 @@ class Split(Module):
def before_matrix_scan(self, keyboard):
if self.split_type == SplitType.BLE:
self._check_all_connections()
self._check_all_connections(keyboard._hid_helper)
self._receive_ble(keyboard)
elif self.split_type == SplitType.UART:
if self._is_target or self.data_pin2:
@@ -176,10 +174,10 @@ class Split(Module):
self._uart_connection.connection_interval = 11.25
self._psave_enable = False
def _check_all_connections(self):
def _check_all_connections(self, hid_type):
'''Validates the correct number of BLE connections'''
self._connection_count = len(self._ble.connections)
if self._is_target and self._connection_count < 2:
if self._is_target and hid_type == HIDModes.BLE and self._connection_count < 2:
self._target_advertise()
elif not self._is_target and self._connection_count < 1:
self._initiator_scan()

View File

@@ -3,11 +3,11 @@ import busio
from digitalio import DigitalInOut, Direction, Pull
from adafruit_mcp230xx.mcp23017 import MCP23017
from kmk.extensions.layers import Layers
from kmk.hid import HIDModes
from kmk.keys import KC
from kmk.kmk_keyboard import KMKKeyboard
from kmk.matrix import DiodeOrientation
from kmk.modules.layers import Layers
# DEBUG_ENABLE = True
@@ -15,7 +15,7 @@ i2c = busio.I2C(scl=board.SCL, sda=board.SDA, frequency=100000)
mcp = MCP23017(i2c, address=0x20)
keyboard = KMKKeyboard()
layer_ext = Layers
keyboard.extensions = [layer_ext]
keyboard.modules = [layer_ext]
_______ = KC.TRNS
XXXXXXX = KC.NO

View File

@@ -1,8 +1,8 @@
from kb import KMKKeyboard
from kmk.extensions.layers import Layers
from kmk.extensions.modtap import ModTap
from kmk.extensions.rgb import RGB
from kmk.keys import KC
from kmk.modules.layers import Layers
from kmk.modules.modtap import ModTap
keyboard = KMKKeyboard()
@@ -23,7 +23,8 @@ rgb_ext = RGB(pixel_pin=keyboard.rgb_pixel_pin, num_pixels=keyboard.rgb_num_pixe
layers_ext = Layers()
modtap = ModTap()
keyboard.extensions = [rgb_ext, layers_ext, modtap]
keyboard.modules = [layers_ext, modtap]
keyboard.extensions = [rgb_ext]
_______ = KC.TRNS
XXXXXXX = KC.NO

View File

@@ -1,11 +1,11 @@
import board
from kb import KMKKeyboard
from kmk.extensions.layers import Layers
from kmk.extensions.modtap import ModTap
from kmk.extensions.rgb import RGB
from kmk.handlers.sequences import send_string, simple_key_sequence
from kmk.keys import KC
from kmk.modules.layers import Layers
from kmk.modules.modtap import ModTap
keyboard = KMKKeyboard()
@@ -16,7 +16,8 @@ layers = Layers()
modtap = ModTap()
rgb_ext = RGB(pixel_pin=keyboard.rgb_pixel_pin, num_pixels=27, val_limit=100, hue_default=190, sat_default=100, val_default=5)
keyboard.extensions = [modtap, layers, rgb_ext]
keyboard.modules = [modtap, layers]
keyboard.extensions = [rgb_ext]
_______ = KC.TRNS
XXXXXXX = KC.NO

View File

@@ -1,12 +1,15 @@
from kb import KMKKeyboard
from kmk.consts import UnicodeMode
from kmk.extensions.layers import Layers
from kmk.handlers.sequences import compile_unicode_string_sequences as cuss
from kmk.handlers.sequences import send_string
from kmk.keys import KC
from kmk.modules.layers import Layers
from kmk.modules.split import Split, SplitType
keyboard = KMKKeyboard()
layers_ext = Layers()
split = Split(split_type=SplitType.UART)
keyboard.modules = [layers_ext, split]
keyboard.debug_enabled = False
keyboard.unicode_mode = UnicodeMode.LINUX
@@ -54,7 +57,6 @@ HELLA_TD = KC.TD(
KC.TG(1),
)
keyboard.extentions = [layers_ext]
keyboard.keymap = [
[

View File

@@ -3,8 +3,11 @@ from kmk.consts import UnicodeMode
from kmk.handlers.sequences import compile_unicode_string_sequences as cuss
from kmk.handlers.sequences import send_string
from kmk.keys import KC, make_key
from kmk.modules.layers import Layers
keyboard = KMKKeyboard()
layers_ext = Layers()
keyboard.modules = [layers_ext]
keyboard.debug_enabled = False
keyboard.unicode_mode = UnicodeMode.LINUX

View File

@@ -1,15 +1,19 @@
from kb import KMKKeyboard
from kmk.consts import UnicodeMode
from kmk.extensions.layers import Layers
from kmk.extensions.media_keys import MediaKeys
from kmk.extensions.rgb import RGB
from kmk.handlers.sequences import compile_unicode_string_sequences
from kmk.keys import KC
from kmk.modules.layers import Layers
from kmk.modules.media_keys import MediaKeys
from kmk.modules.split import Split, SplitType
keyboard = KMKKeyboard()
layers = Layers()
media_keys = MediaKeys()
split = Split(split_type=SplitType.UART)
rgb_ext = RGB(pixel_pin=keyboard.rgb_pixel_pin, num_pixels=16, val_limit=150, hue_default=0, sat_default=100, val_default=20)
keyboard.modules = [layers, media_keys, split]
keyboard.extensions = [rgb_ext]
# ------------------User level config variables ---------------------------------------