start modularizing ardux core code
This commit is contained in:
parent
0153acc2e2
commit
dc61988af7
0
ardux/__init__.py
Normal file
0
ardux/__init__.py
Normal file
27
ardux/chord.py
Normal file
27
ardux/chord.py
Normal file
|
@ -0,0 +1,27 @@
|
|||
from kmk.modules.combos import Chord
|
||||
|
||||
# TODO: fix up pass by reference trick (wrapped in array) thats used below
|
||||
# likely deserves a global but KmN couldnt figure it out
|
||||
class ArduxChord(Chord):
|
||||
# Override default constructor to allow passing of required fields
|
||||
def __init__(
|
||||
self,
|
||||
match: Tuple[Union[Key, int], ...],
|
||||
result: Key,
|
||||
fast_reset=None,
|
||||
per_key_timeout=None,
|
||||
timeout=None,
|
||||
match_coord=None,
|
||||
ardux_keyboard=[],
|
||||
layers=[],
|
||||
):
|
||||
super().__init__(match, result, fast_reset, per_key_timeout, match_coord)
|
||||
self.ardux_keyboard = ardux_keyboard
|
||||
self.layers = layers
|
||||
|
||||
# Override standard kmk match logic to first check active vs allowed layers
|
||||
def matches(self, key: Key, int_coord: int):
|
||||
if self.ardux_keyboard is None or len(self.ardux_keyboard) == 0 or len(self.layers) == 0 or any(i in self.ardux_keyboard[0].active_layers for i in self.layers):
|
||||
return super().matches(key, int_coord)
|
||||
|
||||
return False
|
|
@ -1,38 +1,16 @@
|
|||
import os
|
||||
|
||||
import board
|
||||
from kmk.quickpin.pro_micro.kb2040 import pinout as pins
|
||||
|
||||
from kmk.kmk_keyboard import KMKKeyboard
|
||||
from kmk.scanners.keypad import KeysScanner
|
||||
|
||||
from kmk.modules.layers import Layers
|
||||
from kmk.modules.combos import Combos, Chord
|
||||
from ardux.chord import ArduxChord
|
||||
|
||||
from kmk.keys import KC
|
||||
@
|
||||
# TODO: fix up pass by reference trick (wrapped in array) thats used below
|
||||
# likely deserves a global but KmN couldnt figure it out
|
||||
class ArduxChord(Chord):
|
||||
# Override default constructor to allow passing of required fields
|
||||
def __init__(
|
||||
self,
|
||||
match: Tuple[Union[Key, int], ...],
|
||||
result: Key,
|
||||
fast_reset=None,
|
||||
per_key_timeout=None,
|
||||
timeout=None,
|
||||
match_coord=None,
|
||||
ardux_keyboard=[],
|
||||
layers=[],
|
||||
):
|
||||
super().__init__(match, result, fast_reset, per_key_timeout, match_coord)
|
||||
self.ardux_keyboard = ardux_keyboard
|
||||
self.layers = layers
|
||||
|
||||
# Override standard kmk match logic to first check active vs allowed layers
|
||||
def matches(self, key: Key, int_coord: int):
|
||||
if self.ardux_keyboard is None or len(self.ardux_keyboard) == 0 or len(self.layers) == 0 or any(i in self.ardux_keyboard[0].active_layers for i in self.layers):
|
||||
return super().matches(key, int_coord)
|
||||
|
||||
return False
|
||||
|
||||
class ArduxKeyboard(KMKKeyboard):
|
||||
coord_mapping = [
|
Loading…
Reference in a new issue