OMEGA REFACTOR! Perf grind basically complete.
Resolves #70, Resolves #67 Still needs some regression testing in general, and a definite regression is that rotary encoders are no longer (for the immediate time being) supported. Moves to a much simpler internal state tracking system, and FAR lighter matrix scan. Removes MicroPython support entirely.
This commit is contained in:
@@ -1,96 +0,0 @@
|
||||
import gc
|
||||
|
||||
from kmk.consts import DiodeOrientation, UnicodeModes
|
||||
from kmk.entrypoints.handwire.pyboard import main
|
||||
from kmk.keycodes import KC
|
||||
from kmk.macros.simple import send_string
|
||||
from kmk.macros.unicode import unicode_string_sequence
|
||||
from kmk.pins import Pin as P
|
||||
from kmk.types import AttrDict
|
||||
|
||||
cols = (P.Y12, P.Y11, P.Y10, P.Y9, P.X8, P.X7, P.X6, P.X5, P.X4, P.X3, P.X2, P.X1)
|
||||
rows = (P.Y1, P.Y2, P.Y3, P.Y4)
|
||||
|
||||
diode_orientation = DiodeOrientation.COLUMNS
|
||||
|
||||
|
||||
# ------------------User level config variables ---------------------------------------
|
||||
unicode_mode = UnicodeModes.LINUX
|
||||
tap_time = 150
|
||||
leader_timeout = 2000
|
||||
debug_enable = False
|
||||
|
||||
# -------------------------------Macros -----------------------------------------------
|
||||
|
||||
gc.collect()
|
||||
emoticons = AttrDict({
|
||||
# Emoticons, but fancier
|
||||
'ANGRY_TABLE_FLIP': r'(ノಠ痊ಠ)ノ彡┻━┻',
|
||||
'CHEER': r'+。:.゚ヽ(´∀。)ノ゚.:。+゚゚+。:.゚ヽ(*´∀)ノ゚.:。+゚',
|
||||
'TABLE_FLIP': r'(╯°□°)╯︵ ┻━┻',
|
||||
'WAT': r'⊙.☉',
|
||||
'FF': r'凸(゚Д゚#)',
|
||||
'F': r'( ̄^ ̄)凸',
|
||||
'MEH': r'╮( ̄_ ̄)╭',
|
||||
'YAY': r'o(^▽^)o',
|
||||
})
|
||||
|
||||
for k, v in emoticons.items():
|
||||
emoticons[k] = unicode_string_sequence(v)
|
||||
|
||||
# ---------------------- Leader Key Macros --------------------------------------------
|
||||
|
||||
gc.collect()
|
||||
leader_dictionary = {
|
||||
(KC.F, KC.L, KC.I, KC.P): emoticons.ANGRY_TABLE_FLIP,
|
||||
(KC.C, KC.H, KC.E, KC.E, KC.R): emoticons.CHEER,
|
||||
(KC.W, KC.A, KC.T): emoticons.WAT,
|
||||
(KC.F, KC.F): emoticons.FF,
|
||||
(KC.F,): emoticons.F,
|
||||
(KC.M, KC.E, KC.H): emoticons.MEH,
|
||||
(KC.Y, KC.A, KC.Y): emoticons.YAY,
|
||||
}
|
||||
|
||||
gc.collect()
|
||||
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 ---------------------------------------------------------
|
||||
|
||||
gc.collect()
|
||||
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],
|
||||
],
|
||||
]
|
@@ -1,24 +1,27 @@
|
||||
from kmk.consts import DiodeOrientation, UnicodeModes
|
||||
from kmk.entrypoints.handwire.circuitpython_samd51 import main
|
||||
from kmk.keycodes import KC
|
||||
from kmk.keycodes import generate_leader_dictionary_seq as glds
|
||||
from kmk.macros.simple import send_string
|
||||
from kmk.macros.unicode import unicode_string_sequence
|
||||
from kmk.macros.unicode import compile_unicode_string_sequences
|
||||
from kmk.mcus.circuitpython_samd51 import Firmware
|
||||
from kmk.pins import Pin as P
|
||||
from kmk.types import AttrDict
|
||||
|
||||
cols = (P.A0, P.A1, P.A2, P.A3, P.A4, P.A5, P.SCK, P.MOSI, P.MISO, P.RX, P.TX, P.D4)
|
||||
rows = (P.D10, P.D11, P.D12, P.D13)
|
||||
keyboard = Firmware()
|
||||
|
||||
diode_orientation = DiodeOrientation.COLUMNS
|
||||
keyboard.col_pins = (P.A0, P.A1, P.A2, P.A3, P.A4, P.A5, P.SCK, P.MOSI, P.MISO, P.RX, P.TX, P.D4)
|
||||
keyboard.row_pins = (P.D10, P.D11, P.D12, P.D13)
|
||||
keyboard.diode_orientation = DiodeOrientation.COLUMNS
|
||||
|
||||
|
||||
# ------------------User level config variables ---------------------------------------
|
||||
unicode_mode = UnicodeModes.LINUX
|
||||
tap_time = 200
|
||||
leader_timeout = 2000
|
||||
debug_enable = True
|
||||
keyboard.unicode_mode = UnicodeModes.LINUX
|
||||
keyboard.tap_time = 200
|
||||
keyboard.leader_timeout = 2000
|
||||
keyboard.debug_enabled = True
|
||||
|
||||
emoticons = AttrDict({
|
||||
emoticons = compile_unicode_string_sequences({
|
||||
# Emoticons, but fancier
|
||||
'ANGRY_TABLE_FLIP': r'(ノಠ痊ಠ)ノ彡┻━┻',
|
||||
'CHEER': r'+。:.゚ヽ(´∀。)ノ゚.:。+゚゚+。:.゚ヽ(*´∀)ノ゚.:。+゚',
|
||||
@@ -30,26 +33,23 @@ emoticons = AttrDict({
|
||||
'YAY': r'o(^▽^)o',
|
||||
})
|
||||
|
||||
for k, v in emoticons.items():
|
||||
emoticons[k] = unicode_string_sequence(v)
|
||||
|
||||
# ---------------------- Leader Key Macros --------------------------------------------
|
||||
|
||||
leader_dictionary = {
|
||||
(KC.F, KC.L, KC.I, KC.P): emoticons.ANGRY_TABLE_FLIP,
|
||||
(KC.C, KC.H, KC.E, KC.E, KC.R): emoticons.CHEER,
|
||||
(KC.W, KC.A, KC.T): emoticons.WAT,
|
||||
(KC.F, KC.F): emoticons.FF,
|
||||
(KC.F,): emoticons.F,
|
||||
(KC.M, KC.E, KC.H): emoticons.MEH,
|
||||
(KC.Y, KC.A, KC.Y): emoticons.YAY,
|
||||
keyboard.leader_dictionary = {
|
||||
glds('flip'): emoticons.ANGRY_TABLE_FLIP,
|
||||
glds('cheer'): emoticons.CHEER,
|
||||
glds('wat'): emoticons.WAT,
|
||||
glds('ff'): emoticons.FF,
|
||||
glds('f'): emoticons.F,
|
||||
glds('meh'): emoticons.MEH,
|
||||
glds('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 ---------------------------------------------------------
|
||||
|
||||
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],
|
||||
@@ -88,4 +88,4 @@ keymap = [
|
||||
]
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
keyboard.go()
|
Reference in New Issue
Block a user