Skip to content

QMK FirmwareのRGB Matrixの設定をできるだけinfo.jsonに書く

skeletonkbd edited this page Jun 13, 2023 · 2 revisions

絶対あとで分からなくなるので自分用にメモ。 プルリクで色々指摘してもらったので大丈夫なはず。 QMK Firmware 0.21.1で確認。

info.json

    "features": {
        "rgb_matrix": true
    },

まず、RGB Matrixの機能を使えるようにする。


    "ws2812": {
        "driver": "vendor",
        "pin": "GP0"
    },

ws2812の設定。SK6812mini-eもこれ。
driverはもともとrules.mkに書いてたやつ。RP2040だと必須。
pinはここで指定。もともとconfig.hWS2812_DI_PIN(旧RGB_DI_PIN)


"rgb_matrix": {
        "driver": "WS2812",
        "layout": [
            {"matrix": [0, 0], "x": 33.1, "y": 3.7, "flags": 4},
            {"matrix": [0, 1], "x": 45.7, "y": 3.7, "flags": 4},
            {"matrix": [0, 2], "x": 58.3, "y": 2.4, "flags": 4},
            {"matrix": [0, 3], "x": 71.1, "y": 6.4, "flags": 4},
            {"matrix": [0, 4], "x": 83.4, "y": 10.4, "flags": 4},
            {"matrix": [0, 5], "x": 95.7, "y": 14.3, "flags": 4},
            {"matrix": [0, 6], "x": 108, "y": 18.3, "flags": 4},
            {"matrix": [1, 5], "x": 99.3, "y": 35, "flags": 4},
            {"matrix": [1, 4], "x": 86.9, "y": 31, "flags": 4},
            {"matrix": [1, 3], "x": 74.6, "y": 27, "flags": 4},
            {"matrix": [1, 2], "x": 62.3, "y": 23.1, "flags": 4},
            {"matrix": [1, 1], "x": 49.2, "y": 22.7, "flags": 4},
            {"matrix": [1, 0], "x": 33.5, "y": 22.7, "flags": 1},
            {"matrix": [2, 0], "x": 32.3, "y": 41.8, "flags": 1},
            {"matrix": [2, 1], "x": 49.7, "y": 41.8, "flags": 4},
            {"matrix": [2, 2], "x": 62.7, "y": 42.7, "flags": 4},
            {"matrix": [2, 3], "x": 75.1, "y": 46.7, "flags": 4},
            {"matrix": [2, 4], "x": 87.4, "y": 50.6, "flags": 4},
            {"matrix": [2, 5], "x": 99.7, "y": 54.6, "flags": 4},
            {"matrix": [3, 5], "x": 103.3, "y": 75.2, "flags": 4},
            {"matrix": [3, 4], "x": 90.9, "y": 71.2, "flags": 4},
            {"matrix": [3, 3], "x": 78.6, "y": 67.3, "flags": 4},
            {"matrix": [3, 2], "x": 66.3, "y": 63.3, "flags": 4},
            {"matrix": [3, 1], "x": 53.3, "y": 60.8, "flags": 4},
            {"matrix": [3, 0], "x": 32.8, "y": 60.8, "flags": 1},
            {"matrix": [4, 0], "x": 28.1, "y": 79.9, "flags": 1},
            {"matrix": [4, 1], "x": 47, "y": 79.9, "flags": 1},
            {"matrix": [4, 3], "x": 80.6, "y": 87.4, "flags": 4},
            {"matrix": [4, 5], "x": 100.6, "y": 93.8, "flags": 4},
            {"matrix": [4, 7], "x": 140.2, "y": 90.4, "flags": 4},
            {"matrix": [4, 10], "x": 166.4, "y": 82.5, "flags": 1},
            {"matrix": [4, 12], "x": 195.7, "y": 79.9, "flags": 1},
            {"matrix": [4, 13], "x": 211.4, "y": 79.9, "flags": 4},
            {"matrix": [4, 14], "x": 224, "y": 79.9, "flags": 4},
            {"matrix": [4, 15], "x": 236.6, "y": 79.9, "flags": 4},
            {"matrix": [3, 14], "x": 224, "y": 60.8, "flags": 4},
            {"matrix": [3, 13], "x": 206.7, "y": 60.8, "flags": 1},
            {"matrix": [3, 12], "x": 189.4, "y": 60.8, "flags": 4},
            {"matrix": [3, 11], "x": 176.8, "y": 60.8, "flags": 4},
            {"matrix": [3, 10], "x": 163.7, "y": 63.3, "flags": 4},
            {"matrix": [3, 9], "x": 151.4, "y": 67.3, "flags": 4},
            {"matrix": [3, 8], "x": 139.1, "y": 71.2, "flags": 4},
            {"matrix": [3, 7], "x": 126.8, "y": 75.2, "flags": 4},
            {"matrix": [2, 7], "x": 130.3, "y": 54.6, "flags": 4},
            {"matrix": [2, 8], "x": 142.6, "y": 50.6, "flags": 4},
            {"matrix": [2, 9], "x": 155, "y": 46.7, "flags": 4},
            {"matrix": [2, 10], "x": 167.3, "y": 42.7, "flags": 4},
            {"matrix": [2, 11], "x": 180.4, "y": 41.8, "flags": 4},
            {"matrix": [2, 12], "x": 193, "y": 41.8, "flags": 4},
            {"matrix": [2, 13], "x": 213.4, "y": 41.8, "flags": 4},
            {"matrix": [2, 15], "x": 236.6, "y": 39.6, "flags": 4},
            {"matrix": [1, 15], "x": 235.3, "y": 20.5, "flags": 4},
            {"matrix": [1, 14], "x": 217.4, "y": 22.7, "flags": 4},
            {"matrix": [1, 13], "x": 201.6, "y": 22.7, "flags": 4},
            {"matrix": [1, 12], "x": 189, "y": 22.7, "flags": 4},
            {"matrix": [1, 11], "x": 176.4, "y": 22, "flags": 4},
            {"matrix": [1, 10], "x": 163.4, "y": 24.5, "flags": 4},
            {"matrix": [1, 9], "x": 151.1, "y": 28.4, "flags": 4},
            {"matrix": [1, 8], "x": 138.7, "y": 32.4, "flags": 4},
            {"matrix": [1, 7], "x": 126.4, "y": 36.4, "flags": 4},
            {"matrix": [0, 7], "x": 128.1, "y": 16.3, "flags": 4},
            {"matrix": [0, 8], "x": 140.5, "y": 12.4, "flags": 4},
            {"matrix": [0, 9], "x": 152.8, "y": 8.4, "flags": 4},
            {"matrix": [0, 10], "x": 165.1, "y": 4.4, "flags": 4},
            {"matrix": [0, 11], "x": 178.2, "y": 2.9, "flags": 4},
            {"matrix": [0, 12], "x": 190.8, "y": 3.7, "flags": 4},
            {"matrix": [0, 14], "x": 209.7, "y": 3.7, "flags": 1},
            {"matrix": [0, 15], "x": 233.9, "y": 1.5, "flags": 4}
        ],
        "max_brightness": 118,
        "sat_steps": 8,
        "speed_steps": 10,
        "val_steps": 8
    },

