aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManna Harbour <51143715+manna-harbour@users.noreply.github.com>2020-06-23 15:30:05 +1000
committerGitHub <noreply@github.com>2020-06-22 22:30:05 -0700
commitf0bde7906d35c1955a39251659e80d41caccbc54 (patch)
treed7b00bdd3bae2c295c78c1837ddbf90c31d04735
parent24b0cda3e877c28c53c1aca02ef6e0eaa66fad91 (diff)
downloadqmk_firmware-f0bde7906d35c1955a39251659e80d41caccbc54.tar.gz
qmk_firmware-f0bde7906d35c1955a39251659e80d41caccbc54.zip
Update miryoku (#9442)
- Add mouse buttons overlay layer - Change button order - Remove crkbd hardware specifics - Add alternative base layer alphas - Change title - Add logo - Reword intro text - Add dev branch and new commits links - Replace manual toc and remove anchors - Unindent lists - Reduce headings - Update docs - Build keymap as object instead of including .c file - Add kle subset mapping images - Add alternative mapping support - Change default mapping for ortho_4x12 - Add split mapping for ortho_4x12 - Add contact section - Add #pragma once to layout and keyboard config.h
-rw-r--r--keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h26
-rw-r--r--keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c53
-rw-r--r--keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk7
-rw-r--r--layouts/community/ergodox/manna-harbour_miryoku/config.h20
-rw-r--r--layouts/community/ergodox/manna-harbour_miryoku/keymap.c19
-rw-r--r--layouts/community/ortho_4x12/manna-harbour_miryoku/config.h31
-rw-r--r--layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c15
-rw-r--r--users/manna-harbour_miryoku/config.h15
-rw-r--r--users/manna-harbour_miryoku/manna-harbour_miryoku.c61
-rw-r--r--users/manna-harbour_miryoku/manna-harbour_miryoku.h19
-rw-r--r--users/manna-harbour_miryoku/miryoku.org559
-rw-r--r--users/manna-harbour_miryoku/rules.mk17
12 files changed, 513 insertions, 329 deletions
diff --git a/keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h b/keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h
index e2fe1824d..a3d430b1e 100644
--- a/keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h
+++ b/keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h
@@ -2,17 +2,15 @@
2 2
3#pragma once 3#pragma once
4 4
5#define EE_HANDS 5#define LAYOUT_miryoku( \
6 6 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
7#ifdef RGB_MATRIX_ENABLE 7 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
8#define RGB_MATRIX_KEYPRESSES // reacts to keypresses 8 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
9#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended 9 N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
10#define RGB_MATRIX_FRAMEBUFFER_EFFECTS 10) \
11#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. 11LAYOUT( \
12#define RGB_MATRIX_HUE_STEP 8 12KC_NO, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_NO, \
13#define RGB_MATRIX_SAT_STEP 8 13KC_NO, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, \
14#define RGB_MATRIX_VAL_STEP 8 14KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_NO, \
15#define RGB_MATRIX_SPD_STEP 10 15 K32, K33, K34, K35, K36, K37 \
16#endif 16)
17
18#define SSD1306OLED // old oled driver
diff --git a/keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c
index f5be6844f..a852ddd05 100644
--- a/keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c
+++ b/keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c
@@ -1,54 +1 @@
1// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- // generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
2
3#define LAYOUT_miryoku( \
4 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
5 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
6 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
7 N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
8) \
9LAYOUT( \
10KC_NO, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_NO, \
11KC_NO, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, \
12KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_NO, \
13 K32, K33, K34, K35, K36, K37 \
14)
15
16#include "manna-harbour_miryoku.c"
17
18
19#ifdef SSD1306OLED
20
21#include "ssd1306.h"
22
23void matrix_init_user(void) {
24 iota_gfx_init(!has_usb()); // turns on the display
25}
26
27// When add source files to SRC in rules.mk, you can use functions.
28const char *read_logo(void);
29
30void matrix_scan_user(void) {
31 iota_gfx_task();
32}
33
34void matrix_render_user(struct CharacterMatrix *matrix) {
35 if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) {
36 matrix_write(matrix, read_logo());
37 }
38}
39
40void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) {
41 if (memcmp(dest->display, source->display, sizeof(dest->display))) {
42 memcpy(dest->display, source->display, sizeof(dest->display));
43 dest->dirty = true;
44 }
45}
46
47void iota_gfx_task_user(void) {
48 struct CharacterMatrix matrix;
49 matrix_clear(&matrix);
50 matrix_render_user(&matrix);
51 matrix_update(&display, &matrix);
52}
53
54#endif //SSD1306OLED
diff --git a/keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk b/keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk
deleted file mode 100644
index c4fb15f34..000000000
--- a/keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
1# generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
2
3RGB_MATRIX_ENABLE = WS2812
4
5# old oled driver
6SRC += ./lib/glcdfont.c \
7 ./lib/logo_reader.c
diff --git a/layouts/community/ergodox/manna-harbour_miryoku/config.h b/layouts/community/ergodox/manna-harbour_miryoku/config.h
new file mode 100644
index 000000000..0f20409c2
--- /dev/null
+++ b/layouts/community/ergodox/manna-harbour_miryoku/config.h
@@ -0,0 +1,20 @@
1// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
2
3#pragma once
4
5#define LAYOUT_miryoku(\
6K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
7K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\
8K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\
9N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
10)\
11LAYOUT_ergodox_pretty( \
12KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
13KC_NO, K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09, KC_NO, \
14KC_NO, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, \
15KC_NO, K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29, KC_NO, \
16KC_NO, KC_NO, KC_NO, KC_NO, K32, K37, KC_NO, KC_NO, KC_NO, KC_NO, \
17 KC_NO, KC_NO, KC_NO, KC_NO, \
18 KC_NO, KC_NO, \
19 K33, K34, KC_NO, KC_NO, K35, K36 \
20)
diff --git a/layouts/community/ergodox/manna-harbour_miryoku/keymap.c b/layouts/community/ergodox/manna-harbour_miryoku/keymap.c
index 1c715a68f..a852ddd05 100644
--- a/layouts/community/ergodox/manna-harbour_miryoku/keymap.c
+++ b/layouts/community/ergodox/manna-harbour_miryoku/keymap.c
@@ -1,20 +1 @@
1// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- // generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
2
3#define LAYOUT_miryoku(\
4K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
5K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\
6K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\
7N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
8)\
9LAYOUT_ergodox_pretty( \
10KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
11KC_NO, K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09, KC_NO, \
12KC_NO, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, \
13KC_NO, K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29, KC_NO, \
14KC_NO, KC_NO, KC_NO, KC_NO, K32, K37, KC_NO, KC_NO, KC_NO, KC_NO, \
15 KC_NO, KC_NO, KC_NO, KC_NO, \
16 KC_NO, KC_NO, \
17 K33, K34, KC_NO, KC_NO, K35, K36 \
18)
19
20#include "manna-harbour_miryoku.c"
diff --git a/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h b/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h
new file mode 100644
index 000000000..772b510ef
--- /dev/null
+++ b/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h
@@ -0,0 +1,31 @@
1// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
2
3#pragma once
4
5#if defined MIRYOKU_MAPPING_SPLIT
6#define LAYOUT_miryoku(\
7K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
8K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\
9K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\
10N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
11)\
12LAYOUT_ortho_4x12(\
13KC_NO, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, KC_NO,\
14K00, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K09,\
15K10, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K19,\
16K20, KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO, K29\
17)
18#else
19#define LAYOUT_miryoku(\
20K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
21K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\
22K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\
23N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
24)\
25LAYOUT_ortho_4x12(\
26K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09,\
27K10, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K19,\
28K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29,\
29KC_NO, KC_NO, K32, K33, K34, K34, K35, K35, K36, K37, KC_NO, KC_NO\
30)
31#endif
diff --git a/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c b/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c
index 07bc15c2a..a852ddd05 100644
--- a/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c
+++ b/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c
@@ -1,16 +1 @@
1// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- // generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
2
3#define LAYOUT_miryoku(\
4K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
5K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\
6K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\
7N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
8)\
9LAYOUT_ortho_4x12(\
10KC_NO, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, KC_NO,\
11K00, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K09,\
12K10, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K19,\
13K20, KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO, K29\
14)
15
16#include "manna-harbour_miryoku.c"
diff --git a/users/manna-harbour_miryoku/config.h b/users/manna-harbour_miryoku/config.h
index 5ac3208c9..db1608815 100644
--- a/users/manna-harbour_miryoku/config.h
+++ b/users/manna-harbour_miryoku/config.h
@@ -2,6 +2,9 @@
2 2
3#pragma once 3#pragma once
4 4
5// default but important
6#define TAPPING_TERM 200
7
5// Prevent normal rollover on alphas from accidentally triggering mods. 8// Prevent normal rollover on alphas from accidentally triggering mods.
6#define IGNORE_MOD_TAP_INTERRUPT 9#define IGNORE_MOD_TAP_INTERRUPT
7 10
@@ -10,3 +13,15 @@
10 13
11// Recommended for heavy chording. 14// Recommended for heavy chording.
12#define QMK_KEYS_PER_SCAN 4 15#define QMK_KEYS_PER_SCAN 4
16
17// Mouse key speed and acceleration.
18#undef MOUSEKEY_DELAY
19#define MOUSEKEY_DELAY 0
20#undef MOUSEKEY_INTERVAL
21#define MOUSEKEY_INTERVAL 16
22#undef MOUSEKEY_WHEEL_DELAY
23#define MOUSEKEY_WHEEL_DELAY 0
24#undef MOUSEKEY_MAX_SPEED
25#define MOUSEKEY_MAX_SPEED 6
26#undef MOUSEKEY_TIME_TO_MAX
27#define MOUSEKEY_TIME_TO_MAX 64
diff --git a/users/manna-harbour_miryoku/manna-harbour_miryoku.c b/users/manna-harbour_miryoku/manna-harbour_miryoku.c
index 8ae38c25c..9bc0f17e6 100644
--- a/users/manna-harbour_miryoku/manna-harbour_miryoku.c
+++ b/users/manna-harbour_miryoku/manna-harbour_miryoku.c
@@ -1,28 +1,51 @@
1// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- 1// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
2 2
3#include QMK_KEYBOARD_H 3#include "manna-harbour_miryoku.h"
4
5#define KC_NP KC_NO // key is not present
6#define KC_NA KC_NO // present but not available for use
7#define KC_NU KC_NO // available but not used
8
9// non-KC_ keycodes
10#define KC_RST RESET
11#define KC_TOG RGB_TOG
12#define KC_MOD RGB_MOD
13#define KC_HUI RGB_HUI
14#define KC_SAI RGB_SAI
15#define KC_VAI RGB_VAI
16
17enum layers { BASE, MEDR, NAVR, MOUR, NSSL, NSL, FUNL };
18 4
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 5const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
6#if defined MIRYOKU_ALPHAS_QWERTY
7 [BASE] = LAYOUT_miryoku(
8 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
9 LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT),
10 KC_Z, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH,
11 KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP
12 ),
13#elif defined MIRYOKU_ALPHAS_DVORAK
14 [BASE] = LAYOUT_miryoku(
15 KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L,
16 LGUI_T(KC_A), LALT_T(KC_O), LCTL_T(KC_E), LSFT_T(KC_U), KC_I, KC_D, LSFT_T(KC_H), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_S),
17 KC_SLSH, ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), KC_Z,
18 KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP
19 ),
20#elif defined MIRYOKU_ALPHAS_COLEMAK
21 [BASE] = LAYOUT_miryoku(
22 KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT,
23 LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_D, KC_H, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O),
24 KC_Z, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH,
25 KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP
26 ),
27#elif defined MIRYOKU_ALPHAS_COLEMAKDH
28 [BASE] = LAYOUT_miryoku(
29 KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT,
30 LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_K, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O),
31 KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH,
32 KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP
33 ),
34#elif defined MIRYOKU_ALPHAS_WORKMAN
35 [BASE] = LAYOUT_miryoku(
36 KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT,
37 LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_H), LSFT_T(KC_T), KC_G, KC_Y, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I),
38 KC_Z, ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), KC_SLSH,
39 KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP
40 ),
41#else
20 [BASE] = LAYOUT_miryoku( 42 [BASE] = LAYOUT_miryoku(
21 KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, 43 KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT,
22 LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), 44 LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O),
23 KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, 45 KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH,
24 KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP 46 KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP
25 ), 47 ),
48#endif
26 [NAVR] = LAYOUT_miryoku( 49 [NAVR] = LAYOUT_miryoku(
27 KC_RST, KC_NA, KC_NA, KC_NA, KC_NA, KC_AGIN, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, 50 KC_RST, KC_NA, KC_NA, KC_NA, KC_NA, KC_AGIN, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE,
28 KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_NA, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, 51 KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_NA, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
@@ -33,7 +56,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33 KC_RST, KC_NA, KC_NA, KC_NA, KC_NA, KC_NU, KC_NU, KC_NU, KC_NU, KC_NU, 56 KC_RST, KC_NA, KC_NA, KC_NA, KC_NA, KC_NU, KC_NU, KC_NU, KC_NU, KC_NU,
34 KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_NA, KC_NU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, 57 KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_NA, KC_NU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R,
35 KC_NA, KC_ALGR, KC_NA, KC_NA, KC_NA, KC_NU, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, 58 KC_NA, KC_ALGR, KC_NA, KC_NA, KC_NA, KC_NU, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R,
36 KC_NP, KC_NP, KC_NA, KC_NA, KC_NA, KC_BTN3, KC_BTN1, KC_BTN2, KC_NP, KC_NP 59 KC_NP, KC_NP, KC_NA, KC_NA, KC_NA, KC_BTN1, KC_BTN3, KC_BTN2, KC_NP, KC_NP
60 ),
61 [MBO] = LAYOUT_miryoku(
62 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
63 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
64 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
65 KC_NP, KC_NP, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN3, KC_BTN2, KC_NP, KC_NP
37 ), 66 ),
38 [MEDR] = LAYOUT_miryoku( 67 [MEDR] = LAYOUT_miryoku(
39 KC_RST, KC_NA, KC_NA, KC_NA, KC_NA, KC_TOG, KC_MOD, KC_HUI, KC_SAI, KC_VAI, 68 KC_RST, KC_NA, KC_NA, KC_NA, KC_NA, KC_TOG, KC_MOD, KC_HUI, KC_SAI, KC_VAI,
diff --git a/users/manna-harbour_miryoku/manna-harbour_miryoku.h b/users/manna-harbour_miryoku/manna-harbour_miryoku.h
new file mode 100644
index 000000000..5f543cb0f
--- /dev/null
+++ b/users/manna-harbour_miryoku/manna-harbour_miryoku.h
@@ -0,0 +1,19 @@
1// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
2
3#pragma once
4
5#include QMK_KEYBOARD_H
6
7#define KC_NP KC_NO // key is not present
8#define KC_NA KC_NO // present but not available for use
9#define KC_NU KC_NO // available but not used
10
11// non-KC_ keycodes
12#define KC_RST RESET
13#define KC_TOG RGB_TOG
14#define KC_MOD RGB_MOD
15#define KC_HUI RGB_HUI
16#define KC_SAI RGB_SAI
17#define KC_VAI RGB_VAI
18
19enum layers { BASE, MBO, MEDR, NAVR, MOUR, NSSL, NSL, FUNL };
diff --git a/users/manna-harbour_miryoku/miryoku.org b/users/manna-harbour_miryoku/miryoku.org
index 692321d01..011e43455 100644
--- a/users/manna-harbour_miryoku/miryoku.org
+++ b/users/manna-harbour_miryoku/miryoku.org
@@ -1,68 +1,75 @@
1#+Title: miryoku.org 1# After making changes to code or tables call org-babel-tangle (C-c C-v t).
2
3#+Title: Miryoku [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/miryoku-roa-32.png]]
2 4
3[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/kle-miryoku-keycodes.png]] 5[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/kle-miryoku-keycodes.png]]
4 6
5The miryoku layout is an ergonomic, minimal, orthogonal layout for ergo or ortho 7Miryoku is an ergonomic, minimal, orthogonal layout for ergo or ortho keyboards,
6keyboards, implemented as part of the QMK firmware. The layout is maintained in 8implemented as part of the QMK firmware.
7emacs org-mode tables and converted to QMK keymap data structures using embedded
8python scripts. The layout is mapped onto keyboards with different physical
9layouts as a subset without code duplication using the QMK userspace feature and
10C macros. Versions of the layout can also be seen outside of the QMK source at
11[[https://github.com/manna-harbour/miryoku/]].
12 9
13After making changes here call org-babel-tangle (C-c C-v t). 10The layout is maintained in emacs org-mode tables and converted to QMK keymap
11data structures using embedded python scripts. It is mapped onto keyboards with
12different physical layouts as a subset without code duplication using the QMK
13userspace feature and C macros.
14 14
15* Contents 15Please see the [[https://github.com/manna-harbour/qmk_firmware/blob/miryoku/users/manna-harbour_miryoku/miryoku.org][development branch]] for any [[https://github.com/qmk/qmk_firmware/compare/master...manna-harbour:miryoku][updates not yet merged into QMK]].
16Additional visualisations are provided outside QMK in the [[https://github.com/manna-harbour/miryoku/blob/master/README.org][Miryoku (Extras) repository]].
16 17
18* Contents :TOC:
17- [[#layout][Layout]] 19- [[#layout][Layout]]
20 - [[#general-principles][General Principles]]
21 - [[#details][Details]]
22 - [[#layers][Layers]]
18- [[#code-generation][Code Generation]] 23- [[#code-generation][Code Generation]]
24 - [[#table-conversion-scripts][Table Conversion Scripts]]
25 - [[#data][Data]]
19- [[#subset-mapping][Subset Mapping]] 26- [[#subset-mapping][Subset Mapping]]
20- [[#related-documentation][Related Documentation]] 27 - [[#userspace][Userspace]]
21 28 - [[#layouts][Layouts]]
29 - [[#keyboards][Keyboards]]
30- [[#documentation][Documentation]]
31 - [[#qmk][QMK]]
32 - [[#org-mode][Org Mode]]
33- [[#contact][Contact]]
22 34
23* Layout 35* Layout
24:PROPERTIES: 36
25:CUSTOM_ID: layout 37** General Principles
26:END: 38
27 39- Use layers instead of reaching.
28** Info 40- Use both hands instead of contortions.
29 41- Use the home positions as much as possible.
30*** General Principles 42- Make full use of the thumbs.
31 43- Avoid unnecessary complication.
32 - Use layers instead of reaching. 44
33 - Use both hands instead of contortions. 45
34 - Use the home positions as much as possible. 46** Details
35 - Make full use of the thumbs. 47
36 - Avoid unnecessary complication. 48- 5 columns, 3 rows, 3 thumb keys, 2 hands.
37 49- Can be used on almost any split or non-split ergo or ortho keyboard.
38 50- Includes all keys found on a US layout TKL keyboard, plus media keys and mouse
39*** Specifics 51 emulation.
40 52- Home row is the middle row, home thumb key is the middle thumb key.
41 - 5 columns, 3 rows, 3 thumb keys, 2 hands. 53- Maximum 1-u movement from home position for fingers and thumbs, and only along
42 - Can be used on almost any split or non-split ergo or ortho keyboard. 54 one axis (except for the inner index finger column which is deprioritised
43 - Includes all keys found on a US layout TKL keyboard, plus media keys and 55 compared with the home columns).
44 mouse emulation. 56- Dual-function modifiers on home row, mirrored on both hands.
45 - Home row is the middle row, home thumb key is the middle thumb key. 57- Dual-function layer change on thumbs.
46 - Maximum 1-u movement from home position for fingers and thumbs, and only 58- Layers are designed orthogonally with a single purpose per hand and are
47 along one axis (except for the inner index finger column which is 59 accessed by holding a thumb key on the opposite hand.
48 deprioritised compared with the home columns). 60- All layers on the same hand are based on the same basic key arrangement.
49 - Dual-function modifiers on home row, mirrored on both hands. 61- Holding layer change and modifiers on one hand combined with a single key
50 - Dual-function layer change on thumbs. 62 press on the other hand can produce any combination of modifiers and single
51 - Layers are designed orthogonally with a single purpose per hand and are 63 keys without any finger contortions.
52 accessed by holding a thumb key on the opposite hand. 64- Single function mods are also defined on layers on the same hand as the layer
53 - All layers on the same hand are based on the same basic key arrangement. 65 change thumb key so layer change and mods can be held in any order or
54 - Holding layer change and modifiers on one hand combined with a single key 66 simultaneously without race conditions.
55 press on the other hand can produce any combination of modifiers and 67- As mods are only enabled on the opposite hand, auto-repeat is available on the
56 single keys without any finger contortions. 68 home row on layers for use with cursor and mouse keys.
57 - Single function mods are also defined on layers on the same hand as the 69- Tap-hold auto-repeat is disabled to permit faster tap-hold switching on
58 layer change thumb key so layer change and mods can be held in any order 70 thumbs, but thumb tap keys are mirrored onto some layers for use with
59 or simultaneously without race conditions. 71 auto-repeat. On other layers thumb keys are redefined with important
60 - As mods are only enabled on the opposite hand, auto-repeat is available on 72 functions for that layer.
61 the home row on layers for use with cursor and mouse keys.
62 - Tap-hold auto-repeat is disabled to permit faster tap-hold switching on
63 thumbs, but thumb tap keys are mirrored onto some layers for use with
64 auto-repeat. On other layers thumb keys are redefined with important
65 functions for that layer.
66 73
67 74
68** Layers 75** Layers
@@ -86,16 +93,21 @@ into the corresponding tap-hold keycodes for mods and layer change. RST and
86mods will be available on sub layers on the same hand as the layer change thumb 93mods will be available on sub layers on the same hand as the layer change thumb
87key. Unknown names are considered to be layer names. 94key. Unknown names are considered to be layer names.
88 95
89Base layer alphas are Colemak DHm. Thumb keys are backspace, enter, delete on 96Base layer alphas are Colemak-DHm. Thumb keys are backspace, enter, delete on
90the right and space, tab, escape on the left. Dot, comma and apostrophe are 97the right and space, tab, escape on the left. Dot, comma and apostrophe are
91included for prose, dot and slash for file and directory names. 98included for prose, dot and slash for file and directory names.
92 99
93#+NAME: tap 100**** Tap
101
102#+NAME: colemakdhm
94| Q | W | F | P | B | J | L | U | Y | ' | 103| Q | W | F | P | B | J | L | U | Y | ' |
95| A | R | S | T | G | M | N | E | I | O | 104| A | R | S | T | G | M | N | E | I | O |
96| Z | X | C | D | V | K | H | , | . | / | 105| Z | X | C | D | V | K | H | , | . | / |
97| NP | NP | ESC | SPC | TAB | ENT | BSPC | DEL | NP | NP | 106| NP | NP | ESC | SPC | TAB | ENT | BSPC | DEL | NP | NP |
98 107
108
109**** Hold
110
99#+NAME: hold 111#+NAME: hold
100| RST | | | | | | | | | RST | 112| RST | | | | | | | | | RST |
101| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | 113| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI |
@@ -103,6 +115,52 @@ included for prose, dot and slash for file and directory names.
103| NP | NP | MEDR | NAVR | MOUR | NSSL | NSL | FUNL | NP | NP | 115| NP | NP | MEDR | NAVR | MOUR | NSSL | NSL | FUNL | NP | NP |
104 116
105 117
118**** Alternative Base Layer Alphas
119
120Alternative base layer alphas are provided. To select, append
121e.g. ~MIRYOKU_ALPHAS=QWERTY~ to the make command line when building.
122
123***** QWERTY (QWERTY)
124#+NAME: qwerty
125| Q | W | E | R | T | Y | U | I | O | P |
126| A | S | D | F | G | H | J | K | L | ' |
127| Z | X | C | V | B | N | M | , | . | / |
128| NP | NP | ESC | SPC | TAB | ENT | BSPC | DEL | NP | NP |
129
130
131***** Dvorak (DVORAK)
132#+NAME: dvorak
133| ' | , | . | P | Y | F | G | C | R | L |
134| A | O | E | U | I | D | H | T | N | S |
135| / | Q | J | K | X | B | M | W | V | Z |
136| NP | NP | ESC | SPC | TAB | ENT | BSPC | DEL | NP | NP |
137
138
139***** Colemak (COLEMAK)
140#+NAME: colemak
141| Q | W | F | P | G | J | L | U | Y | ' |
142| A | R | S | T | D | H | N | E | I | O |
143| Z | X | C | V | B | K | M | , | . | / |
144| NP | NP | ESC | SPC | TAB | ENT | BSPC | DEL | NP | NP |
145
146
147***** Colemak Mod-DH (COLEMAKDH)
148#+NAME: colemakdh
149| Q | W | F | P | B | J | L | U | Y | ' |
150| A | R | S | T | G | K | N | E | I | O |
151| Z | X | C | D | V | M | H | , | . | / |
152| NP | NP | ESC | SPC | TAB | ENT | BSPC | DEL | NP | NP |
153
154
155***** Workman (WORKMAN)
156#+NAME: workman
157| Q | D | R | W | B | J | F | U | P | ' |
158| A | S | H | T | G | Y | N | E | O | I |
159| Z | X | M | C | V | K | L | , | . | / |
160| NP | NP | ESC | SPC | TAB | ENT | BSPC | DEL | NP | NP |
161
162
163
106*** Navigation (NAVR) 164*** Navigation (NAVR)
107 165
108Primary right-hand layer (left home thumb) is navigation and editing. Cursor 166Primary right-hand layer (left home thumb) is navigation and editing. Cursor
@@ -120,15 +178,27 @@ layer to avoid having to layer change mid edit and to enable auto-repeat.
120*** Mouse (MOUR) 178*** Mouse (MOUR)
121 179
122Secondary RH layer is mouse emulation. Mouse movement mirrors cursor navigation 180Secondary RH layer is mouse emulation. Mouse movement mirrors cursor navigation
123on home and wheel mirrors line / page movement below. Buttons are on the 181on home and wheel mirrors line / page movement below. Buttons are on the thumbs
124thumbs. Mouse movement, click, and drag with modifiers can be performed from 182(L, M, R). Mouse movement, click, and drag with modifiers can be performed from
125the home position. Unused keys are available for other related functions. 183the home position. Unused keys are available for other related functions.
126 184
127#+NAME: mour 185#+NAME: mour
128| | | | | | 186| | | | | |
129| | MS_L | MS_D | MS_U | MS_R | 187| | MS_L | MS_D | MS_U | MS_R |
130| | WH_L | WH_D | WH_U | WH_R | 188| | WH_L | WH_D | WH_U | WH_R |
131| BTN3 | BTN1 | BTN2 | NP | NP | 189| BTN1 | BTN3 | BTN2 | NP | NP |
190
191
192**** Mouse Buttons Overlay (MBO)
193
194Available for automatic activation depending on keyboard hardware and
195configuration. Not activated manually.
196
197#+NAME: mbo
198| | | | | | | | | | |
199| | | | | | | | | | |
200| | | | | | | | | | |
201| NP | NP | | | | BTN1 | BTN3 | BTN2 | NP | NP |
132 202
133 203
134*** Media (MEDR) 204*** Media (MEDR)
@@ -211,9 +281,6 @@ Duplicate base layer tap keys on thumbs rather than trans to enable auto-repeat.
211 281
212 282
213* Code Generation 283* Code Generation
214:PROPERTIES:
215:CUSTOM_ID: code-generation
216:END:
217 284
218** Table Conversion Scripts 285** Table Conversion Scripts
219 286
@@ -222,14 +289,14 @@ Duplicate base layer tap keys on thumbs rather than trans to enable auto-repeat.
222Produce base layer from separate tap and hold tables. 289Produce base layer from separate tap and hold tables.
223 290
224#+NAME: table-layout-taphold 291#+NAME: table-layout-taphold
225#+BEGIN_SRC python :var tap_table=tap :var hold_table=hold :var symbol_names_table=symbol-names :var mods_list=mods :tangle no :results verbatim 292#+BEGIN_SRC python :var layer_name="BASE" :var tap_table=colemakdhm :var hold_table=hold :var symbol_names_table=symbol-names :var mods_list=mods :tangle no :results verbatim
226width = 19 293width = 19
227mods_dict = dict.fromkeys(mods_list) 294mods_dict = dict.fromkeys(mods_list)
228symbol_names_dict = {} 295symbol_names_dict = {}
229for symbol, name, shifted_symbol, shifted_name in symbol_names_table: 296for symbol, name, shifted_symbol, shifted_name in symbol_names_table:
230 symbol_names_dict[symbol] = name 297 symbol_names_dict[symbol] = name
231 symbol_names_dict[shifted_symbol] = shifted_name 298 symbol_names_dict[shifted_symbol] = shifted_name
232results = ' [BASE] = LAYOUT_miryoku(\n' 299results = ' [' + layer_name + '] = LAYOUT_miryoku(\n'
233for tap_row, hold_row in map(None, tap_table, hold_table): 300for tap_row, hold_row in map(None, tap_table, hold_table):
234 results += ' ' 301 results += ' '
235 for tap, hold in map(None, tap_row, hold_row): 302 for tap, hold in map(None, tap_row, hold_row):
@@ -254,7 +321,7 @@ return results
254: [BASE] = LAYOUT_miryoku( 321: [BASE] = LAYOUT_miryoku(
255: KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, 322: KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT,
256: LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), 323: LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O),
257: KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, 324: KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH,
258: KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP 325: KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP
259: ) 326: )
260 327
@@ -314,6 +381,43 @@ return results
314: ) 381: )
315 382
316 383
384*** table-layout-full
385
386Produce full layer from single table. Fill for unused keys is configurable.
387
388#+NAME: table-layout-full
389#+BEGIN_SRC python :var table=mbo :var layer_name="MBO" :var fill="TRNS" :var symbol_names_table=symbol-names :tangle no :results verbatim
390width = 9
391symbol_names_dict = {}
392for symbol, name, shifted_symbol, shifted_name in symbol_names_table:
393 symbol_names_dict[symbol] = name
394 symbol_names_dict[shifted_symbol] = shifted_name
395results = ' [' + layer_name + '] = LAYOUT_miryoku(\n'
396for row in table:
397 results += ' '
398 for key in row:
399 if key == '':
400 code = fill
401 elif key in symbol_names_dict:
402 code = symbol_names_dict[key]
403 else:
404 code = key
405 code = 'KC_' + str(code)
406 results += (code + ', ').ljust(width)
407 results = results.rstrip(' ') + '\n'
408results = results.rstrip('\n, ') + '\n )'
409return results
410#+END_SRC
411
412#+RESULTS: table-layout-full
413: [MBO] = LAYOUT_miryoku(
414: KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
415: KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
416: KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
417: KC_NP, KC_NP, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN3, KC_BTN2, KC_NP, KC_NP
418: )
419
420
317*** table-enums 421*** table-enums
318 422
319Produce layer enums from layer names in hold table. 423Produce layer enums from layer names in hold table.
@@ -321,7 +425,7 @@ Produce layer enums from layer names in hold table.
321#+NAME: table-enums 425#+NAME: table-enums
322#+BEGIN_SRC python :var hold_table=hold :var mods_list=mods :tangle no 426#+BEGIN_SRC python :var hold_table=hold :var mods_list=mods :tangle no
323mods_dict = dict.fromkeys(mods_list) 427mods_dict = dict.fromkeys(mods_list)
324results = 'enum layers { BASE, ' 428results = 'enum layers { BASE, MBO, '
325for hold_row in hold_table: 429for hold_row in hold_table:
326 for hold in hold_row: 430 for hold in hold_row:
327 if hold not in mods_dict and hold != '' and hold != 'NP' and hold != 'RST': 431 if hold not in mods_dict and hold != '' and hold != 'NP' and hold != 'RST':
@@ -331,7 +435,7 @@ return results
331#+END_SRC 435#+END_SRC
332 436
333#+RESULTS: table-enums 437#+RESULTS: table-enums
334: enum layers { BASE, MEDR, NAVR, MOUR, NSSL, NSL, FUNL }; 438: enum layers { BASE, MBO, MEDR, NAVR, MOUR, NSSL, NSL, FUNL };
335 439
336 440
337** Data 441** Data
@@ -376,8 +480,6 @@ Modifiers usable in hold table. Need to have the same name for KC_ and _T versi
376- ALGR 480- ALGR
377 481
378 482
379** Other
380
381*** header 483*** header
382 484
383Header for tangled src files. 485Header for tangled src files.
@@ -389,25 +491,27 @@ generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t
389 491
390 492
391* Subset Mapping 493* Subset Mapping
392:PROPERTIES: 494
393:CUSTOM_ID: subset-mapping 495The keymap, build options, and configuration are shared between keyboards. The
394:END: 496layout is mapped onto keyboards with different physical layouts as a subset.
395 497
396** Userspace 498** Userspace
397 499
398The keymap and configuration are shared between keyboards. The keymap is 500The keymap is defined for LAYOUT_miryoku which is 10x4, with the outer 2
399defined for LAYOUT_miryoku which is 10x4, with the outer 2 positions on the 501positions on the bottom row unused and the rest of the bottom row being the
400bottom row unused and the rest of the bottom row are the thumb keys. 502thumb keys.
401 503
504*** manna-harbour_miryoku.h
402 505
403*** manna-harbour_miryoku.c 506Keymap-related definitions. Included from manna-harbour_miryoku.c. Can be
507included from keymap or layout keymap.c if needed.
404 508
405Contains the keymap. Included from keymap.c 509[[./manna-harbour_miryoku.h][users/manna-harbour_miryoku/manna-harbour_miryoku.h]]
406 510#+BEGIN_SRC C :noweb yes :padline no :tangle manna-harbour_miryoku.h
407[[./manna-harbour_miryoku.c][users/manna-harbour_miryoku/manna-harbour_miryoku.c]]
408#+BEGIN_SRC C :noweb yes :padline no :tangle manna-harbour_miryoku.c
409// <<header>> 511// <<header>>
410 512
513#pragma once
514
411#include QMK_KEYBOARD_H 515#include QMK_KEYBOARD_H
412 516
413#define KC_NP KC_NO // key is not present 517#define KC_NP KC_NO // key is not present
@@ -423,11 +527,36 @@ Contains the keymap. Included from keymap.c
423#define KC_VAI RGB_VAI 527#define KC_VAI RGB_VAI
424 528
425<<table-enums()>> 529<<table-enums()>>
530#+END_SRC
531
532
533*** manna-harbour_miryoku.c
534
535Contains the keymap. Added from rules.mk.
536
537[[./manna-harbour_miryoku.c][users/manna-harbour_miryoku/manna-harbour_miryoku.c]]
538#+BEGIN_SRC C :noweb yes :padline no :tangle manna-harbour_miryoku.c
539// <<header>>
540
541#include "manna-harbour_miryoku.h"
426 542
427const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 543const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
428<<table-layout-taphold()>>, 544#if defined MIRYOKU_ALPHAS_QWERTY
545<<table-layout-taphold(layer_name="BASE", tap_table=qwerty, hold_table=hold)>>,
546#elif defined MIRYOKU_ALPHAS_DVORAK
547<<table-layout-taphold(layer_name="BASE", tap_table=dvorak, hold_table=hold)>>,
548#elif defined MIRYOKU_ALPHAS_COLEMAK
549<<table-layout-taphold(layer_name="BASE", tap_table=colemak, hold_table=hold)>>,
550#elif defined MIRYOKU_ALPHAS_COLEMAKDH
551<<table-layout-taphold(layer_name="BASE", tap_table=colemakdh, hold_table=hold)>>,
552#elif defined MIRYOKU_ALPHAS_WORKMAN
553<<table-layout-taphold(layer_name="BASE", tap_table=workman, hold_table=hold)>>,
554#else
555<<table-layout-taphold(layer_name="BASE", tap_table=colemakdhm, hold_table=hold)>>,
556#endif
429<<table-layout-half(layer_name="NAVR", half_table=navr)>>, 557<<table-layout-half(layer_name="NAVR", half_table=navr)>>,
430<<table-layout-half(layer_name="MOUR", half_table=mour)>>, 558<<table-layout-half(layer_name="MOUR", half_table=mour)>>,
559<<table-layout-full(layer_name="MBO", table=mbo, fill="TRNS")>>,
431<<table-layout-half(layer_name="MEDR", half_table=medr)>>, 560<<table-layout-half(layer_name="MEDR", half_table=medr)>>,
432<<table-layout-half(layer_name="FUNL", half_table=funl)>>, 561<<table-layout-half(layer_name="FUNL", half_table=funl)>>,
433<<table-layout-half(layer_name="NSL", half_table=nsl)>>, 562<<table-layout-half(layer_name="NSL", half_table=nsl)>>,
@@ -446,6 +575,9 @@ Config options. Automatically included.
446 575
447#pragma once 576#pragma once
448 577
578// default but important
579#define TAPPING_TERM 200
580
449// Prevent normal rollover on alphas from accidentally triggering mods. 581// Prevent normal rollover on alphas from accidentally triggering mods.
450#define IGNORE_MOD_TAP_INTERRUPT 582#define IGNORE_MOD_TAP_INTERRUPT
451 583
@@ -455,6 +587,18 @@ Config options. Automatically included.
455// Recommended for heavy chording. 587// Recommended for heavy chording.
456#define QMK_KEYS_PER_SCAN 4 588#define QMK_KEYS_PER_SCAN 4
457 589
590// Mouse key speed and acceleration.
591#undef MOUSEKEY_DELAY
592#define MOUSEKEY_DELAY 0
593#undef MOUSEKEY_INTERVAL
594#define MOUSEKEY_INTERVAL 16
595#undef MOUSEKEY_WHEEL_DELAY
596#define MOUSEKEY_WHEEL_DELAY 0
597#undef MOUSEKEY_MAX_SPEED
598#define MOUSEKEY_MAX_SPEED 6
599#undef MOUSEKEY_TIME_TO_MAX
600#define MOUSEKEY_TIME_TO_MAX 64
601
458#+END_SRC 602#+END_SRC
459 603
460 604
@@ -466,10 +610,20 @@ Build options. Automatically included.
466#+BEGIN_SRC makefile :noweb yes :padline no :tangle rules.mk 610#+BEGIN_SRC makefile :noweb yes :padline no :tangle rules.mk
467# <<header>> 611# <<header>>
468 612
469MOUSEKEY_ENABLE = yes # Mouse keys(+4700) 613MOUSEKEY_ENABLE = yes # Mouse keys
470EXTRAKEY_ENABLE = yes # Audio control and System control(+450) 614EXTRAKEY_ENABLE = yes # Audio control and System control
471EXTRAFLAGS += -flto # Link Time Optimization to reduce code size, 31358->28034/28672
472 615
616SRC += manna-harbour_miryoku.c # keymap
617
618# select alternative base layer alphas
619ifneq ($(strip $(MIRYOKU_ALPHAS)),)
620 OPT_DEFS += -DMIRYOKU_ALPHAS_$(MIRYOKU_ALPHAS)
621endif
622
623# select alternative subset mappings
624ifneq ($(strip $(MIRYOKU_MAPPING)),)
625 OPT_DEFS += -DMIRYOKU_MAPPING_$(MIRYOKU_MAPPING)
626endif
473#+END_SRC 627#+END_SRC
474 628
475 629
@@ -477,7 +631,9 @@ EXTRAFLAGS += -flto # Link Time Optimization to reduce code size, 31358->28
477 631
478To use the keymap on a keyboard supporting the layouts feature, LAYOUT_miryoku 632To use the keymap on a keyboard supporting the layouts feature, LAYOUT_miryoku
479is defined as a macro mapping onto the layout's own LAYOUT macro, leaving the 633is defined as a macro mapping onto the layout's own LAYOUT macro, leaving the
480unused keys as KC_NO. The userspace keymap is then included. 634unused keys as KC_NO.
635
636The following are example layouts.
481 637
482*** ergodox 638*** ergodox
483 639
@@ -486,10 +642,26 @@ secondary thumb keys are the inner and outer 2u thumb keys and the tertiary
486thumb key is the innermost key of the partial bottom row. The remaining keys 642thumb key is the innermost key of the partial bottom row. The remaining keys
487are unused. 643are unused.
488 644
489[[../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c][layouts/community/ergodox/manna-harbour_miryoku/keymap.c]] 645[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/kle-miryoku-mapping-ergodox.png]]
490#+BEGIN_SRC C :noweb yes :padline no :tangle ../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c 646
647To build for any keyboard using the this layout (ergodone, ergodox_ez,
648ergodox_infinity, hotdox) e.g. the ergodox_ez,
649
650#+BEGIN_SRC sh :tangle no
651make ergodox_ez:manna-harbour_miryoku:flash
652#+END_SRC
653
654
655**** config.h
656
657Contains subset mapping.
658
659[[../../layouts/community/ergodox/manna-harbour_miryoku/config.h][layouts/community/ergodox/manna-harbour_miryoku/config.h]]
660#+BEGIN_SRC C :noweb yes :padline no :tangle ../../layouts/community/ergodox/manna-harbour_miryoku/config.h
491// <<header>> 661// <<header>>
492 662
663#pragma once
664
493#define LAYOUT_miryoku(\ 665#define LAYOUT_miryoku(\
494K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ 666K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
495K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ 667K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\
@@ -506,32 +678,62 @@ KC_NO, KC_NO, KC_NO, KC_NO, K32, K37, KC_NO, KC_
506 KC_NO, KC_NO, \ 678 KC_NO, KC_NO, \
507 K33, K34, KC_NO, KC_NO, K35, K36 \ 679 K33, K34, KC_NO, KC_NO, K35, K36 \
508) 680)
681#+END_SRC
682
683
684**** keymap.c
509 685
510#include "manna-harbour_miryoku.c" 686Required by the build system.
511 687
688[[../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c][layouts/community/ergodox/manna-harbour_miryoku/keymap.c]]
689#+BEGIN_SRC C :noweb yes :padline no :tangle ../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c
690// <<header>>
512#+END_SRC 691#+END_SRC
513 692
514To build for any keyboard using the this layout (ergodone, ergodox_ez, 693
515ergodox_infinity, hotdox) e.g. the ergodox_ez, 694*** ortho_4x12
695
696For the ortho_4x12 layout, the middle two columns, and the 2 keys on each end of
697the bottom row are unused. This allows the hands to be positioned without ulnar
698deviation of the wrists.
699
700In the implementation, the 2 unused middle columns bottom row keys are mapped as
701duplicates of their adjacent keys to support alternative bottom row physical
702layouts including 1x2uC (MIT), 1x2uR, 1x2uL, and 2x2u.
703
704[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/kle-miryoku-mapping-ortho_4x12.png]]
705
706For split keyboards using this layout the halves can be positioned and rotated
707for each hand and so an alternative mapping is provided. The right half is as
708follows: The rightmost column bottom 3 keys is the pinkie column. The middle 4
709columns top 3 rows are for the remaining fingers. The pinkie column is one row
710lower than the other columns to provide some column stagger. The bottom row
711left 3 keys are the thumb keys. The remaining keys are unused. To select this
712mapping, append ~MIRYOKU_MAPPING=SPLIT~ to the make command line when building.
713
714[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/kle-miryoku-mapping-ortho_4x12-split.png]]
715
716To build for any keyboard using this layout (4x4, nori, chimera_ls, contra,
717divergetm2, jj40, lets_split, lets_split_eh, meira, niu_mini, planck, telophase,
718vitamins_included, zinc, zlant, ortho48, kbd4x, levinson, wavelet, plaid):
516 719
517#+BEGIN_SRC sh :tangle no 720#+BEGIN_SRC sh :tangle no
518cd ../.. && make ergodox_ez:manna-harbour_miryoku:teensy 721make planck/rev6:manna-harbour_miryoku:flash # planck
722make keebio/levinson:manna-harbour_miryoku:flash MIRYOKU_MAPPING=SPLIT # levinson
519#+END_SRC 723#+END_SRC
520 724
521 725
726**** config.h
522 727
523*** ortho_4x12 728Contains subset mapping.
524
525For the ortho_4x12 layout, the right half as is as follows: The rightmost column
526bottom 3 rows is the pinkie column. The middle 4 columns top 3 rows are for the
527remaining fingers. The pinkie column is one row lower than the other columns to
528provide some column stagger on ortho keyboards. The bottom row left 3 columns
529are the thumb keys. The remaining keys are unused.
530 729
531[[../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c][layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c]] 730[[../../layouts/community/ortho_4x12/manna-harbour_miryoku/config.h][layouts/community/ortho_4x12/manna-harbour_miryoku/config.h]]
532#+BEGIN_SRC C :noweb yes :padline no :tangle ../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c 731#+BEGIN_SRC C :noweb yes :padline no :tangle ../../layouts/community/ortho_4x12/manna-harbour_miryoku/config.h
533// <<header>> 732// <<header>>
534 733
734#pragma once
735
736#if defined MIRYOKU_MAPPING_SPLIT
535#define LAYOUT_miryoku(\ 737#define LAYOUT_miryoku(\
536K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ 738K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
537K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ 739K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\
@@ -544,18 +746,30 @@ K00, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K09
544K10, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K19,\ 746K10, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K19,\
545K20, KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO, K29\ 747K20, KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO, K29\
546) 748)
749#else
750#define LAYOUT_miryoku(\
751K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
752K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\
753K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\
754N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
755)\
756LAYOUT_ortho_4x12(\
757K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09,\
758K10, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K19,\
759K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29,\
760KC_NO, KC_NO, K32, K33, K34, K34, K35, K35, K36, K37, KC_NO, KC_NO\
761)
762#endif
763#+END_SRC
547 764
548#include "manna-harbour_miryoku.c"
549 765
550#+END_SRC 766**** keymap.c
551 767
552To build for any keyboard using this layout (4x4, nori, chimera_ls, contra, 768Required by the build system.
553divergetm2, jj40, lets_split, lets_split_eh, meira, niu_mini, planck, telophase,
554vitamins_included, zinc, zlant, ortho48, kbd4x, levinson, wavelet, plaid)
555e.g. the levinson,
556 769
557#+BEGIN_SRC sh :tangle no 770[[../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c][layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c]]
558make keebio/levinson:manna-harbour_miryoku:avrdude 771#+BEGIN_SRC C :noweb yes :padline no :tangle ../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c
772// <<header>>
559#+END_SRC 773#+END_SRC
560 774
561 775
@@ -563,18 +777,30 @@ make keebio/levinson:manna-harbour_miryoku:avrdude
563 777
564To use the keymap on a keyboard which does not support the layouts feature, 778To use the keymap on a keyboard which does not support the layouts feature,
565LAYOUT_miryoku is defined as a macro mapping onto the keyboard's own LAYOUT 779LAYOUT_miryoku is defined as a macro mapping onto the keyboard's own LAYOUT
566macro, leaving the unused keys as KC_NO. The userspace keymap is then included. 780macro, leaving the unused keys as KC_NO.
781
782The following are example keyboards.
567 783
568*** crkbd 784*** crkbd
569 785
570The outer columns are unused. 786The outer columns are unused.
571 787
572**** keymap.c 788To build for this keyboard,
573 789
574[[../../keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c][keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c]] 790#+BEGIN_SRC sh :tangle no
575#+BEGIN_SRC C :noweb yes :padline no :tangle ../../keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c 791make crkbd:manna-harbour_miryoku:flash
792#+END_SRC
793
794**** config.h
795
796Contains subset mapping.
797
798[[../../keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h][keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h]]
799#+BEGIN_SRC C :noweb yes :padline no :tangle ../../keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h
576// <<header>> 800// <<header>>
577 801
802#pragma once
803
578#define LAYOUT_miryoku( \ 804#define LAYOUT_miryoku( \
579 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ 805 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
580 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ 806 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
@@ -587,114 +813,33 @@ KC_NO, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_
587KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_NO, \ 813KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_NO, \
588 K32, K33, K34, K35, K36, K37 \ 814 K32, K33, K34, K35, K36, K37 \
589) 815)
590
591#include "manna-harbour_miryoku.c"
592
593
594#ifdef SSD1306OLED
595
596#include "ssd1306.h"
597
598void matrix_init_user(void) {
599 iota_gfx_init(!has_usb()); // turns on the display
600}
601
602// When add source files to SRC in rules.mk, you can use functions.
603const char *read_logo(void);
604
605void matrix_scan_user(void) {
606 iota_gfx_task();
607}
608
609void matrix_render_user(struct CharacterMatrix *matrix) {
610 if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) {
611 matrix_write(matrix, read_logo());
612 }
613}
614
615void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) {
616 if (memcmp(dest->display, source->display, sizeof(dest->display))) {
617 memcpy(dest->display, source->display, sizeof(dest->display));
618 dest->dirty = true;
619 }
620}
621
622void iota_gfx_task_user(void) {
623 struct CharacterMatrix matrix;
624 matrix_clear(&matrix);
625 matrix_render_user(&matrix);
626 matrix_update(&display, &matrix);
627}
628
629#endif //SSD1306OLED
630
631#+END_SRC 816#+END_SRC
632 817
633 818
634**** config.h 819**** keymap.c
635
636[[../../keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h][keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h]]
637#+BEGIN_SRC C :noweb yes :padline no :tangle ../../keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h
638// <<header>>
639
640#pragma once
641
642#define EE_HANDS
643
644#ifdef RGB_MATRIX_ENABLE
645#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
646#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
647#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
648#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
649#define RGB_MATRIX_HUE_STEP 8
650#define RGB_MATRIX_SAT_STEP 8
651#define RGB_MATRIX_VAL_STEP 8
652#define RGB_MATRIX_SPD_STEP 10
653#endif
654
655#define SSD1306OLED // old oled driver
656
657#+END_SRC
658
659
660**** rules.mk
661
662[[../../keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk][keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk]]
663#+BEGIN_SRC C :noweb yes :padline no :tangle ../../keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk
664# <<header>>
665
666RGB_MATRIX_ENABLE = WS2812
667
668# old oled driver
669SRC += ./lib/glcdfont.c \
670 ./lib/logo_reader.c
671
672#+END_SRC
673
674 820
675To build for this keyboard, 821Required by the build system.
676 822
677#+BEGIN_SRC sh :tangle no 823[[../../keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c][keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c]]
678cd ../.. && make crkbd:manna-harbour_miryoku:flash 824#+BEGIN_SRC C :noweb yes :padline no :tangle ../../keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c
825// <<header>>
679#+END_SRC 826#+END_SRC
680 827
681 828
682* Related Documentation 829* Documentation
683:PROPERTIES:
684:CUSTOM_ID: related-documentation
685:END:
686
687 830
688** QMK 831** QMK
689 832
690- https://qmk.fm/ 833- https://qmk.fm/
691- https://docs.qmk.fm/#/getting_started_introduction 834- https://docs.qmk.fm/#/getting_started_introduction
692- https://docs.qmk.fm/#/hardware_keyboard_guidelines
693- https://docs.qmk.fm/#/config_options 835- https://docs.qmk.fm/#/config_options
694- https://docs.qmk.fm/#/keycodes 836- https://docs.qmk.fm/#/keycodes
695- https://docs.qmk.fm/#/feature_advanced_keycodes 837- https://docs.qmk.fm/#/feature_advanced_keycodes
838- https://docs.qmk.fm/#/feature_layers
839- https://docs.qmk.fm/#/mod_tap
696- https://docs.qmk.fm/#/feature_layouts 840- https://docs.qmk.fm/#/feature_layouts
697- https://docs.qmk.fm/#/feature_userspace 841- https://docs.qmk.fm/#/feature_userspace
842- https://docs.qmk.fm/#/feature_mouse_keys
698- https://docs.qmk.fm/#/getting_started_make_guide 843- https://docs.qmk.fm/#/getting_started_make_guide
699 844
700 845
@@ -703,3 +848,13 @@ cd ../.. && make crkbd:manna-harbour_miryoku:flash
703- https://orgmode.org/ 848- https://orgmode.org/
704- https://orgmode.org/manual/Tables.html 849- https://orgmode.org/manual/Tables.html
705- https://orgmode.org/manual/Working-with-Source-Code.html 850- https://orgmode.org/manual/Working-with-Source-Code.html
851
852
853* Contact
854
855For issues with this branch, or to request support for additional base layer
856alphas, layouts, or keyboards, please [[https://github.com/manna-harbour/qmk_firmware/issues/new][open an issue]].
857
858For more general discussion, please join a relevant [[https://www.reddit.com/user/manna_harbour/posts/?sort=new][recent thread]] or [[https://www.reddit.com/message/compose/?to=manna_harbour][send a PM]].
859
860[[https://github.com/manna-harbour][https://raw.githubusercontent.com/manna-harbour/miryoku/master/manna-harbour-boa-32.png]]
diff --git a/users/manna-harbour_miryoku/rules.mk b/users/manna-harbour_miryoku/rules.mk
index a54616b47..ca135af07 100644
--- a/users/manna-harbour_miryoku/rules.mk
+++ b/users/manna-harbour_miryoku/rules.mk
@@ -1,5 +1,16 @@
1# generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- 1# generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
2 2
3MOUSEKEY_ENABLE = yes # Mouse keys(+4700) 3MOUSEKEY_ENABLE = yes # Mouse keys
4EXTRAKEY_ENABLE = yes # Audio control and System control(+450) 4EXTRAKEY_ENABLE = yes # Audio control and System control
5LTO_ENABLE = yes 5
6SRC += manna-harbour_miryoku.c # keymap
7
8# select alternative base layer alphas
9ifneq ($(strip $(MIRYOKU_ALPHAS)),)
10 OPT_DEFS += -DMIRYOKU_ALPHAS_$(MIRYOKU_ALPHAS)
11endif
12
13# select alternative subset mappings
14ifneq ($(strip $(MIRYOKU_MAPPING)),)
15 OPT_DEFS += -DMIRYOKU_MAPPING_$(MIRYOKU_MAPPING)
16endif