fl16/macropad: Make numpad layout the default

And put RGB controls on the numlock layer.

Signed-off-by: Daniel Schaefer <dhs@frame.work>
This commit is contained in:
Daniel Schaefer
2023-11-17 14:50:51 +08:00
parent dae3cbe572
commit 64d541cc0c
3 changed files with 68 additions and 42 deletions

View File

@@ -6,58 +6,58 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* ┌───────┬───────┬───────┬───────┐
* 4 keys │ RGB │RGB Nxt│ RGB + │ Sleep │
* │Toggle │Effect │Brightn│ │
* ├───────┼───────┼───────┼───────┤
* 4 keys │Numpad │RGB Prv│ RGB - │ RGB BL│
* │Layer │Effect │Brightn│ Step │
* ├───────┼───────┼───────┼───────┤
* 4 keys │ RGB + │ RGB + │ RGB + │ <-- │
* │ Hue │ Sat │ Speed │ │
* ├───────┼───────┼───────┼───────┤
* 4 keys │ RGB - │ RGB - │ RGB - │ Enter │
* │ Hue │ Sat │ Speed │ │
* ├───────┼───────┼───────┼───────┤
* 4 keys │ │ Up │ │ │
* │ │ │ │ │
* ├───────┼───────┼───────┼───────┤
* 4 keys │ Left │ Down │ Right │ │
* │ │ │ │ │
* └───────┴───────┴───────┴───────┘
* 24 total
*/
[0] = LAYOUT(
RGB_TOG, RGB_MOD, RGB_VAI, KC_SLEP,
TG(1), RGB_RMOD,RGB_VAD, BL_STEP,
RGB_HUI, RGB_SAI, RGB_SPI, KC_BSPC,
RGB_HUD, RGB_SAD, RGB_SPD, KC_ENT,
XXXXXXX, KC_UP, XXXXXXX, XXXXXXX,
KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX
),
/* Numpad
* ┌────┬────┬────┬────┐
* 4 keys │Esc │Calc│ = │ <- │
* ├────┼────┼────┼────┤
* 4 keys │ │ / │ * │ - │
* 4 keys │ Num│ / │ * │ - │
* ├────┼────┼────┼────┤
* 4 keys │ 7 │ 8 │ 9 │ + │
* 3 keys │ 7 │ 8 │ 9 │ + │
* ├────┼────┼────┼────┤
* 4 keys │ 4 │ 5 │ 6 │ + │
* ├────┼────┼────┼────┤
* 4 keys │ 1 │ 2 │ 3 │Entr│
* 3 keys │ 1 │ 2 │ 3 │Entr│
* ├────┼────┼────┼────┤
* 4 keys │ 0 │ 0 │ . │Entr│
* └────┴────┴────┴────
* 24 total
* 3 keys │ 0 │ 0 │ . │Entr│
* └────┴────┴────┴────
* 21 total
*/
[1] = LAYOUT(
[_NUMLOCK] = LAYOUT(
KC_ESC, KC_CALC, KC_EQL, KC_BSPC,
_______, KC_PSLS, KC_PAST, KC_PMNS,
KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
KC_P7, KC_P8, KC_P9, KC_PPLS,
KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3, KC_PENT,
KC_P0, KC_P0, KC_PDOT, KC_PENT
),
/*
* ┌───────┬───────┬───────┬───────┐
* 4 keys │ RGB │ RGB + │ RGB + │ RGB + │
* │Toggle │ Speed │ Hue │ Sat │
* ├───────┼───────┼───────┼───────┤
* 4 keys │Numlock│ RGB - │ RGB - │ RGB - │
* │ │ Speed │ Hue │ Sat │
* ├───────┼───────┼───────┼───────┤
* 4 keys │ Home │ ↑ │ Page │RGB Nxt│
* │ │ │ Up │Effect │
* ├───────┼───────┼───────┼───────┤
* 4 keys │ ← │ │ → │RGB Prv│
* │ │ │ │Effect │
* ├───────┼───────┼───────┼───────┤
* 4 keys │ End │ ↓ │ Page │ BL │
* │ │ │ Down │ Step │
* ├───────┼───────┼───────┼───────┤
* 4 keys │ Insert│ Insert│ Delete│ BL │
* │ │ │ │ Step │
* └───────┴───────┴───────┴───────┘
* 24 total
*/
[_FN] = LAYOUT(
RGB_TOG, RGB_SPI, RGB_HUI, RGB_SAI,
_______, RGB_SPD, RGB_HUD, RGB_SAD,
_______, _______, _______, RGB_MOD,
_______, _______, _______, RGB_RMOD,
_______, _______, _______, BL_STEP,
_______, _______, _______, BL_STEP
),
/* Alphabet
* ┌────┬────┬────┬────┐
@@ -75,19 +75,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* └────┴────┴────┴────┘
* 24 total
*/
[2] = LAYOUT(
[_FACTORY] = LAYOUT(
KC_A, KC_B, KC_C, KC_D,
KC_E, KC_F, KC_G, KC_H,
KC_I, KC_J, KC_K, KC_L,
KC_M, KC_N, KC_O, KC_P,
KC_Q, KC_R, KC_S, KC_T,
KC_U, KC_V, KC_W, KC_X
)
),
};
bool led_update_user(led_t led_state) {
// Change layer if numlock state changes, either triggered by OS or
// by numlock key on this keyboard
if (led_state.num_lock) {
layer_off(_FN);
} else {
layer_on(_FN);
}
return true;
}
void enable_factory_mode(bool enable) {
if (enable)
layer_on(2);
layer_on(_FACTORY);
else
layer_off(2);
layer_off(_FACTORY);
}

View File

@@ -79,3 +79,12 @@ led_config_t g_led_config = { {
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4
} };
void keyboard_post_init_user(void) {
// Sync initial numlock state from the host
if (host_keyboard_led_state().num_lock) {
layer_on(_NUMLOCK);
} else {
layer_off(_FN);
}
}

View File

@@ -15,3 +15,9 @@
{ K108, H1, H2, KC_NO, H4, K107, K109, K110 }, \
{ KC_NO, KC_NO, KC_NO, KC_NO, H3, KC_NO, KC_NO, KC_NO }, \
}
enum _layers {
_NUMLOCK,
_FN,
_FACTORY,
};