Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jonavin userspace keymap updates INVERT_NUMLOCK_INDICATOR #14880

Merged
merged 22 commits into from
Oct 23, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 13 additions & 4 deletions keyboards/gmmk/pro/ansi/keymaps/jonavin/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -124,10 +124,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
rgb_matrix_set_color(LED_L1, RGB_GREEN);
rgb_matrix_set_color(LED_L2, RGB_GREEN);
}
if (!IS_HOST_LED_ON(USB_LED_NUM_LOCK)) { // on if NUM lock is OFF
rgb_matrix_set_color(LED_L3, RGB_MAGENTA);
rgb_matrix_set_color(LED_L4, RGB_MAGENTA);
}

#ifdef INVERT_NUMLOCK_INDICATOR
if (!IS_HOST_LED_ON(USB_LED_NUM_LOCK)) { // on if NUM lock is OFF
rgb_matrix_set_color(LED_L3, RGB_MAGENTA);
rgb_matrix_set_color(LED_L4, RGB_MAGENTA);
}
#else
if (IS_HOST_LED_ON(USB_LED_NUM_LOCK)) { // Normal, on if NUM lock is ON
rgb_matrix_set_color(LED_L3, RGB_MAGENTA);
rgb_matrix_set_color(LED_L4, RGB_MAGENTA);
}
#endif // INVERT_NUMLOCK_INDICATOR

