aboutsummaryrefslogtreecommitdiffstats
path: root/keyboards/sdrakbs/sdrakb00/keymaps
diff options
context:
space:
mode:
authorDiego Andres Rabaioli2024-11-06 08:46:17 +0100
committerGitHub2024-11-06 08:46:17 +0100
commitf4e6af2dbe8c2b0d24dfa14e58d3be02bd6b2b7d (patch)
tree8bb93402dcf925509dafaebc18a3162cf38ea3a4 /keyboards/sdrakbs/sdrakb00/keymaps
parentf5f11b7c797c28f2ed8177fcf7c81e6207346184 (diff)
Adding SdraKb00 keyboard (#24552)
Co-authored-by: jack <jack@pngu.org> Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Diffstat (limited to 'keyboards/sdrakbs/sdrakb00/keymaps')
-rw-r--r--keyboards/sdrakbs/sdrakb00/keymaps/default/keymap.c74
1 files changed, 74 insertions, 0 deletions
diff --git a/keyboards/sdrakbs/sdrakb00/keymaps/default/keymap.c b/keyboards/sdrakbs/sdrakb00/keymaps/default/keymap.c
new file mode 100644
index 0000000000..c5481b1076
--- /dev/null
+++ b/keyboards/sdrakbs/sdrakb00/keymaps/default/keymap.c
@@ -0,0 +1,74 @@
+// 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;
+}