logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git
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:

Akeyboards/zsa/moonlander/keymaps/UNX/config.h25+++++++++++++++++++++++++
Akeyboards/zsa/moonlander/keymaps/UNX/keymap.c69+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 +