aboutsummaryrefslogtreecommitdiff
path: root/users/spidey3/spidey3.h
diff options
context:
space:
mode:
authorJoshua Diamond <josh@windowoffire.com>2020-06-05 05:01:47 -0400
committerGitHub <noreply@github.com>2020-06-05 02:01:47 -0700
commitd03bc3a9c185f97d3813758e7f6df7c879f42ad0 (patch)
tree8b5a0b3aeede0aed5ab52061b8a129f808525526 /users/spidey3/spidey3.h
parentc12e429da28399004dddcf2c67f7cb4bca8d28e4 (diff)
downloadqmk_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.h72
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
9enum userspace_layers { 9enum userspace_layers {
10 _BASE = 0, 10 _BASE = 0,
11 _OSX, 11 _OSX,
12 _NUMPAD, 12 _NUMPAD,
13 _FN, 13 _FN,
14};
15
16enum 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
22enum custom_keycodes { 16enum 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
30void eeconfig_init_user_rgb(void); 37
31void matrix_init_user_rgb(void); 38enum layer_base {
32void keyboard_post_init_user_rgb(void); 39 LAYER_BASE_DEFAULT = _BASE,
33bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record); 40 LAYER_BASE_REGULAR = _NUMPAD,
41 LAYER_BASE_END = _FN + 1,
42};
43
44typedef 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
52void eeconfig_init_user_rgb(void);
53void matrix_init_user_rgb(void);
54void keyboard_post_init_user_rgb(void);
55bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record);
56void post_process_record_user_rgb(uint16_t keycode, keyrecord_t *record);
34layer_state_t layer_state_set_user_rgb(layer_state_t state); 57layer_state_t layer_state_set_user_rgb(layer_state_t state);
35layer_state_t default_layer_state_set_user_rgb(layer_state_t state); 58layer_state_t default_layer_state_set_user_rgb(layer_state_t state);
36bool led_update_user_rgb(led_t led_state); 59bool led_update_user_rgb(led_t led_state);
37void clear_rgb_layers(void); 60void rgb_layer_ack(layer_ack_t n);
61void rgb_layer_ack_yn(bool yn);
62void clear_rgb_layers(void);
38#endif 63#endif
39 64
40#ifdef UNICODEMAP_ENABLE 65#ifdef UNICODEMAP_ENABLE
41void eeconfig_init_user_unicode(void); 66void 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