keymap.c (2250B)
- // Copyright 2023 QMK
- // SPDX-License-Identifier: GPL-2.0-or-later
- #include QMK_KEYBOARD_H
- /* Keymap for 3x4 Macropad
- *
- * Layer 0 (Base Layer) - Numpad layout with mute button and layer toggle:
- * ,----------------------,
- * | 7 | 8 | 9 | MUTE |
- * |-------+-------+-------+--------|
- * | 4 | 5 | 6 | Layer1 |
- * |-------+-------+-------+--------|
- * | 1 | 2 | 3 | 0 |
- * `-----------------------^--------'
- *
- * Layer 1 (Function Layer) - Accessed by holding MO(1):
- * ,----------------------,
- * | BKSP | / | - | ---- |
- * |-------+-------+-------+--------|
- * | = | * | + | ---- |
- * |-------+-------+-------+--------|
- * | ENTER | ---- | ---- | . |
- * `-----------------------^--------'
- *
- * The base layer (0) provides standard numpad functionality with:
- * - Numbers 0-9 in traditional numpad layout
- * - Mute button in top right
- * - Layer 1 momentary toggle (MO1) in middle right
- *
- * The function layer (1) adds:
- * - Basic mathematical operators (+, -, *, /)
- * - Backspace, Enter, and decimal point
- * - Equal sign for calculations
- * - Empty slots marked as ---- (KC_NO)
- */
- const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_ortho_3x4(
- KC_KP_7, KC_KP_8, KC_KP_9, KC_MUTE,
- KC_KP_4, KC_KP_5, KC_KP_6, MO(1),
- KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_0
- ),
- [1] = LAYOUT_ortho_3x4(
- KC_BACKSPACE, KC_KP_SLASH, KC_KP_MINUS, _______,
- KC_EQUAL, KC_KP_ASTERISK, KC_KP_PLUS, _______,
- KC_ENTER, _______, _______, KC_KP_DOT
- )
- };
- /*
- * Handle layer state changes by updating RGB matrix colors
- *
- * Sets RGB matrix colors based on active layer:
- * - Layer 0: Light green (#88FB7A)
- * - Layer 1: Red
- * - Other layers: Red (fallback)
- */
- layer_state_t layer_state_set_user(layer_state_t state) {
- switch (get_highest_layer(state)) {
- case 0:
- rgb_matrix_sethsv(85, 255, 251); // #88FB7A for layer 0
- break;
- case 1:
- rgb_matrix_sethsv(0, 255, 255); // Red for layer 1
- break;
- default:
- rgb_matrix_sethsv(0, 255, 255); // Red for any other layer
- break;
- }
- return state;
- }