summary refs log tree commit diff
path: root/users
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2022-08-28 17:11:07 +0000
committerQMK Bot <hello@qmk.fm>2022-08-28 17:11:07 +0000
commitd2cc8d506074970a0523990c2f834cdd028233bc (patch)
tree9564f67851ccca1def129027ff3382cf95496137 /users
parentf4b5842a7af5b813fe64eecaaeaa4210c9ab9b7c (diff)
parent37a85e1f9b5d6ad28e52b800f1b17d68ee5e4892 (diff)
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'users')
-rw-r--r--users/spidey3/config.h4
-rw-r--r--users/spidey3/layer_rgb.c20
-rw-r--r--users/spidey3/rules.mk1
-rw-r--r--users/spidey3/spidey3.c11
-rw-r--r--users/spidey3/spidey3.h5
5 files changed, 22 insertions, 19 deletions
diff --git a/users/spidey3/config.h b/users/spidey3/config.h
index 69ae5cdcdb..36d59b6a5d 100644
--- a/users/spidey3/config.h
+++ b/users/spidey3/config.h
@@ -9,7 +9,7 @@
 #ifdef RGBLIGHT_ENABLE
 
 #    define RGBLIGHT_LAYERS
-#    define RGBLIGHT_MAX_LAYERS 17
+#    define RGBLIGHT_MAX_LAYERS 18
 #    define RGBLIGHT_LAYER_BLINK
 #    define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
 #    define RGBLIGHT_STARTUP_ANIMATION
@@ -37,7 +37,7 @@
 
 #endif
 
-#define UNICODE_SELECTED_MODES UC_MAC, UC_LNX, UC_WINC
+#define UNICODE_SELECTED_MODES UC_MAC, UC_LNX, UC_WINC, UC_EMACS
 
 #define SPI_DEBUG_SCAN_RATE
 