RGB Matrixの設定本体。

config.h

#define WS2812_PIO_USE_PIO1
#define RGB_MATRIX_LED_COUNT 68

LEDの個数の設定はconfig.hに書く必要があるっぽい。なぜなのか🤔


#define RGB_DISABLE_WHEN_USB_SUSPENDED
#define USB_SUSPEND_WAKEUP_DELAY 200 // おまじない

スリープ中にLEDを消灯する設定は変わらず。


#define ENABLE_RGB_MATRIX_ALPHAS_MODS
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
#define ENABLE_RGB_MATRIX_BREATHING
#define ENABLE_RGB_MATRIX_BAND_SAT
#define ENABLE_RGB_MATRIX_BAND_VAL
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
#define ENABLE_RGB_MATRIX_CYCLE_ALL
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
#define ENABLE_RGB_MATRIX_DUAL_BEACON
#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
#define ENABLE_RGB_MATRIX_RAINDROPS
#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
#define ENABLE_RGB_MATRIX_HUE_BREATHING
#define ENABLE_RGB_MATRIX_HUE_PENDULUM
#define ENABLE_RGB_MATRIX_HUE_WAVE
#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
#define ENABLE_RGB_MATRIX_PIXEL_FLOW
#define ENABLE_RGB_MATRIX_PIXEL_RAIN

#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
#define ENABLE_RGB_MATRIX_DIGITAL_RAIN

#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_KEYRELEASES
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
#define ENABLE_RGB_MATRIX_SPLASH
#define ENABLE_RGB_MATRIX_MULTISPLASH
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

アニメーションの設定も変わらず。


#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_UP_DOWN

初期アニメーションの設定はRGB_MATRIX_STARTUP_MOD(旧RGB_MATRIX_DEFAULT_MODE


全部info.jsonに書けるようになるといいなぁ😮‍💨