if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) {
rgb_matrix_set_color(LED_L5, RGB_RED);
rgb_matrix_set_color(LED_L6, RGB_RED);
Expand Down
3 changes: 3 additions & 0 deletions keyboards/gmmk/pro/ansi/keymaps/jonavin/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ TD_LSFT_CAPSLOCK_ENABLE = yes
IDLE_TIMEOUT_ENABLE = yes
- Enables Timer functionality; for RGB idle timeouts that can be changed dynamically

INVERT_NUMLOCK_INDICATOR
- inverts the Num lock indicator, LED is on when num lokc is off

COLEMAK_LAYER_ENABLE = yes
- Enabled optional 5th layer for COLEMAK layout
- Use Shift and encoder to enter 5th layer, right led indicator lights up BLUE
Expand Down
1 change: 1 addition & 0 deletions keyboards/gmmk/pro/ansi/keymaps/jonavin/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ STARTUP_NUMLOCK_ON = yes
ENCODER_DEFAULTACTIONS_ENABLE = no

COLEMAK_LAYER_ENABLE = yes #Enable Colemak layer / set to no to disable
INVERT_NUMLOCK_INDICATOR = yes
13 changes: 12 additions & 1 deletion keyboards/keebio/quefrency/keymaps/jonavin/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
enum custom_rgblight_layers
{
_rgbCAPS,
_rgbNUMLOCK,
_rgbWINLOCK,
_rgbFN,
_rgbNUMPAD,
Expand All @@ -98,7 +99,9 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
const rgblight_segment_t PROGMEM _rgb_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{14, 1, HSV_RED} // Light 4 LEDs, starting with LED 6
);
const rgblight_segment_t PROGMEM _rgb_winlock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
const rgblight_segment_t PROGMEM _rgb_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{15, 1, HSV_BLUE}
); const rgblight_segment_t PROGMEM _rgb_winlock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{13, 1, HSV_PURPLE} // Light 4 LEDs, starting with LED 6
);
const rgblight_segment_t PROGMEM _rgb_fn_layer[] = RGBLIGHT_LAYER_SEGMENTS(
Expand All @@ -113,13 +116,21 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {

const rgblight_segment_t* const PROGMEM _rgb_layers[] = RGBLIGHT_LAYERS_LIST(
_rgb_capslock_layer,
_rgb_numlock_layer,
_rgb_winlock_layer,
_rgb_fn_layer,
_rgb_numpad_layer
);

bool led_update_user(led_t led_state) {
rgblight_set_layer_state(_rgbCAPS, led_state.caps_lock);

#ifdef INVERT_NUMLOCK_INDICATOR
rgblight_set_layer_state(_rgbNUMLOCK, !led_state.num_lock); // inverse numlock indicator override
#else
rgblight_set_layer_state(_rgbNUMLOCK, led_state.num_lock); // normal, light LED when numlock on
#endif // INVERT_NUMLOCK_INDICATOR

rgblight_set_layer_state(_rgbWINLOCK, keymap_config.no_gui);
return true;
}
Expand Down
1 change: 1 addition & 0 deletions keyboards/keebio/quefrency/keymaps/jonavin/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
- additional RGB function key binds to arrow on Fn layer
- Add capslock indicator, win key lock indicator
- Fn and layer 2 indicators using RGB underglow
- Inverted NUM lock indicator (light on when NUM lock is off when INVERT_NUMLOCK_INDICATOR = yes in rules.mk)

rules.mk OPTIONS - Active features from userspace
STARTUP_NUMLOCK_ON = yes
Expand Down
1 change: 1 addition & 0 deletions keyboards/keebio/quefrency/keymaps/jonavin/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ TAP_DANCE_ENABLE = yes

TD_LSFT_CAPSLOCK_ENABLE = yes
STARTUP_NUMLOCK_ON = yes
INVERT_NUMLOCK_INDICATOR = yes
35 changes: 20 additions & 15 deletions keyboards/mechwild/obe/keymaps/jonavin/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

#ifdef RGBLIGHT_ENABLE
// Custom RGB Colours
#define RGB_OBE_BOW 0x00, 0xE4, 0xFF // colour for matching keycaps
#define HSV_OBE_BOW 180, 100, 100 // colour for matching keycaps
#endif // RGBLIGHT_ENABLE

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
Expand All @@ -28,8 +28,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_MUTE, KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_PGDN, TT(_RAISE), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFTCAPSWIN,KC_Z, KC_X, KC_C, KC_V, KC_B, LT(_LOWER,KC_B), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN1), LT(_RAISE,KC_SPC), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
KC_LSFTCAPSWIN,KC_Z, KC_X, KC_C, KC_V, KC_B, LT(_LOWER,KC_B), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SFTUP,KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN1), KC_RAISESPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[_FN1] = LAYOUT(
KC_NO, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_INS,
Expand All @@ -39,27 +39,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS,KC_WINLCK,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_HOME, KC_PGDN, KC_END
),
[_LOWER] = LAYOUT(
KC_NO, KC_TILD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_TRNS, KC_DEL,
EEP_RST, KC_TILD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_TRNS, KC_DEL,
RGB_HUI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, EMO_TEARS, EMO_SAD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG,
RGB_HUD, KC_NO, KC_NO, EMO_SHRUG,KC_NO, KC_NO, KC_NO, KC_NO, EMO_JOY, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
KC_NO, KC_NO, KC_NO, EMO_CONFUSE,KC_NO,KC_NO,KC_TRNS,EMO_NERVOUS,KC_NO, KC_NO, KC_NO, KC_NO, RGB_MOD, KC_TRNS,
KC_TRNS, KC_APP, KC_TRNS, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_RMOD, RGB_SPI
KC_NO, KC_NO, KC_NO, EMO_CONFUSE,KC_NO,KC_NO,KC_TRNS,EMO_NERVOUS, KC_NO, KC_NO, KC_NO, KC_NO, RGB_MOD, KC_TRNS,
KC_TRNS, KC_APP, KC_TRNS, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_RMOD,RGB_SPI
),
[_RAISE] = LAYOUT(
KC_NO, KC_TILD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, KC_PSLS, KC_DEL,
KC_NO, KC_NO, KC_HOME,KC_UP, KC_END, KC_PGUP, KC_NO, KC_TAB, KC_P4, KC_P5, KC_P6, KC_NO, KC_NO, KC_NO, KC_PEQL,
KC_NO, TT(_RAISE),KC_LEFT,KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_NO, KC_PAST, KC_PENT,
KC_NO, KC_GRV, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, KC_PSLS, KC_DEL,
KC_VOLU, KC_NO, KC_HOME,KC_UP, KC_END, KC_PGUP, KC_NO, KC_TAB, KC_P4, KC_P5, KC_P6, KC_NO, KC_NO, KC_NO, KC_PEQL,
KC_VOLD,TT(_RAISE),KC_LEFT,KC_DOWN,KC_RGHT, KC_PGDN, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_NO, KC_PAST, KC_PENT,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_P0, KC_00, KC_NO, KC_PDOT, KC_PSLS, CT_PGUP, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CT_HOME, CT_PGDN, CT_END
KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CT_HOME, CT_PGDN, CT_END
)
};

