qmk-keychron-q3-colemak-dh/keyboards/zsa/moonlander
James Young 8ff8e9eae5
Migrate LOCKING_*_ENABLE to Data-Driven: X-Z (#23790)
Affects:

  - `x16`
  - `xelus/akis`
  - `xelus/dharma`
  - `xelus/kangaroo/rev1`
  - `xelus/kangaroo/rev2`
  - `xelus/ninjin`
  - `xelus/pachi/mini_32u4`
  - `xelus/pachi/rev1`
  - `xelus/snap96`
  - `xelus/xs108`
  - `xiudi/xd60/rev2`
  - `xiudi/xd60/rev3`
  - `xiudi/xd68`
  - `xiudi/xd75`
  - `xiudi/xd84pro`
  - `xiudi/xd87`
  - `xmmx`
  - `ydkb/chili`
  - `ydkb/grape`
  - `ydkb/just60`
  - `yiancardesigns/barleycorn`
  - `yiancardesigns/gingham`
  - `yiancardesigns/seigaiha`
  - `ymdk/melody96/soldered`
  - `ymdk/np21`
  - `ymdk/yd60mq`
  - `ymdk/ymd09`
  - `ymdk/ymd67`
  - `yoichiro/lunakey_mini`
  - `yushakobo/quick7`
  - `yynmt/acperience12/rev1`
  - `yynmt/dozen0`
  - `yynmt/kagamidget`
  - `zigotica/z12`
  - `zigotica/z34`
  - `zj68`
  - `zlant`
  - `zoo/wampus`
  - `zsa/moonlander`
  - `ztboards/after`
  - `ztboards/noon`
2024-05-24 03:14:15 +01:00
..
keymaps
config.h Migrate LOCKING_*_ENABLE to Data-Driven: X-Z (#23790) 2024-05-24 03:14:15 +01:00
halconf.h
keyboard.json Migrate LOCKING_*_ENABLE to Data-Driven: X-Z (#23790) 2024-05-24 03:14:15 +01:00
matrix.c Update GPIO API usage in keyboard code (#23361) 2024-05-03 15:21:29 +10:00
mcuconf.h
moonlander.c Update GPIO API usage in keyboard code (#23361) 2024-05-03 15:21:29 +10:00
moonlander.h Update GPIO API usage in keyboard code (#23361) 2024-05-03 15:21:29 +10:00
readme.md
rules.mk Add audio driver to keyboard.json schema (#23616) 2024-04-26 05:41:22 +01:00

Moonlander

Moonlander

A next-gen split, ergonomic keyboard with an active left side, USB type C, integrated wrist rest, and a thumb cluster that can move.

  • Keyboard Maintainer: drashna, ZSA
  • Hardware Supported: Moonlander MK 1 (STM32F303xC)
  • Hardware Availability: ZSA Store

Make example for this keyboard (after setting up your build environment):

make zsa/moonlander:default

Flashing example for this keyboard:

make zsa/moonlander:default:flash

See the build environment setup and the make instructions for more information. Brand new to QMK? Start with our Complete Newbs Guide.

Moonlander Customization

Indicator LEDs

There are 6 functions for enabling and disabling the LEDs on the top of the boards. The functions are ML_LED_1(bool) through ML_LED_6(bool), with the first LED being the left most LED on the left hand, and the sixth LED being the right most LED on the right side.

By default, the Indicator LEDs are used to indicate the layer state for the keyboard. If you wish to change this (and indicate caps/num/scroll lock status instead), then define MOONLANDER_USER_LEDS in your config.h file.

Oryx Configuration

To enable the features from Oryx (ZSA's Configurator), either compile the default keymap, or add #define ORYX_CONFIGURATOR to your config.h file.

This enables the front Indicator LEDs, and the TOGGLE_LAYER_COLOR keycode. The TOGGLE_LAYER_COLOR keycode toggles the customized LED map configured on Oryx.

RGB Matrix Features

If you're using the Smart LED (layer indication) feature from the Oryx Configurator, you want to make sure that you enable these options by adding #define ORYX_CONFIGURATOR to your keymap's config.h.

This changes the RGB_TOG keycode so that it will toggle the lights on and off, in a way that will allow the Smart LEDs to continue to work, even with the rest of the LEDs turned off.

Additionally, a new keycode has been added to toggle the Smart LEDs. Use TOGGLE_LAYER_COLOR, if you aren't already.

Detecting split / Gaming mode

To make it extra gaming friendly, you can configure what happens when you disconnect the right half. This is especially useful when using gaming unfriendly layers or layouts (e.g. home row mods, dvorak, colemak).

Example for enabling a specific layer while right side is disconnected:

void housekeeping_task_user(void) {
    if (!is_transport_connected()) {
        // set layer
    }
}