fixes test errors
Fixing imports and links Fixes isort. Updates my keymap
This commit is contained in:
parent
dde6efe6fe
commit
10572d71f6
@ -1,18 +1,19 @@
|
||||
# Faux Fox Keyboard (ffkb)
|
||||
|
||||
![ffkb](https://github.com/sadekbaroudi/ffkb)
|
||||
![ffkb](https://fingerpunch.xyz/product/faux-fox-keyboard)
|
||||
|
||||
A 36 or 42 key keyboard with support for per key LEDs, 2 rotary encoders (EC11 or evqwgd001), and a feature in the center (EC11, OLED (128x64), or pimoroni trackball)
|
||||
A 36 or 42 key keyboard with support for per key LEDs, 2 rotary encoders (EC11 or evqwgd001), and a feature in the center (EC11, OLED (128x64), or pimoroni trackball). KMK support is available for the BYO MCU option only.
|
||||
|
||||
kb.py is designed to work with a Pro Micro or KB2040, while kb-nn.py is designed to work with a Nice!Nano.
|
||||
`kb-kb2040.py` is designed to work with a KB2040.
|
||||
|
||||
`kb-nn.py` is designed to work with a Nice!Nano.
|
||||
|
||||
- [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
|
||||
|
||||
Instructions:
|
||||
* Copy the kmk directory as a whole into the root directory of your KB2040
|
||||
* Copy <gitroot>/lib/neopixel* to <usbroot>/lib/
|
||||
* Copy kb.py and main.py in this folder to <usbroot>/
|
||||
|
||||
> Note: The Nice!Nano doesn't have a lot of ROM, see guidance [over here](../../docs/../../docs/Officially_Supported_Microcontrollers.md#nicenano).
|
||||
* Copy the kmk directory as a whole into the root directory of your KB2040.
|
||||
* Copy <gitroot>/lib/neopixel* to <usbroot>/lib/.
|
||||
* Copy kb.py and main.py in this folder to <usbroot>/.
|
||||
|
||||
> Note: The Nice!Nano doesn't have a lot of ROM, so there are a couple of extra steps. See guidance [over here](../../docs/Officially_Supported_Microcontrollers.md#nicenano).
|
||||
|
@ -1,38 +0,0 @@
|
||||
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.D9,
|
||||
board.D8,
|
||||
board.D7,
|
||||
board.D6,
|
||||
board.D5,
|
||||
board.D4,
|
||||
board.MOSI,
|
||||
board.MISO,
|
||||
)
|
||||
row_pins = (
|
||||
board.D1,
|
||||
board.A3,
|
||||
board.A2,
|
||||
board.A1,
|
||||
board.A0,
|
||||
board.SCK,
|
||||
)
|
||||
diode_orientation = DiodeOrientation.COLUMNS
|
||||
rgb_pixel_pin = board.D0
|
||||
rgb_num_pixels = 42
|
||||
i2c = board.I2C
|
||||
|
||||
|
||||
coord_mapping = [
|
||||
ic(0,0), ic(0,1), ic(0,2), ic(0,3), ic(0,4), ic(0,5), ic(0,6), ic(0,7), ic(4,3), ic(3,4), ic(4,5), ic(3,7),
|
||||
ic(1,0), ic(1,1), ic(1,2), ic(1,3), ic(1,4), ic(1,5), ic(4,1), ic(1,6), ic(1,7), ic(3,2), ic(4,4), ic(3,5), ic(4,7),
|
||||
ic(2,0), ic(2,1), ic(2,2), ic(2,3), ic(2,4), ic(2,5), ic(2,6), ic(2,7), ic(4,2), ic(3,3), ic(3,6), ic(4,6),
|
||||
ic(5,1), ic(5,3), ic(5,4), ic(5,5), ic(5,6), ic(5,7), ic(5,2), ic(5,0)
|
||||
]
|
37
boards/fingerpunch/ffkb/kb_kb2040.py
Normal file
37
boards/fingerpunch/ffkb/kb_kb2040.py
Normal file
@ -0,0 +1,37 @@
|
||||
import board
|
||||
|
||||
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
|
||||
from kmk.scanners import DiodeOrientation
|
||||
from kmk.scanners import intify_coordinate as ic
|
||||
|
||||
|
||||
class KMKKeyboard(_KMKKeyboard):
|
||||
col_pins = (
|
||||
board.D9,
|
||||
board.D8,
|
||||
board.D7,
|
||||
board.D6,
|
||||
board.D5,
|
||||
board.D4,
|
||||
board.MOSI,
|
||||
board.MISO,
|
||||
)
|
||||
row_pins = (
|
||||
board.D1,
|
||||
board.A3,
|
||||
board.A2,
|
||||
board.A1,
|
||||
board.A0,
|
||||
board.SCK,
|
||||
)
|
||||
diode_orientation = DiodeOrientation.COLUMNS
|
||||
rgb_pixel_pin = board.D0
|
||||
rgb_num_pixels = 42
|
||||
i2c = board.I2C
|
||||
|
||||
coord_mapping = [
|
||||
ic(0, 0), ic(0, 1), ic(0, 2), ic(0, 3), ic(0, 4), ic(0, 5), ic(0, 6), ic(0, 7), ic(4, 3), ic(3, 4), ic(4, 5), ic(3, 7),
|
||||
ic(1, 0), ic(1, 1), ic(1, 2), ic(1, 3), ic(1, 4), ic(1, 5), ic(4, 1), ic(1, 6), ic(1, 7), ic(3, 2), ic(4, 4), ic(3, 5), ic(4, 7),
|
||||
ic(2, 0), ic(2, 1), ic(2, 2), ic(2, 3), ic(2, 4), ic(2, 5), ic(2, 6), ic(2, 7), ic(4, 2), ic(3, 3), ic(3, 6), ic(4, 6),
|
||||
ic(5, 1), ic(5, 3), ic(5, 4), ic(5, 5), ic(5, 6), ic(5, 7), ic(5, 2), ic(5, 0)
|
||||
]
|
@ -28,12 +28,12 @@ class KMKKeyboard(_KMKKeyboard):
|
||||
rgb_num_pixels = 42
|
||||
i2c = board.I2C
|
||||
|
||||
|
||||
coord_mapping = [
|
||||
0, 1, 2, 3, 4, 5, 6, 7,35,28,37,31,
|
||||
8, 9,10,11,12,13, 33, 14,15,26,36,29,39,
|
||||
16,17,18,19,20,21, 22,23,34,27,30,38,
|
||||
41, 43,44,45, 46,47,42, 40,
|
||||
]
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 35, 28, 37, 31,
|
||||
8, 9, 10, 11, 12, 13, 33, 14, 15, 26, 36, 29, 39,
|
||||
16, 17, 18, 19, 20, 21, 22, 23, 34, 27, 30, 38,
|
||||
41, 43, 44, 45, 46, 47, 42, 40,
|
||||
]
|
||||
|
||||
encoder_pins = ((board.P0_20, board.P0_17, board.P0_09, False))
|
||||
|
||||
encoder_pins = ((board.P0_20, board.P0_17, board.P0_09, False))
|
@ -1,12 +1,13 @@
|
||||
import board
|
||||
|
||||
from kb import KMKKeyboard
|
||||
from kb_kb2040 import KMKKeyboard
|
||||
|
||||
from kmk.extensions.media_keys import MediaKeys
|
||||
from kmk.extensions.rgb import RGB
|
||||
from kmk.keys import KC
|
||||
from kmk.modules.encoder import EncoderHandler
|
||||
from kmk.modules.layers import Layers
|
||||
from kmk.modules.modtap import ModTap
|
||||
from kmk.modules.encoder import EncoderHandler
|
||||
from kmk.extensions.media_keys import MediaKeys
|
||||
from kmk.modules.mouse_keys import MouseKeys
|
||||
|
||||
keyboard = KMKKeyboard()
|
||||
@ -26,7 +27,7 @@ media_keys = MediaKeys()
|
||||
|
||||
encoder_handler = EncoderHandler()
|
||||
|
||||
keyboard.modules = [layers, modtap]#, encoder_handler]
|
||||
keyboard.modules = [layers, modtap] #, encoder_handler]
|
||||
keyboard.modules.append(MouseKeys())
|
||||
keyboard.extensions = [rgb, media_keys]
|
||||
|
||||
@ -55,13 +56,13 @@ RGUI_I = KC.MT(KC.I, KC.RGUI)
|
||||
RCTL_O = KC.MT(KC.O, KC.RCTRL)
|
||||
|
||||
# OTHER SHORTCUTS
|
||||
BRWSR_LFT = KC.LCTRL(KC.LSFT(KC.TAB))
|
||||
BRWSR_LFT = KC.LCTRL(KC.LSFT(KC.TAB))
|
||||
BRWSR_RGHT = KC.LCTRL(KC.TAB)
|
||||
DESK_LEFT = KC.LCTRL(KC.LGUI(KC.LEFT))
|
||||
DESK_LEFT = KC.LCTRL(KC.LGUI(KC.LEFT))
|
||||
DESK_RIGHT = KC.LCTRL(KC.LGUI(KC.RIGHT))
|
||||
CAPSWORD = _______ # TODO: IMPLEMENT THIS
|
||||
CAPSWORD = _______ # TODO: IMPLEMENT THIS
|
||||
|
||||
#SHIFT NAV
|
||||
# SHIFT NAV
|
||||
SFT_PGUP = KC.LSFT(KC.PGUP)
|
||||
SFT_PGDN = KC.LSFT(KC.PGDN)
|
||||
SFT_HOME = KC.LSFT(KC.HOME)
|
||||
@ -126,13 +127,14 @@ keyboard.keymap = [
|
||||
],
|
||||
]
|
||||
|
||||
encoder_handler.map = [(( KC.VOLD, KC.VOLU, KC.MUTE)), # Layer 1
|
||||
((ZOOM_OUT, ZOOM_IN, _______)), # Layer 2
|
||||
((_______, _______, _______)), # Layer 3
|
||||
((_______, _______, _______)), # Layer 4
|
||||
((_______, _______, _______)), # Layer 5
|
||||
((_______, _______, _______)), # Layer 6
|
||||
]
|
||||
encoder_handler.map = [
|
||||
((KC.VOLD, KC.VOLU, KC.MUTE)), # Layer 1
|
||||
((ZOOM_OUT, ZOOM_IN, _______)), # Layer 2
|
||||
((_______, _______, _______)), # Layer 3
|
||||
((_______, _______, _______)), # Layer 4
|
||||
((_______, _______, _______)), # Layer 5
|
||||
((_______, _______, _______)), # Layer 6
|
||||
]
|
||||
|
||||
if __name__ == '__main__':
|
||||
keyboard.go()
|
||||
|
@ -1,35 +1,53 @@
|
||||
import board
|
||||
|
||||
import kb
|
||||
from kmk.keys import KC
|
||||
from kmk.modules.layers import Layers
|
||||
from kmk.modules.encoder import EncoderHandler
|
||||
import kb_nn
|
||||
|
||||
from kmk.keys import KC
|
||||
from kmk.modules.encoder import EncoderHandler
|
||||
from kmk.modules.layers import Layers
|
||||
|
||||
encoder_handler = EncoderHandler()
|
||||
encoder_handler.pins = kb.encoder_pins
|
||||
encoder_handler.pins = kb_nn.encoder_pins
|
||||
|
||||
keyboard = kb.KMKKeyboard()
|
||||
keyboard = kb_nn.KMKKeyboard()
|
||||
|
||||
keyboard.modules.append(Layers())
|
||||
|
||||
_______ = KC.TRNS
|
||||
xxxxxxx = KC.NO
|
||||
|
||||
L1_BSPC = KC.LT(1, KC.BSPC, prefer_hold=True, tap_interrupted=False, tap_time=250)
|
||||
BTAB = KC.LSFT(KC.TAB)
|
||||
|
||||
# keymap
|
||||
keyboard.keymap = [
|
||||
[ #COLEMAK-DH
|
||||
KC.TAB, KC.Q, KC.W, KC.F, KC.P, KC.B, KC.J, KC.L, KC.U, KC.Y, KC.SCLN, KC.BSPC,
|
||||
KC.LCTL, KC.A, KC.R, KC.S, KC.T, KC.G, KC.NO, KC.H, KC.N, KC.E, KC.I, KC.O, KC.QUOT,
|
||||
KC.LALT, KC.Z, KC.X, KC.C, KC.D, KC.V, KC.K, KC.H, KC.COMM, KC.DOT, KC.SLSH, KC.BSLS,
|
||||
KC.NO, KC.LGUI, KC.LSFT, KC.BSPC, KC.MO(1), KC.SPC, KC.ENT, KC.NO,
|
||||
[ # Layer 0: Colemak-DH letters
|
||||
KC.ESC , KC.Q , KC.W , KC.F, KC.P, KC.B, KC.J , KC.L , KC.U , KC.Y , KC.SCLN, KC.BSPC,
|
||||
KC.LGUI, KC.A , KC.R , KC.S, KC.T, KC.G, xxxxxxx, KC.M , KC.N , KC.E , KC.I , KC.O , KC.QUOT,
|
||||
KC.LALT, KC.Z , KC.X , KC.C, KC.D, KC.V, KC.K , KC.H , KC.COMM, KC.DOT , KC.SLSH, KC.BSLS,
|
||||
xxxxxxx, KC.LCTL, KC.SPC, KC.MO(1), KC.MO(1), KC.RSFT , KC.ENT , xxxxxxx,
|
||||
],
|
||||
[ #NAVIGATION
|
||||
_______, KC.ESC, KC.PGUP, KC.UP, KC.PGDN, _______, KC.ASTR, KC.N7, KC.N8, KC.N9, KC.PLUS, _______,
|
||||
_______, KC.HOME, KC.LEFT, KC.DOWN, KC.RIGHT, KC.END, _______, KC.SLSH, KC.N4, KC.N5, KC.N6, KC.MINS, _______,
|
||||
_______, _______, _______, _______, _______, _______, KC.EQL, KC.N1, KC.N2, KC.N3, KC.N0, _______,
|
||||
_______, _______, _______, _______, KC.BKSP, KC.SPC, KC.DOT, _______,
|
||||
[ #Layer 1: Nav & Numbers
|
||||
KC.TAB, KC.N1 , KC.N2 , KC.N3 , KC.N4 , KC.N5 , KC.N6 , KC.N7 , KC.N8 , KC.N9, KC.N0 , KC.DEL ,
|
||||
_______, KC.LPRN, KC.LEFT, KC.UP , KC.RIGHT, KC.RPRN, _______, xxxxxxx, KC.PPLS, KC.PEQL, xxxxxxx, xxxxxxx, xxxxxxx,
|
||||
_______, KC.LBRC, KC.LCBR, KC.DOWN, KC.RCBR, KC.RBRC, KC.EQL , KC.PMNS, KC.UNDS, xxxxxxx, xxxxxxx, xxxxxxx,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______,
|
||||
],
|
||||
[
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______,
|
||||
],
|
||||
[ #Blank
|
||||
xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,
|
||||
xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,
|
||||
xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,
|
||||
xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,
|
||||
],
|
||||
]
|
||||
# keymap
|
||||
keyboard.debug_enabled = False
|
||||
|
||||
if __name__ == '__main__':
|
||||
keyboard.go()
|
||||
|
Loading…
Reference in New Issue
Block a user