#ifdef RGBLIGHT_ENABLE

enum custom_rgblight_layers
{
_rgbWINLOCK,
_rgbFN,
_rgbWINLOCK, _rgbFN,
_rgbLOWER,
_rgbRAISE
};
Expand Down Expand Up @@ -91,7 +90,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

bool led_update_user(led_t led_state) {
rgblight_set_layer_state(_rgbWINLOCK, keymap_config.no_gui);
return true;
writePin(LED_CAPS_LOCK_PIN, led_state.caps_lock);
#ifdef INVERT_NUMLOCK_INDICATOR
writePin(LED_NUM_LOCK_PIN, !led_state.num_lock); // inverse numlock indicator override
#else
writePin(LED_NUM_LOCK_PIN, led_state.num_lock); // normal, light LED when numlock on
#endif // INVERT_NUMLOCK_INDICATOR
return false;
}

layer_state_t layer_state_set_user(layer_state_t state) {
Expand All @@ -106,8 +111,8 @@ void keyboard_post_init_keymap(void) {
// keyboard_post_init_user() moved to userspace
#ifdef RGBLIGHT_ENABLE
rgblight_enable_noeeprom();
rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT);
rgblight_setrgb(RGB_OBE_BOW); // Default startup colour
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
rgblight_sethsv_noeeprom(HSV_OBE_BOW); // Default startup colour
rgblight_layers = _rgb_layers;
#endif
}
Expand Down
12 changes: 8 additions & 4 deletions keyboards/mechwild/obe/keymaps/jonavin/readme.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
# Jonavin's MechWild Orange Boy Ergo keymap

--> This keymap makes user of user/jonavin userspace
--> This keymap makes use of user/jonavin userspace

Features
- Split spacebars, Split Backspace
- Inverted Num Lock indicator (LED on when num lock if off)
- RGB Winlock indicator (requires LED stripto be installed)
- RGB Layer indicators: FN/MO1 - Purple; LOWER/MO2 - Yellow; RAISE/MO3/NumPad - Green
- quick demo https://youtu.be/gR1awbsouLk

- Add PrtScr, Scroll Lock, Break, NumLock to Fn layer
- Implement Win key lock using Fn+Win
- Layer 2 (LOWER) when right B is held -- for emoticons
- Layer 2 RGB functions
- Layer 2 RGB functions, and EEPROM Reset
- Layer 3 (RAISE) mod on Caps Lock with double-tap to switch to this layer, double tap to switch back
- provides arrows on WASD and additional nav keys + right hand numpad with 00; an be used for Alt Code entry
- left spacebar Backspace
- add double tap of Left Shift to toggle Caps Lock
- Up arrow is also Shift when held


rules.mk OPTIONS - Active features from userspace
Expand All @@ -41,6 +43,8 @@ IDLE_TIMEOUT_ENABLE = yes
EMOTICON_ENABLE
- adds EMO_ keycodes for text emojis

INVERT_NUMLOCK_INDICATOR
- inverts the Num lock indicator, LED is on when num lokc is off

