diff --git a/boards/boardsource/3x4/README.md b/boards/boardsource/3x4/README.md new file mode 100644 index 0000000..f7ff40c --- /dev/null +++ b/boards/boardsource/3x4/README.md @@ -0,0 +1,13 @@ +# Boardsource 3x4 + +![Boardsource3x4](https://boardsource.imgix.net/30171267-d988-46cc-ba03-9f6a8ab96487.jpg?raw=true) + +This macro pad / small 12 key was inspired by the plaid look + +kb.py is designed to work with the nice!nano + +Retailers (USA) +[Boardsource](https://boardsource.xyz/store/5ecc2008eee64242946c98c1) + +Extentions enabled by default +- [Layers](https://github.com/KMKfw/kmk_firmware/tree/master/docs/layers.md) Need more keys than switches? Use layers. diff --git a/boards/boardsource/3x4/kb.py b/boards/boardsource/3x4/kb.py new file mode 100644 index 0000000..2bac698 --- /dev/null +++ b/boards/boardsource/3x4/kb.py @@ -0,0 +1,12 @@ +import board + +from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard +from kmk.matrix import DiodeOrientation + + +class KMKKeyboard(_KMKKeyboard): + row_pins = (board.P1_15, board.P0_02, board.P0_29) + col_pins = (board.P0_09, board.P0_10, board.P1_11, board.P1_13) + diode_orientation = DiodeOrientation.COLUMNS + i2c = board.I2C + powersave_pin = board.P0_13 diff --git a/boards/boardsource/3x4/main.py b/boards/boardsource/3x4/main.py new file mode 100644 index 0000000..46e2f0e --- /dev/null +++ b/boards/boardsource/3x4/main.py @@ -0,0 +1,30 @@ +from kb import KMKKeyboard +from kmk.extensions.layers import Layers +from kmk.keys import KC + +keyboard = KMKKeyboard() + +# Cleaner key names +_______ = KC.TRNS +XXXXXXX = KC.NO + +RAISE = KC.MO(1) +layers_ext = Layers() + +keyboard.extensions = [layers_ext] + +keyboard.keymap = [ + [ #Base + KC.N0, KC.N1, KC.N4, KC.N7, + KC.ENT, KC.N2, KC.N5, KC.N8, + RAISE, KC.N3, KC.N6, KC.N9 + ], + [ #RAISE + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ] +] + +if __name__ == '__main__': + keyboard.go() diff --git a/boards/boardsource/4x12/README.md b/boards/boardsource/4x12/README.md new file mode 100644 index 0000000..35cef12 --- /dev/null +++ b/boards/boardsource/4x12/README.md @@ -0,0 +1,21 @@ +# Boardsource 4x12 Ortho + +![Boardsource4x12](https://boardsource.imgix.net/164c3388-5057-46c8-8fcd-82c58c7870ce.jpg?raw=true) +![Boardsource4x12LP](https://boardsource.imgix.net/c2108ea4-7d70-4327-b4b4-88c8191b1369.jpg?raw=true) + +The 4x12 ortholinear keyboard is an extremely common and beloved layout within the keyboard community. Made popular by Jack's Planck from OLKB, the 4x12 ortholinear layout is possibly the most popular non-stagger layout available. + +kb.py is designed to work with the nice!nano + +Retailers (USA) +4x12 +[Boardsource](https://boardsource.xyz/store/5ecb78d286879c9a0c22dafd ) +Low profile 4x12 +[Boardsource](https://boardsource.xyz/store/5ecb7dad86879c9a0c22db32) + +Extentions enabled by default +- [Layers](https://github.com/KMKfw/kmk_firmware/tree/master/docs/layers.md) Need more keys than switches? Use layers. +- [MediaKeys](https://github.com/KMKfw/kmk_firmware/tree/master/docs/media_keys.md) Control volume and other media functions + +Common Extentions +- [Power](https://github.com/KMKfw/kmk_firmware/tree/master/docs/power.md) Powersaving features for battery life diff --git a/boards/boardsource/4x12/kb.py b/boards/boardsource/4x12/kb.py new file mode 100644 index 0000000..0a2a97e --- /dev/null +++ b/boards/boardsource/4x12/kb.py @@ -0,0 +1,25 @@ +import board + +from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard +from kmk.matrix import DiodeOrientation + + +class KMKKeyboard(_KMKKeyboard): + row_pins = (board.P0_08, board.P0_06, board.P0_17, board.P0_20) + col_pins = ( + board.P0_31, + board.P0_29, + board.P0_02, + board.P1_15, + board.P1_13, + board.P1_11, + board.P0_10, + board.P0_09, + board.P1_06, + board.P1_04, + board.P0_11, + board.P1_00, + ) + diode_orientation = DiodeOrientation.COLUMNS + i2c = board.I2C + powersave_pin = board.P0_13 diff --git a/boards/boardsource/4x12/main.py b/boards/boardsource/4x12/main.py new file mode 100644 index 0000000..cb18ea4 --- /dev/null +++ b/boards/boardsource/4x12/main.py @@ -0,0 +1,42 @@ +from kb import KMKKeyboard +from kmk.extensions.layers import Layers +from kmk.extensions.media_keys import MediaKeys +from kmk.keys import KC + +keyboard = KMKKeyboard() + +# Cleaner key names +_______ = KC.TRNS +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, + KC.ESC, KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.SCLN, KC.QUOT, + KC.LSFT, KC.Z, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH, KC.ENT , + KC.PIPE, KC.LCTL, KC.LALT, KC.LGUI, LOWER, KC.SPC, KC.SPC, RAISE, KC.LEFT, KC.DOWN, KC.UP, KC.RGHT + ], + [ #LOWER + KC.GRV, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.BSPC, + KC.DEL, KC.F1, KC.F2, KC.F3, KC.F4, KC.F5, KC.F6, KC.MINS, KC.EQL, KC.LBRC, KC.RBRC, KC.BSLS, + _______, KC.F7, KC.F8, KC.F9, KC.F10, KC.F11, KC.F12, KC.NUHS, KC.NUBS, KC.PGUP, KC.PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC.MNXT, KC.VOLD, KC.VOLU, KC.MPLY + ], + [ #RAISE + KC.TILD, KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN, KC.BSPC, + KC.DEL, KC.F1, KC.F2, KC.F3, KC.F4, KC.F5, KC.F6, KC.UNDS, KC.PLUS, KC.LCBR, KC.RCBR, KC.PIPE, + _______, KC.F7, KC.F8, KC.F9, KC.F10, KC.F11, KC.F12, _______, _______, KC.HOME, KC.END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC.MNXT, KC.VOLD, KC.VOLU, KC.MPLY + ] +] + +if __name__ == '__main__': + keyboard.go() diff --git a/boards/boardsource/5x12/README.md b/boards/boardsource/5x12/README.md new file mode 100644 index 0000000..7195bcc --- /dev/null +++ b/boards/boardsource/5x12/README.md @@ -0,0 +1,21 @@ +# Boardsource 5x12 Ortho + +![Boardsource5x12](https://boardsource.imgix.net/74abb511-792e-42d9-9f6e-8100c521b2e0.jpg?raw=true) +![Boardsource5x12LP](https://boardsource.imgix.net/57ad3f69-3c88-4ae8-9592-6e4d2f45a58e.jpg?raw=true) + +5x12 ortholinear -- for when just really don't want to give up your number row. The 5x12 ortholinear keyboard is a common ortholinear layout that many people prefer because it includes a number row. Made popular by Jack's Preonic from OLKB, the 5x12 ortholinear layout is a great option for those who want to try ortholinear but feel they aren't ready to make the jump to a 40%. The 5x12 Ortho is an approachable keyboard with hotswap compatibility. + +kb.py is designed to work with the nice!nano + +Retailers (USA) +5x12 +[Boardsource](https://boardsource.xyz/store/5ecb802c86879c9a0c22db61) +Low Profile 5x12 +[Boardsource](https://boardsource.xyz/store/5ecb822386879c9a0c22db84) + +Extentions enabled by default +- [Layers](https://github.com/KMKfw/kmk_firmware/tree/master/docs/layers.md) Need more keys than switches? Use layers. +- [MediaKeys](https://github.com/KMKfw/kmk_firmware/tree/master/docs/media_keys.md) Control volume and other media functions + +Common Extentions +- [Power](https://github.com/KMKfw/kmk_firmware/tree/master/docs/power.md) Powersaving features for battery life diff --git a/boards/boardsource/5x12/kb.py b/boards/boardsource/5x12/kb.py new file mode 100644 index 0000000..fb2bc99 --- /dev/null +++ b/boards/boardsource/5x12/kb.py @@ -0,0 +1,25 @@ +import board + +from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard +from kmk.matrix import DiodeOrientation + + +class KMKKeyboard(_KMKKeyboard): + row_pins = (board.P0_08, board.P0_06, board.P0_17, board.P0_20, board.P0_22) + col_pins = ( + board.P0_31, + board.P0_29, + board.P0_02, + board.P1_15, + board.P1_13, + board.P1_11, + board.P0_10, + board.P0_09, + board.P1_06, + board.P1_04, + board.P0_11, + board.P1_00, + ) + diode_orientation = DiodeOrientation.COLUMNS + i2c = board.I2C + powersave_pin = board.P0_13 diff --git a/boards/boardsource/5x12/main.py b/boards/boardsource/5x12/main.py new file mode 100644 index 0000000..a232cae --- /dev/null +++ b/boards/boardsource/5x12/main.py @@ -0,0 +1,45 @@ +from kb import KMKKeyboard +from kmk.extensions.layers import Layers +from kmk.extensions.media_keys import MediaKeys +from kmk.keys import KC + +keyboard = KMKKeyboard() + +# Cleaner key names +_______ = KC.TRNS +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, + KC.TAB, KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P, KC.DEL, + KC.ESC, KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.SCLN, KC.QUOT, + KC.LSFT, KC.Z, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH, KC.ENT, + KC.PIPE, KC.LCTL, KC.LALT, KC.LGUI, LOWER, KC.SPC, KC.SPC, RAISE, KC.LEFT, KC.DOWN, KC.UP, KC.RGHT + ], + [ #LOWER + KC.ESC, KC.F1, KC.F2, KC.F3, KC.F4, KC.F5, KC.F6, KC.F7, KC.F8, KC.F9, KC.F10, KC.F11, + _______, _______, _______, _______, _______, _______, _______, _______, KC.UP, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC.LEFT, KC.DOWN, KC.RGHT, _______, _______, + KC.CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC.MNXT, KC.VOLD, KC.VOLU, KC.MPLY + ], + [ #RAISE + KC.GRV, KC.F1, KC.F2, KC.F3, KC.F4, KC.F5, KC.F6, KC.F7, KC.F8, KC.F9, KC.F10, KC.F11, + KC.ESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.DEL, + _______, KC.N4, KC.N5, KC.N6, KC.PLUS, KC.F5, KC.F6, KC.MINS, KC.EQL, KC.LBRC, KC.RBRC, _______, + KC.ENT, KC.N7, KC.N8, KC.N9, KC.MINS, KC.F11, KC.F12, KC.NUHS, KC.NUBS, KC.MUTE, _______, KC.BSLS, + _______, _______, _______, _______, _______, _______, _______, _______, KC.MNXT, KC.VOLD, KC.VOLU, KC.MPLY + ] +] + +if __name__ == '__main__': + keyboard.go() diff --git a/boards/boardsource/microdox/README.md b/boards/boardsource/microdox/README.md new file mode 100644 index 0000000..cec0c53 --- /dev/null +++ b/boards/boardsource/microdox/README.md @@ -0,0 +1,19 @@ +# Microdox + +![microdox](https://boardsource.imgix.net/337ae65a-d061-46a4-b119-9916b043c58f.jpg?raw=true) + +The Microdox is is a feature-packed 30% split columnar staggered keyboard. Even though the Microdox is an extremely small keyboard it offers tons of features from larger boards while maintaining a tiny footprint. + +kb.py is designed to work with the nice!nano + +Retailers (USA) +[Boardsource](https://boardsource.xyz/store/5f2e7e4a2902de7151494f92) + +Extentions enabled by default +- [Layers](https://github.com/KMKfw/kmk_firmware/tree/master/docs/layers.md) Need more keys than switches? Use layers. +- [BLE_Split](https://github.com/KMKfw/kmk_firmware/tree/master/docs/split.md) Connects halves without wires +- [ModTap](https://github.com/KMKfw/kmk_firmware/tree/master/docs/modtap.md) Allows mod keys to act as different keys when tapped. + +Common Extentions +- [Split](https://github.com/KMKfw/kmk_firmware/tree/master/docs/split.md) Connects halves using a wire +- [Power](https://github.com/KMKfw/kmk_firmware/tree/master/docs/power.md) Powersaving features for battery life diff --git a/boards/boardsource/microdox/kb.py b/boards/boardsource/microdox/kb.py new file mode 100644 index 0000000..6e1c362 --- /dev/null +++ b/boards/boardsource/microdox/kb.py @@ -0,0 +1,23 @@ +import board + +from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard +from kmk.matrix import DiodeOrientation +from kmk.matrix import intify_coordinate as ic + + +class KMKKeyboard(_KMKKeyboard): + col_pins = (board.P0_31, board.P0_29, board.P0_02, board.P1_15, board.P1_13) + row_pins = (board.P0_10, board.P0_09, board.P1_04, board.P1_06) + diode_orientation = DiodeOrientation.COLUMNS + rgb_pixel_pin = board.P0_06 + rgb_num_pixels = 12 + i2c = board.I2C + powersave_pin = board.P0_13 + + coord_mapping = [] + coord_mapping.extend(ic(0, x) for x in range(10)) + coord_mapping.extend(ic(1, x) for x in range(10)) + coord_mapping.extend(ic(2, x) for x in range(10)) + + # And now, to handle R3, which at this point is down to just six keys + coord_mapping.extend(ic(3, x) for x in range(3, 9)) diff --git a/boards/boardsource/microdox/main.py b/boards/boardsource/microdox/main.py new file mode 100644 index 0000000..1943592 --- /dev/null +++ b/boards/boardsource/microdox/main.py @@ -0,0 +1,55 @@ +from kb import KMKKeyboard +from kmk.extensions.ble_split import BLE_Split +from kmk.extensions.layers import Layers +from kmk.keys import KC + +keyboard = KMKKeyboard() + +# Cleaner key names +_______ = KC.TRNS +XXXXXXX = KC.NO + +LOWER = KC.MO(2) +RAISE = KC.MO(1) + +RGB_TOG = KC.RGB_TOG +RGB_HUI = KC.RGB_HUI +RGB_HUD = KC.RGB_HUI +RGB_SAI = KC.RGB_SAI +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,\ + KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.SCLN,\ + KC.Z, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH,\ + KC.LCTL, LOWER, KC.SPC, KC.BSPC, RAISE, KC.ENT, + ], + [ #RAISE + KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0,\ + KC.TAB, KC.LEFT, KC.DOWN, KC.UP, KC.RGHT, XXXXXXX, KC.MINS, KC.EQL, KC.LBRC, KC.RBRC,\ + KC.LCTL, KC.GRV, KC.LGUI, KC.LALT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.BSLS, KC.QUOT,\ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + ], + [ #LOWER + KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN,\ + KC.ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.UNDS, KC.PLUS, KC.LCBR, KC.RCBR,\ + KC.CAPS, KC.TILD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.PIPE, KC.DQT,\ + XXXXXXX, XXXXXXX, XXXXXXX, KC.ENT, XXXXXXX, KC.DEL + ] +] + +if __name__ == '__main__': + keyboard.go() diff --git a/boards/converter/fourtypercentclub/__init__.py b/boards/converter/fourtypercentclub/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/boards/converter/fourtypercentclub/gherkin.py b/boards/converter/fourtypercentclub/gherkin.py deleted file mode 100644 index fbe4c41..0000000 --- a/boards/converter/fourtypercentclub/gherkin.py +++ /dev/null @@ -1,14 +0,0 @@ -import board - -from kmk.extensions.layers import Layers -from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard -from kmk.matrix import DiodeOrientation - - -class KMKKeyboard(_KMKKeyboard): - col_pins = (board.D9, board.D10, board.D11, board.D12, board.D13, board.SCL) - row_pins = (board.A3, board.A4, board.A5, board.SCK, board.MOSI) - diode_orientation = DiodeOrientation.COLUMNS - - layers_ext = Layers() - extensions = [layers_ext] diff --git a/boards/converter/fourtypercentclub/luddite.py b/boards/converter/fourtypercentclub/luddite.py deleted file mode 100644 index f57afd2..0000000 --- a/boards/converter/fourtypercentclub/luddite.py +++ /dev/null @@ -1,35 +0,0 @@ -import board - -from kmk.extensions.layers import Layers -from kmk.extensions.rgb import RGB -from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard -from kmk.matrix import DiodeOrientation - - -class KMKKeyboard(_KMKKeyboard): - col_pins = ( - board.A0, - board.A1, - board.A2, - board.A3, - board.A4, - board.A5, - board.SCK, - board.MOSI, - ) - row_pins = ( - board.TX, - board.RX, - board.SDA, - board.SCL, - board.D13, - board.D12, - board.D11, - board.D10, - ) - diode_orientation = DiodeOrientation.COLUMNS - rgb_pixel_pin = board.D9 - rgb_num_pixels = 12 - rgb_ext = RGB(pixel_pin=board.TX, num_pixels=12) - layers_ext = Layers() - extensions = [rgb_ext, layers_ext] diff --git a/boards/converter/keebio/__init__.py b/boards/converter/keebio/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/boards/converter/keebio/bdn9.py b/boards/converter/keebio/bdn9.py deleted file mode 100644 index 6dbdb35..0000000 --- a/boards/converter/keebio/bdn9.py +++ /dev/null @@ -1,26 +0,0 @@ -import board - -from kmk.extensions.layers import Layers -from kmk.extensions.rgb import RGB -from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard -from kmk.matrix import DiodeOrientation - - -class KMKKeyboard(_KMKKeyboard): - col_pins = ( - board.RX, - board.D13, - board.A0, - board.D11, - board.A4, - board.A5, - board.D10, - board.D9, - board.SCK, - ) - diode_orientation = DiodeOrientation.COLUMNS - rgb_pixel_pin = board.TX - - rgb_ext = RGB(pixel_pin=rgb_pixel_pin, num_pixels=9) - layers_ext = Layers() - extensions = [rgb_ext, layers_ext] diff --git a/boards/converter/keebio/fourier.py b/boards/converter/keebio/fourier.py deleted file mode 100644 index fbbb9b8..0000000 --- a/boards/converter/keebio/fourier.py +++ /dev/null @@ -1,23 +0,0 @@ -import board - -from kmk.extensions.layers import Layers -from kmk.extensions.rgb import RGB -from kmk.extensions.split import Split -from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard -from kmk.matrix import DiodeOrientation - - -class KMKKeyboard(_KMKKeyboard): - col_pins = (board.A1, board.A2, board.A3, board.A4, board.A5, board.SCK, board.MOSI) - row_pins = (board.A0, board.D11, board.D10, board.D9) - diode_orientation = DiodeOrientation.COLUMNS - rgb_pixel_pin = board.TX - uart_pin = board.SCL - split_type = 'UART' - split_flip = True - split_offsets = [7, 7, 7, 7] - - rgb_ext = RGB(pixel_pin=board.TX, num_pixels=12) - layers_ext = Layers() - split = Split(uart_pin=uart_pin, split_offsets=split_offsets) - extensions = [rgb_ext, split, layers_ext] diff --git a/boards/converter/keebio/iris_r1.py b/boards/converter/keebio/iris_r1.py deleted file mode 100644 index cacc4e5..0000000 --- a/boards/converter/keebio/iris_r1.py +++ /dev/null @@ -1,23 +0,0 @@ -import board - -from kmk.extensions.layers import Layers -from kmk.extensions.rgb import RGB -from kmk.extensions.split import Split -from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard -from kmk.matrix import DiodeOrientation - - -class KMKKeyboard(_KMKKeyboard): - col_pins = (board.A2, board.A3, board.A4, board.A5, board.SCK, board.MOSI) - row_pins = (board.D11, board.D10, board.D9, board.D7, board.D13) - diode_orientation = DiodeOrientation.COLUMNS - rgb_pixel_pin = board.TX - uart_pin = board.SCL - split_type = 'UART' - split_flip = True - split_offsets = [6, 6, 6, 6, 6] - - rgb_ext = RGB(pixel_pin=rgb_pixel_pin, num_pixels=12) - layers_ext = Layers() - split = Split(uart_pin=uart_pin, split_offsets=split_offsets) - extensions = [rgb_ext, split, layers_ext] diff --git a/boards/converter/keebio/lapace.py b/boards/converter/keebio/lapace.py deleted file mode 100644 index 517d650..0000000 --- a/boards/converter/keebio/lapace.py +++ /dev/null @@ -1,34 +0,0 @@ -import board - -from kmk.extensions.layers import Layers -from kmk.extensions.rgb import RGB -from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard -from kmk.matrix import DiodeOrientation - - -class KMKKeyboard(_KMKKeyboard): - col_pins = ( - board.SDA, - board.A2, - board.A3, - board.A4, - board.A5, - board.SCK, - board.MOSI, - ) - row_pins = ( - board.TX, - board.A0, - board.RX, - board.A1, - board.D11, - board.D9, - board.D12, - board.D10, - ) - diode_orientation = DiodeOrientation.COLUMNS - rgb_pixel_pin = board.D13 - - rgb_ext = RGB(pixel_pin=rgb_pixel_pin, num_pixels=12) - layers_ext = Layers() - extensions = [rgb_ext, layers_ext] diff --git a/boards/converter/keebio/levinson_r1.py b/boards/converter/keebio/levinson_r1.py deleted file mode 100644 index 7fd48ec..0000000 --- a/boards/converter/keebio/levinson_r1.py +++ /dev/null @@ -1,23 +0,0 @@ -import board - -from kmk.extensions.layers import Layers -from kmk.extensions.rgb import RGB -from kmk.extensions.split import Split -from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard -from kmk.matrix import DiodeOrientation - - -class KMKKeyboard(_KMKKeyboard): - col_pins = (board.A2, board.A3, board.A4, board.A5, board.SCK, board.A0) - row_pins = (board.D11, board.D10, board.D9, board.D7) - diode_orientation = DiodeOrientation.COLUMNS - rgb_pixel_pin = board.TX - uart_pin = board.SCL - split_type = 'UART' - split_flip = True - split_offsets = [6, 6, 6, 6] - - rgb_ext = RGB(pixel_pin=rgb_pixel_pin, num_pixels=12) - layers_ext = Layers() - split = Split(uart_pin=uart_pin, split_offsets=split_offsets) - extensions = [rgb_ext, split, layers_ext] diff --git a/boards/converter/keebio/nyquist_r1.py b/boards/converter/keebio/nyquist_r1.py deleted file mode 100644 index 2927fc0..0000000 --- a/boards/converter/keebio/nyquist_r1.py +++ /dev/null @@ -1,24 +0,0 @@ -import board - -from kmk.extensions.layers import Layers -from kmk.extensions.rgb import RGB -from kmk.extensions.split import Split -from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard -from kmk.matrix import DiodeOrientation - - -class KMKKeyboard(_KMKKeyboard): - col_pins = (board.A2, board.A3, board.A4, board.A5, board.SCK, board.MOSI) - row_pins = (board.D13, board.D11, board.D10, board.D9, board.D7) - diode_orientation = DiodeOrientation.COLUMNS - rgb_pixel_pin = board.TX - uart_pin = board.SCL - extra_data_pin = board.SDA - split_type = 'UART' - split_flip = True - split_offsets = [6, 6, 6, 6, 6] - - rgb_ext = RGB(pixel_pin=rgb_pixel_pin, num_pixels=12) - layers_ext = Layers() - split = Split(uart_pin=uart_pin, split_offsets=split_offsets) - extensions = [rgb_ext, split, layers_ext] diff --git a/boards/converter/keebio/rorschach.py b/boards/converter/keebio/rorschach.py deleted file mode 100644 index 23ecd3f..0000000 --- a/boards/converter/keebio/rorschach.py +++ /dev/null @@ -1,23 +0,0 @@ -import board - -from kmk.extensions.layers import Layers -from kmk.extensions.rgb import RGB -from kmk.extensions.split import Split -from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard -from kmk.matrix import DiodeOrientation - - -class KMKKeyboard(_KMKKeyboard): - col_pins = (board.A2, board.A3, board.A4, board.A5, board.SCK, board.MOSI) - row_pins = (board.D11, board.D10, board.D9, board.RX, board.D13) - diode_orientation = DiodeOrientation.COLUMNS - rgb_pixel_pin = board.TX - uart_pin = board.SCL - split_type = 'UART' - split_flip = True - split_offsets = [6, 6, 6, 6, 6] - - rgb_ext = RGB(pixel_pin=rgb_pixel_pin, num_pixels=12) - layers_ext = Layers() - split = Split(uart_pin=uart_pin, split_offsets=split_offsets) - extensions = [rgb_ext, split, layers_ext] diff --git a/boards/converter/keebio/viterbi_r1.py b/boards/converter/keebio/viterbi_r1.py deleted file mode 100644 index 11fd899..0000000 --- a/boards/converter/keebio/viterbi_r1.py +++ /dev/null @@ -1,23 +0,0 @@ -import board - -from kmk.extensions.layers import Layers -from kmk.extensions.rgb import RGB -from kmk.extensions.split import Split -from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard -from kmk.matrix import DiodeOrientation - - -class KMKKeyboard(_KMKKeyboard): - col_pins = (board.A1, board.A2, board.A3, board.A4, board.A5, board.SCK, board.MOSI) - row_pins = (board.D13, board.D11, board.D10, board.D9, board.D7) - diode_orientation = DiodeOrientation.COLUMNS - rgb_pixel_pin = board.TX - uart_pin = board.SCL - split_type = 'UART' - split_flip = True - split_offsets = [7, 7, 7, 7, 7] - - rgb_ext = RGB(pixel_pin=rgb_pixel_pin, num_pixels=12) - layers_ext = Layers() - split = Split(uart_pin=uart_pin, split_offsets=split_offsets) - extensions = [rgb_ext, split, layers_ext] diff --git a/boards/converter/keebio/viterbi_r2.py b/boards/converter/keebio/viterbi_r2.py deleted file mode 100644 index 5674399..0000000 --- a/boards/converter/keebio/viterbi_r2.py +++ /dev/null @@ -1,23 +0,0 @@ -import board - -from kmk.extensions.layers import Layers -from kmk.extensions.rgb import RGB -from kmk.extensions.split import Split -from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard -from kmk.matrix import DiodeOrientation - - -class KMKKeyboard(_KMKKeyboard): - col_pins = (board.A0, board.A1, board.A2, board.A3, board.A4, board.A5, board.SCK) - row_pins = (board.D13, board.D11, board.D10, board.D9, board.D7) - diode_orientation = DiodeOrientation.COLUMNS - rgb_pixel_pin = board.TX - uart_pin = board.SCL - split_type = 'UART' - split_flip = True - split_offsets = [7, 7, 7, 7, 7] - - rgb_ext = RGB(pixel_pin=rgb_pixel_pin, num_pixels=12) - layers_ext = Layers() - split = Split(uart_pin=uart_pin, split_offsets=split_offsets) - extensions = [rgb_ext, split, layers_ext] diff --git a/boards/converter/lets-split/__init__.py b/boards/converter/lets-split/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/boards/converter/lets-split/lets-split_r1.py b/boards/converter/lets-split/lets-split_r1.py deleted file mode 100644 index 16726e8..0000000 --- a/boards/converter/lets-split/lets-split_r1.py +++ /dev/null @@ -1,23 +0,0 @@ -import board - -from kmk.extensions.layers import Layers -from kmk.extensions.rgb import RGB -from kmk.extensions.split import Split -from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard -from kmk.matrix import DiodeOrientation - - -class KMKKeyboard(_KMKKeyboard): - col_pins = (board.A5, board.A4, board.A3, board.A2, board.A1, board.A0) - row_pins = (board.D7, board.D9, board.D10, board.D11) - diode_orientation = DiodeOrientation.COLUMNS - rgb_pixel_pin = board.TX - uart_pin = board.SCL - split_type = 'UART' - split_flip = True - split_offsets = [6, 6, 6, 6] - - rgb_ext = RGB(pixel_pin=rgb_pixel_pin, num_pixels=12) - layers_ext = Layers() - split = Split(uart_pin=uart_pin, split_offsets=split_offsets) - extensions = [rgb_ext, split, layers_ext] diff --git a/boards/converter/lets-split/lets-split_r2.py b/boards/converter/lets-split/lets-split_r2.py deleted file mode 100644 index e3256fc..0000000 --- a/boards/converter/lets-split/lets-split_r2.py +++ /dev/null @@ -1,23 +0,0 @@ -import board - -from kmk.extensions.layers import Layers -from kmk.extensions.rgb import RGB -from kmk.extensions.split import Split -from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard -from kmk.matrix import DiodeOrientation - - -class KMKKeyboard(_KMKKeyboard): - col_pins = (board.MOSI, board.SCK, board.A5, board.A4, board.A3, board.A2) - row_pins = (board.D11, board.D10, board.D9, board.D7) - diode_orientation = DiodeOrientation.COLUMNS - rgb_pixel_pin = board.TX - uart_pin = board.SCL - split_type = 'UART' - split_flip = True - split_offsets = [6, 6, 6, 6] - - rgb_ext = RGB(pixel_pin=rgb_pixel_pin, num_pixels=12) - layers_ext = Layers() - split = Split(uart_pin=uart_pin, split_offsets=split_offsets) - extensions = [rgb_ext, split, layers_ext] diff --git a/boards/crkbd/README.md b/boards/crkbd/README.md index 59a3be5..d9fa431 100644 --- a/boards/crkbd/README.md +++ b/boards/crkbd/README.md @@ -6,7 +6,8 @@ A split keyboard with a 3x6 collumnar stagger and 3 thumb keys. -Keyboard Maintainer: [foostan](https://github.com/foostan/) [@foostan](https://twitter.com/foostan) +kb.py is designed to work with the nice!nano + Hardware Availability: [PCB & Case Source](https://github.com/foostan/crkbd) Retailers (USA) @@ -22,5 +23,5 @@ Extentions enabled by default - [BLE_Split](https://github.com/KMKfw/kmk_firmware/tree/master/docs/split.md) Connects halves without wires Common Extentions -- [Split](https://github.com/KMKfw/kmk_firmware/tree/master/docs/split.md) if using a wire to connect the halves +- [Split](https://github.com/KMKfw/kmk_firmware/tree/master/docs/split.md) Connects halves using a wire - [Power](https://github.com/KMKfw/kmk_firmware/tree/master/docs/power.md) Powersaving features for battery life diff --git a/boards/crkbd/kb.py b/boards/crkbd/kb.py index bebfcf3..ca9742d 100644 --- a/boards/crkbd/kb.py +++ b/boards/crkbd/kb.py @@ -16,9 +16,6 @@ class KMKKeyboard(_KMKKeyboard): ) row_pins = (board.P0_22, board.P0_24, board.P1_00, board.P0_11) diode_orientation = DiodeOrientation.COLUMNS - - split_type = 'UART' - split_flip = True uart_pin = board.P0_08 rgb_pixel_pin = board.P0_06 i2c = board.I2C diff --git a/boards/crkbd/main.py b/boards/crkbd/main.py index c1af62d..a46268e 100644 --- a/boards/crkbd/main.py +++ b/boards/crkbd/main.py @@ -33,32 +33,32 @@ split = BLE_Split(split_side=split_side) layers_ext = Layers() -extensions = [layers_ext, split, rgb] +keyboard.extensions = [layers_ext, split, 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,\ KC.LCTL, KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.SCLN, KC.QUOT,\ KC.LSFT, KC.Z, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH, KC.RSFT,\ - KC.LGUI, LOWER, ADJUST, KC.ENT, RAISE, KC.RALT, + KC.LGUI, LOWER, ADJUST, KC.ENT, RAISE, KC.RALT, ], [ #LOWER - KC.ESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.BSPC,\ - KC.LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.LEFT, KC.DOWN, KC.UP, KC.RIGHT, XXXXXXX, XXXXXXX,\ - KC.LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ - KC.LGUI, LOWER, ADJUST, KC.ENT, RAISE, KC.RALT, + KC.ESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.BSPC,\ + KC.LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.LEFT, KC.DOWN, KC.UP, KC.RIGHT, XXXXXXX, XXXXXXX,\ + KC.LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ + KC.LGUI, LOWER, ADJUST, KC.ENT, RAISE, KC.RALT, ], [ #RAISE - KC.ESC, KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN, KC.BSPC,\ - KC.LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.MINS, KC.EQL, KC.LCBR, KC.RCBR, KC.PIPE, KC.GRV,\ - KC.LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.UNDS, KC.PLUS, KC.LBRC, KC.RBRC, KC.BSLS, KC.TILD,\ - KC.LGUI, LOWER, ADJUST, KC.ENT, RAISE, KC.RALT, + KC.ESC, KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN, KC.BSPC,\ + KC.LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.MINS, KC.EQL, KC.LCBR, KC.RCBR, KC.PIPE, KC.GRV,\ + KC.LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.UNDS, KC.PLUS, KC.LBRC, KC.RBRC, KC.BSLS, KC.TILD,\ + KC.LGUI, LOWER, ADJUST, KC.ENT, RAISE, KC.RALT, ], [ #ADJUST - RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ - XXXXXXX, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ - KC.LGUI, LOWER, ADJUST, KC.ENT, RAISE, KC.RALT, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ + XXXXXXX, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ + KC.LGUI, LOWER, ADJUST, KC.ENT, RAISE, KC.RALT, ] ] diff --git a/boards/ergo_travel/README.md b/boards/ergo_travel/README.md new file mode 100644 index 0000000..226d902 --- /dev/null +++ b/boards/ergo_travel/README.md @@ -0,0 +1,21 @@ +# Ergo Travel + +![ergo_travel](https://boardsource.imgix.net/fa53de62-fd37-4c75-8c5b-b4bec37927c1.jpg?raw=true) + +As the name implies, the Ergo Travel was originally designed as a travel keyboard, but it works just as well on your desk as a main daily use keyboard. The Ergo Travel is a popular choice by many because it offers a few more keys than other keyboards in similar sizes, and that is why we chose to stock it. Additionally, the Ergo Travel has nice customization options in the thumb cluster because you can configure the main thumb key to use a single larger 2u key, or two smaller 1u keys depending on your preference. The clean and simple aesthetic of the Ergo Travel and the few extra keys make it an awesome option for people wanting a 40%-ish split keyboard. + +kb.py is designed to work with the nice!nano + +Hardware Availability: [PCB & Case Source](https://github.com/jpconstantineau/ErgoTravel/blob/master/OrderingInstructions.md) + +Retailers (USA) +[Boardsource](https://boardsource.xyz/store/5eed23430883e03ef9a69d6a) + +Extentions enabled by default +- [Layers](https://github.com/KMKfw/kmk_firmware/tree/master/docs/layers.md) Need more keys than switches? Use layers. +- [BLE_Split](https://github.com/KMKfw/kmk_firmware/tree/master/docs/split.md) Connects halves without wires +- [MediaKeys](https://github.com/KMKfw/kmk_firmware/tree/master/docs/media_keys.md) Control volume and other media functions + +Common Extentions +- [Split](https://github.com/KMKfw/kmk_firmware/tree/master/docs/split.md) Connects halves using a wire +- [Power](https://github.com/KMKfw/kmk_firmware/tree/master/docs/power.md) Powersaving features for battery life diff --git a/boards/ergo_travel/kb.py b/boards/ergo_travel/kb.py new file mode 100644 index 0000000..97bed41 --- /dev/null +++ b/boards/ergo_travel/kb.py @@ -0,0 +1,32 @@ +import board + +from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard +from kmk.matrix import DiodeOrientation +from kmk.matrix import intify_coordinate as ic + + +class KMKKeyboard(_KMKKeyboard): + row_pins = (board.P0_24, board.P1_00, board.P0_11, board.P1_04) + col_pins = ( + board.P0_29, + board.P0_02, + board.P1_15, + board.P1_13, + board.P1_11, + board.P0_10, + board.P0_09, + ) + diode_orientation = DiodeOrientation.COLUMNS + led_pin = board.P1_06 + rgb_pixel_pin = board.P0_06 + rgb_num_pixels = 12 + i2c = board.I2C + powersave_pin = board.P0_13 + + coord_mapping = [] + coord_mapping.extend(ic(0, x) for x in range(14)) + coord_mapping.extend(ic(1, x) for x in range(14)) + coord_mapping.extend(ic(2, x) for x in range(14)) + + # And now, to handle R3, which at this point is down to just six keys + coord_mapping.extend(ic(3, x) for x in range(3, 12)) diff --git a/boards/ergo_travel/main.py b/boards/ergo_travel/main.py new file mode 100644 index 0000000..80ee9b9 --- /dev/null +++ b/boards/ergo_travel/main.py @@ -0,0 +1,59 @@ +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 + +keyboard = KMKKeyboard() + +# Cleaner key names +_______ = KC.TRNS +XXXXXXX = KC.NO + +LOWER = KC.MO(1) +RAISE = KC.MO(2) +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,\ + KC.TAB, KC.A, KC.S, KC.D, KC.F, KC.G, KC.LBRC, KC.RBRC, KC.H, KC.J, KC.K, KC.L, KC.SCLN, KC.QUOT,\ + KC.LSFT, KC.Z, KC.X, KC.C, KC.V, KC.B, KC.SPC, KC.SPC, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH, KC.ENT,\ + KC.LCTL, KC.LGUI, KC.LALT, ADJUST, LOWER, KC.SPC, KC.SPC, RAISE, KC.LEFT, KC.UP, KC.DOWN, KC.RGHT\ + ], + [ #LOWER + KC.TILD, KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.HOME, KC.PGUP, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN, KC.DEL,\ + _______, KC.F1, KC.F2, KC.F3, KC.F4, KC.F5, KC.END , KC.PGDN, KC.F6, KC.UNDS, KC.PLUS, KC.LCBR, KC.RCBR, KC.BSLS,\ + _______, KC.F7, KC.F8, KC.F9, KC.F10, KC.F11, KC.BSPC, KC.BSPC, KC.F12, _______, _______, KC.MUTE, _______, KC.PIPE,\ + _______, _______, _______, _______, _______, KC.BSPC, KC.BSPC, _______, KC.MNXT, KC.VOLD, KC.VOLU, KC.MPLY\ + ], + [ #RAISE + KC.ESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, _______, _______, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.DEL, \ + _______, KC.N4, KC.N5, KC.N6, KC.PLUS, _______, _______, _______, _______, KC.MINS, KC.EQL, KC.LBRC, KC.RBRC, _______, \ + KC.ENT, KC.N7, KC.N8, KC.N9, KC.MINS, _______, _______, _______, _______, KC.NUHS, KC.NUBS, KC.MUTE, _______, KC.BSLS, \ + _______, KC.COMM, KC.N0, KC.DOT, _______, KC.BSPC, KC.BSPC, _______, KC.MNXT, KC.VOLD, KC.VOLU, KC.MPLY \ + ], + [ #ADJUST + TSKMGR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CALTDEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + ] +] + +if __name__ == '__main__': + keyboard.go() diff --git a/boards/converter/__init__.py b/boards/fourtypercentclub/__init__.py similarity index 100% rename from boards/converter/__init__.py rename to boards/fourtypercentclub/__init__.py diff --git a/boards/fourtypercentclub/gherkin/README.md b/boards/fourtypercentclub/gherkin/README.md new file mode 100644 index 0000000..30641a5 --- /dev/null +++ b/boards/fourtypercentclub/gherkin/README.md @@ -0,0 +1,17 @@ +# Ghirkin + +![Gherkin](https://4.bp.blogspot.com/-sQ18-lNZXOc/WCzlTde-4PI/AAAAAAAB_JQ/qQrehAMG6DMKf3i4oj4mkmLGOfTUvb3KgCLcB/s640/IMG_20161116_122926.jpg) + +A keyboard with only 30 keys. + +kb.py is designed to work with the nice!nano + +Hardware Availability: [Gherkin project on 40% Keyboards](http://www.40percent.club/2016/11/gherkin.html) + +Extentions enabled by default +- [Layers](https://github.com/KMKfw/kmk_firmware/tree/master/docs/layers.md) Need more keys than switches? Use layers. +- [ModTap](https://github.com/KMKfw/kmk_firmware/tree/master/docs/modtap.md) Allows mod keys to act as different keys when tapped. +- [LED](https://github.com/KMKfw/kmk_firmware/tree/master/docs/led.md) Light your keys up + +Common Extentions +- [Power](https://github.com/KMKfw/kmk_firmware/tree/master/docs/power.md) Powersaving features for battery life diff --git a/boards/fourtypercentclub/gherkin/kb.py b/boards/fourtypercentclub/gherkin/kb.py new file mode 100644 index 0000000..c00bc22 --- /dev/null +++ b/boards/fourtypercentclub/gherkin/kb.py @@ -0,0 +1,21 @@ +import board + +from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard +from kmk.matrix import DiodeOrientation + + +class KMKKeyboard(_KMKKeyboard): + row_pins = (board.P1_15, board.P1_13, board.P1_11, board.P0_10, board.P0_09) + col_pins = ( + board.P1_04, + board.P0_11, + board.P1_00, + board.P0_24, + board.P0_22, + board.P0_20, + ) + diode_orientation = DiodeOrientation.COLUMNS + led_pin = board.P1_06 + rgb_num_pixels = 0 + i2c = board.I2C + powersave_pin = board.P0_13 diff --git a/boards/fourtypercentclub/gherkin/main.py b/boards/fourtypercentclub/gherkin/main.py new file mode 100644 index 0000000..2b070fd --- /dev/null +++ b/boards/fourtypercentclub/gherkin/main.py @@ -0,0 +1,65 @@ +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 + +keyboard = KMKKeyboard() + +# Cleaner key names +_______ = KC.TRNS +XXXXXXX = KC.NO + +FN1_SPC = KC.LT(1, KC.SPC) +FN2_BSPC = KC.LT(2, KC.BSPC) +FN3_C = KC.LT(3, KC.C) +FN4_V = KC.LT(4, KC.V) +FN5_B = KC.LT(5, KC.B) +CTL_Z = KC.CTL_T(KC.Z) +ALT_X = KC.ALT(KC.X) +ALT_N = KC.ALT(KC.N) +CTL_M = KC.CTL(KC.M) +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, + KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.ESC, + CTL_Z, ALT_X, FN3_C, FN4_V, FN2_BSPC, FN1_SPC, FN5_B, ALT_N, CTL_M, SFT_ENT + ], + [ + KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, + KC.F1, KC.F2, KC.F3, KC.F4, KC.F5, KC.F6, KC.F7, KC.F8, KC.F9, KC.F10, + _______, _______, _______, _______, KC.DEL, _______, _______, _______, _______, _______ + ], + [ + KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN, + KC.F11, KC.F12, _______, _______, _______, _______, _______, _______, _______, KC.GRV, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ], + [ + _______, _______, _______, _______, _______, KC.MINS, KC.EQL, KC.LBRC, KC.RBRC, KC.BSLS, + KC.TAB, _______, _______, _______, _______, KC.COMM, KC.DOT, KC.SLSH, KC.SCLN, KC.QUOT, + _______, _______, _______, _______, _______, _______, KC.LEFT, KC.DOWN, KC.UP, KC.RGHT + ], + [ + _______, _______, _______, _______, _______, KC.UNDS, KC.PLUS, KC.LCBR, KC.RCBR, KC.PIPE, + KC.TAB, _______, _______, _______, _______, KC.LABK, KC.RABK, KC.QUES, KC.COLN, KC.DQUO, + _______, _______, _______, _______, _______, _______, KC.HOME, KC.PGDN, KC.PGUP, KC.END + ], + [ + KC.CALC, KC.WHOM, KC.MAIL, KC.MYCM, _______, _______, _______, _______, _______, KC.PSCR, + _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ] +] + +if __name__ == '__main__': + keyboard.go() diff --git a/boards/fourtypercentclub/luddite/README.md b/boards/fourtypercentclub/luddite/README.md new file mode 100644 index 0000000..d4f16cd --- /dev/null +++ b/boards/fourtypercentclub/luddite/README.md @@ -0,0 +1,18 @@ +# Luddite + +![Luddite](https://1.bp.blogspot.com/-GAAa-sMU_WU/W7uYLJJ8x1I/AAAAAAACS44/31n2z69BSboM4KT48YkNMJRYciC8LUMWgCLcBGAs/s640/a.jpg) + +Luddite 60% keyboard with backlight and RGB underglow. + +kb.py is designed to work with the nice!nano +kb_converter.py is designed to work with an itsybitsy with converter board found [here](https://github.com/KMKfw/kmk_firmware/tree/master/hardware) + +Hardware Availability: [Luddite project on 40% Keyboards](http://www.40percent.club/search/label/luddite) + +Extentions enabled by default +- [Layers](https://github.com/KMKfw/kmk_firmware/tree/master/docs/layers.md) Need more keys than switches? Use layers. +- [RGB](https://github.com/KMKfw/kmk_firmware/tree/master/docs/rgb.md) RGB underglow +- [LED](https://github.com/KMKfw/kmk_firmware/tree/master/docs/led.md) Light your keys up + +Common Extentions +- [Power](https://github.com/KMKfw/kmk_firmware/tree/master/docs/power.md) Powersaving features for battery life diff --git a/boards/converter/keebio/tragicforce68.py b/boards/fourtypercentclub/luddite/converter_kb.py similarity index 82% rename from boards/converter/keebio/tragicforce68.py rename to boards/fourtypercentclub/luddite/converter_kb.py index 0586521..4be875f 100644 --- a/boards/converter/keebio/tragicforce68.py +++ b/boards/fourtypercentclub/luddite/converter_kb.py @@ -1,6 +1,5 @@ import board -from kmk.extensions.layers import Layers from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard from kmk.matrix import DiodeOrientation @@ -21,12 +20,11 @@ class KMKKeyboard(_KMKKeyboard): board.RX, board.SDA, board.SCL, - board.D9, - board.D10, + board.D13, board.D12, board.D11, - board.D13, + board.D10, ) diode_orientation = DiodeOrientation.COLUMNS - layers_ext = Layers() - extensions = [layers_ext] + rgb_pixel_pin = board.D9 + rgb_num_pixels = 12 diff --git a/boards/fourtypercentclub/luddite/kb.py b/boards/fourtypercentclub/luddite/kb.py new file mode 100644 index 0000000..1846fae --- /dev/null +++ b/boards/fourtypercentclub/luddite/kb.py @@ -0,0 +1,33 @@ +import board + +from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard +from kmk.matrix import DiodeOrientation + + +class KMKKeyboard(_KMKKeyboard): + row_pins = ( + board.P0_06, + board.P0_08, + board.P0_17, + board.P0_20, + board.P0_22, + board.P0_24, + board.P1_00, + board.P0_11, + ) + col_pins = ( + board.P0_31, + board.P0_29, + board.P0_02, + board.P1_15, + board.P1_13, + board.P1_11, + board.P0_10, + board.P0_09, + ) + diode_orientation = DiodeOrientation.COLUMNS + led_pin = board.P1_06 + rgb_pixel_pin = board.P1_04 + rgb_num_pixels = 8 + i2c = board.I2C + powersave_pin = board.P0_13 diff --git a/user_keymaps/default/converter/fourtypercentclub/luddite.py b/boards/fourtypercentclub/luddite/main.py similarity index 82% rename from user_keymaps/default/converter/fourtypercentclub/luddite.py rename to boards/fourtypercentclub/luddite/main.py index ec9ffff..822c454 100644 --- a/user_keymaps/default/converter/fourtypercentclub/luddite.py +++ b/boards/fourtypercentclub/luddite/main.py @@ -1,4 +1,7 @@ -from kmk.boards.converter.fourtypercentclub.luddite import KMKKeyboard +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 keyboard = KMKKeyboard() @@ -6,6 +9,11 @@ keyboard = KMKKeyboard() _______ = KC.TRNS 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] + BASE = 0 FN1 = 1 diff --git a/boards/keebio/iris/README.md b/boards/keebio/iris/README.md new file mode 100644 index 0000000..ae2a07c --- /dev/null +++ b/boards/keebio/iris/README.md @@ -0,0 +1,15 @@ +# Iris Rev 2 + +A split keyboard with a 4x6 layout with additional 4 thumb buttons + +kb.py is designed to work with the nice!nano +kb_converter.py is designed to work with an itsybitsy with converter board found [here](https://github.com/KMKfw/kmk_firmware/tree/master/hardware) + +Extentions enabled by default +- [Layers](https://github.com/KMKfw/kmk_firmware/tree/master/docs/layers.md) Need more keys than switches? Use layers. +- [RGB](https://github.com/KMKfw/kmk_firmware/tree/master/docs/rgb.md) Light it up +- [BLE_Split](https://github.com/KMKfw/kmk_firmware/tree/master/docs/split.md) Connects halves without wires + +Common Extentions +- [Split](https://github.com/KMKfw/kmk_firmware/tree/master/docs/split.md) Connects halves using a wire +- [Power](https://github.com/KMKfw/kmk_firmware/tree/master/docs/power.md) Powersaving features for battery life diff --git a/boards/keebio/iris/kb.py b/boards/keebio/iris/kb.py new file mode 100644 index 0000000..1cc199c --- /dev/null +++ b/boards/keebio/iris/kb.py @@ -0,0 +1,42 @@ +import board + +from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard +from kmk.matrix import DiodeOrientation +from kmk.matrix import intify_coordinate as ic + + +class KMKKeyboard(_KMKKeyboard): + row_pins = (board.P1_00, board.P0_11, board.P1_04, board.P0_08, board.P0_22) + col_pins = ( + board.P0_02, + board.P1_15, + board.P1_13, + board.P1_11, + board.P0_10, + board.P0_09, + ) + diode_orientation = DiodeOrientation.COLUMNS + led_pin = board.P1_06 + rgb_pixel_pin = board.P0_06 + rgb_num_pixels = 12 + i2c = board.I2C + powersave_pin = board.P0_13 + led_pin = board.D7 + + coord_mapping = [] + coord_mapping.extend(ic(0, x) for x in range(12)) + coord_mapping.extend(ic(1, x) for x in range(12)) + coord_mapping.extend(ic(2, x) for x in range(12)) + + # Buckle up friends, the bottom row of this keyboard is wild, and making + # our layouts match, visually, what the keyboard looks like, requires some + # surgery on the bottom two rows of coords + + # Row index 3 is actually perfectly sane and we _could_ expose it + # just like the above three rows, however, visually speaking, the + # top-right thumb cluster button (when looking at the left-half PCB) + # is more inline with R3, so we'll jam that key (and its mirror) in here + coord_mapping.extend(ic(3, x) for x in range(6)) + coord_mapping.append(ic(4, 2)) + coord_mapping.append(ic(4, 9)) + coord_mapping.extend(ic(3, x) for x in range(6, 12)) # Now, the rest of R3 diff --git a/boards/converter/keebio/iris_r2.py b/boards/keebio/iris/kb_converter.py similarity index 84% rename from boards/converter/keebio/iris_r2.py rename to boards/keebio/iris/kb_converter.py index 07f3a8f..d3033e5 100644 --- a/boards/converter/keebio/iris_r2.py +++ b/boards/keebio/iris/kb_converter.py @@ -1,8 +1,5 @@ import board -from kmk.extensions.layers import Layers -from kmk.extensions.rgb import RGB -from kmk.extensions.split import Split from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard from kmk.matrix import DiodeOrientation from kmk.matrix import intify_coordinate as ic @@ -21,6 +18,8 @@ class KMKKeyboard(_KMKKeyboard): split_type = 'UART' uart_pin = board.SCL extra_data_pin = board.SDA + rgb_num_pixels = 12 + i2c = board.I2C rgb_pixel_pin = board.TX led_pin = board.D7 @@ -44,8 +43,3 @@ class KMKKeyboard(_KMKKeyboard): # And now, to handle R4, which at this point is down to just six keys coord_mapping.extend(ic(4, x) for x in range(3, 9)) - - rgb_ext = RGB(pixel_pin=rgb_pixel_pin, num_pixels=12) - layers_ext = Layers() - split = Split(uart_pin=uart_pin, split_offsets=split_offsets) - extensions = [rgb_ext, split, layers_ext] diff --git a/boards/keebio/iris/main.py b/boards/keebio/iris/main.py new file mode 100644 index 0000000..6294f05 --- /dev/null +++ b/boards/keebio/iris/main.py @@ -0,0 +1,113 @@ +from kb import KMKKeyboard +from kmk.consts import LeaderMode, 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 + +keyboard = KMKKeyboard() + +keyboard.debug_enabled = False +keyboard.unicode_mode = UnicodeMode.LINUX +keyboard.tap_time = 750 + +emoticons = cuss({ + # Emojis + 'BEER': r'🍺', + 'BEER_TOAST': r'🍻', + 'FACE_CUTE_SMILE': r'😊', + 'FACE_HEART_EYES': r'😍', + 'FACE_JOY': r'😂', + 'FACE_SWEAT_SMILE': r'😅', + 'FACE_THINKING': r'🤔', + 'FIRE': r'🔥', + 'FLAG_CA': r'🇨🇦', + 'FLAG_US': r'🇺🇸', + 'HAND_CLAP': r'👏', + 'HAND_HORNS': r'🤘', + 'HAND_OK': r'👌', + 'HAND_THUMB_DOWN': r'👎', + 'HAND_THUMB_UP': r'👍', + 'HAND_WAVE': r'👋', + 'HEART': r'❤️', + 'MAPLE_LEAF': r'🍁', + 'POOP': r'💩', + 'TADA': r'🎉', + 'SHRUG_EMOJI': r'🤷', + + # Emoticons, but fancier + 'ANGRY_TABLE_FLIP': r'(ノಠ痊ಠ)ノ彡┻━┻', + 'CELEBRATORY_GLITTER': r'+。:.゚ヽ(´∀。)ノ゚.:。+゚゚+。:.゚ヽ(*´∀)ノ゚.:。+゚', + 'SHRUGGIE': r'¯\_(ツ)_/¯', + 'TABLE_FLIP': r'(╯°□°)╯︵ ┻━┻', +}) + +WPM = send_string('Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Bibendum arcu vitae elementum curabitur vitae nunc sed. Facilisis sed odio morbi quis.') + +keyboard.leader_mode = LeaderMode.ENTER +keyboard.leader_dictionary = { + 'hello': send_string('hello world from kmk macros'), + 'wpm': WPM, + 'atf': emoticons.ANGRY_TABLE_FLIP, + 'tf': emoticons.TABLE_FLIP, + 'fca': emoticons.FLAG_CA, + 'fus': emoticons.FLAG_US, + 'cel': emoticons.CELEBRATORY_GLITTER, + 'shr': emoticons.SHRUGGIE, + 'shre': emoticons.SHRUG_EMOJI, + 'poop': emoticons.POOP, + 'joy': emoticons.FACE_JOY, + 'ls': KC.LGUI(KC.HOME), # Lock screen + 'cw': KC.LGUI(KC.END), # Close window + 'dbg': KC.DBG, +} + +_______ = KC.TRNS +xxxxxxx = KC.NO +HELLA_TD = KC.TD( + KC.A, + KC.B, + send_string('macros in a tap dance? I think yes'), + KC.TG(1), +) + +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] + + +keyboard.keymap = [ + [ + KC.GESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.BSPC, + KC.TAB, KC.QUOT, KC.COMM, KC.DOT, KC.P, KC.Y, KC.F, KC.G, KC.C, KC.R, KC.L, KC.SLSH, + KC.LGUI, KC.A, KC.O, KC.E, KC.U, KC.I, KC.D, KC.H, KC.T, KC.N, KC.S, KC.ENTER, + KC.LCTL, KC.SCLN, KC.Q, KC.J, KC.K, KC.X, KC.MO(2), KC.MO(1), KC.B, KC.M, KC.W, KC.V, KC.Z, KC.LALT, + KC.LEFT, KC.RGHT, KC.LSFT, KC.SPC, KC.UP, KC.DOWN, + ], + [ + _______, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, KC.F10, KC.F11, KC.F12, xxxxxxx, xxxxxxx, _______, + xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, KC.F7, KC.F8, KC.F9, xxxxxxx, xxxxxxx, KC.EQUAL, + xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, KC.INS, KC.F4, KC.F5, KC.F6, xxxxxxx, xxxxxxx, xxxxxxx, + xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, KC.LEAD, _______, KC.F1, KC.F2, KC.F3, xxxxxxx, xxxxxxx, _______, + KC.HOME, KC.END, _______, xxxxxxx, KC.PGUP, KC.PGDN, + ], + [ + KC.MUTE, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, KC.LBRC, KC.RBRC, KC.DEL, + xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, KC.BSLS, + KC.RGUI, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, KC.MINS, + xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, _______, KC.VOLU, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, KC.RALT, + KC.HOME, KC.END, _______, KC.VOLD, KC.PGUP, KC.PGDN, + ], +] + +if __name__ == '__main__': + keyboard.go() diff --git a/boards/keebio/levinson/README.md b/boards/keebio/levinson/README.md new file mode 100644 index 0000000..af15c9b --- /dev/null +++ b/boards/keebio/levinson/README.md @@ -0,0 +1,15 @@ +# Levinson Rev 2 + +A split keyboard with a 4x6 layout + +kb.py is designed to work with the nice!nano +kb_converter.py is designed to work with an itsybitsy with converter board found [here](https://github.com/KMKfw/kmk_firmware/tree/master/hardware) + +Extentions enabled by default +- [Layers](https://github.com/KMKfw/kmk_firmware/tree/master/docs/layers.md) Need more keys than switches? Use layers. +- [RGB](https://github.com/KMKfw/kmk_firmware/tree/master/docs/rgb.md) Light it up +- [BLE_Split](https://github.com/KMKfw/kmk_firmware/tree/master/docs/split.md) Connects halves without wires + +Common Extentions +- [Split](https://github.com/KMKfw/kmk_firmware/tree/master/docs/split.md) Connects halves using a wire +- [Power](https://github.com/KMKfw/kmk_firmware/tree/master/docs/power.md) Powersaving features for battery life diff --git a/boards/keebio/levinson/kb.py b/boards/keebio/levinson/kb.py new file mode 100644 index 0000000..aa129c5 --- /dev/null +++ b/boards/keebio/levinson/kb.py @@ -0,0 +1,22 @@ +import board + +from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard +from kmk.matrix import DiodeOrientation + + +class KMKKeyboard(_KMKKeyboard): + row_pins = (board.P0_22, board.P1_00, board.P0_11, board.P1_04) + col_pins = ( + board.P0_02, + board.P1_15, + board.P1_13, + board.P1_11, + board.P0_10, + board.P0_09, + ) + diode_orientation = DiodeOrientation.COLUMNS + rgb_pixel_pin = board.P0_06 + rgb_num_pixels = 12 + led_pin = board.P1_06 + i2c = board.I2C + powersave_pin = board.P0_13 diff --git a/boards/converter/keebio/levinson_r2.py b/boards/keebio/levinson/kb_converter.py similarity index 59% rename from boards/converter/keebio/levinson_r2.py rename to boards/keebio/levinson/kb_converter.py index 9f7f515..f769745 100644 --- a/boards/converter/keebio/levinson_r2.py +++ b/boards/keebio/levinson/kb_converter.py @@ -1,8 +1,5 @@ import board -from kmk.extensions.layers import Layers -from kmk.extensions.rgb import RGB -from kmk.extensions.split import Split from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard from kmk.matrix import DiodeOrientation @@ -18,9 +15,4 @@ class KMKKeyboard(_KMKKeyboard): uart_pin = board.SCL extra_data_pin = board.SDA rgb_pixel_pin = board.TX - # led_pin = board.D7 - - rgb_ext = RGB(pixel_pin=rgb_pixel_pin, num_pixels=12) - layers_ext = Layers() - split = Split(uart_pin=uart_pin, split_offsets=split_offsets) - extensions = [rgb_ext, split, layers_ext] + led_pin = board.D7 diff --git a/boards/keebio/levinson/main.py b/boards/keebio/levinson/main.py new file mode 100644 index 0000000..8ab426b --- /dev/null +++ b/boards/keebio/levinson/main.py @@ -0,0 +1,133 @@ +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 + +keyboard = KMKKeyboard() + +_______ = KC.TRNS +XXXXXXX = KC.NO + +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 + # ,-----------------------------------------------------------------------------------. + # | Tab | Q | W | E | R | T | Y | U | I | O | P | Bak | + # |------+------+------+------+------+-------------+------+------+------+------+------| + # | Esc | A | S | D | F | G | H | J | K | L | ; | " | + # |------+------+------+------+------+------|------+------+------+------+------+------| + # | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + # |------+------+------+------+------+------+------+------+------+------+------+------| + # |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + # `-----------------------------------------------------------------------------------' + [ + KC.TAB, KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P, KC.BSPC, + KC.GESC, KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.SCLN, KC.QUOT, + KC.LSFT, KC.Z, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH, KC.ENT, + ADJUST, KC.LCTL, KC.LALT, KC.LGUI, LOWER, KC.SPC, KC.SPC, RAISE, KC.LEFT, KC.DOWN, KC.UP, KC.RGHT, + ], + + # Colemak + # ,-----------------------------------------------------------------------------------. + # | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bak | + # |------+------+------+------+------+-------------+------+------+------+------+------| + # | Esc | A | R | S | T | D | H | N | E | I | O | " | + # |------+------+------+------+------+------|------+------+------+------+------+------| + # | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + # |------+------+------+------+------+------+------+------+------+------+------+------| + # |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + # `-----------------------------------------------------------------------------------' + [ + KC.TAB, KC.Q, KC.W, KC.F, KC.P, KC.G, KC.J, KC.L, KC.U, KC.Y, KC.SCLN, KC.BSPC, + KC.GESC, KC.A, KC.R, KC.S, KC.T, KC.D, KC.H, KC.N, KC.E, KC.I, KC.O, KC.QUOT, + KC.LSFT, KC.Z, KC.X, KC.C, KC.V, KC.B, KC.K, KC.M, KC.COMM, KC.DOT, KC.SLSH, KC.ENT, + ADJUST, KC.LCTL, KC.LALT, KC.LGUI, LOWER, KC.SPC, KC.SPC, RAISE, KC.LEFT, KC.DOWN, KC.UP, KC.RGHT, + ], + + # Dvorak + # ,-----------------------------------------------------------------------------------. + # | Tab | " | , | . | P | Y | F | G | C | R | L | Bak | + # |------+------+------+------+------+-------------+------+------+------+------+------| + # | Esc | A | O | E | U | I | D | H | T | N | S | / | + # |------+------+------+------+------+------|------+------+------+------+------+------| + # | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + # |------+------+------+------+------+------+------+------+------+------+------+------| + # |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + # `-----------------------------------------------------------------------------------' + [ + KC.TAB, KC.QUOT, KC.COMM, KC.DOT, KC.P, KC.Y, KC.F, KC.G, KC.C, KC.R, KC.L, KC.BSPC, + KC.GESC, KC.A, KC.O, KC.E, KC.U, KC.I, KC.D, KC.H, KC.T, KC.N, KC.S, KC.SLSH, + KC.LSFT, KC.SCLN, KC.Q, KC.J, KC.K, KC.X, KC.B, KC.M, KC.W, KC.V, KC.Z, KC.ENT, + ADJUST, KC.LCTL, KC.LALT, KC.LGUI, LOWER, KC.SPC, KC.SPC, RAISE, KC.LEFT, KC.DOWN, KC.UP, KC.RGHT, + ], + + # Lower + # ,-----------------------------------------------------------------------------------. + # | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + # |------+------+------+------+------+-------------+------+------+------+------+------| + # | Del | F1 | F2 | F3 | F4 | F5 | F6 | . | + | | \ | | | + # |------+------+------+------+------+------|------+------+------+------+------+------| + # | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | + # |------+------+------+------+------+------+------+------+------+------+------+------| + # | | | | | | | | Next | Vol- | Vol+ | Play | + # `-----------------------------------------------------------------------------------' + [ + KC.TILD, KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN, KC.DEL, + KC.DEL, KC.F1, KC.F2, KC.F3, KC.F4, KC.F5, KC.F6, KC.UNDS, KC.PLUS, KC.LCBR, KC.RCBR, KC.PIPE, + _______, KC.F7, KC.F8, KC.F9, KC.F10, KC.F11, KC.F12, KC.NUHS, KC.NUBS, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC.MNXT, KC.VOLD, KC.VOLU, KC.MPLY, + ], + + # Raise + # ,-----------------------------------------------------------------------------------. + # | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + # |------+------+------+------+------+-------------+------+------+------+------+------| + # | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + # |------+------+------+------+------+------|------+------+------+------+------+------| + # | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | + # |------+------+------+------+------+------+------+------+------+------+------+------| + # | | | | | | | | Next | Vol- | Vol+ | Play | + # `-----------------------------------------------------------------------------------' + [ + KC.GRV, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.DEL, + KC.DEL, KC.F1, KC.F2, KC.F3, KC.F4, KC.F5, KC.F6, KC.MINS, KC.EQL, KC.LBRC, KC.RBRC, KC.BSLS, + _______, KC.F7, KC.F8, KC.F9, KC.F10, KC.F11, KC.F12, KC.NUHS, KC.NUBS, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC.MNXT, KC.VOLD, KC.VOLU, KC.MPLY, + ], + + # Adjust + # ,-----------------------------------------------------------------------------------. + # | | Reset|RGB Tg|RGB Md|Hue Up|Hue Dn|Sat Up|Sat Dn|Val Up|Val Dn| | Del | + # |------+------+------+------+------+-------------+------+------+------+------+------| + # | | | | | | | |Qwerty|Colemk|Dvorak| | | + # |------+------+------+------+------+------|------+------+------+------+------+------| + # | | | | | | | | | | | | | + # |------+------+------+------+------+------+------+------+------+------+------+------| + # | | | | | | | | | | | | + # `-----------------------------------------------------------------------------------' + [ + _______, _______, KC.RGB.TOG, KC.RGB.MOD, KC.RGB.HUD, KC.RGB.HUI, KC.RGB.SAD, KC.RGB.SAI, KC.RGB.VAD, KC.RGB.VAI, _______, KC.DEL, + _______, _______, _______, _______, _______, _______, _______, KC.DF(0), KC.DF(1), KC.DF(2), _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + ], + +] + +if __name__ == '__main__': + keyboard.go() diff --git a/boards/keebio/nyquist/README.md b/boards/keebio/nyquist/README.md new file mode 100644 index 0000000..b567df0 --- /dev/null +++ b/boards/keebio/nyquist/README.md @@ -0,0 +1,16 @@ +# Nyquist Rev 2 + +A split keyboard with a 5x6 layout + +kb.py is designed to work with the nice!nano +kb_converter.py is designed to work with an itsybitsy with converter board found [here](https://github.com/KMKfw/kmk_firmware/tree/master/hardware) + + +Extentions enabled by default +- [Layers](https://github.com/KMKfw/kmk_firmware/tree/master/docs/layers.md) Need more keys than switches? Use layers. +- [RGB](https://github.com/KMKfw/kmk_firmware/tree/master/docs/rgb.md) Light it up +- [BLE_Split](https://github.com/KMKfw/kmk_firmware/tree/master/docs/split.md) Connects halves without wires + +Common Extentions +- [Split](https://github.com/KMKfw/kmk_firmware/tree/master/docs/split.md) Connects halves using a wire +- [Power](https://github.com/KMKfw/kmk_firmware/tree/master/docs/power.md) Powersaving features for battery life diff --git a/boards/keebio/nyquist/kb.py b/boards/keebio/nyquist/kb.py new file mode 100644 index 0000000..ce8b248 --- /dev/null +++ b/boards/keebio/nyquist/kb.py @@ -0,0 +1,22 @@ +import board + +from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard +from kmk.matrix import DiodeOrientation + + +class KMKKeyboard(_KMKKeyboard): + row_pins = (board.P0_22, board.P1_00, board.P0_11, board.P1_04, board.P1_06) + col_pins = ( + board.P0_08, + board.P0_29, + board.P0_02, + board.P1_15, + board.P1_13, + board.P1_11, + ) + diode_orientation = DiodeOrientation.COLUMNS + rgb_pixel_pin = board.P0_06 + rgb_num_pixels = 12 + led_pin = board.P0_09 + i2c = board.I2C + powersave_pin = board.P0_13 diff --git a/boards/converter/keebio/nyquist_r2.py b/boards/keebio/nyquist/kb_converter.py similarity index 62% rename from boards/converter/keebio/nyquist_r2.py rename to boards/keebio/nyquist/kb_converter.py index 63eed3a..11a1399 100644 --- a/boards/converter/keebio/nyquist_r2.py +++ b/boards/keebio/nyquist/kb_converter.py @@ -1,8 +1,5 @@ import board -from kmk.extensions.layers import Layers -from kmk.extensions.rgb import RGB -from kmk.extensions.split import Split from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard from kmk.matrix import DiodeOrientation @@ -15,10 +12,6 @@ class KMKKeyboard(_KMKKeyboard): split_type = 'UART' split_flip = True uart_pin = board.SCL + rgb_num_pixels = 12 rgb_pixel_pin = board.TX extra_data_pin = board.SDA - - rgb_ext = RGB(pixel_pin=rgb_pixel_pin, num_pixels=12) - layers_ext = Layers() - split = Split(uart_pin=uart_pin) - extensions = [rgb_ext, split, layers_ext] diff --git a/user_keymaps/default/converter/keebio/nyquist_r2.py b/boards/keebio/nyquist/main.py similarity index 95% rename from user_keymaps/default/converter/keebio/nyquist_r2.py rename to boards/keebio/nyquist/main.py index 860ff0c..53693ea 100644 --- a/user_keymaps/default/converter/keebio/nyquist_r2.py +++ b/boards/keebio/nyquist/main.py @@ -1,4 +1,7 @@ -from kmk.boards.converter.keebio.nyquist_r2 import KMKKeyboard +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 keyboard = KMKKeyboard() @@ -10,6 +13,17 @@ 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 # ,-----------------------------------------------------------------------------------. diff --git a/boards/lily58/README.md b/boards/lily58/README.md new file mode 100644 index 0000000..d820bd3 --- /dev/null +++ b/boards/lily58/README.md @@ -0,0 +1,20 @@ +# Lily 58 Pro + +![Lily58](https://boardsource.imgix.net/af3d8d6d-5fbe-4578-a2ba-d09d7686fb29.jpg?raw=true) + +The Lily58 is a 58 key split keyboard design by kata0510, featuring a 6x4 columnar stagger and 4 thumb cluster keys on each hand. The Lily58 is a perfect choice for people who want to be on a split keyboard but still want to have a fairly standard amount of keys. + +Hardware Availability: [PCB & Case Source](https://github.com/kata0510/Lily58) +kb.py is designed to work with the nice!nano + +Retailers (USA) +[Boardsource](https://boardsource.xyz/store/5ec9df84c6b834480de6c3d0) + +Extentions enabled by default +- [Layers](https://github.com/KMKfw/kmk_firmware/tree/master/docs/layers.md) Need more keys than switches? Use layers. +- [RGB](https://github.com/KMKfw/kmk_firmware/tree/master/docs/rgb.md) Light it up +- [BLE_Split](https://github.com/KMKfw/kmk_firmware/tree/master/docs/split.md) Connects halves without wires + +Common Extentions +- [Split](https://github.com/KMKfw/kmk_firmware/tree/master/docs/split.md) Connects halves using a wire +- [Power](https://github.com/KMKfw/kmk_firmware/tree/master/docs/power.md) Powersaving features for battery life diff --git a/boards/lily58/kb.py b/boards/lily58/kb.py new file mode 100644 index 0000000..e5925a0 --- /dev/null +++ b/boards/lily58/kb.py @@ -0,0 +1,31 @@ +import board + +from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard +from kmk.matrix import DiodeOrientation +from kmk.matrix import intify_coordinate as ic + + +class KMKKeyboard(_KMKKeyboard): + col_pins = ( + board.P0_31, + board.P0_29, + board.P0_02, + board.P1_15, + board.P1_13, + board.P1_11, + ) + row_pins = (board.P0_22, board.P0_24, board.P1_00, board.P0_11) + diode_orientation = DiodeOrientation.COLUMNS + uart_pin = board.P0_08 + rgb_pixel_pin = board.P0_06 + i2c = board.I2C + powersave_pin = board.P0_13 + + coord_mapping = [] + coord_mapping.extend(ic(0, x) for x in range(12)) + coord_mapping.extend(ic(1, x) for x in range(12)) + coord_mapping.extend(ic(2, x) for x in range(12)) + coord_mapping.extend(ic(3, x) for x in range(12)) + + # And now, to handle R4, which at this point is down to just ten keys + coord_mapping.extend(ic(4, x) for x in range(1, 11)) diff --git a/boards/lily58/main.py b/boards/lily58/main.py new file mode 100644 index 0000000..3396075 --- /dev/null +++ b/boards/lily58/main.py @@ -0,0 +1,66 @@ +from kb import KMKKeyboard, rgb_pixel_pin +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 + +keyboard = KMKKeyboard() + +# Cleaner key names +_______ = KC.TRNS +XXXXXXX = KC.NO + +LOWER = KC.MO(1) +RAISE = KC.MO(2) +ADJUST = KC.LT(3, KC.SPC) + +RGB_TOG = KC.RGB_TOG +RGB_HUI = KC.RGB_HUI +RGB_HUD = KC.RGB_HUI +RGB_SAI = KC.RGB_SAI +RGB_SAD = KC.RGB_SAD +RGB_VAI = KC.RGB_VAI +RGB_VAD = KC.RGB_VAD + +# Adding extentions +rgb = RGB(pixel_pin=rgb_pixel_pin, num_pixels=27, val_limit=100, hue_default=190, sat_default=100, val_default=5) + +# 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() + +extensions = [layers_ext, split, 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,\ + KC.LCTL, KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.SCLN, KC.QUOT,\ + KC.LSFT, KC.Z, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH, KC.RSFT,\ + KC.LGUI, LOWER, ADJUST, KC.ENT, RAISE, KC.RALT, + ], + [ #LOWER + KC.ESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.BSPC,\ + KC.LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.LEFT, KC.DOWN, KC.UP, KC.RIGHT, XXXXXXX, XXXXXXX,\ + KC.LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ + KC.LGUI, LOWER, ADJUST, KC.ENT, RAISE, KC.RALT, + ], + [ #RAISE + KC.ESC, KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN, KC.BSPC,\ + KC.LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.MINS, KC.EQL, KC.LCBR, KC.RCBR, KC.PIPE, KC.GRV,\ + KC.LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.UNDS, KC.PLUS, KC.LBRC, KC.RBRC, KC.BSLS, KC.TILD,\ + KC.LGUI, LOWER, ADJUST, KC.ENT, RAISE, KC.RALT, + ], + [ #ADJUST + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ + XXXXXXX, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ + KC.LGUI, LOWER, ADJUST, KC.ENT, RAISE, KC.RALT, + ] +] + +if __name__ == '__main__': + keyboard.go() diff --git a/boards/reviung39/README.md b/boards/reviung39/README.md new file mode 100644 index 0000000..65bcf0f --- /dev/null +++ b/boards/reviung39/README.md @@ -0,0 +1,20 @@ +# Reviung39 + +![Reviung39](https://boardsource.imgix.net/d6215164-6100-4b72-b355-1a67b7704463.jpg?raw=true) + +Reviung39 is a 39 key keyboard designed by gtips. The Reviung39 sits somewhere between an Atreus and a Corne, you get some nice ergonomic benefits based on its quasi-split design and since a true split keyboard isn't for everyone, this is an awesome middle ground. I find this keyboard extremely comfortable to use. + +kb.py is designed to work with the nice!nano + +Hardware Availability: [PCB & Case Data](https://github.com/gtips/reviung) + +Retailers (USA) +[Boardsource](https://boardsource.xyz/store/5ecb734486879c9a0c22dab3) + +Extentions enabled by default +- [Layers](https://github.com/KMKfw/kmk_firmware/tree/master/docs/layers.md) Need more keys than switches? Use layers. +- [RGB](https://github.com/KMKfw/kmk_firmware/tree/master/docs/rgb.md) Light it up +- [ModTap](https://github.com/KMKfw/kmk_firmware/tree/master/docs/modtap.md) Allows mod keys to act as different keys when tapped. + +Common Extentions +- [Power](https://github.com/KMKfw/kmk_firmware/tree/master/docs/power.md) Powersaving features for battery life diff --git a/boards/reviung39/kb.py b/boards/reviung39/kb.py new file mode 100644 index 0000000..b7dc3f4 --- /dev/null +++ b/boards/reviung39/kb.py @@ -0,0 +1,27 @@ +import board + +from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard +from kmk.matrix import DiodeOrientation + + +class KMKKeyboard(_KMKKeyboard): + row_pins = ( + board.P0_31, + board.P0_29, + board.P0_02, + board.P1_15, + board.P1_13, + board.P1_11, + board.P0_10, + ) + col_pins = ( + board.P0_22, + board.P0_24, + board.P1_00, + board.P0_11, + board.P1_04, + board.P1_06, + ) + diode_orientation = DiodeOrientation.COLUMNS + i2c = board.I2C + powersave_pin = board.P0_13 diff --git a/boards/reviung39/main.py b/boards/reviung39/main.py new file mode 100644 index 0000000..3dc5df6 --- /dev/null +++ b/boards/reviung39/main.py @@ -0,0 +1,47 @@ +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 + +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.keymap = [ + [ #QWERTY + KC.ESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.GRV, + KC.TAB, KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P, KC.MINS, + KC.LCTRL, KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.SCLN, KC.QUOT, + KC.LSFT, KC.Z, KC.X, KC.C, KC.V, KC.B, KC.LBRC, KC.RBRC, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH, KC.RSFT, + KC.LALT, KC.LGUI, LOWER, KC.SPC, KC.ENT, RAISE, KC.BSPC, KC.RGUI + ], + [ #LOWER + KC.F1, KC.F2, KC.F3, KC.F4, KC.F5, KC.F6, KC.F7, KC.F8, KC.F9, KC.F10, KC.F11, KC.F12, + KC.GRV, KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN, KC.TILD, + _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC.UNDS, KC.PLUS, KC.LCBR, KC.RCBR, KC.PIPE, + _______, _______, _______, _______, _______, _______, _______, _______ + ], + [ #RAISE + KC.GRV, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, _______, + KC.F1, KC.F2, KC.F3, KC.F4, KC.F5, KC.F6, XXXXXXX, KC.LEFT, KC.DOWN, KC.UP, KC.RGHT, XXXXXXX, + KC.F7, KC.F8, KC.F9, KC.F10, KC.F11, KC.F12, _______, _______, KC.PLUS, KC.MINS, KC.EQL, KC.LBRC, KC.RBRC, KC.BSLS, + _______, _______, _______, _______, _______, _______, _______, _______ + ] +] + +if __name__ == '__main__': + keyboard.go() diff --git a/boards/reviung41/README.md b/boards/reviung41/README.md new file mode 100644 index 0000000..2b415a7 --- /dev/null +++ b/boards/reviung41/README.md @@ -0,0 +1,20 @@ +# Reviung41 + +![Reviung41](https://boardsource.imgix.net/ea77f3f8-6cc4-4cb4-a801-cf58b5af8fcc.jpg?raw=true) + +The Reviung41 is a 41 key keyboard designed by gtips, it is a slightly larger version of the popular Reviung 39. These "split non-split" keyboards offer a lot of features split keyboards have in terms of comfort and ergonomics but do so in a single-piece package. Many people consider keyboards in this style easier to travel with since you don't have to manage two halves and there is of course no need for a TRRS cable. This board sits somewhere between and Atreus and Corne, and it is extremely comfortable to use. + +kb.py is designed to work with the nice!nano + +Hardware Availability: [PCB & Case Data](https://github.com/gtips/reviung/tree/master/reviung41) + +Retailers (USA) +[Boardsource](https://boardsource.xyz/store/5f2ef1b52bf5e8714a60f613) + +Extentions enabled by default +- [Layers](https://github.com/KMKfw/kmk_firmware/tree/master/docs/layers.md) Need more keys than switches? Use layers. +- [RGB](https://github.com/KMKfw/kmk_firmware/tree/master/docs/rgb.md) Light it up +- [ModTap](https://github.com/KMKfw/kmk_firmware/tree/master/docs/modtap.md) Allows mod keys to act as different keys when tapped. + +Common Extentions +- [Power](https://github.com/KMKfw/kmk_firmware/tree/master/docs/power.md) Powersaving features for battery life diff --git a/boards/reviung41/kb.py b/boards/reviung41/kb.py new file mode 100644 index 0000000..9668db1 --- /dev/null +++ b/boards/reviung41/kb.py @@ -0,0 +1,38 @@ +import board + +from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard +from kmk.matrix import DiodeOrientation +from kmk.matrix import intify_coordinate as ic + + +class KMKKeyboard(_KMKKeyboard): + col_pins = ( + board.P0_22, + board.P0_24, + board.P1_00, + board.P0_11, + board.P1_04, + board.P1_06, + ) + row_pins = ( + board.P0_31, + board.P0_29, + board.P0_02, + board.P1_15, + board.P1_13, + board.P1_11, + board.P0_10, + ) + diode_orientation = DiodeOrientation.COLUMNS + rgb_pixel_pin = board.P0_06 + rgb_num_pixels = 11 + i2c = board.I2C + powersave_pin = board.P0_13 + + coord_mapping = [] + coord_mapping.extend(ic(0, x) for x in range(12)) + coord_mapping.extend(ic(1, x) for x in range(12)) + coord_mapping.extend(ic(2, x) for x in range(12)) + + # And now, to handle R3, which at this point is down to just five keys + coord_mapping.extend(ic(3, x) for x in range(5)) diff --git a/boards/reviung41/main.py b/boards/reviung41/main.py new file mode 100644 index 0000000..d60bce9 --- /dev/null +++ b/boards/reviung41/main.py @@ -0,0 +1,63 @@ +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 + +keyboard = KMKKeyboard() + +# Cleaner key names +_______ = KC.TRNS +XXXXXXX = KC.NO + +LOWER = KC.MO(1) +RAISE = KC.MO(2) +ADJUST = KC.LT(3, KC.SPC) +RSFT_ENT = KC.MT(KC.ENT, KC.RSFT) +RSFT_SPC = KC.MT(KC.SPC, KC.RSFT) + +RGB_TOG = KC.RGB_TOG +RGB_HUI = KC.RGB_HUI +RGB_HUD = KC.RGB_HUI +RGB_SAI = KC.RGB_SAI +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, + KC.LCTL, KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.SCLN, KC.QUOT, + KC.LSFT, KC.Z, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH, RSFT_ENT, + KC.LALT, LOWER, KC.SPC, RAISE, KC.RGUI, + ], + [ #LOWER + KC.ESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.BSPC, + KC.LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.LEFT, KC.DOWN, KC.UP, KC.RIGHT, XXXXXXX, XXXXXXX, + KC.LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RSFT_SPC, + KC.LALT, LOWER, KC.SPC, RAISE, KC.RGUI, + ], + [ #RAISE + KC.ESC, KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN, KC.BSPC, + KC.LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.MINS, KC.EQL, KC.LCBR, KC.RCBR, KC.PIPE, KC.GRV, + KC.LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.UNDS, KC.PLUS, KC.LBRC, KC.RBRC, KC.BSLS, KC.TILD, + KC.LALT, LOWER, KC.SPC, RAISE, KC.RGUI, + ], + [ #ADJUST + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC.LALT, LOWER, KC.SPC, RAISE, KC.RGUI, + ] +] + +if __name__ == '__main__': + keyboard.go() diff --git a/boards/rhymestone/README.md b/boards/rhymestone/README.md new file mode 100644 index 0000000..62b8059 --- /dev/null +++ b/boards/rhymestone/README.md @@ -0,0 +1,19 @@ +# Rhymestone + +![rhymestone](https://boardsource.imgix.net/0968c21e-ed0c-47ec-ae5e-511ec6eb3bd2.jpg?raw=true) + +The Rhymestone is 40-key ortholinear split keyboard. Originally the Rhymestone was created to be sold alongside the Treadstone and used as either a Macro pad or a 10-key numpad, hence the similar naming conventions. However; the Rhymestone is also often used as a standalone split keyboard by people who prefer a 5 column ortholinear layout. + +kb.py is designed to work with the nice!nano + +Retailers (USA) +[Boardsource](https://boardsource.xyz/store/5ecb6aee86879c9a0c22da89) + +Extentions enabled by default +- [Layers](https://github.com/KMKfw/kmk_firmware/tree/master/docs/layers.md) Need more keys than switches? Use layers. +- [BLE_Split](https://github.com/KMKfw/kmk_firmware/tree/master/docs/split.md) Connects halves without wires +- [ModTap](https://github.com/KMKfw/kmk_firmware/tree/master/docs/modtap.md) Allows mod keys to act as different keys when tapped. + +Common Extentions +- [Split](https://github.com/KMKfw/kmk_firmware/tree/master/docs/split.md) Connects halves using a wire +- [Power](https://github.com/KMKfw/kmk_firmware/tree/master/docs/power.md) Powersaving features for battery life diff --git a/boards/rhymestone/kb.py b/boards/rhymestone/kb.py new file mode 100644 index 0000000..2a6fbac --- /dev/null +++ b/boards/rhymestone/kb.py @@ -0,0 +1,14 @@ +import board + +from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard +from kmk.matrix import DiodeOrientation + + +class KMKKeyboard(_KMKKeyboard): + row_pins = (board.P0_31, board.P0_29, board.P0_02, board.P1_15) + col_pins = (board.P0_22, board.P0_24, board.P1_00, board.P0_11, board.P1_04) + diode_orientation = DiodeOrientation.COLUMNS + rgb_pixel_pin = board.P0_06 + rgb_num_pixels = 40 + i2c = board.I2C + powersave_pin = board.P0_13 diff --git a/boards/rhymestone/main.py b/boards/rhymestone/main.py new file mode 100644 index 0000000..1b86eba --- /dev/null +++ b/boards/rhymestone/main.py @@ -0,0 +1,52 @@ +from kb import KMKKeyboard +from kmk.extensions.ble_split import BLE_Split +from kmk.extensions.layers import Layers +from kmk.keys import KC + +keyboard = KMKKeyboard() + +# Cleaner key names +_______ = KC.TRNS +XXXXXXX = KC.NO + +LOWER = KC.MO(2) +RAISE = KC.MO(1) + +KC_Z_SF = KC.LSFT(KC.Z) +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, + KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.ENT, + KC.Z_SF, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSF, + KC.LCTL, KC.LALT, KC.LGUI, LOWER, KC.BSPC, KC.SPC, RAISE, KC.RGUI, KC.APP, KC.RCTL + ], + [ #RAISE + KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, + KC.LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.LEFT, KC.DOWN, KC.UP, KC.RGHT, KC.RSFT, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.MINS, KC.RO, KC.COMM, KC.DOT, KC.SLSF, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ], + [ #LOWER + KC.F1, KC.F2, KC.F3, KC.F4, KC.F5, KC.MINS, KC.EQL, KC.LBRC, KC.RBRC, KC.BSLS, + KC.F6, KC.F7, KC.F8, KC.F9, KC.F10, XXXXXXX, XXXXXXX, XXXXXXX, KC.SCLN, KC.QUOT, + KC.N11SF, KC.F12, KC.ESC, KC.TAB, _______, KC.DEL, XXXXXXX, XXXXXXX, KC.RO, KC.GRSF, + _______, _______, _______, _______, KC.DEL, _______, _______, _______, _______, _______ + ] +] + +if __name__ == '__main__': + keyboard.go() diff --git a/boards/tg4x/README.md b/boards/tg4x/README.md new file mode 100644 index 0000000..aef7d06 --- /dev/null +++ b/boards/tg4x/README.md @@ -0,0 +1,17 @@ +# TG4X + +![TG4X](https://boardsource.imgix.net/d50e1163-06dd-4c18-826e-caacd0a4a33d.jpg?raw=true) + +TG4X is a 45% staggered keyboard, compared to a standard 40% stagger it has one additional column which makes it an approachable and highly use-able 40%-ish stagger. + +kb.py is designed to work with the nice!nano + +Retailers (USA) +[Boardsource](https://boardsource.xyz/store/5eff7ead037395179221b90c) + +Extentions enabled by default +- [Layers](https://github.com/KMKfw/kmk_firmware/tree/master/docs/layers.md) Need more keys than switches? Use layers. +- [RGB](https://github.com/KMKfw/kmk_firmware/tree/master/docs/rgb.md) Light it up + +Common Extentions +- [Power](https://github.com/KMKfw/kmk_firmware/tree/master/docs/power.md) Powersaving features for battery life diff --git a/boards/tg4x/kb.py b/boards/tg4x/kb.py new file mode 100644 index 0000000..96d76ee --- /dev/null +++ b/boards/tg4x/kb.py @@ -0,0 +1,31 @@ +import board + +from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard +from kmk.matrix import DiodeOrientation + + +class KMKKeyboard(_KMKKeyboard): + row_pins = ( + board.P1_06, + board.P1_04, + board.P0_11, + board.P1_00, + board.P0_24, + board.P0_22, + board.P0_20, + board.P0_17, + ) + col_pins = [ + board.P0_06, + board.P1_11, + board.P1_13, + board.P1_15, + board.P0_02, + board.P0_29, + board.P0_31, + ] + diode_orientation = DiodeOrientation.COLUMNS + rgb_pixel_pin = board.P0_08 + rgb_num_pixels = 6 + i2c = board.I2C + powersave_pin = board.P0_13 diff --git a/boards/tg4x/main.py b/boards/tg4x/main.py new file mode 100644 index 0000000..16561ce --- /dev/null +++ b/boards/tg4x/main.py @@ -0,0 +1,35 @@ +from kb import KMKKeyboard +from kmk.extensions.layers import Layers +from kmk.extensions.rgb import RGB +from kmk.keys import KC + +keyboard = KMKKeyboard() + +# Cleaner key names +_______ = KC.TRNS +XXXXXXX = KC.NO + +# 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) + +layers_ext = Layers() + +keyboard.extensions = [layers_ext, rgb] + +keyboard.keymap = [ + [ #QWERTY + KC.ESC, KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P, KC.MINS, KC.DEL,\ + KC.TAB, KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.QUOT, KC.ENT,\ + KC.LSFT, KC.Z, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH, KC.RSFT,\ + KC.LCTL, KC.LGUI, KC.LALT, KC.SPACE, KC.SPACE, KC.RALT, KC.RGUI, KC.RCTL, KC.MO(1)\ + ], + [ #LOWER + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ], +] + +if __name__ == '__main__': + keyboard.go() diff --git a/kmk/handlers/sequences.py b/kmk/handlers/sequences.py index 8cff830..a72c7bf 100644 --- a/kmk/handlers/sequences.py +++ b/kmk/handlers/sequences.py @@ -1,3 +1,5 @@ +import gc + from kmk.consts import UnicodeMode from kmk.handlers.stock import passthrough from kmk.keys import KC, make_key @@ -59,10 +61,23 @@ RALT_UP_NO_PRESS = simple_key_sequence((KC.RALT(no_press=True),)) def compile_unicode_string_sequences(string_table): - for k, v in string_table.items(): - string_table[k] = unicode_string_sequence(v) + ''' + Destructively convert ("compile") unicode strings into key sequences. This + will, for RAM saving reasons, empty the input dictionary and trigger + garbage collection. + ''' + target = AttrDict() - return AttrDict(string_table) + for k, v in string_table.items(): + target[k] = unicode_string_sequence(v) + + # now loop through and kill the input dictionary to save RAM + for k in target.keys(): + del string_table[k] + + gc.collect() + + return target def unicode_string_sequence(unistring): diff --git a/kmk/kmk_keyboard.py b/kmk/kmk_keyboard.py index e620c1e..fe87699 100644 --- a/kmk/kmk_keyboard.py +++ b/kmk/kmk_keyboard.py @@ -55,14 +55,14 @@ class KMKKeyboard: _tap_dance_counts = {} _tap_side_effects = {} + # on some M4 setups (such as klardotsh/klarank_feather_m4, CircuitPython + # 6.0rc1) this runs out of RAM every cycle and takes down the board. no + # real known fix yet other than turning off debug, but M4s have always been + # tight on RAM so.... def __repr__(self): return ( 'KMKKeyboard(' 'debug_enabled={} ' - 'keymap=truncated ' - 'coord_mapping=truncated ' - 'row_pins=truncated ' - 'col_pins=truncated ' 'diode_orientation={} ' 'matrix_scanner={} ' 'unicode_mode={} ' @@ -79,10 +79,6 @@ class KMKKeyboard: ')' ).format( self.debug_enabled, - # self.keymap, - # self.coord_mapping, - # self.row_pins, - # self.col_pins, self.diode_orientation, self.matrix_scanner, self.unicode_mode, @@ -103,6 +99,7 @@ class KMKKeyboard: if self.debug_enabled: if init: print('KMKInit(release={})'.format(KMK_RELEASE)) + gc.collect() print(self) diff --git a/user_keymaps/default/__init__.py b/user_keymaps/default/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/user_keymaps/default/converter/__init__.py b/user_keymaps/default/converter/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/user_keymaps/default/converter/fourtypercentclub/__init__.py b/user_keymaps/default/converter/fourtypercentclub/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/user_keymaps/default/converter/keebio/__init__.py b/user_keymaps/default/converter/keebio/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/user_keymaps/default/nice_nano/__init__.py b/user_keymaps/default/nice_nano/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/user_keymaps/dzervas/lab68.py b/user_keymaps/dzervas/lab68.py index 7d1e05c..636fcd1 100644 --- a/user_keymaps/dzervas/lab68.py +++ b/user_keymaps/dzervas/lab68.py @@ -3,6 +3,7 @@ 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 @@ -13,6 +14,8 @@ from kmk.matrix import DiodeOrientation 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] _______ = KC.TRNS XXXXXXX = KC.NO diff --git a/user_keymaps/kdb424/gherkin.py b/user_keymaps/kdb424/gherkin.py deleted file mode 100644 index 6df6978..0000000 --- a/user_keymaps/kdb424/gherkin.py +++ /dev/null @@ -1,87 +0,0 @@ -import board - -from kmk.consts import UnicodeMode -from kmk.handlers.sequences import compile_unicode_string_sequences, send_string -from kmk.keys import KC -from kmk.kmk_keyboard import KMKKeyboard -from kmk.matrix import DiodeOrientation -from kmk.types import AttrDict - -keyboard = KMKKeyboard() - -''' -Converter/handwire: - -PB5: SCL -PB4: SDA -PE6: A0 -PD7: A1 -PC6: A2 -PD4: A3 -PD0: A4 - -PB6: D2 -PB2: TX -PB3: RX -PB1: MI -PF7: MO -PF6: SCK -PF5: A5 - -Mosfet on B5 to control backlight -''' - -keyboard.col_pins = (board.A4, board.A2, board.A3, board.A1, board.A0, board.SDA) -keyboard.row_pins = (board.D2, board.TX, board.RX, board.MISO, board.MOSI) - -# Kyle is fucking stupid -keyboard.col_pins = tuple(reversed(keyboard.col_pins)) -keyboard.row_pins = tuple(reversed(keyboard.row_pins)) - -keyboard.diode_orientation = DiodeOrientation.COLUMNS - - -# ------------------User level config variables --------------------------------------- -keyboard.unicode_mode = UnicodeMode.LINUX -keyboard.tap_time = 350 -keyboard.leader_timeout = 2000 -keyboard.debug_enabled = False - -emoticons = compile_unicode_string_sequences({ - # Emoticons, but fancier - 'ANGRY_TABLE_FLIP': r'(ノಠ痊ಠ)ノ彡┻━┻', - 'CHEER': r'+。:.゚ヽ(´∀。)ノ゚.:。+゚゚+。:.゚ヽ(*´∀)ノ゚.:。+゚', - 'TABLE_FLIP': r'(╯°□°)╯︵ ┻━┻', - 'WAT': r'⊙.☉', - 'FF': r'凸(゚Д゚#)', - 'F': r'( ̄^ ̄)凸', - 'MEH': r'╮( ̄_ ̄)╭', - 'YAY': r'o(^▽^)o', -}) - -# ---------------------- Leader Key Macros -------------------------------------------- - -keyboard.leader_dictionary = { - 'flip': emoticons.ANGRY_TABLE_FLIP, - 'cheer': emoticons.CHEER, - 'wat': emoticons.WAT, - 'ff': emoticons.FF, - 'f': emoticons.F, - 'meh': emoticons.MEH, - 'yay': emoticons.YAY, -} - -WPM = send_string('Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Bibendum arcu vitae elementum curabitur vitae nunc sed. Facilisis sed odio morbi quis.') - -# ---------------------- Keymap --------------------------------------------------------- - -keyboard.keymap = [ - [ - KC.GESC, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P, - KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.ESC, - KC.Z, KC.X, KC.C, KC.V, KC.BSPC, KC.SPC, KC.B, KC.N, KC.M, KC.ENT, - ], -] - -if __name__ == '__main__': - keyboard.go() diff --git a/user_keymaps/kdb424/klanck.py b/user_keymaps/kdb424/klanck.py deleted file mode 100644 index 555d3c9..0000000 --- a/user_keymaps/kdb424/klanck.py +++ /dev/null @@ -1,90 +0,0 @@ -import board - -from kmk.consts import UnicodeMode -from kmk.handlers.sequences import compile_unicode_string_sequences, send_string -from kmk.keys import KC -from kmk.kmk_keyboard import KMKKeyboard -from kmk.matrix import DiodeOrientation -from kmk.types import AttrDict - -keyboard = KMKKeyboard() - -keyboard.col_pins = (board.A0, board.A1, board.A2, board.A3, board.A4, board.A5, board.SCK, board.MOSI, board.MISO, board.RX, board.TX, board.D4) -keyboard.row_pins = (board.D10, board.D11, board.D12, board.D13) -keyboard.diode_orientation = DiodeOrientation.COLUMNS - - -# ------------------User level config variables --------------------------------------- -keyboard.unicode_mode = UnicodeMode.LINUX -keyboard.tap_time = 350 -keyboard.leader_timeout = 2000 -keyboard.debug_enabled = False - -emoticons = compile_unicode_string_sequences({ - # Emoticons, but fancier - 'ANGRY_TABLE_FLIP': r'(ノಠ痊ಠ)ノ彡┻━┻', - 'CHEER': r'+。:.゚ヽ(´∀。)ノ゚.:。+゚゚+。:.゚ヽ(*´∀)ノ゚.:。+゚', - 'TABLE_FLIP': r'(╯°□°)╯︵ ┻━┻', - 'WAT': r'⊙.☉', - 'FF': r'凸(゚Д゚#)', - 'F': r'( ̄^ ̄)凸', - 'MEH': r'╮( ̄_ ̄)╭', - 'YAY': r'o(^▽^)o', -}) - -# ---------------------- Leader Key Macros -------------------------------------------- - -keyboard.leader_dictionary = { - 'flip': emoticons.ANGRY_TABLE_FLIP, - 'cheer': emoticons.CHEER, - 'wat': emoticons.WAT, - 'ff': emoticons.FF, - 'f': emoticons.F, - 'meh': emoticons.MEH, - 'yay': emoticons.YAY, -} - -WPM = send_string('Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Bibendum arcu vitae elementum curabitur vitae nunc sed. Facilisis sed odio morbi quis.') - -# ---------------------- Keymap --------------------------------------------------------- - -keyboard.keymap = [ - [ - # default - KC.GESC, KC.QUOTE, KC.COMMA, KC.DOT, KC.P, KC.Y, KC.F, KC.G, KC.C, KC.R, KC.L, KC.BKSP, - KC.TAB, KC.A, KC.O, KC.E, KC.U, KC.I, KC.D, KC.H, KC.T, KC.N, KC.S, KC.ENT, - KC.LSFT, KC.SCLN, KC.Q, KC.J, KC.K, KC.X, KC.B, KC.M, KC.W, KC.V, KC.Z, KC.SLSH, - KC.LCTRL, KC.LGUI, KC.LALT, KC.LEAD, KC.MO(2), KC.LT(3, KC.SPC), KC.LT(3, KC.SPC), KC.MO(4), KC.LEFT, KC.DOWN, KC.UP, KC.RIGHT, - ], - [ - # Gaming - KC.TAB, KC.QUOT, KC.COMM, KC.DOT, KC.P, KC.Y, KC.F, KC.G, KC.C, KC.R, KC.L, KC.BKSP, - KC.ESC, KC.A, KC.O, KC.E, KC.U, KC.I, KC.D, KC.H, KC.T, KC.N, KC.S, KC.ENT, - KC.LSFT, KC.SCLN, KC.Q, KC.J, KC.K, KC.X, KC.B, KC.M, KC.W, KC.V, KC.Z, KC.SLSH, - KC.LCTRL, KC.LGUI, KC.LALT, KC.F1, KC.F2, KC.SPC, KC.SPC, KC.MO(4), KC.LEFT, KC.DOWN, KC.UP, KC.RIGHT, - ], - [ - # Raise1 - KC.TILD, KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN, KC.DEL, - KC.TRNS, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.LBRC, KC.RBRC, KC.BSLS, - KC.TRNS, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.INS, KC.PGDN, KC.PGUP, KC.MINS, - KC.RESET, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.NO, KC.NO, KC.EQL, KC.HOME, KC.VOLD, KC.VOLU, KC.END, - ], - [ - # Raise2 - KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.N7, KC.N8, KC.N9, KC.BKSP, - KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.N4, KC.N5, KC.N6, KC.NO, - KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.N1, KC.N2, KC.N3, KC.NO, - KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.N0, KC.N0, KC.PDOT, KC.ENT, - ], - [ - # Raise3 - WPM, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.F10, KC.F11, KC.F12, KC.LSHIFT(KC.INS), - KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.F7, KC.F8, KC.F9, KC.NO, - KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.F4, KC.F5, KC.F6, KC.NO, - KC.DF(0), KC.DF(1), KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.F1, KC.F2, KC.F3, KC.NO, - ], -] - -if __name__ == '__main__': - keyboard.go() diff --git a/user_keymaps/kdb424/levinson_r2.py b/user_keymaps/kdb424/levinson_r2.py deleted file mode 100644 index 5ae7352..0000000 --- a/user_keymaps/kdb424/levinson_r2.py +++ /dev/null @@ -1,93 +0,0 @@ -from kmk.boards.converter.keebio.levinson_r2 import KMKKeyboard -from kmk.consts import LeaderMode, UnicodeMode -from kmk.handlers.sequences import compile_unicode_string_sequences -from kmk.keys import KC - -keyboard = KMKKeyboard() - -# ------------------User level config variables --------------------------------------- -keyboard.leader_mode = LeaderMode.TIMEOUT -keyboard.unicode_mode = UnicodeMode.LINUX -keyboard.tap_time = 150 -keyboard.leader_timeout = 2000 -keyboard.debug_enabled = True - -keyboard.rgb_config['num_pixels'] = 16 -keyboard.rgb_config['val_limit'] = 150 -keyboard.rgb_config['hue_step'] = 10 -keyboard.rgb_config['sat_step'] = 5 -keyboard.rgb_config['val_step'] = 5 -keyboard.rgb_config['hue_default'] = 260 -keyboard.rgb_config['sat_default'] = 100 -keyboard.rgb_config['val_default'] = 20 -keyboard.rgb_config['knight_effect_length'] = 6 -keyboard.rgb_config['animation_mode'] = 'swirl' -keyboard.rgb_config['animation_speed'] = 2 -keyboard.debug_enabled = False - -emoticons = compile_unicode_string_sequences({ - # Emoticons, but fancier - 'ANGRY_TABLE_FLIP': r'(ノಠ痊ಠ)ノ彡┻━┻', - 'CHEER': r'+。:.゚ヽ(´∀。)ノ゚.:。+゚゚+。:.゚ヽ(*´∀)ノ゚.:。+゚', - 'TABLE_FLIP': r'(╯°□°)╯︵ ┻━┻', - 'WAT': r'⊙.☉', - 'FF': r'凸(゚Д゚#)', - 'F': r'( ̄^ ̄)凸', - 'MEH': r'╮( ̄_ ̄)╭', - 'YAY': r'o(^▽^)o', -}) - -# ---------------------- Leader Key Macros -------------------------------------------- - -keyboard.leader_dictionary = { - 'flip': emoticons.ANGRY_TABLE_FLIP, - 'cheer': emoticons.CHEER, - 'wat': emoticons.WAT, - 'ff': emoticons.FF, - 'f': emoticons.F, - 'meh': emoticons.MEH, - 'yay': emoticons.YAY, -} - -# ---------------------- Keymap --------------------------------------------------------- - -keyboard.keymap = [ - [ - # default - KC.GESC, KC.QUOTE, KC.COMMA, KC.DOT, KC.P, KC.Y, KC.F, KC.G, KC.C, KC.R, KC.L, KC.BKSP, - KC.TAB, KC.A, KC.O, KC.E, KC.U, KC.I, KC.D, KC.H, KC.T, KC.N, KC.S, KC.ENT, - KC.LSFT, KC.SCLN, KC.Q, KC.J, KC.K, KC.X, KC.B, KC.M, KC.W, KC.V, KC.Z, KC.SLSH, - KC.LCTRL, KC.LGUI, KC.LALT, KC.RGB_TOG, KC.MO(2), KC.LT(3, KC.SPC), KC.LT(3, KC.SPC), KC.MO(4), KC.LEFT, KC.DOWN, KC.UP, KC.RIGHT, - ], - [ - # Gaming - KC.TAB, KC.QUOT, KC.COMM, KC.DOT, KC.P, KC.Y, KC.F, KC.G, KC.C, KC.R, KC.L, KC.BKSP, - KC.ESC, KC.A, KC.O, KC.E, KC.U, KC.I, KC.D, KC.H, KC.T, KC.N, KC.S, KC.ENT, - KC.LSFT, KC.SCLN, KC.Q, KC.J, KC.K, KC.X, KC.B, KC.M, KC.W, KC.V, KC.Z, KC.SLSH, - KC.LCTRL, KC.LGUI, KC.LALT, KC.F1, KC.F2, KC.SPC, KC.SPC, KC.MO(4), KC.LEFT, KC.DOWN, KC.UP, KC.RIGHT, - ], - [ - # Raise1 - KC.TILD, KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN, KC.DEL, - KC.TRNS, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.LBRC, KC.RBRC, KC.BSLS, - KC.TRNS, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.INS, KC.PGDN, KC.PGUP, KC.MINS, - KC.RESET, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.NO, KC.NO, KC.EQL, KC.HOME, KC.VOLD, KC.VOLU, KC.END, - ], - [ - # Raise2 - KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.N7, KC.N8, KC.N9, KC.BKSP, - KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.N4, KC.N5, KC.N6, KC.NO, - KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.N1, KC.N2, KC.N3, KC.NO, - KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.N0, KC.N0, KC.PDOT, KC.ENT, - ], - [ - # Raise3 - KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.F10, KC.F11, KC.F12, KC.LSHIFT(KC.INS), - KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.F7, KC.F8, KC.F9, KC.NO, - KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.F4, KC.F5, KC.F6, KC.NO, - KC.DF(0), KC.DF(1), KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.F1, KC.F2, KC.F3, KC.NO, - ], -] - -if __name__ == '__main__': - keyboard.go() diff --git a/user_keymaps/kdb424/luddite.py b/user_keymaps/kdb424/luddite.py index 1e2ac2f..31d2ba9 100644 --- a/user_keymaps/kdb424/luddite.py +++ b/user_keymaps/kdb424/luddite.py @@ -1,4 +1,7 @@ -from kmk.boards.converter.fourtypercentclub.luddite import KMKKeyboard +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 keyboard = KMKKeyboard() @@ -7,17 +10,6 @@ keyboard = KMKKeyboard() keyboard.tap_time = 150 -keyboard.rgb_config['num_pixels'] = 16 -keyboard.rgb_config['val_limit'] = 150 -keyboard.rgb_config['hue_step'] = 10 -keyboard.rgb_config['sat_step'] = 5 -keyboard.rgb_config['val_step'] = 5 -keyboard.rgb_config['hue_default'] = 260 -keyboard.rgb_config['sat_default'] = 100 -keyboard.rgb_config['val_default'] = 0 -keyboard.rgb_config['knight_effect_length'] = 6 -keyboard.rgb_config['animation_mode'] = 'static' -keyboard.rgb_config['animation_speed'] = 2 keyboard.debug_enabled = False @@ -27,13 +19,19 @@ BASE = 0 GAMING = 1 FN1 = 2 +rgb_ext = RGB(pixel_pin=keyboard.rgb_pixel_pin, num_pixels=keyboard.rgb_num_pixels) +layers_ext = Layers() +modtap = ModTap() + +keyboard.extensions = [rgb_ext, layers_ext, modtap] + _______ = KC.TRNS XXXXXXX = KC.NO HOME = KC.MT(KC.HOME, KC.LSFT) END = KC.MT(KC.END, KC.RSFT) LEFT_LAY = KC.LT(FN1, KC.LEFT) SHFT_INS = KC.LSFT(KC.INS) -SPC = KC.LT(2, KC.SPC) +SPC = KC.LT(FN1, KC.SPC) # ---------------------- Keymap --------------------------------------------------------- @@ -43,7 +41,7 @@ keyboard.keymap = [ # df [ KC.GESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.LBRC, KC.RBRC, KC.BSPC, - KC.LEAD, KC.QUOT, KC.COMM, KC.DOT, KC.P, KC.Y, KC.F, KC.G, KC.C, KC.R, KC.L, KC.SLSH, KC.EQL, KC.BSLS, + KC.RGB_TOG, KC.QUOT, KC.COMM, KC.DOT, KC.P, KC.Y, KC.F, KC.G, KC.C, KC.R, KC.L, KC.SLSH, KC.EQL, KC.BSLS, KC.TAB, KC.A, KC.O, KC.E, KC.U, KC.I, KC.D, KC.H, KC.T, KC.N, KC.S, KC.MINS, KC.ENT, KC.LSFT, KC.SCLN, KC.Q, KC.J, KC.K, KC.X, KC.B, KC.M, KC.W, KC.V, KC.Z, KC.RSFT, KC.LCTL, KC.LGUI, KC.LALT, SPC, KC.LEFT, KC.DOWN, KC.UP, KC.RIGHT, @@ -52,7 +50,7 @@ keyboard.keymap = [ # df [ KC.GESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.LBRC, KC.RBRC, KC.BSPC, - KC.LEAD, KC.QUOT, KC.COMM, KC.DOT, KC.P, KC.Y, KC.F, KC.G, KC.C, KC.R, KC.L, KC.SLSH, KC.EQL, KC.BSLS, + KC.RGB_TOG, KC.QUOT, KC.COMM, KC.DOT, KC.P, KC.Y, KC.F, KC.G, KC.C, KC.R, KC.L, KC.SLSH, KC.EQL, KC.BSLS, KC.TAB, KC.A, KC.O, KC.E, KC.U, KC.I, KC.D, KC.H, KC.T, KC.N, KC.S, KC.MINS, KC.ENT, KC.LSFT, KC.SCLN, KC.Q, KC.J, KC.K, KC.X, KC.B, KC.M, KC.W, KC.V, KC.Z, KC.RSFT, KC.LCTL, KC.LGUI, KC.LALT, KC.SPC, LEFT_LAY, KC.DOWN, KC.UP, KC.RIGHT, @@ -62,8 +60,8 @@ keyboard.keymap = [ [ KC.GESC, KC.F1, KC.F2, KC.F3, KC.F4, KC.F5, KC.F6, KC.F7, KC.F8, KC.F9, KC.F10, KC.F11, KC.F12, KC.DEL, KC.RESET, KC.RGB_HUD, KC.RGB_HUI, _______, _______, _______, _______, _______, _______, KC.RGB_M_S, _______, _______, KC.VOLU, SHFT_INS, - _______, KC.RGB_SAD, KC.RGB_SAI, _______, _______, _______, _______, _______, KC.RGB_TOG, _______, KC.RGB_M_P, KC.VOLD, _______, - _______, KC.RGB_VAD, KC.RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC.RGB_ANI, KC.RGB_SAD, KC.RGB_SAI, _______, _______, _______, _______, _______, KC.RGB_TOG, _______, KC.RGB_M_P, KC.VOLD, _______, + KC.RGB_AND, KC.RGB_VAD, KC.RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC.DF(0), KC.DF(1), ], ] diff --git a/user_keymaps/kdb424/nyquist_r2.py b/user_keymaps/kdb424/nyquist_r2.py index 3e29f75..ac89e1f 100644 --- a/user_keymaps/kdb424/nyquist_r2.py +++ b/user_keymaps/kdb424/nyquist_r2.py @@ -1,7 +1,10 @@ import board -from kmk.boards.converter.keebio.nyquist_r2 import KMKKeyboard +from kb import KMKKeyboard +from kmk.extensions.layers import Layers from kmk.extensions.leader import Leader, LeaderMode +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 @@ -9,23 +12,19 @@ keyboard = KMKKeyboard() # ------------------User level config variables --------------------------------------- keyboard.tap_time = 150 -keyboard.leader_timeout = 2000 -# RGB Config (underglow) -''' -keyboard.rgb_config['num_pixels'] = 12 -keyboard.rgb_config['val_limit'] = 150 -keyboard.rgb_config['hue_step'] = 10 -keyboard.rgb_config['sat_step'] = 5 -keyboard.rgb_config['val_step'] = 5 -keyboard.rgb_config['hue_default'] = 260 -keyboard.rgb_config['sat_default'] = 100 -keyboard.rgb_config['val_default'] = 40 -keyboard.rgb_config['knight_effect_length'] = 4 -keyboard.rgb_config['animation_mode'] = 'static' -keyboard.rgb_config['animation_speed'] = 1 -''' -keyboard.debug_enabled = False +leader_ext = Leader(mode=LeaderMode.ENTER, sequences={ + 'hello': send_string('hello world from kmk macros'), + 'ls': KC.LGUI(KC.HOME), + 'dbg': KC.DBG, +}) + +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 = [leader_ext, modtap, layers, rgb_ext] + _______ = KC.TRNS XXXXXXX = KC.NO SHFT_INS = KC.LSHIFT(KC.INS) @@ -36,14 +35,6 @@ BASE = KC.DF(0) LT2_SP = KC.LT(3, KC.SPC) GAMING = KC.DF(1) -leader_ext = Leader(mode=LeaderMode.ENTER, sequences={ - 'hello': send_string('hello world from kmk macros'), - 'ls': KC.LGUI(KC.HOME), - 'dbg': KC.DBG, -}) - -keyboard.extensions.append(leader_ext) - HACHEEJ = simple_key_sequence(( KC.LSFT(KC.SCOLON), KC.H, KC.A, KC.C, KC.H, KC.E, KC.E, KC.J, KC.A, KC.I, KC.L, KC.N1, KC.LSFT(KC.SCOLON), KC.LSFT(KC.SCOLON), KC.H, KC.A, KC.C, KC.H, KC.E, KC.E, KC.J, KC.A, KC.I, KC.L, KC.N2, KC.LSFT(KC.SCOLON), diff --git a/user_keymaps/klardotsh/iris_r2.py b/user_keymaps/klardotsh/iris_r2.py index dab29a1..e1eacac 100644 --- a/user_keymaps/klardotsh/iris_r2.py +++ b/user_keymaps/klardotsh/iris_r2.py @@ -1,10 +1,13 @@ -from kmk.boards.converter.keebio.iris_r2 import KMKKeyboard -from kmk.consts import LeaderMode, UnicodeMode +from kb import KMKKeyboard +from kmk.consts import UnicodeMode +from kmk.extensions.layers import Layers +from kmk.extensions.leader import Leader, LeaderMode from kmk.handlers.sequences import compile_unicode_string_sequences as cuss from kmk.handlers.sequences import send_string from kmk.keys import KC keyboard = KMKKeyboard() +layers_ext = Layers() keyboard.debug_enabled = False keyboard.unicode_mode = UnicodeMode.LINUX @@ -43,8 +46,7 @@ emoticons = cuss({ WPM = send_string('Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Bibendum arcu vitae elementum curabitur vitae nunc sed. Facilisis sed odio morbi quis.') -keyboard.leader_mode = LeaderMode.ENTER -keyboard.leader_dictionary = { +leader_dictionary = { 'hello': send_string('hello world from kmk macros'), 'wpm': WPM, 'atf': emoticons.ANGRY_TABLE_FLIP, @@ -70,6 +72,9 @@ HELLA_TD = KC.TD( KC.TG(1), ) +leader_ext = Leader(mode=LeaderMode.ENTER, sequences=leader_dictionary) +keyboard.extentions = [layers_ext, leader_ext] + keyboard.keymap = [ [ KC.GESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.BSPC, diff --git a/user_keymaps/klardotsh/klarank_featherm4.py b/user_keymaps/klardotsh/klarank_featherm4.py index 233780b..2f53fa4 100644 --- a/user_keymaps/klardotsh/klarank_featherm4.py +++ b/user_keymaps/klardotsh/klarank_featherm4.py @@ -1,4 +1,4 @@ -from kmk.boards.klarank import KMKKeyboard +from kb import KMKKeyboard from kmk.consts import UnicodeMode from kmk.extensions.leader import Leader, LeaderMode from kmk.handlers.sequences import compile_unicode_string_sequences as cuss @@ -7,7 +7,7 @@ from kmk.keys import KC, make_key keyboard = KMKKeyboard() -keyboard.debug_enabled = True +keyboard.debug_enabled = False keyboard.unicode_mode = UnicodeMode.LINUX keyboard.tap_time = 750 diff --git a/user_keymaps/rk463345/levinson_r2.py b/user_keymaps/rk463345/levinson_r2.py index aa8dadc..4e1a2c6 100755 --- a/user_keymaps/rk463345/levinson_r2.py +++ b/user_keymaps/rk463345/levinson_r2.py @@ -1,28 +1,21 @@ -from kmk.boards.converter.keebio.levinson_r2 import KMKKeyboard -from kmk.consts import LeaderMode, UnicodeMode +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 keyboard = KMKKeyboard() +layers = Layers() +media_keys = MediaKeys() +rgb_ext = RGB(pixel_pin=keyboard.rgb_pixel_pin, num_pixels=16, val_limit=150, hue_default=0, sat_default=100, val_default=20) + # ------------------User level config variables --------------------------------------- -keyboard.leader_mode = LeaderMode.TIMEOUT keyboard.unicode_mode = UnicodeMode.LINUX keyboard.tap_time = 150 -keyboard.leader_timeout = 2000 -keyboard.debug_enabled = True -keyboard.rgb_config['num_pixels'] = 16 -keyboard.rgb_config['val_limit'] = 150 -keyboard.rgb_config['hue_step'] = 1 -keyboard.rgb_config['sat_step'] = 5 -keyboard.rgb_config['val_step'] = 5 -keyboard.rgb_config['hue_default'] = 0 -keyboard.rgb_config['sat_default'] = 100 -keyboard.rgb_config['val_default'] = 20 -keyboard.rgb_config['knight_effect_length'] = 6 -keyboard.rgb_config['animation_mode'] = 'static' -keyboard.rgb_config['animation_speed'] = 1 keyboard.debug_enabled = False LOWER = KC.TT(3)