From 54592a01b03b52f1dd91aee98f28f02eb9b341ea Mon Sep 17 00:00:00 2001 From: Kyle Brown Date: Fri, 23 Oct 2020 13:40:24 -0700 Subject: [PATCH] Finished porting RGB to extensionss --- kmk/extensions/rgb.py | 68 +++++++++++++++---------------- kmk/kmk_keyboard.py | 2 + user_keymaps/kdb424/nyquist_r2.py | 14 ++++++- 3 files changed, 49 insertions(+), 35 deletions(-) diff --git a/kmk/extensions/rgb.py b/kmk/extensions/rgb.py index ad55384..e785f7e 100644 --- a/kmk/extensions/rgb.py +++ b/kmk/extensions/rgb.py @@ -14,7 +14,11 @@ class AnimationModes: STATIC = 1 STATIC_STANDBY = 2 BREATHING = 3 - USER = 4 + RAINBOW = 4 + BREATHING_RAINBOW = 5 + KNIGHT = 6 + SWIRL = 7 + USER = 8 class RGB(Extension): @@ -51,8 +55,7 @@ class RGB(Extension): auto_write=not disable_auto_write, ) - if len(rgb_order) == 4: - self.rgbw = True + self.rgbw = bool(len(rgb_order) == 4) self.num_pixels = num_pixels self.hue_step = hue_step @@ -130,9 +133,6 @@ class RGB(Extension): on_release=handler_passthrough, ) - def during_bootup(self, keyboard): - pass - def after_hid_send(self, keyboard): if self.animation_mode: self.loopcounter += 1 @@ -420,21 +420,21 @@ class RGB(Extension): if self.effect_init: self._init_effect() - if self.animation_mode == 'breathing': - return self.effect_breathing() - elif self.animation_mode == 'rainbow': - return self.effect_rainbow() - elif self.animation_mode == 'breathing_rainbow': - return self.effect_breathing_rainbow() - elif self.animation_mode == 'static': - return self.effect_static() - elif self.animation_mode == 'knight': - return self.effect_knight() - elif self.animation_mode == 'swirl': - return self.effect_swirl() - elif self.animation_mode == 'user': - return self.user_animation(self) - elif self.animation_mode == 'static_standby': + if self.animation_mode == AnimationModes.BREATHING: + return self.effect_breathing() + elif self.animation_mode == AnimationModes.RAINBOW: + return self.effect_rainbow() + elif self.animation_mode == AnimationModes.BREATHING_RAINBOW: + return self.effect_breathing_rainbow() + elif self.animation_mode == AnimationModes.STATIC: + return self.effect_static() + elif self.animation_mode == AnimationModes.KNIGHT: + return self.effect_knight() + elif self.animation_mode == AnimationModes.SWIRL: + return self.effect_swirl() + elif self.animation_mode == AnimationModes.USER: + return self.user_animation(self) + elif self.animation_mode == AnimationModes.STATIC_STANDBY: pass else: self.off() @@ -452,11 +452,11 @@ class RGB(Extension): def _init_effect(self): if ( - self.animation_mode == 'breathing' - or self.animation_mode == 'breathing_rainbow' + self.animation_mode == AnimationModes.BREATHING + or self.animation_mode == AnimationModes.BREATHING_RAINBOW ): self.intervals = (30, 20, 10, 5) - elif self.animation_mode == 'swirl': + elif self.animation_mode == AnimationModes.SWIRL: self.intervals = (50, 50) self.pos = 0 @@ -465,15 +465,15 @@ class RGB(Extension): return self def _check_update(self): - return bool(self.animation_mode == 'static_standby') + return bool(self.animation_mode == AnimationModes.STATIC_STANDBY) def _do_update(self): - if self.animation_mode == 'static_standby': - self.animation_mode = 'static' + if self.animation_mode == AnimationModes.STATIC_STANDBY: + self.animation_mode = AnimationModes.STATIC def effect_static(self): self.set_hsv_fill(self.hue, self.sat, self.val) - self.animation_mode = 'static_standby' + self.animation_mode = AnimationModes.STATIC_STANDBY return self def effect_breathing(self): @@ -579,30 +579,30 @@ class RGB(Extension): def _rgb_mode_static(self, key, state, *args, **kwargs): self.effect_init = True - self.animation_mode = 'static' + self.animation_mode = AnimationModes.STATIC return state def _rgb_mode_breathe(self, key, state, *args, **kwargs): self.effect_init = True - self.animation_mode = 'breathing' + self.animation_mode = AnimationModes.BREATHING return state def _rgb_mode_breathe_rainbow(self, key, state, *args, **kwargs): self.effect_init = True - self.animation_mode = 'breathing_rainbow' + self.animation_mode = AnimationModes.BREATHING_RAINBOW return state def _rgb_mode_rainbow(self, key, state, *args, **kwargs): self.effect_init = True - self.animation_mode = 'rainbow' + self.animation_mode = AnimationModes.RAINBOW return state def _rgb_mode_swirl(self, key, state, *args, **kwargs): self.effect_init = True - self.animation_mode = 'swirl' + self.animation_mode = AnimationModes.SWIRL return state def _rgb_mode_knight(self, key, state, *args, **kwargs): self.effect_init = True - self.animation_mode = 'knight' + self.animation_mode = AnimationModes.KNIGHT return state diff --git a/kmk/kmk_keyboard.py b/kmk/kmk_keyboard.py index 4b00d64..eaab541 100644 --- a/kmk/kmk_keyboard.py +++ b/kmk/kmk_keyboard.py @@ -341,6 +341,7 @@ class KMKKeyboard: self._extensions = [] + getattr(self, 'extensions', []) try: + print('EXTENSIONS', self.extensions) del self.extensions except Exception: pass @@ -358,6 +359,7 @@ class KMKKeyboard: ext.during_bootup(self) except Exception: # TODO FIXME log the exceptions or something + print('Failed to load ', ext) pass self._init_matrix() diff --git a/user_keymaps/kdb424/nyquist_r2.py b/user_keymaps/kdb424/nyquist_r2.py index 80610d2..162e6f6 100644 --- a/user_keymaps/kdb424/nyquist_r2.py +++ b/user_keymaps/kdb424/nyquist_r2.py @@ -1,3 +1,5 @@ +import board + from kmk.boards.converter.keebio.nyquist_r2 import KMKKeyboard from kmk.extensions.leader import Leader, LeaderMode from kmk.extensions.rgb import RGB @@ -36,6 +38,16 @@ 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, +}) + +rgb_ext = RGB(pixel_pin=board.TX, num_pixels=12, val_limit=150, hue_step=10, sat_step=5, val_step=5, hue_default=260, sat_default=100, val_default=40, animation_speed=1) + +keyboard.extensions = [leader_ext, rgb_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), @@ -112,7 +124,7 @@ keyboard.keymap = [ # r1 KC.GESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.DEL, KC.TILD, KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN, KC.DEL, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.LBRC, KC.RBRC, KC.BSLS, + KC.LEAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.LBRC, KC.RBRC, KC.BSLS, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.INS, _______, _______, KC.MINS, KC.RESET, _______, _______, _______, _______, _______, _______, KC.EQL, KC.HOME, KC.PGDN, KC.PGUP, KC.END, ],