## All layers diagram
![image](https://user-images.githubusercontent.com/71780717/135770721-ab263532-f645-4903-99cb-749549944e15.png)

![image](https://user-images.githubusercontent.com/71780717/137356366-6b23c71b-9499-473e-a1e3-c65644135fc6.png)
1 change: 1 addition & 0 deletions keyboards/mechwild/obe/keymaps/jonavin/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ TD_LSFT_CAPSLOCK_ENABLE = yes
STARTUP_NUMLOCK_ON = yes
ENCODER_DEFAULTACTIONS_ENABLE = yes
EMOTICON_ENABLE = yes
INVERT_NUMLOCK_INDICATOR = yes
1 change: 1 addition & 0 deletions users/jonavin/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#define GRAVE_ESC_CTRL_OVERRIDE // Always send Escape if Control is pressed

#define TAPPING_TERM 180
#define TAPPING_TERM_PER_KEY

#ifdef RGB_MATRIX_ENABLE
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR
Expand Down
12 changes: 12 additions & 0 deletions users/jonavin/jonavin.c
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,18 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
};


uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_SFTUP:
return 300;
case KC_RAISESPC:
case KC_LOWERSPC:
return 450;
default:
return TAPPING_TERM;
}
}

// Turn on/off NUM LOCK if current state is different
void activate_numlock(bool turn_on) {
if (IS_HOST_LED_ON(USB_LED_NUM_LOCK) != turn_on) {
Expand Down
4 changes: 4 additions & 0 deletions users/jonavin/jonavin.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,10 @@ enum custom_user_keycodes {
#define CT_PGDN RCTL(KC_PGDN)
#define CT_HOME RCTL(KC_HOME)
#define CT_END RCTL(KC_END)
#define KC_SFTUP RSFT_T(KC_UP) // Shift when held, Up arrow when tapped
#define KC_RAISESPC LT(_RAISE,KC_SPC) // _RAISE layer mod when held, space when tapped
#define KC_LOWERSPC LT(_LOWER,KC_SPC) // _LOWER layer mod when held, space when tapped


#ifdef TD_LSFT_CAPSLOCK_ENABLE
// Tap Dance Definitions
Expand Down
14 changes: 13 additions & 1 deletion users/jonavin/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,17 @@ KEYCODES:
- CT_PGDN Ctrl-PgDn
- CT_HOME Ctrl-HOme
- CT_END Ctrl-End
- KC_SFTUP RShift when held, Up arrow when tapped
- KC_RAISESPC _RAISE layer mod when held, space when tapped
- KC_LOWERSPC _LOWER layer mod when held, space when tapped
-
When EMOTICON_ENABLE = yes
- EMO_SHRUG `\_("/)_/`
- EMO_CONFUSE (*_*)
- EMD_TEARS (T_T)
- EMO_NERVOUS (~_~;)
- EMO_JOY (^o^)
- EMO_SAD :'-(


AVAILABLE ENCODER ACTIONS:
Expand Down Expand Up @@ -79,7 +83,15 @@ IDLE_TIMEOUT_ENABLE = yes
- Enables Timer functionality; for RGB idle timeouts that can be changed dynamically
- When enabled, use this in the keymap for an additional matrix processing: void matrix_scan_keymap(void)

- Functions:
EMOTICON_ENABLE
- adds EMO_ keycodes for text emojis

INVERT_NUMLOCK_INDICATOR
- inverts the Num lock indicator, LED is on when num lock is off


FUNCTIONS
------------------------
- u16int_t get_timeout_threshold(void) // returns the current timeout threshold
- void timeout_update_threshold(bool increase) // change threshold: true = increase, false = decrease
- void timeout_reset_timer(void) // resets timer (put in process_record_user if you override it)
Expand Down
3 changes: 3 additions & 0 deletions users/jonavin/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,6 @@ endif
ifeq ($(strip $(EMOTICON_ENABLE)), yes)
OPT_DEFS += -DEMOTICON_ENABLE
endif
ifeq ($(strip $(INVERT_NUMLOCK_INDICATOR)), yes)
OPT_DEFS += -DINVERT_NUMLOCK_INDICATOR
endif