diff --git a/users/spidey3/layer_rgb.c b/users/spidey3/layer_rgb.c
index 671205362f..c867468194 100644
--- a/users/spidey3/layer_rgb.c
+++ b/users/spidey3/layer_rgb.c
@@ -65,6 +65,7 @@ const rgblight_segment_t PROGMEM _uc_mac_layer[]  = RGBLIGHT_LAYER_SEGMENTS(CORN
 // UC_WIN disabled in config.h
 // UC_BSD not implemented
 const rgblight_segment_t PROGMEM _uc_winc_layer[] = RGBLIGHT_LAYER_SEGMENTS(CORNER_BR(HSV_CYAN));
+const rgblight_segment_t PROGMEM _uc_emacs_layer[] = RGBLIGHT_LAYER_SEGMENTS(CORNER_BR(HSV_GREEN));
 
 // Now define the array of layers. Higher numbered layers take precedence.
 const rgblight_segment_t *const PROGMEM _rgb_layers[] = {
@@ -89,6 +90,7 @@ const rgblight_segment_t *const PROGMEM _rgb_layers[] = {
     [UNICODE_OFFSET + UC_WIN]  = _none,
     [UNICODE_OFFSET + UC_BSD]  = _none,
     [UNICODE_OFFSET + UC_WINC] = _uc_winc_layer,
+    [UNICODE_OFFSET + UC_EMACS] = _uc_emacs_layer,
 
     [UNICODE_OFFSET + UC__COUNT] = NULL
 };
@@ -300,8 +302,8 @@ void matrix_scan_user_rgb(void) {
 #    ifdef STARTUP_ANIMATION_DEBUG
                     dprintf("sua RAMP_DOWN counter=%u\n", counter);
 #    endif
+                    rgblight_sethsv_noeeprom(old_config.hue, STARTUP_ANIMATION_SATURATION, counter);
                     if (counter >= STARTUP_ANIMATION_FADE_STEP) {
-                        rgblight_sethsv_noeeprom(old_config.hue, STARTUP_ANIMATION_SATURATION, counter);
                         counter -= STARTUP_ANIMATION_FADE_STEP;
                     } else {
                         startup_animation_state = CLEAN_UP;
@@ -456,7 +458,9 @@ void post_process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {
             break;
 
         case RGB_TOG:
-            rgb_layer_ack_yn(rgblight_config.enable);
+            // Hack - we only get called on the press for RGB_TOG, 
+            // but the flag is only flipped on the release...
+            rgb_layer_ack_yn(!rgblight_config.enable);
             break;
 
 #ifdef VELOCIKEY_ENABLE
@@ -473,10 +477,14 @@ void post_process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {
             break;
 #endif
 
-#if defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE)
-        case SPI_LNX:
-        case SPI_OSX:
-        case SPI_WIN:
+#if defined(UNICODE_COMMON_ENABLE)
+        case UC_M_MA:
+        case UC_M_LN:
+        case UC_M_WI:
+        case UC_M_BS:
+        case UC_M_WC:
+        case UC_M_EM:
+
         case UC_MOD:
         case UC_RMOD:
             rgb_layer_ack(ACK_MEH);
diff --git a/users/spidey3/rules.mk b/users/spidey3/rules.mk
index de8ed113e7..c95582e176 100644
--- a/users/spidey3/rules.mk
+++ b/users/spidey3/rules.mk
@@ -1,6 +1,7 @@
 BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
 CONSOLE_ENABLE = yes   # Console for debug
 BACKLIGHT_ENABLE = no  # Enable keyboard backlight functionality
+NKRO_ENABLE = yes
 LTO_ENABLE = yes
 
 SRC += init.c
diff --git a/users/spidey3/spidey3.c b/users/spidey3/spidey3.c
index e993f4828e..842bb465f7 100644
--- a/users/spidey3/spidey3.c
+++ b/users/spidey3/spidey3.c
@@ -55,7 +55,8 @@ void matrix_scan_user(void) {
 }
 
 static uint32_t math_glyph_exceptions(const uint16_t keycode, const bool shifted) {
-    if (shifted) {
+    bool caps = host_keyboard_led_state().caps_lock;
+    if (shifted != caps) {
         switch (keycode) {
             // clang-format off
             case KC_C: return 0x2102;
@@ -97,7 +98,8 @@ bool process_record_glyph_replacement(uint16_t keycode, keyrecord_t *record, uin
                     clear_oneshot_mods();
 #endif
 
-                    uint32_t base = shifted ? baseAlphaUpper : baseAlphaLower;
+                    bool caps = host_keyboard_led_state().caps_lock;
+                    uint32_t base = ((shifted == caps) ? baseAlphaLower : baseAlphaUpper);
                     _register(base + (keycode - KC_A));
                     set_mods(temp_mod);
                 }
@@ -201,11 +203,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
             case CH_ASST: host_consumer_send(AL_ASSISTANT); return false;
             case CH_SUSP: tap_code16(LGUI(LSFT(KC_L))); return true;
 
-#if defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE)
-            case SPI_LNX: set_unicode_input_mode(UC_LNX); break;
-            case SPI_OSX: set_unicode_input_mode(UC_OSX); break;
-            case SPI_WIN: set_unicode_input_mode(UC_WINC); break;
-#endif
                 // clang-format on
 
             case SPI_NORMAL ... SPI_MATH:
diff --git a/users/spidey3/spidey3.h b/users/spidey3/spidey3.h
index e96ab7a145..e91b299e55 100644
--- a/users/spidey3/spidey3.h
+++ b/users/spidey3/spidey3.h
@@ -17,10 +17,7 @@ enum userspace_layers {
 };
 
 enum custom_keycodes {
-    SPI_LNX = SAFE_RANGE,  // Mode: Linux
-    SPI_OSX,               // Mode: Mac
-    SPI_WIN,               // Mode: Windows
-    CH_CPNL,               // AL Control Panel
+    CH_CPNL = SAFE_RANGE,  // AL Control Panel
     CH_ASST,               // AL Context-aware Desktop Assistant
     CH_SUSP,               // Suspend