diff options
| author | Joshua Diamond <josh@windowoffire.com> | 2020-06-05 05:01:47 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-05 02:01:47 -0700 |
| commit | d03bc3a9c185f97d3813758e7f6df7c879f42ad0 (patch) | |
| tree | 8b5a0b3aeede0aed5ab52061b8a129f808525526 /users/spidey3/spidey3.h | |
| parent | c12e429da28399004dddcf2c67f7cb4bca8d28e4 (diff) | |
| download | qmk_firmware-d03bc3a9c185f97d3813758e7f6df7c879f42ad0.tar.gz qmk_firmware-d03bc3a9c185f97d3813758e7f6df7c879f42ad0.zip | |
Major enhancements to spidey3 keymaps and userspace (#9261)
* Add Chrome OS specific keys to 75_ansi/spidey3
* Clean up duplicative settings in rules.mk
* Refactor spidey3 userspace to use rgb layer blink
* Blink green on wakeup
* Improve _FN layer indicator
* Glyph transformation modes: wide, script, fraktur, and enclosed characters
* Add spider unicode glyph
* Fix compile error when NO_ACTION_ONESHOT
* Add a few more emoji
* Further refinement of lighting layer usage
* Fix reversed yes/no ack
* Lighting layers override RGB off
* Fix missing wide and incorrect script numbers
* Add LOL and surprise emoji
* Add missing break in switch statement
* Trim firmware size
* Use usage ID definitions in report.h
* Some minor whitespace cleanup
* Disable some unused features to reduce firmware size
* Print version on startup
* Seed rand() on first keystroke
* Add a key to immediately sleep CrOS
* Switch to Bootmagic Lite
* Trim down firmware size a little bit more
* Make RGBLIGHT_MODE_TWINKLE+4 my default
* Scan rate debug / fix version printing
Delay printing version on startup (console may not be ready)
Better scan rate reporting
* Disable locking caps, etc. to save more space
* Enable LTO
* Better seed for rand()
* Set MAX_LAYER for some performance improvement
* Another scan rate improvement
* Set manufacturer
* New startup animation
* Add GUI lock for F-keys (for CrOS)
* Add visual indication for glyph replacement and F-keys GUI lock
* Some cleanup; run cformat on spidey3 userspace
* Cycle between debug verbosity options
* Fix disable RGB Lighting after wakeup on Mac
Diffstat (limited to 'users/spidey3/spidey3.h')
| -rw-r--r-- | users/spidey3/spidey3.h | 72 |
1 files changed, 51 insertions, 21 deletions
diff --git a/users/spidey3/spidey3.h b/users/spidey3/spidey3.h index 224858391..5bfba4e59 100644 --- a/users/spidey3/spidey3.h +++ b/users/spidey3/spidey3.h | |||
| @@ -3,41 +3,71 @@ | |||
| 3 | #include QMK_KEYBOARD_H | 3 | #include QMK_KEYBOARD_H |
| 4 | 4 | ||
| 5 | #ifdef UNICODEMAP_ENABLE | 5 | #ifdef UNICODEMAP_ENABLE |
| 6 | #include "unicode.h" | 6 | # include "unicode.h" |
| 7 | #endif | 7 | #endif |
| 8 | 8 | ||
| 9 | enum userspace_layers { | 9 | enum userspace_layers { |
| 10 | _BASE = 0, | 10 | _BASE = 0, |
| 11 | _OSX, | 11 | _OSX, |
| 12 | _NUMPAD, | 12 | _NUMPAD, |
| 13 | _FN, | 13 | _FN, |
| 14 | }; | ||
| 15 | |||
| 16 | enum rgb_base_layer { | ||
| 17 | RGB_LAYER_BASE_DEFAULT = _BASE, | ||
| 18 | RGB_LAYER_BASE_REGULAR = _NUMPAD, | ||
| 19 | RGB_LAYER_BASE_ACKS = _FN+1, | ||
| 20 | }; | 14 | }; |
| 21 | 15 | ||
| 22 | enum custom_keycodes { | 16 | enum custom_keycodes { |
| 23 | SPI_GLO = SAFE_RANGE, | 17 | SPI_GLO = SAFE_RANGE, |
| 24 | SPI_LNX, | 18 | SPI_LNX, // Mode: Linux |
| 25 | SPI_OSX, | 19 | SPI_OSX, // Mode: Mac |
| 26 | SPI_WIN, | 20 | SPI_WIN, // Mode: Windows |
| 21 | CH_CPNL, // AL Control Panel | ||
| 22 | CH_ASST, // AL Context-aware Desktop Assistant | ||
| 23 | CH_SUSP, // Suspend | ||
| 24 | |||
| 25 | SPI_NORMAL, | ||
| 26 | SPI_WIDE, | ||
| 27 | SPI_SCRIPT, | ||
| 28 | SPI_BLOCKS, | ||
| 29 | SPI_CIRCLE, | ||
| 30 | SPI_SQUARE, | ||
| 31 | SPI_PARENS, | ||
| 32 | SPI_FRAKTR, | ||
| 33 | SPI_GFLOCK, | ||
| 27 | }; | 34 | }; |
| 28 | 35 | ||
| 29 | #ifdef RGBLIGHT_ENABLE | 36 | #ifdef RGBLIGHT_ENABLE |
| 30 | void eeconfig_init_user_rgb(void); | 37 | |
| 31 | void matrix_init_user_rgb(void); | 38 | enum layer_base { |
| 32 | void keyboard_post_init_user_rgb(void); | 39 | LAYER_BASE_DEFAULT = _BASE, |
| 33 | bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record); | 40 | LAYER_BASE_REGULAR = _NUMPAD, |
| 41 | LAYER_BASE_END = _FN + 1, | ||
| 42 | }; | ||
| 43 | |||
| 44 | typedef enum layer_ack { | ||
| 45 | ACK_NO = 0, | ||
| 46 | ACK_YES, | ||
| 47 | ACK_MEH, | ||
| 48 | } layer_ack_t; | ||
| 49 | |||
| 50 | # define RGB_LAYER_ACK_DURATION 500 | ||
| 51 | |||
| 52 | void eeconfig_init_user_rgb(void); | ||
| 53 | void matrix_init_user_rgb(void); | ||
| 54 | void keyboard_post_init_user_rgb(void); | ||
| 55 | bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record); | ||
| 56 | void post_process_record_user_rgb(uint16_t keycode, keyrecord_t *record); | ||
| 34 | layer_state_t layer_state_set_user_rgb(layer_state_t state); | 57 | layer_state_t layer_state_set_user_rgb(layer_state_t state); |
| 35 | layer_state_t default_layer_state_set_user_rgb(layer_state_t state); | 58 | layer_state_t default_layer_state_set_user_rgb(layer_state_t state); |
| 36 | bool led_update_user_rgb(led_t led_state); | 59 | bool led_update_user_rgb(led_t led_state); |
| 37 | void clear_rgb_layers(void); | 60 | void rgb_layer_ack(layer_ack_t n); |
| 61 | void rgb_layer_ack_yn(bool yn); | ||
| 62 | void clear_rgb_layers(void); | ||
| 38 | #endif | 63 | #endif |
| 39 | 64 | ||
| 40 | #ifdef UNICODEMAP_ENABLE | 65 | #ifdef UNICODEMAP_ENABLE |
| 41 | void eeconfig_init_user_unicode(void); | 66 | void eeconfig_init_user_unicode(void); |
| 42 | #endif | 67 | #endif |
| 43 | 68 | ||
| 69 | #ifdef SPI_DEBUG_SCAN_RATE | ||
| 70 | # ifndef SPI_SCAN_RATE_INTERVAL | ||
| 71 | # define SPI_SCAN_RATE_INTERVAL 10 | ||
| 72 | # endif | ||
| 73 | #endif | ||
