commit: cb5ab6ee80494737a682a72805c1ec41ab6f2ac7
parent 1a58fce043e7f2e2b938dee03945dabc29e48d73
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date: Fri, 29 Aug 2025 19:07:59 +0200
zsa/moonlander/keymaps/UNX: Add custom layout
Diffstat:
2 files changed, 94 insertions(+), 0 deletions(-)
diff --git a/keyboards/zsa/moonlander/keymaps/UNX/config.h b/keyboards/zsa/moonlander/keymaps/UNX/config.h
@@ -0,0 +1,25 @@
+/* Copyright 2020 ZSA Technology Labs, Inc <@zsa>
+ * Copyright 2020 Jack Humbert <jack.humb@gmail.com>
+ * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#define ORYX_CONFIGURATOR
+
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+
+#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_REACTIVE_SIMPLE
diff --git a/keyboards/zsa/moonlander/keymaps/UNX/keymap.c b/keyboards/zsa/moonlander/keymaps/UNX/keymap.c
@@ -0,0 +1,69 @@
+#include QMK_KEYBOARD_H
+#if __has_include("keymap.h")
+# include "keymap.h"
+#endif
+
+#define A_SPC ALT_T(KC_SPC)
+
+// clang-format off
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT(
+KC_ESC, 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_GRV,
+KC_ENT, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, /** : **/ KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, MO(1), /** : **/ KC_APP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, /** : **/ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+TG(1), KC_LEFT, KC_RGHT, KC_LGUI, A_SPC, /* */ KC_DEL, /** : **/ KC_INS, /* */ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RCTL,
+ KC_SPC, KC_NO, KC_ENT, /** : **/ KC_LALT, KC_TAB, KC_BSPC
+),
+// MU_TOGG : Toggles Music Mode
+[1] = LAYOUT(
+KC_TRNS, 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_PSCR,
+MU_TOGG, KC_NO, KC_NO, KC_NO, EE_CLR, KC_NO, KC_NO, /** : **/ KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_MPLY, KC_NO,
+KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, /** : **/ KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO,
+KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, /** : **/ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
+KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, /* */ RM_VALU, /** : **/ RM_TOGG, /* */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ RM_HUED, RM_VALD, RM_HUEU, /** : **/ KC_TRNS, RM_NEXT, RM_PREV
+)
+};
+// clang-format on
+
+// Taken from docs/features/rgb_matrix.md
+// "Layer indicator only on keys with configured keycodes:"
+// And then modified
+bool
+rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
+ // None for default layer
+ if (IS_LAYER_ON_STATE(layer_state, 0)) return false;
+
+ uint8_t layer = get_highest_layer(layer_state);
+
+ // HSV_GREEN: defined in quantum/color.h
+ hsv_t color_hsv = {HSV_GREEN};
+ color_hsv.v = rgb_matrix_get_val()/2; // Half-bright as normal effects
+ rgb_t color_rgb = hsv_to_rgb(color_hsv);
+
+ for (uint8_t row = 0; row < MATRIX_ROWS; ++row)
+ {
+ for (uint8_t col = 0; col < MATRIX_COLS; ++col)
+ {
+ uint8_t index = g_led_config.matrix_co[row][col];
+
+ if (
+ index >= led_min
+ && index < led_max
+ && index != NO_LED
+ && keymap_key_to_keycode(layer, (keypos_t){col,row}) > KC_TRNS
+ )
+ {
+ rgb_matrix_set_color(index, color_rgb.r, color_rgb.g, color_rgb.b);
+ }
+ }
+ }
+
+ return false;
+}
+
+#ifdef OTHER_KEYMAP_C
+# include OTHER_KEYMAP_C
+#endif // OTHER_KEYMAP_C
+