Compare commits
69 Commits
master
...
cheapinov2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b1e2da5dc3 | ||
|
|
34b3c675f9 | ||
|
|
1f86bf03fe | ||
|
|
7041eadcbf | ||
|
|
2b0a045409 | ||
|
|
766ef32a47 | ||
|
|
605daf9597 | ||
|
|
4cfdc10412 | ||
|
|
f66d8439a7 | ||
|
|
1e0fd1ac55 | ||
|
|
31928517ce | ||
|
|
e6851f7ae9 | ||
|
|
6cc3169c16 | ||
|
|
181976a4fc | ||
|
|
0671e5f95c | ||
|
|
d5b6ce4aa8 | ||
|
|
af6f1b5d70 | ||
|
|
f0892a027c | ||
|
|
9d538fc75a | ||
|
|
da9c2971c2 | ||
|
|
b7dec6480b | ||
|
|
0f0e1dab49 | ||
|
|
6bfbcd8ca0 | ||
|
|
e908f86835 | ||
|
|
9b9040430e | ||
|
|
c27677b504 | ||
|
|
e51adc4a56 | ||
|
|
e67f3c1bc7 | ||
|
|
42193e0123 | ||
|
|
c6cca1c013 | ||
|
|
47a116e13f | ||
|
|
d8203067c6 | ||
|
|
358a00f8b8 | ||
|
|
ca8ab1dcf6 | ||
|
|
892afe5e36 | ||
|
|
a7f3742dc1 | ||
|
|
76b3490f10 | ||
|
|
ff202e2274 | ||
|
|
2fa3131f76 | ||
|
|
3e94864262 | ||
|
|
17852c1866 | ||
|
|
94435a48ed | ||
|
|
1e8f58d73e | ||
|
|
30120b4e5b | ||
|
|
e1337cc928 | ||
|
|
08b55ef037 | ||
|
|
b72b00f7c7 | ||
|
|
733d2245d8 | ||
|
|
bf0a78149d | ||
|
|
b292324586 | ||
|
|
f785d092bc | ||
|
|
449b6b7e05 | ||
|
|
23405481a0 | ||
|
|
886bd2946b | ||
|
|
ac7864d2b8 | ||
|
|
0c18526ada | ||
|
|
78a00d66ea | ||
|
|
fa67bef4ec | ||
|
|
e224ec4fc6 | ||
|
|
68eaa2ea99 | ||
|
|
0a4c3ec63a | ||
|
|
d43884affe | ||
|
|
50dffc477f | ||
|
|
cc703c1004 | ||
|
|
22ffbeb99b | ||
|
|
78c2197d15 | ||
|
|
d9bbbebad8 | ||
|
|
2feae0ab52 | ||
|
|
3fac02d691 |
@@ -26,6 +26,7 @@ SPLIT_KEYBOARD = yes
|
||||
MOUSEKEY_ENABLE = yes
|
||||
EXTRAKEY_ENABLE = yes
|
||||
|
||||
CAPS_WORD_ENABLE = yes
|
||||
RGB_MATRIX_SUPPORTED = yes # RGB matrix is supported and enabled by default
|
||||
RGBLIGHT_SUPPORTED = no # RGB underglow is supported, but not enabled by default
|
||||
RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality
|
||||
|
||||
75
keyboards/cheapino/cheapino.c
Normal file
75
keyboards/cheapino/cheapino.c
Normal file
@@ -0,0 +1,75 @@
|
||||
#include "wait.h"
|
||||
#include "quantum.h"
|
||||
|
||||
// This is to keep state between callbacks, when it is 0 the
|
||||
// initial RGB flash is finished
|
||||
uint8_t _hue_countdown = 50;
|
||||
|
||||
// These are to keep track of user selected color, so we
|
||||
// can restore it after RGB flash
|
||||
uint8_t _hue;
|
||||
uint8_t _saturation;
|
||||
uint8_t _value;
|
||||
|
||||
// Do a little 2.5 seconds display of the different colors
|
||||
// Use the deferred executor so the LED flash dance does not
|
||||
// stop us from using the keyboard.
|
||||
// https://docs.qmk.fm/#/custom_quantum_functions?id=deferred-executor-registration
|
||||
uint32_t flash_led(uint32_t next_trigger_time, void *cb_arg) {
|
||||
rgblight_sethsv(_hue_countdown * 5, 230, 70);
|
||||
_hue_countdown--;
|
||||
if (_hue_countdown == 0) {
|
||||
// Finished, reset to user chosen led color
|
||||
rgblight_sethsv(_hue, _saturation, _value);
|
||||
return 0;
|
||||
} else {
|
||||
return 50;
|
||||
}
|
||||
}
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
//debug_enable=true;
|
||||
//debug_matrix=true;
|
||||
//debug_keyboard=true;
|
||||
//debug_mouse=true;
|
||||
|
||||
// Store user selected rgb hsv:
|
||||
_hue = rgblight_get_hue();
|
||||
_saturation = rgblight_get_sat();
|
||||
_value = rgblight_get_val();
|
||||
|
||||
// Flash a little on start
|
||||
defer_exec(50, flash_led, NULL);
|
||||
}
|
||||
|
||||
// Make the builtin RGB led show different colors per layer:
|
||||
// This seemed like a good idea but turned out pretty annoying,
|
||||
// to me at least... Uncomment the lines below to enable
|
||||
/*
|
||||
uint8_t get_hue(uint8_t layer) {
|
||||
switch (layer) {
|
||||
case 6:
|
||||
return 169;
|
||||
case 5:
|
||||
return 43;
|
||||
case 4:
|
||||
return 85;
|
||||
case 3:
|
||||
return 120;
|
||||
case 2:
|
||||
return 180;
|
||||
case 1:
|
||||
return 220;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
uint8_t sat = rgblight_get_sat();
|
||||
uint8_t val = rgblight_get_val();
|
||||
uint8_t hue = get_hue(get_highest_layer(state));
|
||||
rgblight_sethsv(hue, sat, val);
|
||||
return state;
|
||||
}
|
||||
*/
|
||||
43
keyboards/cheapino/config.h
Normal file
43
keyboards/cheapino/config.h
Normal file
@@ -0,0 +1,43 @@
|
||||
// Copyright 2023 Thomas Haukland (@tompi)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
|
||||
#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
|
||||
#define WS2812_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral
|
||||
//#define WS2812_TRST_US 80
|
||||
#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
|
||||
#define RGB_MATRIX_DEFAULT_VAL 32
|
||||
|
||||
|
||||
// Pick good defaults for enabling homerow modifiers
|
||||
#define TAPPING_TERM 230
|
||||
|
||||
|
||||
#define WS2812_DI_PIN GP16 // The pin connected to the data pin of the LEDs
|
||||
#define RGBLIGHT_LED_COUNT 1 // The number of LEDs connected
|
||||
|
||||
|
||||
#define MAX_DEFERRED_EXECUTORS 32
|
||||
|
||||
// #define DEBUG_MATRIX_SCAN_RATE
|
||||
|
||||
#define RGBLIGHT_DEFAULT_HUE 128 // Sets the default hue value, if none has been set
|
||||
#define RGBLIGHT_DEFAULT_SAT 128 // Sets the default saturation value, if none has been set
|
||||
#define RGBLIGHT_DEFAULT_VAL 32 // Sets the default brightness value, if none has been set
|
||||
63
keyboards/cheapino/encoder.c
Normal file
63
keyboards/cheapino/encoder.c
Normal file
@@ -0,0 +1,63 @@
|
||||
#include "matrix.h"
|
||||
#include "quantum.h"
|
||||
|
||||
#define COL_SHIFTER ((uint16_t)1)
|
||||
|
||||
#define ENC_ROW 3
|
||||
#define ENC_A_COL 2
|
||||
#define ENC_B_COL 4
|
||||
#define ENC_BUTTON_COL 0
|
||||
|
||||
static bool colABPressed = false;
|
||||
static bool encoderPressed = false;
|
||||
|
||||
void clicked(void) {
|
||||
tap_code(KC_MPLY);
|
||||
}
|
||||
|
||||
void turned(bool clockwise) {
|
||||
if (IS_LAYER_ON(6)) {
|
||||
tap_code(clockwise ? KC_VOLU : KC_VOLD);
|
||||
} else if (IS_LAYER_ON(3)) {
|
||||
tap_code16(clockwise ? LCTL(KC_TAB) : LCTL(LSFT(KC_TAB)));
|
||||
} else if (IS_LAYER_ON(5)) {
|
||||
tap_code16(clockwise ? LGUI(KC_Y) : LGUI(KC_Z));
|
||||
} else {
|
||||
tap_code16(clockwise ? KC_PGDN : KC_PGUP);
|
||||
}
|
||||
}
|
||||
|
||||
void fix_encoder_action(matrix_row_t current_matrix[]) {
|
||||
matrix_row_t encoder_row = current_matrix[ENC_ROW];
|
||||
|
||||
if (encoder_row & (COL_SHIFTER << ENC_BUTTON_COL)) {
|
||||
encoderPressed = true;
|
||||
} else {
|
||||
// Only trigger click on release
|
||||
if (encoderPressed) {
|
||||
encoderPressed = false;
|
||||
clicked();
|
||||
}
|
||||
}
|
||||
|
||||
// Check which way the encoder is turned:
|
||||
bool colA = encoder_row & (COL_SHIFTER << ENC_A_COL);
|
||||
bool colB = encoder_row & (COL_SHIFTER << ENC_B_COL);
|
||||
|
||||
if (colA && colB) {
|
||||
colABPressed = true;
|
||||
} else if (colA) {
|
||||
if (colABPressed) {
|
||||
// A+B followed by A means clockwise
|
||||
colABPressed = false;
|
||||
turned(true);
|
||||
}
|
||||
} else if (colB) {
|
||||
if (colABPressed) {
|
||||
// A+B followed by B means counter-clockwise
|
||||
colABPressed = false;
|
||||
turned(false);
|
||||
}
|
||||
}
|
||||
current_matrix[ENC_ROW] = 0;
|
||||
}
|
||||
5
keyboards/cheapino/encoder.h
Normal file
5
keyboards/cheapino/encoder.h
Normal file
@@ -0,0 +1,5 @@
|
||||
//
|
||||
// Created by Thomas Haukland on 25/03/2023.
|
||||
//
|
||||
|
||||
void fix_encoder_action(matrix_row_t current_matrix[]);
|
||||
128
keyboards/cheapino/ghosting.c
Normal file
128
keyboards/cheapino/ghosting.c
Normal file
@@ -0,0 +1,128 @@
|
||||
//
|
||||
// Created by Thomas Haukland on 2024-05-05.
|
||||
//
|
||||
|
||||
#include "matrix.h"
|
||||
#include "quantum.h"
|
||||
#include "print.h"
|
||||
|
||||
// This is just to be able to declare constants as they appear in the qmk console
|
||||
#define rev(b) \
|
||||
((b & 1) << 15) | \
|
||||
((b & (1 << 1)) << 13) | \
|
||||
((b & (1 << 2)) << 11) | \
|
||||
((b & (1 << 3)) << 9) | \
|
||||
((b & (1 << 4)) << 7) | \
|
||||
((b & (1 << 5)) << 5) | \
|
||||
((b & (1 << 6)) << 3) | \
|
||||
((b & (1 << 7)) << 1) | \
|
||||
((b & (1 << 8)) >> 1) | \
|
||||
((b & (1 << 9)) >> 3) | \
|
||||
((b & (1 << 10)) >> 5) | \
|
||||
((b & (1 << 11)) >> 7) | \
|
||||
((b & (1 << 12)) >> 9) | \
|
||||
((b & (1 << 13)) >> 11) | \
|
||||
((b & (1 << 14)) >> 13) | \
|
||||
b >> 15
|
||||
|
||||
/* This is for debugging the matrix rows
|
||||
void printBits(uint16_t n)
|
||||
{
|
||||
long i;
|
||||
for (i = 15; i >= 0; i--) {
|
||||
if ((n & (1 << i)) != 0) {
|
||||
printf("1");
|
||||
}
|
||||
else {
|
||||
printf("0");
|
||||
}
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
*/
|
||||
|
||||
bool bit_pattern_set(uint16_t number, uint16_t bitPattern) {
|
||||
return !(~number & bitPattern);
|
||||
}
|
||||
|
||||
void fix_ghosting_instance(
|
||||
matrix_row_t current_matrix[],
|
||||
unsigned short row_num_with_possible_error_cause,
|
||||
uint16_t possible_error_cause,
|
||||
unsigned short row_num_with_possible_error,
|
||||
uint16_t possible_error,
|
||||
uint16_t error_fix) {
|
||||
if (bit_pattern_set(current_matrix[row_num_with_possible_error_cause], possible_error_cause)) {
|
||||
if (bit_pattern_set(current_matrix[row_num_with_possible_error], possible_error)) {
|
||||
current_matrix[row_num_with_possible_error] = current_matrix[row_num_with_possible_error] ^ error_fix;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fix_ghosting_column(
|
||||
matrix_row_t matrix[],
|
||||
uint16_t possible_error_cause,
|
||||
uint16_t possible_error,
|
||||
uint16_t error_fix) {
|
||||
// First the right side
|
||||
for (short i = 0; i<3; i++) {
|
||||
fix_ghosting_instance(matrix, i, possible_error_cause, (i+1)%3, possible_error, error_fix);
|
||||
fix_ghosting_instance(matrix, i, possible_error_cause, (i+2)%3, possible_error, error_fix);
|
||||
}
|
||||
|
||||
// Then exactly same procedure on the left side
|
||||
for (short i = 0; i<3; i++) {
|
||||
fix_ghosting_instance(matrix, i+4, possible_error_cause<<6, 4+((i+1)%3), possible_error<<6, error_fix<<6);
|
||||
fix_ghosting_instance(matrix, i+4, possible_error_cause<<6, 4+((i+2)%3), possible_error<<6, error_fix<<6);
|
||||
}
|
||||
}
|
||||
|
||||
// For QWERTY layout, key combo a+s+e also outputs q. This suppresses the q, and other similar ghosts
|
||||
// These are observed ghosts(following a pattern). TODO: need to fix this for v3
|
||||
// Might need to add 2 diodes(one in each direction) for every row, to increase voltage drop.
|
||||
void fix_ghosting(matrix_row_t matrix[]) {
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B0110000000000000),
|
||||
rev(0B1010000000000000),
|
||||
rev(0B0010000000000000));
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B0110000000000000),
|
||||
rev(0B0101000000000000),
|
||||
rev(0B0100000000000000));
|
||||
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B0001100000000000),
|
||||
rev(0B0010100000000000),
|
||||
rev(0B0000100000000000));
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B0001100000000000),
|
||||
rev(0B0001010000000000),
|
||||
rev(0B0001000000000000));
|
||||
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B1000010000000000),
|
||||
rev(0B1000100000000000),
|
||||
rev(0B1000000000000000));
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B1000010000000000),
|
||||
rev(0B0100010000000000),
|
||||
rev(0B0000010000000000));
|
||||
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B1001000000000000),
|
||||
rev(0B0101000000000000),
|
||||
rev(0B0001000000000000));
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B1001000000000000),
|
||||
rev(0B1010000000000000),
|
||||
rev(0B1000000000000000));
|
||||
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B0100100000000000),
|
||||
rev(0B0100010000000000),
|
||||
rev(0B0100000000000000));
|
||||
fix_ghosting_column(matrix,
|
||||
rev(0B0100100000000000),
|
||||
rev(0B1000100000000000),
|
||||
rev(0B0000100000000000));
|
||||
}
|
||||
5
keyboards/cheapino/ghosting.h
Normal file
5
keyboards/cheapino/ghosting.h
Normal file
@@ -0,0 +1,5 @@
|
||||
//
|
||||
// Created by Thomas Haukland on 2024-05-05.
|
||||
//
|
||||
|
||||
void fix_ghosting(matrix_row_t current_matrix[]);
|
||||
8
keyboards/cheapino/halconf.h
Normal file
8
keyboards/cheapino/halconf.h
Normal file
@@ -0,0 +1,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_PWM TRUE
|
||||
#define HAL_USE_PAL TRUE
|
||||
#define HAL_USE_I2C TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
93
keyboards/cheapino/info.json
Normal file
93
keyboards/cheapino/info.json
Normal file
@@ -0,0 +1,93 @@
|
||||
{
|
||||
"manufacturer": "Thomas Haukland",
|
||||
"keyboard_name": "cheapino2",
|
||||
"maintainer": "tompi",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "ROW2COL",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": false
|
||||
},
|
||||
"community_layouts": ["split_3x5_3"],
|
||||
"matrix_pins": {
|
||||
"cols": [
|
||||
"GP6",
|
||||
"GP6",
|
||||
"GP5",
|
||||
"GP5",
|
||||
"GP4",
|
||||
"GP4",
|
||||
|
||||
"GP14",
|
||||
"GP14",
|
||||
"GP15",
|
||||
"GP15",
|
||||
"GP26",
|
||||
"GP26"
|
||||
],
|
||||
"rows": ["GP3", "GP1", "GP2", "GP0", "GP27", "GP28", "GP29", "GP8"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"url": "",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0000",
|
||||
"vid": "0xFEE3"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_split_3x5_3": {
|
||||
"layout": [
|
||||
{ "matrix": [4, 10], "x": 0, "y": 0.25 },
|
||||
{ "matrix": [4, 9], "x": 1, "y": 0.125 },
|
||||
{ "matrix": [4, 8], "x": 2, "y": 0 },
|
||||
{ "matrix": [4, 7], "x": 3, "y": 0.125 },
|
||||
{ "matrix": [4, 6], "x": 4, "y": 0.25 },
|
||||
|
||||
{ "matrix": [0, 0], "x": 7, "y": 0.25 },
|
||||
{ "matrix": [0, 1], "x": 8, "y": 0.125 },
|
||||
{ "matrix": [0, 2], "x": 9, "y": 0 },
|
||||
{ "matrix": [0, 3], "x": 10, "y": 0.125 },
|
||||
{ "matrix": [0, 4], "x": 11, "y": 0.25 },
|
||||
|
||||
|
||||
{ "matrix": [5, 10], "x": 0, "y": 1.25 },
|
||||
{ "matrix": [5, 9], "x": 1, "y": 1.125 },
|
||||
{ "matrix": [5, 8], "x": 2, "y": 1 },
|
||||
{ "matrix": [5, 7], "x": 3, "y": 1.125 },
|
||||
{ "matrix": [5, 6], "x": 4, "y": 1.25 },
|
||||
|
||||
{ "matrix": [1, 0], "x": 7, "y": 1.25 },
|
||||
{ "matrix": [1, 1], "x": 8, "y": 1.125 },
|
||||
{ "matrix": [1, 2], "x": 9, "y": 1 },
|
||||
{ "matrix": [1, 3], "x": 10, "y": 1.125 },
|
||||
{ "matrix": [1, 4], "x": 11, "y": 1.25 },
|
||||
|
||||
|
||||
{ "matrix": [6, 10], "x": 0, "y": 2.25 },
|
||||
{ "matrix": [6, 9], "x": 1, "y": 2.125 },
|
||||
{ "matrix": [6, 8], "x": 2, "y": 2 },
|
||||
{ "matrix": [6, 7], "x": 3, "y": 2.125 },
|
||||
{ "matrix": [6, 6], "x": 4, "y": 2.25 },
|
||||
|
||||
{ "matrix": [2, 0], "x": 7, "y": 2.25 },
|
||||
{ "matrix": [2, 1], "x": 8, "y": 2.125 },
|
||||
{ "matrix": [2, 2], "x": 9, "y": 2 },
|
||||
{ "matrix": [2, 3], "x": 10, "y": 2.125 },
|
||||
{ "matrix": [2, 4], "x": 11, "y": 2.25 },
|
||||
|
||||
|
||||
{ "matrix": [6, 11], "x": 2.5, "y": 3.25 },
|
||||
{ "matrix": [5, 11], "x": 3.5, "y": 3.5 },
|
||||
{ "matrix": [4, 11], "x": 4.5, "y": 3.75 },
|
||||
|
||||
{ "matrix": [0, 5], "x": 6.5, "y": 3.75 },
|
||||
{ "matrix": [1, 5], "x": 7.5, "y": 3.5 },
|
||||
{ "matrix": [2, 5], "x": 8.5, "y": 3.25 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
277
keyboards/cheapino/keymaps/default/keymap.json
Normal file
277
keyboards/cheapino/keymaps/default/keymap.json
Normal file
@@ -0,0 +1,277 @@
|
||||
{
|
||||
"version": 1,
|
||||
"notes": "Cheapino default keymap",
|
||||
"documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
|
||||
"keyboard": "bastardkb/skeletyl/blackpill",
|
||||
"keymap": "default",
|
||||
"layout": "LAYOUT_split_3x5_3",
|
||||
"layers": [
|
||||
[
|
||||
"KC_Q",
|
||||
"KC_W",
|
||||
"KC_E",
|
||||
"KC_R",
|
||||
"KC_T",
|
||||
"KC_Y",
|
||||
"KC_U",
|
||||
"KC_I",
|
||||
"KC_O",
|
||||
"KC_P",
|
||||
"LGUI_T(KC_A)",
|
||||
"LALT_T(KC_S)",
|
||||
"LCTL_T(KC_D)",
|
||||
"LSFT_T(KC_F)",
|
||||
"KC_G",
|
||||
"KC_H",
|
||||
"RSFT_T(KC_J)",
|
||||
"LCTL_T(KC_K)",
|
||||
"LALT_T(KC_L)",
|
||||
"LGUI_T(KC_SCLN)",
|
||||
"KC_Z",
|
||||
"KC_X",
|
||||
"KC_C",
|
||||
"KC_V",
|
||||
"LT(5,KC_B)",
|
||||
"LT(1,KC_N)",
|
||||
"KC_M",
|
||||
"KC_COMM",
|
||||
"KC_DOT",
|
||||
"KC_SLSH",
|
||||
"LT(6,KC_ESC)",
|
||||
"LT(3,KC_SPC)",
|
||||
"LT(5,KC_TAB)",
|
||||
"LT(1,KC_DEL)",
|
||||
"LT(2,KC_BSPC)",
|
||||
"LT(4,KC_ENT)"
|
||||
],
|
||||
[
|
||||
"KC_VOLU",
|
||||
"KC_WH_L",
|
||||
"KC_MS_U",
|
||||
"KC_WH_U",
|
||||
"KC_WH_R",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"ANY(QK_RBT)",
|
||||
"KC_MS_L",
|
||||
"KC_BTN2",
|
||||
"KC_BTN1",
|
||||
"KC_MS_R",
|
||||
"KC_MUTE",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_VOLD",
|
||||
"KC_MNXT",
|
||||
"KC_MS_D",
|
||||
"KC_WH_D",
|
||||
"KC_MPLY",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO"
|
||||
],
|
||||
[
|
||||
"KC_NO",
|
||||
"KC_HOME",
|
||||
"KC_DEL",
|
||||
"KC_PGUP",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_LEFT",
|
||||
"KC_UP",
|
||||
"KC_RGHT",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_END",
|
||||
"KC_DOWN",
|
||||
"KC_PGDN",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_BTN1",
|
||||
"KC_BTN2",
|
||||
"KC_BTN3",
|
||||
"KC_BTN4",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO"
|
||||
],
|
||||
[
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_WH_U",
|
||||
"KC_AT",
|
||||
"KC_UNDS",
|
||||
"KC_PIPE",
|
||||
"KC_GRV",
|
||||
"KC_PERC",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"RGB_TOG",
|
||||
"KC_HASH",
|
||||
"KC_TAB",
|
||||
"KC_EXLM",
|
||||
"KC_DQUO",
|
||||
"KC_DLR",
|
||||
"KC_BTN4",
|
||||
"KC_BTN3",
|
||||
"KC_BTN2",
|
||||
"KC_BTN1",
|
||||
"KC_WH_D",
|
||||
"KC_TILD",
|
||||
"KC_QUOT",
|
||||
"KC_BSLS",
|
||||
"KC_SLSH",
|
||||
"KC_AMPR",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO"
|
||||
],
|
||||
[
|
||||
"KC_EQL",
|
||||
"KC_CIRC",
|
||||
"KC_LT",
|
||||
"KC_GT",
|
||||
"KC_SCLN",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_LCBR",
|
||||
"KC_RCBR",
|
||||
"KC_LPRN",
|
||||
"KC_RPRN",
|
||||
"KC_AT",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_MINS",
|
||||
"KC_EXLM",
|
||||
"KC_LBRC",
|
||||
"KC_RBRC",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO"
|
||||
],
|
||||
[
|
||||
"ANY(QK_RBT)",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_F7",
|
||||
"KC_F8",
|
||||
"KC_F9",
|
||||
"KC_F10",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_F4",
|
||||
"KC_F5",
|
||||
"KC_F6",
|
||||
"KC_F11",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_F1",
|
||||
"KC_F2",
|
||||
"KC_F3",
|
||||
"KC_F12",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS"
|
||||
],
|
||||
[
|
||||
"RGB_SPI",
|
||||
"RGB_VAI",
|
||||
"RGB_SAI",
|
||||
"RGB_HUI",
|
||||
"RGB_MOD",
|
||||
"KC_PPLS",
|
||||
"KC_P7",
|
||||
"KC_P8",
|
||||
"KC_P9",
|
||||
"KC_PAST",
|
||||
"EE_CLR",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"RGB_TOG",
|
||||
"KC_PMNS",
|
||||
"KC_P4",
|
||||
"KC_P5",
|
||||
"KC_P6",
|
||||
"KC_PSLS",
|
||||
"RGB_SPD",
|
||||
"RGB_VAD",
|
||||
"RGB_SAD",
|
||||
"RGB_HUD",
|
||||
"RGB_RMOD",
|
||||
"KC_PDOT",
|
||||
"KC_P1",
|
||||
"KC_P2",
|
||||
"KC_P3",
|
||||
"KC_PEQL",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_0",
|
||||
"KC_COMM",
|
||||
"KC_P0"
|
||||
]
|
||||
],
|
||||
"author": "thomas.haukland@gmail.com"
|
||||
}
|
||||
51
keyboards/cheapino/keymaps/lars/config.h
Normal file
51
keyboards/cheapino/keymaps/lars/config.h
Normal file
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
Copyright 2020 Pierre Chevalier <pierrechevalier83@gmail.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
|
||||
// Set the mouse settings to a comfortable speed/accuracy trade-off,
|
||||
// assuming a screen refresh rate of 60 Htz or higher
|
||||
// The default is 50. This makes the mouse ~3 times faster and more accurate
|
||||
#define MOUSEKEY_INTERVAL 16
|
||||
// The default is 20. Since we made the mouse about 3 times faster with the previous setting,
|
||||
// give it more time to accelerate to max speed to retain precise control over short distances.
|
||||
#define MOUSEKEY_TIME_TO_MAX 40
|
||||
// The default is 300. Let's try and make this as low as possible while keeping the cursor responsive
|
||||
#define MOUSEKEY_DELAY 100
|
||||
// It makes sense to use the same delay for the mouseweel
|
||||
#define MOUSEKEY_WHEEL_DELAY 100
|
||||
// The default is 100
|
||||
#define MOUSEKEY_WHEEL_INTERVAL 50
|
||||
// The default is 40
|
||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 100
|
||||
|
||||
// Pick good defaults for enabling homerow modifiers
|
||||
#undef TAPPING_TERM
|
||||
#define TAPPING_TERM 200
|
||||
// #define PERMISSIVE_HOLD
|
||||
|
||||
#define TAPPING_FORCE_HOLD
|
||||
//#define RETRO_TAPPING
|
||||
|
||||
// Underglow configuration
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#endif
|
||||
|
||||
//#define UNICODE_SELECTED_MODES UC_MAC
|
||||
125
keyboards/cheapino/keymaps/lars/keymap.json
Normal file
125
keyboards/cheapino/keymaps/lars/keymap.json
Normal file
@@ -0,0 +1,125 @@
|
||||
{
|
||||
"version": 1,
|
||||
"notes": "My awesome keymap",
|
||||
"documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
|
||||
"keyboard": "bastardkb/skeletyl/blackpill",
|
||||
"keymap": "default",
|
||||
"layout": "LAYOUT_split_3x5_3",
|
||||
"layers": [
|
||||
[
|
||||
"KC_Q",
|
||||
"KC_W",
|
||||
"KC_F",
|
||||
"KC_P",
|
||||
"KC_B",
|
||||
"KC_J",
|
||||
"KC_L",
|
||||
"KC_U",
|
||||
"KC_Y",
|
||||
"KC_SCLN",
|
||||
"KC_A",
|
||||
"KC_R",
|
||||
"KC_S",
|
||||
"KC_T",
|
||||
"KC_G",
|
||||
"KC_M",
|
||||
"KC_N",
|
||||
"KC_E",
|
||||
"KC_I",
|
||||
"KC_O",
|
||||
"LSFT_T(KC_Z)",
|
||||
"LCTL_T(KC_X)",
|
||||
"RALT_T(KC_C)",
|
||||
"KC_D",
|
||||
"KC_V",
|
||||
"KC_K",
|
||||
"KC_H",
|
||||
"RALT_T(KC_COMM)",
|
||||
"LCTL_T(KC_DOT)",
|
||||
"LSFT_T(KC_SLSH)",
|
||||
"TO(1)",
|
||||
"KC_BSPC",
|
||||
"KC_TAB",
|
||||
"KC_LGUI",
|
||||
"KC_SPC",
|
||||
"KC_ENT"
|
||||
],
|
||||
[
|
||||
"KC_TRNS",
|
||||
"KC_7",
|
||||
"KC_8",
|
||||
"KC_9",
|
||||
"KC_TRNS",
|
||||
"KC_QUOT",
|
||||
"KC_MINS",
|
||||
"KC_EQL",
|
||||
"KC_ASTR",
|
||||
"KC_CIRC",
|
||||
"KC_TRNS",
|
||||
"KC_4",
|
||||
"KC_5",
|
||||
"KC_6",
|
||||
"KC_0",
|
||||
"KC_BSLS",
|
||||
"KC_LPRN",
|
||||
"KC_RPRN",
|
||||
"KC_LBRC",
|
||||
"KC_RBRC",
|
||||
"KC_LSFT",
|
||||
"KC_1",
|
||||
"KC_2",
|
||||
"KC_3",
|
||||
"KC_TRNS",
|
||||
"KC_PIPE",
|
||||
"KC_GRV",
|
||||
"KC_LALT",
|
||||
"KC_LCTL",
|
||||
"KC_RSFT",
|
||||
"TO(2)",
|
||||
"KC_BSPC",
|
||||
"KC_TAB",
|
||||
"KC_DEL",
|
||||
"TO(0)",
|
||||
"KC_ENT"
|
||||
],
|
||||
[
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_PGUP",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"ANY(UC(0xE6))",
|
||||
"ANY(UC(0xF8))",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_LEFT",
|
||||
"KC_UP",
|
||||
"KC_DOWN",
|
||||
"KC_RGHT",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_LGUI",
|
||||
"ANY(UC(0xE5))",
|
||||
"LCTL(KC_LALT)",
|
||||
"LCA(KC_LSFT)",
|
||||
"KC_TRNS",
|
||||
"KC_HOME",
|
||||
"KC_PGDN",
|
||||
"KC_END",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_RBRC",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TAB",
|
||||
"KC_DEL",
|
||||
"TO(0)",
|
||||
"KC_TRNS"
|
||||
]
|
||||
],
|
||||
"author": "thomas.haukland@gmail.com"
|
||||
}
|
||||
277
keyboards/cheapino/keymaps/tompi/keymap.json
Normal file
277
keyboards/cheapino/keymaps/tompi/keymap.json
Normal file
@@ -0,0 +1,277 @@
|
||||
{
|
||||
"version": 1,
|
||||
"notes": "My awesome keymap",
|
||||
"documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
|
||||
"keyboard": "bastardkb/skeletyl/blackpill",
|
||||
"keymap": "default",
|
||||
"layout": "LAYOUT_split_3x5_3",
|
||||
"layers": [
|
||||
[
|
||||
"KC_Q",
|
||||
"KC_W",
|
||||
"KC_F",
|
||||
"KC_P",
|
||||
"KC_B",
|
||||
"KC_J",
|
||||
"KC_L",
|
||||
"KC_U",
|
||||
"KC_Y",
|
||||
"KC_SCLN",
|
||||
"LGUI_T(KC_A)",
|
||||
"LALT_T(KC_R)",
|
||||
"LCTL_T(KC_S)",
|
||||
"LSFT_T(KC_T)",
|
||||
"KC_G",
|
||||
"KC_M",
|
||||
"RSFT_T(KC_N)",
|
||||
"LCTL_T(KC_E)",
|
||||
"LALT_T(KC_I)",
|
||||
"LGUI_T(KC_O)",
|
||||
"KC_Z",
|
||||
"KC_X",
|
||||
"KC_C",
|
||||
"KC_D",
|
||||
"LT(5,KC_V)",
|
||||
"LT(1,KC_K)",
|
||||
"KC_H",
|
||||
"KC_COMM",
|
||||
"KC_DOT",
|
||||
"KC_SLSH",
|
||||
"LT(6,KC_ESC)",
|
||||
"LT(3,KC_SPC)",
|
||||
"LT(5,KC_TAB)",
|
||||
"LT(1,KC_DEL)",
|
||||
"LT(2,KC_BSPC)",
|
||||
"LT(4,KC_ENT)"
|
||||
],
|
||||
[
|
||||
"KC_VOLU",
|
||||
"KC_WH_L",
|
||||
"KC_MS_U",
|
||||
"KC_WH_U",
|
||||
"KC_WH_R",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"QK_RBT",
|
||||
"KC_MS_L",
|
||||
"KC_BTN2",
|
||||
"KC_BTN1",
|
||||
"KC_MS_R",
|
||||
"KC_MUTE",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_VOLD",
|
||||
"KC_MNXT",
|
||||
"KC_MS_D",
|
||||
"KC_WH_D",
|
||||
"KC_MPLY",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO"
|
||||
],
|
||||
[
|
||||
"KC_NO",
|
||||
"KC_HOME",
|
||||
"KC_DEL",
|
||||
"KC_PGUP",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_LEFT",
|
||||
"KC_UP",
|
||||
"KC_RGHT",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_END",
|
||||
"KC_DOWN",
|
||||
"KC_PGDN",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_BTN1",
|
||||
"KC_BTN2",
|
||||
"KC_BTN3",
|
||||
"KC_BTN4",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO"
|
||||
],
|
||||
[
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_WH_U",
|
||||
"KC_AT",
|
||||
"KC_UNDS",
|
||||
"KC_PIPE",
|
||||
"KC_GRV",
|
||||
"KC_PERC",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"RGB_TOG",
|
||||
"KC_HASH",
|
||||
"KC_TAB",
|
||||
"KC_EXLM",
|
||||
"KC_DQUO",
|
||||
"KC_DLR",
|
||||
"KC_BTN4",
|
||||
"KC_BTN3",
|
||||
"KC_BTN2",
|
||||
"KC_BTN1",
|
||||
"KC_WH_D",
|
||||
"KC_TILD",
|
||||
"KC_QUOT",
|
||||
"KC_BSLS",
|
||||
"KC_SLSH",
|
||||
"KC_AMPR",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO"
|
||||
],
|
||||
[
|
||||
"KC_EQL",
|
||||
"KC_CIRC",
|
||||
"KC_LT",
|
||||
"KC_GT",
|
||||
"KC_SCLN",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_LCBR",
|
||||
"KC_RCBR",
|
||||
"KC_LPRN",
|
||||
"KC_RPRN",
|
||||
"KC_AT",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_MINS",
|
||||
"KC_EXLM",
|
||||
"KC_LBRC",
|
||||
"KC_RBRC",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO"
|
||||
],
|
||||
[
|
||||
"QK_RBT",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_F7",
|
||||
"KC_F8",
|
||||
"KC_F9",
|
||||
"KC_F10",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_F4",
|
||||
"KC_F5",
|
||||
"KC_F6",
|
||||
"KC_F11",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_F1",
|
||||
"KC_F2",
|
||||
"KC_F3",
|
||||
"KC_F12",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS"
|
||||
],
|
||||
[
|
||||
"RGB_SPI",
|
||||
"RGB_VAI",
|
||||
"RGB_SAI",
|
||||
"RGB_HUI",
|
||||
"RGB_MOD",
|
||||
"KC_PPLS",
|
||||
"KC_P7",
|
||||
"KC_P8",
|
||||
"KC_P9",
|
||||
"KC_PAST",
|
||||
"EE_CLR",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"RGB_TOG",
|
||||
"KC_PMNS",
|
||||
"KC_P4",
|
||||
"KC_P5",
|
||||
"KC_P6",
|
||||
"KC_PSLS",
|
||||
"RGB_SPD",
|
||||
"RGB_VAD",
|
||||
"RGB_SAD",
|
||||
"RGB_HUD",
|
||||
"RGB_RMOD",
|
||||
"KC_PDOT",
|
||||
"KC_P1",
|
||||
"KC_P2",
|
||||
"KC_P3",
|
||||
"KC_PEQL",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_0",
|
||||
"KC_COMM",
|
||||
"KC_P0"
|
||||
]
|
||||
],
|
||||
"author": "thomas.haukland@gmail.com"
|
||||
}
|
||||
163
keyboards/cheapino/keymaps/via/keymap.json
Normal file
163
keyboards/cheapino/keymaps/via/keymap.json
Normal file
@@ -0,0 +1,163 @@
|
||||
{
|
||||
"version": 1,
|
||||
"notes": "Cheapino default keymap",
|
||||
"documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
|
||||
"keyboard": "bastardkb/skeletyl/blackpill",
|
||||
"keymap": "via",
|
||||
"layout": "LAYOUT_split_3x5_3",
|
||||
"layers": [
|
||||
[
|
||||
"KC_Q",
|
||||
"KC_W",
|
||||
"KC_E",
|
||||
"KC_R",
|
||||
"KC_T",
|
||||
"KC_Y",
|
||||
"KC_U",
|
||||
"KC_I",
|
||||
"KC_O",
|
||||
"KC_P",
|
||||
"LGUI_T(KC_A)",
|
||||
"LALT_T(KC_S)",
|
||||
"LCTL_T(KC_D)",
|
||||
"LSFT_T(KC_F)",
|
||||
"KC_G",
|
||||
"KC_H",
|
||||
"RSFT_T(KC_J)",
|
||||
"LCTL_T(KC_K)",
|
||||
"LALT_T(KC_L)",
|
||||
"LGUI_T(KC_SCLN)",
|
||||
"KC_Z",
|
||||
"KC_X",
|
||||
"KC_C",
|
||||
"KC_V",
|
||||
"LT(5,KC_B)",
|
||||
"LT(1,KC_N)",
|
||||
"KC_M",
|
||||
"KC_COMM",
|
||||
"KC_DOT",
|
||||
"KC_SLSH",
|
||||
"LT(6,KC_ESC)",
|
||||
"LT(3,KC_SPC)",
|
||||
"LT(5,KC_TAB)",
|
||||
"LT(1,KC_DEL)",
|
||||
"LT(2,KC_BSPC)",
|
||||
"LT(4,KC_ENT)"
|
||||
],
|
||||
[
|
||||
"KC_VOLU",
|
||||
"KC_WH_L",
|
||||
"KC_MS_U",
|
||||
"KC_WH_U",
|
||||
"KC_WH_R",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"ANY(QK_RBT)",
|
||||
"KC_MS_L",
|
||||
"KC_BTN2",
|
||||
"KC_BTN1",
|
||||
"KC_MS_R",
|
||||
"KC_MUTE",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_VOLD",
|
||||
"KC_MNXT",
|
||||
"KC_MS_D",
|
||||
"KC_WH_D",
|
||||
"KC_MPLY",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO"
|
||||
],
|
||||
[
|
||||
"KC_NO",
|
||||
"KC_HOME",
|
||||
"KC_DEL",
|
||||
"KC_PGUP",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_LEFT",
|
||||
"KC_UP",
|
||||
"KC_RGHT",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_END",
|
||||
"KC_DOWN",
|
||||
"KC_PGDN",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_BTN1",
|
||||
"KC_BTN2",
|
||||
"KC_BTN3",
|
||||
"KC_BTN4",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO"
|
||||
],
|
||||
[
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_WH_U",
|
||||
"KC_AT",
|
||||
"KC_UNDS",
|
||||
"KC_PIPE",
|
||||
"KC_GRV",
|
||||
"KC_PERC",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"RGB_TOG",
|
||||
"KC_HASH",
|
||||
"KC_TAB",
|
||||
"KC_EXLM",
|
||||
"KC_DQUO",
|
||||
"KC_DLR",
|
||||
"KC_BTN4",
|
||||
"KC_BTN3",
|
||||
"KC_BTN2",
|
||||
"KC_BTN1",
|
||||
"KC_WH_D",
|
||||
"KC_TILD",
|
||||
"KC_QUOT",
|
||||
"KC_BSLS",
|
||||
"KC_SLSH",
|
||||
"KC_AMPR",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO"
|
||||
]
|
||||
],
|
||||
"author": "thomas.haukland@gmail.com"
|
||||
}
|
||||
152
keyboards/cheapino/matrix.c
Normal file
152
keyboards/cheapino/matrix.c
Normal file
@@ -0,0 +1,152 @@
|
||||
/*
|
||||
Copyright 2012 Jun Wako <wakojun@gmail.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/>.
|
||||
|
||||
Copied from here: https://github.com/e3w2q/qmk_firmware/blob/762fe3e0a7cbea768245a75520f06ff5a2f00b9f/keyboards/2x3test/matrix.c
|
||||
*/
|
||||
|
||||
/*
|
||||
* scan matrix
|
||||
*/
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include "wait.h"
|
||||
#include "util.h"
|
||||
#include "matrix.h"
|
||||
#include "config.h"
|
||||
#include "quantum.h"
|
||||
#include "debounce.h"
|
||||
#include "encoder.h"
|
||||
#include "ghosting.h"
|
||||
#include "print.h"
|
||||
|
||||
// How long the scanning code waits for changed io to settle.
|
||||
// Adjust from default 30 to weigh up for increased time spent ghost-hunting.
|
||||
// (the rp2040 does not seem to have any problems with this value...)
|
||||
#define MATRIX_IO_DELAY 25
|
||||
|
||||
#define COL_SHIFTER ((uint16_t)1)
|
||||
|
||||
static const pin_t row_pins[] = MATRIX_ROW_PINS;
|
||||
static const pin_t col_pins[] = MATRIX_COL_PINS;
|
||||
static matrix_row_t previous_matrix[MATRIX_ROWS];
|
||||
|
||||
static void select_row(uint8_t row) {
|
||||
setPinOutput(row_pins[row]);
|
||||
writePinLow(row_pins[row]);
|
||||
}
|
||||
|
||||
static void unselect_row(uint8_t row) { setPinInputHigh(row_pins[row]); }
|
||||
|
||||
static void unselect_rows(void) {
|
||||
for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
|
||||
setPinInputHigh(row_pins[x]);
|
||||
}
|
||||
}
|
||||
|
||||
static void select_col(uint8_t col) {
|
||||
setPinOutput(col_pins[col]);
|
||||
writePinLow(col_pins[col]);
|
||||
}
|
||||
|
||||
static void unselect_col(uint8_t col) {
|
||||
setPinInputHigh(col_pins[col]);
|
||||
}
|
||||
|
||||
static void unselect_cols(void) {
|
||||
for (uint8_t x = 0; x < MATRIX_COLS/2; x++) {
|
||||
setPinInputHigh(col_pins[x*2]);
|
||||
}
|
||||
}
|
||||
|
||||
static void read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) {
|
||||
// Select row and wait for row selection to stabilize
|
||||
select_row(current_row);
|
||||
wait_us(MATRIX_IO_DELAY);
|
||||
|
||||
// For each col...
|
||||
for (uint8_t col_index = 0; col_index < MATRIX_COLS / 2; col_index++) {
|
||||
uint16_t column_index_bitmask = COL_SHIFTER << ((col_index * 2) + 1);
|
||||
// Check row pin state
|
||||
if (readPin(col_pins[col_index*2])) {
|
||||
// Pin HI, clear col bit
|
||||
current_matrix[current_row] &= ~column_index_bitmask;
|
||||
} else {
|
||||
// Pin LO, set col bit
|
||||
current_matrix[current_row] |= column_index_bitmask;
|
||||
}
|
||||
}
|
||||
|
||||
// Unselect row
|
||||
unselect_row(current_row);
|
||||
}
|
||||
|
||||
static void read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) {
|
||||
// Select col and wait for col selection to stabilize
|
||||
select_col(current_col*2);
|
||||
wait_us(MATRIX_IO_DELAY);
|
||||
|
||||
uint16_t column_index_bitmask = COL_SHIFTER << (current_col * 2);
|
||||
// For each row...
|
||||
for (uint8_t row_index = 0; row_index < MATRIX_ROWS; row_index++) {
|
||||
// Check row pin state
|
||||
if (readPin(row_pins[row_index])) {
|
||||
// Pin HI, clear col bit
|
||||
current_matrix[row_index] &= ~column_index_bitmask;
|
||||
} else {
|
||||
// Pin LO, set col bit
|
||||
current_matrix[row_index] |= column_index_bitmask;
|
||||
}
|
||||
}
|
||||
// Unselect col
|
||||
unselect_col(current_col*2);
|
||||
}
|
||||
|
||||
|
||||
void matrix_init_custom(void) {
|
||||
// initialize key pins
|
||||
unselect_cols();
|
||||
unselect_rows();
|
||||
debounce_init(MATRIX_ROWS);
|
||||
}
|
||||
|
||||
void store_old_matrix(matrix_row_t current_matrix[]) {
|
||||
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
|
||||
previous_matrix[i] = current_matrix[i];
|
||||
}
|
||||
}
|
||||
|
||||
bool has_matrix_changed(matrix_row_t current_matrix[]) {
|
||||
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
|
||||
if (previous_matrix[i] != current_matrix[i]) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
|
||||
store_old_matrix(current_matrix);
|
||||
// Set row, read cols
|
||||
for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
|
||||
read_cols_on_row(current_matrix, current_row);
|
||||
}
|
||||
// Set col, read rows
|
||||
for (uint8_t current_col = 0; current_col < MATRIX_COLS/2; current_col++) {
|
||||
read_rows_on_col(current_matrix, current_col);
|
||||
}
|
||||
|
||||
fix_encoder_action(current_matrix);
|
||||
|
||||
fix_ghosting(current_matrix);
|
||||
|
||||
return has_matrix_changed(current_matrix);
|
||||
}
|
||||
|
||||
6
keyboards/cheapino/mcuconf.h
Normal file
6
keyboards/cheapino/mcuconf.h
Normal file
@@ -0,0 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef RP_I2C_USE_I2C1
|
||||
#define RP_I2C_USE_I2C1 TRUE
|
||||
27
keyboards/cheapino/readme.md
Normal file
27
keyboards/cheapino/readme.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# cheapino
|
||||
|
||||

|
||||
|
||||
*A short description of the keyboard/project*
|
||||
|
||||
* Keyboard Maintainer: [Thomas Haukland](https://github.com/tompi)
|
||||
* Hardware Supported: *The PCBs, controllers supported*
|
||||
* Hardware Availability: *Links to where you can find this hardware*
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cheapino:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cheapino:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
||||
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
||||
8
keyboards/cheapino/rules.mk
Normal file
8
keyboards/cheapino/rules.mk
Normal file
@@ -0,0 +1,8 @@
|
||||
CAPS_WORD_ENABLE = yes
|
||||
CUSTOM_MATRIX = lite
|
||||
WS2812_DRIVER = vendor
|
||||
RGBLIGHT_ENABLE = yes
|
||||
DEFERRED_EXEC_ENABLE = yes
|
||||
SRC += encoder.c
|
||||
SRC += ghosting.c
|
||||
SRC += matrix.c
|
||||
@@ -16,6 +16,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
|
||||
|
||||
// Set the mouse settings to a comfortable speed/accuracy trade-off,
|
||||
// assuming a screen refresh rate of 60 Htz or higher
|
||||
// The default is 50. This makes the mouse ~3 times faster and more accurate
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"LSFT_T(KC_T)",
|
||||
"KC_G",
|
||||
"KC_M",
|
||||
"LSFT_T(KC_N)",
|
||||
"RSFT_T(KC_N)",
|
||||
"LCTL_T(KC_E)",
|
||||
"LALT_T(KC_I)",
|
||||
"LGUI_T(KC_O)",
|
||||
@@ -59,10 +59,10 @@
|
||||
"KC_MS_R",
|
||||
"KC_MUTE",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_VOLD",
|
||||
"KC_MNXT",
|
||||
"KC_MS_D",
|
||||
@@ -85,9 +85,9 @@
|
||||
"KC_PGUP",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_BTN1",
|
||||
"KC_BTN2",
|
||||
"KC_BTN3",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_LEFT",
|
||||
@@ -151,8 +151,8 @@
|
||||
"KC_TRNS"
|
||||
],
|
||||
[
|
||||
"KC_EQL",
|
||||
"KC_COLN",
|
||||
"KC_TILD",
|
||||
"KC_EXLM",
|
||||
"KC_LT",
|
||||
"KC_GT",
|
||||
"KC_SCLN",
|
||||
@@ -165,7 +165,7 @@
|
||||
"KC_RCBR",
|
||||
"KC_LPRN",
|
||||
"KC_RPRN",
|
||||
"KC_AT",
|
||||
"KC_PEQL",
|
||||
"KC_NO",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
@@ -197,10 +197,10 @@
|
||||
"KC_F8",
|
||||
"KC_F9",
|
||||
"KC_F10",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_F4",
|
||||
@@ -229,9 +229,9 @@
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_PPLS",
|
||||
"KC_7",
|
||||
"KC_8",
|
||||
"KC_9",
|
||||
"KC_P7",
|
||||
"KC_P8",
|
||||
"KC_P9",
|
||||
"KC_PAST",
|
||||
"KC_TRNS",
|
||||
"KC_TRNS",
|
||||
@@ -239,9 +239,9 @@
|
||||
"KC_TRNS",
|
||||
"KC_NO",
|
||||
"KC_PMNS",
|
||||
"KC_4",
|
||||
"KC_5",
|
||||
"KC_6",
|
||||
"KC_P4",
|
||||
"KC_P5",
|
||||
"KC_P6",
|
||||
"KC_PSLS",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
@@ -249,9 +249,9 @@
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
"KC_PDOT",
|
||||
"KC_1",
|
||||
"KC_2",
|
||||
"KC_3",
|
||||
"KC_P1",
|
||||
"KC_P2",
|
||||
"KC_P3",
|
||||
"KC_PEQL",
|
||||
"KC_NO",
|
||||
"KC_NO",
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
//#define SERIAL_USART_TX_PIN B6 // USART TX pin
|
||||
//#define SERIAL_USART_RX_PIN B7 // USART RX pin
|
||||
|
||||
#define EE_HANDS
|
||||
//#define EE_HANDS
|
||||
|
||||
#define SOFT_SERIAL_PIN B14 // D0 or D1, D2, D3, E6
|
||||
#define SELECT_SOFT_SERIAL_SPEED 2 // or 0, 2, 3, 4, 5
|
||||
@@ -31,7 +31,8 @@
|
||||
// 4: about 26kbps
|
||||
// 5: about 20kbps
|
||||
|
||||
|
||||
#define CRC8_USE_TABLE
|
||||
#define CRC8_OPTIMIZE_SPEED
|
||||
/* Top left key on left half */
|
||||
#define BOOTMAGIC_LITE_ROW 0
|
||||
#define BOOTMAGIC_LITE_COLUMN 0
|
||||
@@ -40,6 +41,6 @@
|
||||
#define BOOTMAGIC_LITE_COLUMN_RIGHT 4
|
||||
#define DEVICE_VER 0x0001
|
||||
|
||||
#define AUDIO_PIN A1
|
||||
//#define AUDIO_PIN A1
|
||||
//#define AUDIO_PWM_DRIVER PWMD1
|
||||
//#define AUDIO_PWM_CHANNEL 1
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"version": 1,
|
||||
"notes": "My awesome keymap",
|
||||
"documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
|
||||
"keyboard": "bastardkb/skeletyl",
|
||||
"keyboard": "bastardkb/skeletyl/blackpill",
|
||||
"keymap": "default",
|
||||
"layout": "LAYOUT_split_3x5_3",
|
||||
"layers": [
|
||||
@@ -23,7 +23,7 @@
|
||||
"LSFT_T(KC_T)",
|
||||
"KC_G",
|
||||
"KC_M",
|
||||
"LSFT_T(KC_N)",
|
||||
"RSFT_T(KC_N)",
|
||||
"LCTL_T(KC_E)",
|
||||
"LALT_T(KC_I)",
|
||||
"LGUI_T(KC_O)",
|
||||
|
||||
@@ -2,8 +2,8 @@ BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
|
||||
SPLIT_KEYBOARD = yes
|
||||
SERIAL_DRIVER = bitbang
|
||||
AUDIO_ENABLE = yes
|
||||
AUDIO_DRIVER = pwm_software
|
||||
#AUDIO_ENABLE = yes
|
||||
#AUDIO_DRIVER = pwm_software
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = stm32-dfu
|
||||
@@ -11,3 +11,4 @@ BOOTLOADER = stm32-dfu
|
||||
CONSOLE_ENABLE = yes
|
||||
DEBOUNCE_TYPE = asym_eager_defer_pk
|
||||
|
||||
CAPS_WORD_ENABLE = yes
|
||||
|
||||
79
keyboards/zompi/config.h
Normal file
79
keyboards/zompi/config.h
Normal file
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* Copyright 2022 Thomas.Haukland@gmail.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
|
||||
#include "config_common.h"
|
||||
#define VENDOR_ID 0xA8F8
|
||||
#define PRODUCT_ID 0x1830
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER "tompi"
|
||||
#define PRODUCT "Zompi"
|
||||
|
||||
#define SOFT_SERIAL_PIN GP0
|
||||
#define CRC8_USE_TABLE
|
||||
#define CRC8_OPTIMIZE_SPEED
|
||||
|
||||
//#define MASTER_RIGHT
|
||||
|
||||
#define MATRIX_ROWS 8
|
||||
#define MATRIX_COLS 5
|
||||
#define MATRIX_ROW_PINS { GP9, GP10, GP4, GP5 }
|
||||
#define MATRIX_COL_PINS { GP6, GP7, GP8, GP11, GP12 }
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
# define OLED_DISPLAY_128X32
|
||||
#define I2C1_SCL_PIN GP3
|
||||
#define I2C1_SDA_PIN GP2
|
||||
#define I2C_DRIVER I2CD2
|
||||
#define OLED_BRIGHTNESS 128
|
||||
//#define OLED_FONT_H "keyboards/mlego/m65/lib/glcdfont.c"
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
# define RGBLED_NUM 6
|
||||
# define RGBLED_SPLIT { 3,3 }
|
||||
# define RGB_DI_PIN GP14
|
||||
# define DRIVER_LED_TOTAL 6
|
||||
|
||||
/* Enable Framebuffer and keypress effects */
|
||||
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
# define RGB_MATRIX_KEYPRESSES
|
||||
|
||||
# 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_HUE_BREATHING
|
||||
# define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
||||
# define ENABLE_RGB_MATRIX_PIXEL_FLOW
|
||||
# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
||||
# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
||||
# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
||||
# 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
|
||||
#endif
|
||||
27
keyboards/zompi/halconf.h
Normal file
27
keyboards/zompi/halconf.h
Normal file
@@ -0,0 +1,27 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file was auto-generated by:
|
||||
* `qmk chibios-confmigrate -i keyboards/handwired/onekey/blackpill_f401/halconf.h -r platforms/chibios/common/configs/halconf.h`
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_I2C TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
|
||||
73
keyboards/zompi/info.json
Normal file
73
keyboards/zompi/info.json
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"keyboard_name": "Zompi",
|
||||
"url": "https://github.com/tompi/qmk_firmware/tree/develop",
|
||||
"maintainer": "Thomas Haukland",
|
||||
"bootloader": "rp2040",
|
||||
"debounce": 5,
|
||||
"diode_direction": "COL2ROW",
|
||||
"encoder": {
|
||||
"enabled": true,
|
||||
"rotary": [
|
||||
{
|
||||
"pin_a": "GP24",
|
||||
"pin_b": "GP25",
|
||||
"resolution": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"audio": false,
|
||||
"backlight": false,
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": true,
|
||||
"encoder": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"oled": true,
|
||||
"wpm": true
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_split_3x5_3": {
|
||||
"layout": [
|
||||
{"label":"L00", "x":0, "y":0},
|
||||
{"label":"L01", "x":1, "y":0},
|
||||
{"label":"L02", "x":2, "y":0},
|
||||
{"label":"L03", "x":3, "y":0},
|
||||
{"label":"L04", "x":4, "y":0},
|
||||
{"label":"R00", "x":11, "y":0},
|
||||
{"label":"R01", "x":12, "y":0},
|
||||
{"label":"R02", "x":13, "y":0},
|
||||
{"label":"R03", "x":14, "y":0},
|
||||
{"label":"R04", "x":15, "y":0},
|
||||
{"label":"L10", "x":0, "y":1},
|
||||
{"label":"L11", "x":1, "y":1},
|
||||
{"label":"L12", "x":2, "y":1},
|
||||
{"label":"L13", "x":3, "y":1},
|
||||
{"label":"L14", "x":4, "y":1},
|
||||
{"label":"R10", "x":11, "y":1},
|
||||
{"label":"R11", "x":12, "y":1},
|
||||
{"label":"R12", "x":13, "y":1},
|
||||
{"label":"R13", "x":14, "y":1},
|
||||
{"label":"R14", "x":15, "y":1},
|
||||
{"label":"L20", "x":0, "y":2},
|
||||
{"label":"L21", "x":1, "y":2},
|
||||
{"label":"L22", "x":2, "y":2},
|
||||
{"label":"L23", "x":3, "y":2},
|
||||
{"label":"L24", "x":4, "y":2},
|
||||
{"label":"R20", "x":11, "y":2},
|
||||
{"label":"R21", "x":12, "y":2},
|
||||
{"label":"R22", "x":13, "y":2},
|
||||
{"label":"R23", "x":14, "y":2},
|
||||
{"label":"R24", "x":15, "y":2},
|
||||
{"label":"L33", "x":4, "y":3},
|
||||
{"label":"L34", "x":5, "y":3},
|
||||
{"label":"L31", "x":6, "y":3},
|
||||
{"label":"R33", "x":9, "y":3},
|
||||
{"label":"R34", "x":10, "y":3},
|
||||
{"label":"R31", "x":11, "y":3}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
72
keyboards/zompi/keymaps/default/keymap.c
Normal file
72
keyboards/zompi/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_split_3x5_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
// KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
|
||||
RGB_MOD, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RGB_MOD,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, KC_SPC , MO(1), MO(2), KC_ENT , KC_RALT
|
||||
//`--------------------------' `--------------------------'
|
||||
|
||||
),
|
||||
|
||||
[1] = LAYOUT_split_3x5_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, KC_SPC, _______, MO(3), KC_ENT, KC_RALT
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
[2] = LAYOUT_split_3x5_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, KC_SPC, MO(3), _______, KC_ENT, KC_RALT
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
[3] = LAYOUT_split_3x5_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, KC_SPC, _______, _______, KC_ENT, KC_RALT
|
||||
//`--------------------------' `--------------------------'
|
||||
)
|
||||
};
|
||||
|
||||
|
||||
6
keyboards/zompi/mcuconf.h
Normal file
6
keyboards/zompi/mcuconf.h
Normal file
@@ -0,0 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include_next "mcuconf.h"
|
||||
|
||||
#undef RP_I2C_USE_I2C1
|
||||
#define RP_I2C_USE_I2C1 TRUE
|
||||
11
keyboards/zompi/readme.md
Normal file
11
keyboards/zompi/readme.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# Zompi
|
||||
|
||||
My experiment with qmk and the rp2040-zero.
|
||||
|
||||
Blingy split keyboard using audio, leds and rotary encoders, because these
|
||||
things are essentials, right?
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make zompi:default
|
||||
|
||||
26
keyboards/zompi/rules.mk
Normal file
26
keyboards/zompi/rules.mk
Normal file
@@ -0,0 +1,26 @@
|
||||
# MCU name
|
||||
MCU = RP2040
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = rp2040
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE)
|
||||
RGB_MATRIX_DRIVER = WS2812 # RGB matrix driver support
|
||||
WS2812_DRIVER = vendor
|
||||
SPLIT_KEYBOARD = yes
|
||||
LTO_ENABLE = yes
|
||||
|
||||
AUDIO_SUPPORTED = no
|
||||
RGB_MATRIX_SUPPORTED = yes
|
||||
#RGBLIGHT_ENABLE = yes
|
||||
##BACKLIGHT_ENABLE = yes
|
||||
SERIAL_DRIVER = vendor
|
||||
|
||||
LAYOUTS = split_3x5_3
|
||||
OLED_DRIVER = SSD1306
|
||||
|
||||
# Project specific files
|
||||
#QUANTUM_LIB_SRC += spi_master.c
|
||||
158
keyboards/zompi/zompi.c
Normal file
158
keyboards/zompi/zompi.c
Normal file
@@ -0,0 +1,158 @@
|
||||
/*
|
||||
* Copyright 2022 Thomas.Haukland@gmail.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/>.
|
||||
*/
|
||||
|
||||
#include "zompi.h"
|
||||
|
||||
#ifdef RGB_MATRIX
|
||||
led_config_t g_led_config = { {
|
||||
{ 1, 2, 1, 1, 1 },
|
||||
{ 1, 2, 1, 1, 1 },
|
||||
{ 1, 2, 1, 1, 1 },
|
||||
{ 1, 2, 1, 1, 1 },
|
||||
{ 1, 2, 1, 1, 1 },
|
||||
{ 1, 2, 1, 1, 1 },
|
||||
{ 1, 2, 1, 1, 1 },
|
||||
{ 1, 2, 1, 1, 1 }
|
||||
}, {
|
||||
{ 85, 16 }, { 50, 13 }, { 16, 20 }, { 16, 38 }, { 50, 48 }, { 85, 52 }
|
||||
}, {
|
||||
4, 4, 4, 4, 4, 4
|
||||
} };
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM raw_logo[] = {
|
||||
0x00, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8,
|
||||
0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x7c, 0xfe, 0xfe, 0xfe, 0xfc, 0x7c, 0x38, 0x00,
|
||||
0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0xc1, 0xe1, 0xf1, 0xf9, 0xfd, 0xff, 0xff, 0xff, 0xff, 0x7f,
|
||||
0x3f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfc,
|
||||
0xfc, 0xfe, 0x7e, 0x7e, 0x7e, 0x3e, 0x7e, 0x7e, 0x7e, 0xfe, 0xfc, 0xfc, 0xfc, 0xf8, 0xf0, 0xe0,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xf8, 0x7c, 0x7c, 0x3e,
|
||||
0x3e, 0x7e, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0x7c, 0x7c, 0x3e, 0x3e, 0x7e,
|
||||
0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe,
|
||||
0xfe, 0xfe, 0xfe, 0xfc, 0x7c, 0x7e, 0x7e, 0x3e, 0x7e, 0x7e, 0x7e, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8,
|
||||
0xf8, 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0x00,
|
||||
0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf3, 0xf0, 0xf0,
|
||||
0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x02, 0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xe0, 0xf0, 0xf0, 0xf0, 0xfd, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f,
|
||||
0x1f, 0x07, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0x7f, 0x3f, 0x0f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
|
||||
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
|
||||
0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00
|
||||
};
|
||||
oled_write_raw_P(raw_logo, sizeof(raw_logo));
|
||||
}
|
||||
|
||||
enum layers {
|
||||
_QWERTY = 0,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_ADJUST,
|
||||
};
|
||||
|
||||
static void render_status(void) {
|
||||
render_logo();
|
||||
return;
|
||||
// Host Keyboard Layer Status
|
||||
oled_write_P(PSTR("Layer: "), false);
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case _QWERTY:
|
||||
oled_write_P(PSTR("Default\n"), false);
|
||||
break;
|
||||
case _LOWER:
|
||||
oled_write_P(PSTR("Lower\n"), false);
|
||||
break;
|
||||
case _RAISE:
|
||||
oled_write_P(PSTR("Raise\n"), false);
|
||||
break;
|
||||
case _ADJUST:
|
||||
oled_write_P(PSTR("Adjust\n"), false);
|
||||
break;
|
||||
default:
|
||||
oled_write_P(PSTR("Undefined\n"), false);
|
||||
}
|
||||
|
||||
// Host Keyboard LED Status
|
||||
led_t led_state = host_keyboard_led_state();
|
||||
oled_write_P(led_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false);
|
||||
oled_write_P(led_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false);
|
||||
oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false);
|
||||
}
|
||||
|
||||
bool oled_task_kb(void) {
|
||||
if (!oled_task_user()) { return false; }
|
||||
if (is_keyboard_left()) {
|
||||
render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
|
||||
} else {
|
||||
render_logo();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* The encoder_update_user is a function.
|
||||
* It'll be called by QMK every time you turn the encoder.
|
||||
*
|
||||
* The index parameter tells you which encoder was turned. If you only have
|
||||
* one encoder, the index will always be zero.
|
||||
*
|
||||
* The clockwise parameter tells you the direction of the encoder. It'll be
|
||||
* true when you turned the encoder clockwise, and false otherwise.
|
||||
*/
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
/* With an if statement we can check which encoder was turned. */
|
||||
if (index == 0) { /* First encoder */
|
||||
/* And with another if statement we can check the direction. */
|
||||
if (clockwise) {
|
||||
/* This is where the actual magic happens: this bit of code taps on the
|
||||
Page Down key. You can do anything QMK allows you to do here.
|
||||
You'll want to replace these lines with the things you want your
|
||||
encoders to do. */
|
||||
tap_code(KC_PGDN);
|
||||
} else {
|
||||
/* And likewise for the other direction, this time Page Down is pressed. */
|
||||
tap_code(KC_PGUP);
|
||||
}
|
||||
/* You can copy the code and change the index for every encoder you have. Most
|
||||
keyboards will only have two, so this piece of code will suffice. */
|
||||
} else if (index == 1) { /* Second encoder */
|
||||
if (clockwise) {
|
||||
tap_code(KC_UP);
|
||||
} else {
|
||||
tap_code(KC_DOWN);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
39
keyboards/zompi/zompi.h
Normal file
39
keyboards/zompi/zompi.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright 2022 Thomas.Haukland@gmail.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
|
||||
#include "quantum.h"
|
||||
|
||||
// clang-format off
|
||||
#define LAYOUT_split_3x5_3( \
|
||||
k00, k01, k02, k03, k04, k44, k43, k42, k41, k40, \
|
||||
k10, k11, k12, k13, k14, k54, k53, k52, k51, k50, \
|
||||
k20, k21, k22, k23, k24, k64, k63, k62, k61, k60, \
|
||||
k32, k33, k30, k70, k73, k72 \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03, k04 }, \
|
||||
{ k10, k11, k12, k13, k14 }, \
|
||||
{ k20, k21, k22, k23, k24 }, \
|
||||
{ k30, KC_NO, k32, k33, KC_NO }, \
|
||||
{ k40, k41, k42, k43, k44 }, \
|
||||
{ k50, k51, k52, k53, k54 }, \
|
||||
{ k60, k61, k62, k63, k64 }, \
|
||||
{ k70, KC_NO, k72, k73, KC_NO }, \
|
||||
}
|
||||
// clang-format on
|
||||
//
|
||||
19
layouts/community/split_3x5_3/manna-harbour_miryoku/config.h
Normal file
19
layouts/community/split_3x5_3/manna-harbour_miryoku/config.h
Normal file
@@ -0,0 +1,19 @@
|
||||
// Copyright 2019 Manna Harbour
|
||||
// https://github.com/manna-harbour/miryoku
|
||||
|
||||
// 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 LAYOUT_miryoku(\
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\
|
||||
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
|
||||
)\
|
||||
LAYOUT_split_3x5_3(\
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\
|
||||
K32, K33, K34, K35, K36, K37\
|
||||
)
|
||||
@@ -0,0 +1,4 @@
|
||||
// Copyright 2019 Manna Harbour
|
||||
// https://github.com/manna-harbour/miryoku
|
||||
|
||||
// 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/>.
|
||||
42
users/manna-harbour_miryoku/config.h
Normal file
42
users/manna-harbour_miryoku/config.h
Normal file
@@ -0,0 +1,42 @@
|
||||
// Copyright 2019 Manna Harbour
|
||||
// https://github.com/manna-harbour/miryoku
|
||||
|
||||
// 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
|
||||
|
||||
#include "custom_config.h"
|
||||
|
||||
// default but used in macros
|
||||
#undef TAPPING_TERM
|
||||
#define TAPPING_TERM 200
|
||||
|
||||
// Prevent normal rollover on alphas from accidentally triggering mods.
|
||||
// #define IGNORE_MOD_TAP_INTERRUPT
|
||||
|
||||
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
|
||||
#define QUICK_TAP_TERM 0
|
||||
|
||||
// Auto Shift
|
||||
#define NO_AUTO_SHIFT_ALPHA
|
||||
#define AUTO_SHIFT_TIMEOUT TAPPING_TERM
|
||||
#define AUTO_SHIFT_NO_SETUP
|
||||
|
||||
// Mouse key speed and acceleration.
|
||||
#undef MOUSEKEY_DELAY
|
||||
#define MOUSEKEY_DELAY 0
|
||||
#undef MOUSEKEY_INTERVAL
|
||||
#define MOUSEKEY_INTERVAL 16
|
||||
#undef MOUSEKEY_WHEEL_DELAY
|
||||
#define MOUSEKEY_WHEEL_DELAY 0
|
||||
#undef MOUSEKEY_MAX_SPEED
|
||||
#define MOUSEKEY_MAX_SPEED 6
|
||||
#undef MOUSEKEY_TIME_TO_MAX
|
||||
#define MOUSEKEY_TIME_TO_MAX 64
|
||||
|
||||
// Thumb Combos
|
||||
#if defined (MIRYOKU_KLUDGE_THUMBCOMBOS)
|
||||
#define COMBO_COUNT 8
|
||||
#define COMBO_TERM 200
|
||||
#define EXTRA_SHORT_COMBOS
|
||||
#endif
|
||||
7
users/manna-harbour_miryoku/custom_config.h
Normal file
7
users/manna-harbour_miryoku/custom_config.h
Normal file
@@ -0,0 +1,7 @@
|
||||
// Copyright 2019 Manna Harbour
|
||||
// https://github.com/manna-harbour/miryoku
|
||||
|
||||
// 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
|
||||
|
||||
3
users/manna-harbour_miryoku/custom_rules.mk
Normal file
3
users/manna-harbour_miryoku/custom_rules.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
# Copyright 2019 Manna Harbour
|
||||
# https://github.com/manna-harbour/miryoku
|
||||
|
||||
91
users/manna-harbour_miryoku/manna-harbour_miryoku.c
Normal file
91
users/manna-harbour_miryoku/manna-harbour_miryoku.c
Normal file
@@ -0,0 +1,91 @@
|
||||
// Copyright 2022 Manna Harbour
|
||||
// https://github.com/manna-harbour/miryoku
|
||||
|
||||
// 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/>.
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#include "manna-harbour_miryoku.h"
|
||||
|
||||
|
||||
// Additional Features double tap guard
|
||||
|
||||
enum {
|
||||
U_TD_BOOT,
|
||||
#define MIRYOKU_X(LAYER, STRING) U_TD_U_##LAYER,
|
||||
MIRYOKU_LAYER_LIST
|
||||
#undef MIRYOKU_X
|
||||
};
|
||||
|
||||
void u_td_fn_boot(tap_dance_state_t *state, void *user_data) {
|
||||
if (state->count == 2) {
|
||||
reset_keyboard();
|
||||
}
|
||||
}
|
||||
|
||||
#define MIRYOKU_X(LAYER, STRING) \
|
||||
void u_td_fn_U_##LAYER(tap_dance_state_t *state, void *user_data) { \
|
||||
if (state->count == 2) { \
|
||||
default_layer_set((layer_state_t)1 << U_##LAYER); \
|
||||
} \
|
||||
}
|
||||
MIRYOKU_LAYER_LIST
|
||||
#undef MIRYOKU_X
|
||||
|
||||
tap_dance_action_t tap_dance_actions[] = {
|
||||
[U_TD_BOOT] = ACTION_TAP_DANCE_FN(u_td_fn_boot),
|
||||
#define MIRYOKU_X(LAYER, STRING) [U_TD_U_##LAYER] = ACTION_TAP_DANCE_FN(u_td_fn_U_##LAYER),
|
||||
MIRYOKU_LAYER_LIST
|
||||
#undef MIRYOKU_X
|
||||
};
|
||||
|
||||
|
||||
// keymap
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
#define MIRYOKU_X(LAYER, STRING) [U_##LAYER] = U_MACRO_VA_ARGS(MIRYOKU_LAYERMAPPING_##LAYER, MIRYOKU_LAYER_##LAYER),
|
||||
MIRYOKU_LAYER_LIST
|
||||
#undef MIRYOKU_X
|
||||
};
|
||||
|
||||
|
||||
// shift functions
|
||||
|
||||
const key_override_t capsword_key_override = ko_make_basic(MOD_MASK_SHIFT, CW_TOGG, KC_CAPS);
|
||||
|
||||
const key_override_t **key_overrides = (const key_override_t *[]){
|
||||
&capsword_key_override,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
||||
// thumb combos
|
||||
|
||||
#if defined (MIRYOKU_KLUDGE_THUMBCOMBOS)
|
||||
const uint16_t PROGMEM thumbcombos_base_right[] = {LT(U_SYM, KC_ENT), LT(U_NUM, KC_BSPC), COMBO_END};
|
||||
const uint16_t PROGMEM thumbcombos_base_left[] = {LT(U_NAV, KC_SPC), LT(U_MOUSE, KC_TAB), COMBO_END};
|
||||
const uint16_t PROGMEM thumbcombos_nav[] = {KC_ENT, KC_BSPC, COMBO_END};
|
||||
const uint16_t PROGMEM thumbcombos_mouse[] = {KC_BTN2, KC_BTN1, COMBO_END};
|
||||
const uint16_t PROGMEM thumbcombos_media[] = {KC_MSTP, KC_MPLY, COMBO_END};
|
||||
const uint16_t PROGMEM thumbcombos_num[] = {KC_0, KC_MINS, COMBO_END};
|
||||
#if defined (MIRYOKU_LAYERS_FLIP)
|
||||
const uint16_t PROGMEM thumbcombos_sym[] = {KC_UNDS, KC_LPRN, COMBO_END};
|
||||
#else
|
||||
const uint16_t PROGMEM thumbcombos_sym[] = {KC_RPRN, KC_UNDS, COMBO_END};
|
||||
#endif
|
||||
const uint16_t PROGMEM thumbcombos_fun[] = {KC_SPC, KC_TAB, COMBO_END};
|
||||
combo_t key_combos[COMBO_COUNT] = {
|
||||
COMBO(thumbcombos_base_right, LT(U_FUN, KC_DEL)),
|
||||
COMBO(thumbcombos_base_left, LT(U_MEDIA, KC_ESC)),
|
||||
COMBO(thumbcombos_nav, KC_DEL),
|
||||
COMBO(thumbcombos_mouse, KC_BTN3),
|
||||
COMBO(thumbcombos_media, KC_MUTE),
|
||||
COMBO(thumbcombos_num, KC_DOT),
|
||||
#if defined (MIRYOKU_LAYERS_FLIP)
|
||||
COMBO(thumbcombos_sym, KC_RPRN),
|
||||
#else
|
||||
COMBO(thumbcombos_sym, KC_LPRN),
|
||||
#endif
|
||||
COMBO(thumbcombos_fun, KC_APP)
|
||||
};
|
||||
#endif
|
||||
51
users/manna-harbour_miryoku/manna-harbour_miryoku.h
Normal file
51
users/manna-harbour_miryoku/manna-harbour_miryoku.h
Normal file
@@ -0,0 +1,51 @@
|
||||
// Copyright 2022 Manna Harbour
|
||||
// https://github.com/manna-harbour/miryoku
|
||||
|
||||
// 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
|
||||
|
||||
#include "miryoku_babel/miryoku_layer_selection.h"
|
||||
#include "miryoku_babel/miryoku_layer_list.h"
|
||||
|
||||
enum miryoku_layers {
|
||||
#define MIRYOKU_X(LAYER, STRING) U_##LAYER,
|
||||
MIRYOKU_LAYER_LIST
|
||||
#undef MIRYOKU_X
|
||||
};
|
||||
|
||||
#define U_MACRO_VA_ARGS(macro, ...) macro(__VA_ARGS__)
|
||||
|
||||
#if !defined (MIRYOKU_MAPPING)
|
||||
#define MIRYOKU_MAPPING LAYOUT_miryoku
|
||||
#endif
|
||||
|
||||
#define U_NP KC_NO // key is not present
|
||||
#define U_NA KC_NO // present but not available for use
|
||||
#define U_NU KC_NO // available but not used
|
||||
|
||||
#if defined (MIRYOKU_CLIPBOARD_FUN)
|
||||
#define U_RDO KC_AGIN
|
||||
#define U_PST KC_PSTE
|
||||
#define U_CPY KC_COPY
|
||||
#define U_CUT KC_CUT
|
||||
#define U_UND KC_UNDO
|
||||
#elif defined (MIRYOKU_CLIPBOARD_MAC)
|
||||
#define U_RDO SCMD(KC_Z)
|
||||
#define U_PST LCMD(KC_V)
|
||||
#define U_CPY LCMD(KC_C)
|
||||
#define U_CUT LCMD(KC_X)
|
||||
#define U_UND LCMD(KC_Z)
|
||||
#elif defined (MIRYOKU_CLIPBOARD_WIN)
|
||||
#define U_RDO C(KC_Y)
|
||||
#define U_PST C(KC_V)
|
||||
#define U_CPY C(KC_C)
|
||||
#define U_CUT C(KC_X)
|
||||
#define U_UND C(KC_Z)
|
||||
#else
|
||||
#define U_RDO KC_AGIN
|
||||
#define U_PST S(KC_INS)
|
||||
#define U_CPY C(KC_INS)
|
||||
#define U_CUT S(KC_DEL)
|
||||
#define U_UND KC_UNDO
|
||||
#endif
|
||||
@@ -0,0 +1,389 @@
|
||||
// Copyright 2022 Manna Harbour
|
||||
// https://github.com/manna-harbour/miryoku
|
||||
// generated -*- buffer-read-only: t -*-
|
||||
// target: qmk
|
||||
|
||||
// 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 MIRYOKU_ALTERNATIVES_BASE_AZERTY_FLIP \
|
||||
KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
|
||||
LGUI_T(KC_Q), 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_M), \
|
||||
LT(U_BUTTON,KC_W), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, ALGR_T(KC_SLSH), LT(U_BUTTON,KC_QUOT),\
|
||||
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BASE_BEAKL15_FLIP \
|
||||
KC_Q, KC_H, KC_O, KC_U, KC_X, KC_G, KC_C, KC_R, KC_F, KC_Z, \
|
||||
LGUI_T(KC_Y), LALT_T(KC_I), LCTL_T(KC_E), LSFT_T(KC_A), KC_DOT, KC_D, LSFT_T(KC_S), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_B), \
|
||||
LT(U_BUTTON,KC_J), ALGR_T(KC_SLSH), KC_COMM, KC_K, KC_QUOT, KC_W, KC_M, KC_L, ALGR_T(KC_P), LT(U_BUTTON,KC_V), \
|
||||
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAK_FLIP \
|
||||
KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
|
||||
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), \
|
||||
LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
|
||||
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP \
|
||||
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
|
||||
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), \
|
||||
LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
|
||||
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK_FLIP \
|
||||
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
|
||||
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), \
|
||||
LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
|
||||
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BASE_DVORAK_FLIP \
|
||||
KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, \
|
||||
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), \
|
||||
LT(U_BUTTON,KC_SLSH),ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), LT(U_BUTTON,KC_Z), \
|
||||
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BASE_HALMAK_FLIP \
|
||||
KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J, \
|
||||
LGUI_T(KC_S), LALT_T(KC_H), LCTL_T(KC_N), LSFT_T(KC_T), KC_COMM, KC_DOT, LSFT_T(KC_A), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), \
|
||||
LT(U_BUTTON,KC_F), ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), LT(U_BUTTON,KC_Y), \
|
||||
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BASE_WORKMAN_FLIP \
|
||||
KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, \
|
||||
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), \
|
||||
LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
|
||||
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP \
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
|
||||
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), \
|
||||
LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
|
||||
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BASE_QWERTZ_FLIP \
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, \
|
||||
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), \
|
||||
LT(U_BUTTON,KC_Y), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
|
||||
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BASE_AZERTY \
|
||||
KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
|
||||
LGUI_T(KC_Q), 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_M), \
|
||||
LT(U_BUTTON,KC_W), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, ALGR_T(KC_SLSH), LT(U_BUTTON,KC_QUOT),\
|
||||
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BASE_BEAKL15 \
|
||||
KC_Q, KC_H, KC_O, KC_U, KC_X, KC_G, KC_C, KC_R, KC_F, KC_Z, \
|
||||
LGUI_T(KC_Y), LALT_T(KC_I), LCTL_T(KC_E), LSFT_T(KC_A), KC_DOT, KC_D, LSFT_T(KC_S), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_B), \
|
||||
LT(U_BUTTON,KC_J), ALGR_T(KC_SLSH), KC_COMM, KC_K, KC_QUOT, KC_W, KC_M, KC_L, ALGR_T(KC_P), LT(U_BUTTON,KC_V), \
|
||||
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAK \
|
||||
KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
|
||||
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), \
|
||||
LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
|
||||
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH \
|
||||
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
|
||||
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), \
|
||||
LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
|
||||
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK \
|
||||
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
|
||||
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), \
|
||||
LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
|
||||
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BASE_DVORAK \
|
||||
KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, \
|
||||
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), \
|
||||
LT(U_BUTTON,KC_SLSH),ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), LT(U_BUTTON,KC_Z), \
|
||||
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BASE_HALMAK \
|
||||
KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J, \
|
||||
LGUI_T(KC_S), LALT_T(KC_H), LCTL_T(KC_N), LSFT_T(KC_T), KC_COMM, KC_DOT, LSFT_T(KC_A), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), \
|
||||
LT(U_BUTTON,KC_F), ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), LT(U_BUTTON,KC_Y), \
|
||||
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BASE_WORKMAN \
|
||||
KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, \
|
||||
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), \
|
||||
LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
|
||||
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BASE_QWERTY \
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
|
||||
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), \
|
||||
LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
|
||||
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BASE_QWERTZ \
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, \
|
||||
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), \
|
||||
LT(U_BUTTON,KC_Y), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
|
||||
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
|
||||
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_AZERTY_FLIP \
|
||||
KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
|
||||
KC_Q, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_M, \
|
||||
KC_W, KC_X, KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, \
|
||||
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15_FLIP \
|
||||
KC_Q, KC_H, KC_O, KC_U, KC_X, KC_G, KC_C, KC_R, KC_F, KC_Z, \
|
||||
KC_Y, KC_I, KC_E, KC_A, KC_DOT, KC_D, KC_S, KC_T, KC_N, KC_B, \
|
||||
KC_J, KC_SLSH, KC_COMM, KC_K, KC_QUOT, KC_W, KC_M, KC_L, KC_P, KC_V, \
|
||||
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK_FLIP \
|
||||
KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
|
||||
KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, \
|
||||
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
|
||||
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH_FLIP \
|
||||
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
|
||||
KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, \
|
||||
KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, \
|
||||
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK_FLIP \
|
||||
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
|
||||
KC_A, KC_R, KC_S, KC_T, KC_G, KC_K, KC_N, KC_E, KC_I, KC_O, \
|
||||
KC_Z, KC_X, KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, KC_DOT, KC_SLSH, \
|
||||
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK_FLIP \
|
||||
KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, \
|
||||
KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, \
|
||||
KC_SLSH, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, \
|
||||
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK_FLIP \
|
||||
KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J, \
|
||||
KC_S, KC_H, KC_N, KC_T, KC_COMM, KC_DOT, KC_A, KC_E, KC_O, KC_I, \
|
||||
KC_F, KC_M, KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, KC_K, KC_Y, \
|
||||
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN_FLIP \
|
||||
KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, \
|
||||
KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, \
|
||||
KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, \
|
||||
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY_FLIP \
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
|
||||
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, \
|
||||
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
|
||||
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ_FLIP \
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, \
|
||||
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, \
|
||||
KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
|
||||
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_AZERTY \
|
||||
KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
|
||||
KC_Q, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_M, \
|
||||
KC_W, KC_X, KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, \
|
||||
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15 \
|
||||
KC_Q, KC_H, KC_O, KC_U, KC_X, KC_G, KC_C, KC_R, KC_F, KC_Z, \
|
||||
KC_Y, KC_I, KC_E, KC_A, KC_DOT, KC_D, KC_S, KC_T, KC_N, KC_B, \
|
||||
KC_J, KC_SLSH, KC_COMM, KC_K, KC_QUOT, KC_W, KC_M, KC_L, KC_P, KC_V, \
|
||||
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK \
|
||||
KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
|
||||
KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, \
|
||||
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
|
||||
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH \
|
||||
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
|
||||
KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, \
|
||||
KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, \
|
||||
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK \
|
||||
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
|
||||
KC_A, KC_R, KC_S, KC_T, KC_G, KC_K, KC_N, KC_E, KC_I, KC_O, \
|
||||
KC_Z, KC_X, KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, KC_DOT, KC_SLSH, \
|
||||
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK \
|
||||
KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, \
|
||||
KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, \
|
||||
KC_SLSH, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, \
|
||||
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK \
|
||||
KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J, \
|
||||
KC_S, KC_H, KC_N, KC_T, KC_COMM, KC_DOT, KC_A, KC_E, KC_O, KC_I, \
|
||||
KC_F, KC_M, KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, KC_K, KC_Y, \
|
||||
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN \
|
||||
KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, \
|
||||
KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, \
|
||||
KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, \
|
||||
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY \
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
|
||||
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, \
|
||||
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
|
||||
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ \
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, \
|
||||
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, \
|
||||
KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
|
||||
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
|
||||
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_NAV_INVERTEDT_FLIP \
|
||||
KC_PGUP, KC_HOME, KC_UP, KC_END, KC_INS, U_NA, TD(U_TD_U_BASE), TD(U_TD_U_EXTRA), TD(U_TD_U_TAP), TD(U_TD_BOOT), \
|
||||
KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, CW_TOGG, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
|
||||
U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, TD(U_TD_U_NAV), TD(U_TD_U_NUM), KC_ALGR, U_NA, \
|
||||
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, U_NA, U_NA, U_NA, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_NAV_FLIP \
|
||||
KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, U_NA, TD(U_TD_U_BASE), TD(U_TD_U_EXTRA), TD(U_TD_U_TAP), TD(U_TD_BOOT), \
|
||||
KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CW_TOGG, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
|
||||
U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, TD(U_TD_U_NAV), TD(U_TD_U_NUM), KC_ALGR, U_NA, \
|
||||
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, U_NA, U_NA, U_NA, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_NAV_INVERTEDT \
|
||||
TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, \
|
||||
KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, CW_TOGG, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, \
|
||||
U_NA, KC_ALGR, TD(U_TD_U_NUM), TD(U_TD_U_NAV), U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
|
||||
U_NP, U_NP, U_NA, U_NA, U_NA, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_NAV_VI \
|
||||
TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
|
||||
KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CW_TOGG, \
|
||||
U_NA, KC_ALGR, TD(U_TD_U_NUM), TD(U_TD_U_NAV), U_NA, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, \
|
||||
U_NP, U_NP, U_NA, U_NA, U_NA, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_NAV \
|
||||
TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
|
||||
KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, CW_TOGG, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, \
|
||||
U_NA, KC_ALGR, TD(U_TD_U_NUM), TD(U_TD_U_NAV), U_NA, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, \
|
||||
U_NP, U_NP, U_NA, U_NA, U_NA, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
|
||||
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT_FLIP \
|
||||
KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, U_NU, U_NA, TD(U_TD_U_BASE), TD(U_TD_U_EXTRA), TD(U_TD_U_TAP), TD(U_TD_BOOT), \
|
||||
KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, U_NU, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
|
||||
U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, TD(U_TD_U_MOUSE), TD(U_TD_U_SYM), KC_ALGR, U_NA, \
|
||||
U_NP, U_NP, KC_BTN3, KC_BTN1, KC_BTN2, U_NA, U_NA, U_NA, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_MOUSE_FLIP \
|
||||
KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, U_NU, U_NA, TD(U_TD_U_BASE), TD(U_TD_U_EXTRA), TD(U_TD_U_TAP), TD(U_TD_BOOT), \
|
||||
KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, U_NU, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
|
||||
U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, TD(U_TD_U_MOUSE), TD(U_TD_U_SYM), KC_ALGR, U_NA, \
|
||||
U_NP, U_NP, KC_BTN3, KC_BTN1, KC_BTN2, U_NA, U_NA, U_NA, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT \
|
||||
TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, U_NU, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U, \
|
||||
KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, U_NU, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, \
|
||||
U_NA, KC_ALGR, TD(U_TD_U_SYM), TD(U_TD_U_MOUSE), U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
|
||||
U_NP, U_NP, U_NA, U_NA, U_NA, KC_BTN2, KC_BTN1, KC_BTN3, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_MOUSE_VI \
|
||||
TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
|
||||
KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, U_NU, \
|
||||
U_NA, KC_ALGR, TD(U_TD_U_SYM), TD(U_TD_U_MOUSE), U_NA, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, U_NU, \
|
||||
U_NP, U_NP, U_NA, U_NA, U_NA, KC_BTN2, KC_BTN1, KC_BTN3, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_MOUSE \
|
||||
TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
|
||||
KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, U_NU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, \
|
||||
U_NA, KC_ALGR, TD(U_TD_U_SYM), TD(U_TD_U_MOUSE), U_NA, U_NU, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, \
|
||||
U_NP, U_NP, U_NA, U_NA, U_NA, KC_BTN2, KC_BTN1, KC_BTN3, U_NP, U_NP
|
||||
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT_FLIP \
|
||||
RGB_HUI, RGB_SAI, KC_VOLU, RGB_VAI, RGB_TOG, U_NA, TD(U_TD_U_BASE), TD(U_TD_U_EXTRA), TD(U_TD_U_TAP), TD(U_TD_BOOT), \
|
||||
RGB_MOD, KC_MPRV, KC_VOLD, KC_MNXT, U_NU, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
|
||||
U_NU, U_NU, U_NU, U_NU, OU_AUTO, U_NA, TD(U_TD_U_MEDIA), TD(U_TD_U_FUN), KC_ALGR, U_NA, \
|
||||
U_NP, U_NP, KC_MUTE, KC_MPLY, KC_MSTP, U_NA, U_NA, U_NA, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_MEDIA_FLIP \
|
||||
RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, U_NA, TD(U_TD_U_BASE), TD(U_TD_U_EXTRA), TD(U_TD_U_TAP), TD(U_TD_BOOT), \
|
||||
KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, U_NU, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
|
||||
U_NU, U_NU, U_NU, U_NU, OU_AUTO, U_NA, TD(U_TD_U_MEDIA), TD(U_TD_U_FUN), KC_ALGR, U_NA, \
|
||||
U_NP, U_NP, KC_MUTE, KC_MPLY, KC_MSTP, U_NA, U_NA, U_NA, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT \
|
||||
TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, RGB_TOG, RGB_MOD, KC_VOLU, RGB_HUI, RGB_SAI, \
|
||||
KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, U_NU, KC_MPRV, KC_VOLD, KC_MNXT, RGB_VAI, \
|
||||
U_NA, KC_ALGR, TD(U_TD_U_FUN), TD(U_TD_U_MEDIA), U_NA, OU_AUTO, U_NU, U_NU, U_NU, U_NU, \
|
||||
U_NP, U_NP, U_NA, U_NA, U_NA, KC_MSTP, KC_MPLY, KC_MUTE, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_MEDIA_VI \
|
||||
TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, \
|
||||
KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, U_NU, \
|
||||
U_NA, KC_ALGR, TD(U_TD_U_FUN), TD(U_TD_U_MEDIA), U_NA, U_NU, U_NU, U_NU, U_NU, OU_AUTO, \
|
||||
U_NP, U_NP, U_NA, U_NA, U_NA, KC_MSTP, KC_MPLY, KC_MUTE, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_MEDIA \
|
||||
TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, \
|
||||
KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, U_NU, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, \
|
||||
U_NA, KC_ALGR, TD(U_TD_U_FUN), TD(U_TD_U_MEDIA), U_NA, OU_AUTO, U_NU, U_NU, U_NU, U_NU, \
|
||||
U_NP, U_NP, U_NA, U_NA, U_NA, KC_MSTP, KC_MPLY, KC_MUTE, U_NP, U_NP
|
||||
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_NUM_FLIP \
|
||||
TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, \
|
||||
KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_EQL, KC_4, KC_5, KC_6, KC_SCLN, \
|
||||
U_NA, KC_ALGR, TD(U_TD_U_NAV), TD(U_TD_U_NUM), U_NA, KC_BSLS, KC_1, KC_2, KC_3, KC_GRV, \
|
||||
U_NP, U_NP, U_NA, U_NA, U_NA, KC_MINS, KC_0, KC_DOT, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_NUM \
|
||||
KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, U_NA, TD(U_TD_U_BASE), TD(U_TD_U_EXTRA), TD(U_TD_U_TAP), TD(U_TD_BOOT), \
|
||||
KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, U_NA, TD(U_TD_U_NUM), TD(U_TD_U_NAV), KC_ALGR, U_NA, \
|
||||
U_NP, U_NP, KC_DOT, KC_0, KC_MINS, U_NA, U_NA, U_NA, U_NP, U_NP
|
||||
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_SYM_FLIP \
|
||||
TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, \
|
||||
KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_PLUS, KC_DLR, KC_PERC, KC_CIRC, KC_COLN, \
|
||||
U_NA, KC_ALGR, TD(U_TD_U_MOUSE), TD(U_TD_U_SYM), U_NA, KC_PIPE, KC_EXLM, KC_AT, KC_HASH, KC_TILD, \
|
||||
U_NP, U_NP, U_NA, U_NA, U_NA, KC_UNDS, KC_LPRN, KC_RPRN, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_SYM \
|
||||
KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, U_NA, TD(U_TD_U_BASE), TD(U_TD_U_EXTRA), TD(U_TD_U_TAP), TD(U_TD_BOOT), \
|
||||
KC_COLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, U_NA, TD(U_TD_U_SYM), TD(U_TD_U_MOUSE), KC_ALGR, U_NA, \
|
||||
U_NP, U_NP, KC_LPRN, KC_RPRN, KC_UNDS, U_NA, U_NA, U_NA, U_NP, U_NP
|
||||
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_FUN_FLIP \
|
||||
TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F12, \
|
||||
KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_SCRL, KC_F4, KC_F5, KC_F6, KC_F11, \
|
||||
U_NA, KC_ALGR, TD(U_TD_U_MEDIA), TD(U_TD_U_FUN), U_NA, KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F10, \
|
||||
U_NP, U_NP, U_NA, U_NA, U_NA, KC_TAB, KC_SPC, KC_APP, U_NP, U_NP
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_FUN \
|
||||
KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, U_NA, TD(U_TD_U_BASE), TD(U_TD_U_EXTRA), TD(U_TD_U_TAP), TD(U_TD_BOOT), \
|
||||
KC_F11, KC_F4, KC_F5, KC_F6, KC_SCRL, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
|
||||
KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, U_NA, TD(U_TD_U_FUN), TD(U_TD_U_MEDIA), KC_ALGR, U_NA, \
|
||||
U_NP, U_NP, KC_APP, KC_SPC, KC_TAB, U_NA, U_NA, U_NA, U_NP, U_NP
|
||||
|
||||
|
||||
#define MIRYOKU_ALTERNATIVES_BUTTON \
|
||||
U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
|
||||
KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NU, U_NU, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
|
||||
U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
|
||||
U_NP, U_NP, KC_BTN3, KC_BTN1, KC_BTN2, KC_BTN2, KC_BTN1, KC_BTN3, U_NP, U_NP
|
||||
@@ -0,0 +1,23 @@
|
||||
// Copyright 2022 Manna Harbour
|
||||
// https://github.com/manna-harbour/miryoku
|
||||
// generated -*- buffer-read-only: t -*-
|
||||
|
||||
// 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
|
||||
|
||||
#if !defined (MIRYOKU_LAYER_LIST)
|
||||
|
||||
#define MIRYOKU_LAYER_LIST \
|
||||
MIRYOKU_X(BASE, "Base") \
|
||||
MIRYOKU_X(EXTRA, "Extra") \
|
||||
MIRYOKU_X(TAP, "Tap") \
|
||||
MIRYOKU_X(BUTTON, "Button") \
|
||||
MIRYOKU_X(NAV, "Nav") \
|
||||
MIRYOKU_X(MOUSE, "Mouse") \
|
||||
MIRYOKU_X(MEDIA, "Media") \
|
||||
MIRYOKU_X(NUM, "Num") \
|
||||
MIRYOKU_X(SYM, "Sym") \
|
||||
MIRYOKU_X(FUN, "Fun")
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,277 @@
|
||||
// Copyright 2019 Manna Harbour
|
||||
// https://github.com/manna-harbour/miryoku
|
||||
// generated -*- buffer-read-only: t -*-
|
||||
|
||||
// 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
|
||||
|
||||
#include "miryoku_layer_alternatives.h"
|
||||
|
||||
#if !defined(MIRYOKU_LAYER_BASE)
|
||||
#if defined (MIRYOKU_LAYERS_FLIP)
|
||||
#if defined (MIRYOKU_ALPHAS_AZERTY)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_AZERTY_FLIP
|
||||
#elif defined (MIRYOKU_ALPHAS_BEAKL15)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_BEAKL15_FLIP
|
||||
#elif defined (MIRYOKU_ALPHAS_COLEMAK)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAK_FLIP
|
||||
#elif defined (MIRYOKU_ALPHAS_COLEMAKDH)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP
|
||||
#elif defined (MIRYOKU_ALPHAS_COLEMAKDHK)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK_FLIP
|
||||
#elif defined (MIRYOKU_ALPHAS_DVORAK)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_DVORAK_FLIP
|
||||
#elif defined (MIRYOKU_ALPHAS_HALMAK)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_HALMAK_FLIP
|
||||
#elif defined (MIRYOKU_ALPHAS_WORKMAN)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_WORKMAN_FLIP
|
||||
#elif defined (MIRYOKU_ALPHAS_QWERTY)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP
|
||||
#elif defined (MIRYOKU_ALPHAS_QWERTZ)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTZ_FLIP
|
||||
#else
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP
|
||||
#endif
|
||||
#else
|
||||
#if defined (MIRYOKU_ALPHAS_AZERTY)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_AZERTY
|
||||
#elif defined (MIRYOKU_ALPHAS_BEAKL15)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_BEAKL15
|
||||
#elif defined (MIRYOKU_ALPHAS_COLEMAK)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAK
|
||||
#elif defined (MIRYOKU_ALPHAS_COLEMAKDH)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH
|
||||
#elif defined (MIRYOKU_ALPHAS_COLEMAKDHK)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK
|
||||
#elif defined (MIRYOKU_ALPHAS_DVORAK)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_DVORAK
|
||||
#elif defined (MIRYOKU_ALPHAS_HALMAK)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_HALMAK
|
||||
#elif defined (MIRYOKU_ALPHAS_WORKMAN)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_WORKMAN
|
||||
#elif defined (MIRYOKU_ALPHAS_QWERTY)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTY
|
||||
#elif defined (MIRYOKU_ALPHAS_QWERTZ)
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTZ
|
||||
#else
|
||||
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#if !defined(MIRYOKU_LAYERMAPPING_BASE)
|
||||
#define MIRYOKU_LAYERMAPPING_BASE MIRYOKU_MAPPING
|
||||
#endif
|
||||
|
||||
#if !defined(MIRYOKU_LAYER_EXTRA)
|
||||
#if defined (MIRYOKU_LAYERS_FLIP)
|
||||
#if defined (MIRYOKU_EXTRA_AZERTY)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_AZERTY_FLIP
|
||||
#elif defined (MIRYOKU_EXTRA_BEAKL15)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_BEAKL15_FLIP
|
||||
#elif defined (MIRYOKU_EXTRA_COLEMAK)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAK_FLIP
|
||||
#elif defined (MIRYOKU_EXTRA_COLEMAKDH)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP
|
||||
#elif defined (MIRYOKU_EXTRA_COLEMAKDHK)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK_FLIP
|
||||
#elif defined (MIRYOKU_EXTRA_DVORAK)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_DVORAK_FLIP
|
||||
#elif defined (MIRYOKU_EXTRA_HALMAK)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_HALMAK_FLIP
|
||||
#elif defined (MIRYOKU_EXTRA_WORKMAN)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_WORKMAN_FLIP
|
||||
#elif defined (MIRYOKU_EXTRA_QWERTY)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP
|
||||
#elif defined (MIRYOKU_EXTRA_QWERTZ)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTZ_FLIP
|
||||
#else
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP
|
||||
#endif
|
||||
#else
|
||||
#if defined (MIRYOKU_EXTRA_AZERTY)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_AZERTY
|
||||
#elif defined (MIRYOKU_EXTRA_BEAKL15)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_BEAKL15
|
||||
#elif defined (MIRYOKU_EXTRA_COLEMAK)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAK
|
||||
#elif defined (MIRYOKU_EXTRA_COLEMAKDH)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH
|
||||
#elif defined (MIRYOKU_EXTRA_COLEMAKDHK)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK
|
||||
#elif defined (MIRYOKU_EXTRA_DVORAK)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_DVORAK
|
||||
#elif defined (MIRYOKU_EXTRA_HALMAK)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_HALMAK
|
||||
#elif defined (MIRYOKU_EXTRA_WORKMAN)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_WORKMAN
|
||||
#elif defined (MIRYOKU_EXTRA_QWERTY)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTY
|
||||
#elif defined (MIRYOKU_EXTRA_QWERTZ)
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTZ
|
||||
#else
|
||||
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTY
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#if !defined(MIRYOKU_LAYERMAPPING_EXTRA)
|
||||
#define MIRYOKU_LAYERMAPPING_EXTRA MIRYOKU_MAPPING
|
||||
#endif
|
||||
|
||||
#if !defined(MIRYOKU_LAYER_TAP)
|
||||
#if defined (MIRYOKU_LAYERS_FLIP)
|
||||
#if defined (MIRYOKU_TAP_AZERTY)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_AZERTY_FLIP
|
||||
#elif defined (MIRYOKU_TAP_BEAKL15)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_BEAKL15_FLIP
|
||||
#elif defined (MIRYOKU_TAP_COLEMAK)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAK_FLIP
|
||||
#elif defined (MIRYOKU_TAP_COLEMAKDH)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH_FLIP
|
||||
#elif defined (MIRYOKU_TAP_COLEMAKDHK)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK_FLIP
|
||||
#elif defined (MIRYOKU_TAP_DVORAK)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_DVORAK_FLIP
|
||||
#elif defined (MIRYOKU_TAP_HALMAK)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_HALMAK_FLIP
|
||||
#elif defined (MIRYOKU_TAP_WORKMAN)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_WORKMAN_FLIP
|
||||
#elif defined (MIRYOKU_TAP_QWERTY)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_QWERTY_FLIP
|
||||
#elif defined (MIRYOKU_TAP_QWERTZ)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_QWERTZ_FLIP
|
||||
#else
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH_FLIP
|
||||
#endif
|
||||
#else
|
||||
#if defined (MIRYOKU_TAP_AZERTY)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_AZERTY
|
||||
#elif defined (MIRYOKU_TAP_BEAKL15)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_BEAKL15
|
||||
#elif defined (MIRYOKU_TAP_COLEMAK)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAK
|
||||
#elif defined (MIRYOKU_TAP_COLEMAKDH)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH
|
||||
#elif defined (MIRYOKU_TAP_COLEMAKDHK)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK
|
||||
#elif defined (MIRYOKU_TAP_DVORAK)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_DVORAK
|
||||
#elif defined (MIRYOKU_TAP_HALMAK)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_HALMAK
|
||||
#elif defined (MIRYOKU_TAP_WORKMAN)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_WORKMAN
|
||||
#elif defined (MIRYOKU_TAP_QWERTY)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_QWERTY
|
||||
#elif defined (MIRYOKU_TAP_QWERTZ)
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_QWERTZ
|
||||
#else
|
||||
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#if !defined(MIRYOKU_LAYERMAPPING_TAP)
|
||||
#define MIRYOKU_LAYERMAPPING_TAP MIRYOKU_MAPPING
|
||||
#endif
|
||||
|
||||
#if !defined(MIRYOKU_LAYER_BUTTON)
|
||||
#define MIRYOKU_LAYER_BUTTON MIRYOKU_ALTERNATIVES_BUTTON
|
||||
#endif
|
||||
#if !defined(MIRYOKU_LAYERMAPPING_BUTTON)
|
||||
#define MIRYOKU_LAYERMAPPING_BUTTON MIRYOKU_MAPPING
|
||||
#endif
|
||||
|
||||
#if !defined(MIRYOKU_LAYER_NAV)
|
||||
#if defined (MIRYOKU_LAYERS_FLIP)
|
||||
#if defined (MIRYOKU_NAV_INVERTEDT)
|
||||
#define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_INVERTEDT_FLIP
|
||||
#else
|
||||
#define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_FLIP
|
||||
#endif
|
||||
#else
|
||||
#if defined (MIRYOKU_NAV_INVERTEDT)
|
||||
#define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_INVERTEDT
|
||||
#elif defined (MIRYOKU_NAV_VI)
|
||||
#define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_VI
|
||||
#else
|
||||
#define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#if !defined(MIRYOKU_LAYERMAPPING_NAV)
|
||||
#define MIRYOKU_LAYERMAPPING_NAV MIRYOKU_MAPPING
|
||||
#endif
|
||||
|
||||
#if !defined(MIRYOKU_LAYER_MOUSE)
|
||||
#if defined (MIRYOKU_LAYERS_FLIP)
|
||||
#if defined (MIRYOKU_NAV_INVERTEDT)
|
||||
#define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT_FLIP
|
||||
#else
|
||||
#define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_FLIP
|
||||
#endif
|
||||
#else
|
||||
#if defined (MIRYOKU_NAV_INVERTEDT)
|
||||
#define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT
|
||||
#elif defined (MIRYOKU_NAV_VI)
|
||||
#define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_VI
|
||||
#else
|
||||
#define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#if !defined(MIRYOKU_LAYERMAPPING_MOUSE)
|
||||
#define MIRYOKU_LAYERMAPPING_MOUSE MIRYOKU_MAPPING
|
||||
#endif
|
||||
|
||||
#if !defined(MIRYOKU_LAYER_MEDIA)
|
||||
#if defined (MIRYOKU_LAYERS_FLIP)
|
||||
#if defined (MIRYOKU_NAV_INVERTEDT)
|
||||
#define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT_FLIP
|
||||
#else
|
||||
#define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_FLIP
|
||||
#endif
|
||||
#else
|
||||
#if defined (MIRYOKU_NAV_INVERTEDT)
|
||||
#define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT
|
||||
#elif defined (MIRYOKU_NAV_VI)
|
||||
#define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_VI
|
||||
#else
|
||||
#define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#if !defined(MIRYOKU_LAYERMAPPING_MEDIA)
|
||||
#define MIRYOKU_LAYERMAPPING_MEDIA MIRYOKU_MAPPING
|
||||
#endif
|
||||
|
||||
#if !defined(MIRYOKU_LAYER_NUM)
|
||||
#if defined (MIRYOKU_LAYERS_FLIP)
|
||||
#define MIRYOKU_LAYER_NUM MIRYOKU_ALTERNATIVES_NUM_FLIP
|
||||
#else
|
||||
#define MIRYOKU_LAYER_NUM MIRYOKU_ALTERNATIVES_NUM
|
||||
#endif
|
||||
#endif
|
||||
#if !defined(MIRYOKU_LAYERMAPPING_NUM)
|
||||
#define MIRYOKU_LAYERMAPPING_NUM MIRYOKU_MAPPING
|
||||
#endif
|
||||
|
||||
#if !defined(MIRYOKU_LAYER_SYM)
|
||||
#if defined (MIRYOKU_LAYERS_FLIP)
|
||||
#define MIRYOKU_LAYER_SYM MIRYOKU_ALTERNATIVES_SYM_FLIP
|
||||
#else
|
||||
#define MIRYOKU_LAYER_SYM MIRYOKU_ALTERNATIVES_SYM
|
||||
#endif
|
||||
#endif
|
||||
#if !defined(MIRYOKU_LAYERMAPPING_SYM)
|
||||
#define MIRYOKU_LAYERMAPPING_SYM MIRYOKU_MAPPING
|
||||
#endif
|
||||
|
||||
#if !defined(MIRYOKU_LAYER_FUN)
|
||||
#if defined (MIRYOKU_LAYERS_FLIP)
|
||||
#define MIRYOKU_LAYER_FUN MIRYOKU_ALTERNATIVES_FUN_FLIP
|
||||
#else
|
||||
#define MIRYOKU_LAYER_FUN MIRYOKU_ALTERNATIVES_FUN
|
||||
#endif
|
||||
#endif
|
||||
#if !defined(MIRYOKU_LAYERMAPPING_FUN)
|
||||
#define MIRYOKU_LAYERMAPPING_FUN MIRYOKU_MAPPING
|
||||
#endif
|
||||
42
users/manna-harbour_miryoku/post_rules.mk
Normal file
42
users/manna-harbour_miryoku/post_rules.mk
Normal file
@@ -0,0 +1,42 @@
|
||||
# Copyright 2022 Manna Harbour
|
||||
# https://github.com/manna-harbour/miryoku
|
||||
|
||||
# alternative layout options
|
||||
|
||||
ifneq ($(strip $(MIRYOKU_ALPHAS)),)
|
||||
OPT_DEFS += -DMIRYOKU_ALPHAS_$(MIRYOKU_ALPHAS)
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(MIRYOKU_EXTRA)),)
|
||||
OPT_DEFS += -DMIRYOKU_EXTRA_$(MIRYOKU_EXTRA)
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(MIRYOKU_TAP)),)
|
||||
OPT_DEFS += -DMIRYOKU_TAP_$(MIRYOKU_TAP)
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(MIRYOKU_NAV)),)
|
||||
OPT_DEFS += -DMIRYOKU_NAV_$(MIRYOKU_NAV)
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(MIRYOKU_CLIPBOARD)),)
|
||||
OPT_DEFS += -DMIRYOKU_CLIPBOARD_$(MIRYOKU_CLIPBOARD)
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(MIRYOKU_LAYERS)),)
|
||||
OPT_DEFS += -DMIRYOKU_LAYERS_$(MIRYOKU_LAYERS)
|
||||
endif
|
||||
|
||||
# subset mappings
|
||||
|
||||
ifneq ($(strip $(MIRYOKU_MAPPING)),)
|
||||
OPT_DEFS += -DMIRYOKU_MAPPING_$(MIRYOKU_MAPPING)
|
||||
endif
|
||||
|
||||
# kludges
|
||||
|
||||
# thumb combos
|
||||
ifeq ($(strip $(MIRYOKU_KLUDGE_THUMBCOMBOS)),yes)
|
||||
COMBO_ENABLE = yes
|
||||
OPT_DEFS += -DMIRYOKU_KLUDGE_THUMBCOMBOS
|
||||
endif
|
||||
822
users/manna-harbour_miryoku/readme.org
Normal file
822
users/manna-harbour_miryoku/readme.org
Normal file
@@ -0,0 +1,822 @@
|
||||
# Copyright 2022 Manna Harbour
|
||||
# https://github.com/manna-harbour/miryoku
|
||||
|
||||
* Miryoku QMK [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/miryoku-roa-32.png]]
|
||||
|
||||
[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/cover/miryoku-kle-cover-miryoku_qmk.png]]
|
||||
|
||||
[[https://github.com/manna-harbour/miryoku/][Miryoku]] is an ergonomic, minimal, orthogonal, and universal keyboard layout. [[https://github.com/manna-harbour/miryoku_qmk/tree/miryoku/users/manna-harbour_miryoku][Miryoku QMK]] is the Miryoku implementation for [[https://qmk.fm][QMK]].
|
||||
|
||||
|
||||
** Branches
|
||||
|
||||
|
||||
*** QMK master
|
||||
|
||||
QMK master is the current version of QMK, but usually does not contain the current version of Miryoku QMK.
|
||||
|
||||
QMK master is at https://github.com/qmk/qmk_firmware/tree/master. The corresponding Miryoku QMK readme is at https://github.com/qmk/qmk_firmware/tree/master/users/manna-harbour_miryoku and describes the version of Miryoku QMK in QMK master.
|
||||
|
||||
|
||||
*** Miryoku QMK development branch
|
||||
|
||||
The Miryoku QMK development branch is the current version of Miryoku QMK, but usually does not contain the current version of QMK.
|
||||
|
||||
The Miryoku QMK development branch is named ~miryoku~ and is at https://github.com/manna-harbour/miryoku_qmk/tree/miryoku. The corresponding Miryoku QMK readme is at https://github.com/manna-harbour/miryoku_qmk/tree/miryoku/users/manna-harbour_miryoku.
|
||||
|
||||
New commits can be seen at the top of the [[https://github.com/manna-harbour/miryoku_qmk/commits/miryoku][history]] with commit messages beginning ~[miryoku]~ or ~[miryoku-github]~
|
||||
|
||||
Periodically, the ~[miryoku]~ commits are squashed and merged upstream into QMK master by pull request, the ~miryoku~ branch is renamed, and a new ~miryoku~ branch is created from QMK master.
|
||||
|
||||
|
||||
**** Merge
|
||||
|
||||
To use both the current versions of QMK and Miryoku QMK together, the QMK master and ~miryoku~ branches need to be merged.
|
||||
|
||||
The ~[miryoku-github]~ commits relate to GitHub specific functions of the Miryoku QMK repository and forks, such as workflows. Directly merging ~miryoku~ with a branch based on QMK master will lead to conflicts due to those commits. To avoid conflicts, first drop or revert all ~[miryoku-github]~ commits from ~miryoku~ before merging.
|
||||
|
||||
Merging branches can be performed automatically at build time for [[#workflow-builds][workflow builds]] using the ~merge~ option, which will automatically revert all ~[miryoku-github]~ commits before merging. For local builds, see [[#checkout-update-and-merge][Checkout, Update, and Merge]] below.
|
||||
|
||||
Any local changes to existing workflow files should be made independently in commits with messages starting ~[miryoku-github]~ so that they can also be automatically excluded in workflow builds.
|
||||
|
||||
|
||||
** Building
|
||||
|
||||
|
||||
*** Local Builds
|
||||
|
||||
First [[https://docs.qmk.fm/#/newbs_getting_started][set up the QMK build environment and build the default keymap for your keyboard]].
|
||||
|
||||
Next choose the [[#branches][branch]]. If using ~miryoku~, [[#checkout-update-and-merge][checkout, update, or merge]] as needed.
|
||||
|
||||
Build with ~manna-harbour_miryoku~ as the keymap name. Personalised defaults for [[https://github.com/manna-harbour/miryoku/tree/master/docs/reference#alternative-layouts][alternative layout]] options can be set in [[#userspace][custom_rules.mk]]. Options can also be set or overridden at build time. Build with [[#qmk][qmk]] or [[#make][make]].
|
||||
|
||||
|
||||
**** Checkout, Update, and Merge
|
||||
|
||||
All of the following examples operate in your existing QMK build environment.
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
cd qmk_firmware
|
||||
#+END_SRC
|
||||
|
||||
To checkout the ~miryoku~ branch from Miryoku QMK:
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
git remote add miryoku_qmk git@github.com:manna-harbour/miryoku_qmk.git # if using SSH
|
||||
git remote add miryoku_qmk https://github.com/manna-harbour/miryoku_qmk.git # if using HTTPS
|
||||
git fetch miryoku_qmk
|
||||
git checkout --track miryoku_qmk/miryoku
|
||||
make git-submodule
|
||||
#+END_SRC
|
||||
|
||||
To update the ~miryoku~ branch from Miryoku QMK:
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
git checkout miryoku
|
||||
git fetch miryoku_qmk
|
||||
git merge miryoku_qmk/miryoku
|
||||
#+END_SRC
|
||||
|
||||
If a new ~miryoku~ branch has been created in Miryoku QMK you will see ~(forced update)~ after the fetch. To rename the existing ~miryoku~ branch and create a new ~miryoku~ branch from Miryoku QMK:
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
git checkout miryoku
|
||||
git branch -m miryoku-`whoami`-`date --rfc-3339=date`
|
||||
git fetch miryoku_qmk
|
||||
git checkout --track miryoku_qmk/miryoku
|
||||
make git-submodule
|
||||
#+END_SRC
|
||||
|
||||
To [[#merge][merge]] the ~miryoku~ branch with QMK master:
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
git checkout miryoku
|
||||
git checkout -b miryoku-merge-master
|
||||
git revert --no-edit `git log --grep='^\[miryoku-github\]' --pretty='format:%H' | tr '\n' ' '`
|
||||
git fetch origin
|
||||
git merge origin/master
|
||||
make git-submodule
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** qmk
|
||||
|
||||
Build with the ~qmk~ command. E.g.
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
qmk compile -c -kb crkbd -km manna-harbour_miryoku # build for crkbd
|
||||
qmk flash -c -kb crkbd -km manna-harbour_miryoku # build for crkbd and flash
|
||||
qmk compile -c -kb crkbd -km manna-harbour_miryoku \
|
||||
-e MIRYOKU_ALPHAS=QWERTY \
|
||||
-e MIRYOKU_EXTRA=COLEMAKDH \
|
||||
-e MIRYOKU_TAP=QWERTY \
|
||||
-e MIRYOKU_NAV=INVERTEDT \
|
||||
-e MIRYOKU_CLIPBOARD=WIN \
|
||||
-e MIRYOKU_LAYERS=FLIP # build for crkbd with alternative layouts
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** make
|
||||
|
||||
First ~cd~ to the repository root. Then build with ~make~. E.g.
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make clean crkbd:manna-harbour_miryoku # build for crkbd
|
||||
make clean crkbd:manna-harbour_miryoku:flash # build for crkbd and flash
|
||||
make clean crkbd:manna-harbour_miryoku \
|
||||
MIRYOKU_ALPHAS=QWERTY \
|
||||
MIRYOKU_EXTRA=COLEMAKDH \
|
||||
MIRYOKU_TAP=QWERTY \
|
||||
MIRYOKU_NAV=INVERTEDT \
|
||||
MIRYOKU_CLIPBOARD=WIN \
|
||||
MIRYOKU_LAYERS=FLIP # build for crkbd with alternative layouts
|
||||
#+END_SRC
|
||||
|
||||
|
||||
*** Workflow Builds
|
||||
|
||||
Firmware can be built via GitHub Actions workflows without use of a local build environment. Local tools are still required for [[https://docs.qmk.fm/#/newbs_flashing][flashing]].
|
||||
|
||||
First [[#fork-or-sync][fork the Miryoku QMK repository or sync the ~miryoku~ branch]]. Then use the [[#build-examples][Build Examples]] or [[#build-inputs][Build Inputs]] workflows.
|
||||
|
||||
To access a workflow, visit the Actions tab and select the workflow. To download the firmware from a workflow run, select the workflow, select the workflow run, select the desired Artifacts, and unzip the downloaded zip file.
|
||||
|
||||
Workflow files are in [[../../.github/workflows]].
|
||||
|
||||
|
||||
**** Fork or Sync
|
||||
|
||||
If you don't have a fork, first [[https://github.com/signup][create a GitHub account]], [[https://github.com/login][login to GitHub]], [[https://docs.github.com/en/get-started/quickstart/fork-a-repo#forking-a-repository][fork]] https://github.com/manna-harbour/miryoku_qmk, and visit the Actions tab and enable workflows.
|
||||
|
||||
If you already have a fork, [[https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork#syncing-a-fork-branch-from-the-web-ui][sync]] the ~miryoku~ branch.
|
||||
|
||||
If a new ~miryoku~ branch has been created in Miryoku QMK, there will be a warning about conflicts when trying to sync. If you have local changes, first create a copy of the branch by [[https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository#creating-a-branch][creating a new branch]] and specifying the ~miryoku~ branch in your fork as the source, then sync the ~miryoku~ branch again. Accept the prompt to discard commits.
|
||||
|
||||
|
||||
**** Build Examples
|
||||
|
||||
Copy one of the included Build Example workflow files, edit the ~name~ value, and edit and add options and values as desired. Select Run workflow, select the Branch if desired, and activate Run workflow.
|
||||
|
||||
Options are specified in the ~with~ section and are of the following form.
|
||||
: option: '["value"]'
|
||||
|
||||
For multiple values per option use the following form, and a matrix build will be performed for each combination of values across all options.
|
||||
: option: '["value1","value2"]'
|
||||
|
||||
The ~keyboard~ option specifies the keyboard and is required. All other options are optional.
|
||||
|
||||
The ~alphas~, ~nav~, ~clipboard~, and ~layers~ options correspond to the [[https://github.com/manna-harbour/miryoku/tree/master/docs/reference#alternative-layouts][alternative layout]] options. The ~mapping~ option corresponds to the alternative [[#subset-mapping][mapping]] options. Alternative layout and mapping options are given in the documentation in the form ~MIRYOKU_OPTION=VALUE~. To use here, convert to the form specified above. Use ~default~ to represent the default value. Values for these five options are case-insensitive. See the [[../../.github/workflows/test-all-configs.yml][Test All Configs workflow file]] for all supported values.
|
||||
|
||||
The ~rules~ and ~custom_config~ options can be used to specify values to be appended to ~custom_rules.mk~ and ~custom_config.h~, respectively. Separate multiple lines with ~\n~.
|
||||
|
||||
The ~merge~ option can be used to merge branches at build time. Branches are specified in the form ~<user>/<repo>/<branch>~. E.g. QMK ~master~ and ~develop~ would be specified as ~qmk/qmk_firmware/master~ and ~qmk/qmk_firmware/develop~ respectively. Multiple space separated branches can be specified. For no merges, leave as ~default~.
|
||||
|
||||
|
||||
**** Build Inputs
|
||||
|
||||
The Build Inputs workflow can be used without editing workflow files. Select Run workflow, select the Branch and fill out the form as desired, and activate Run workflow.
|
||||
|
||||
Most options are specified by entering values directly in the corresponding field. Multiple comma separated values can be entered per option and a matrix build will be performed for each combination of values across all options.
|
||||
|
||||
Values for Miryoku alternative layout options are selected from a list. As multiple selection is not supported, matrix builds across multiple values are not possible for these options, and the Test Inputs or [[#build-examples][Build Example]] workflows should be used instead.
|
||||
|
||||
The ~Keyboard~ option specifies the keyboard and is required. All other options are optional.
|
||||
|
||||
The ~Miryoku Alphas~, ~Miryoku Nav~, ~Miryoku Clipboard~, and ~Miryoku Layers~ options correspond to the [[https://github.com/manna-harbour/miryoku/tree/master/docs/reference#alternative-layouts][alternative layout]] options. The ~Miryoku Mapping~ option corresponds to the alternative [[#subset-mapping][mapping]] options. Alternative layout and mapping options are given in the documentation in the form ~MIRYOKU_OPTION=VALUE~. To use here, enter the ~value~ in the corresponding ~Miryoku Option~ field. Use ~default~ to represent the default value. Values for these five options are case-insensitive.
|
||||
|
||||
The ~custom_rules.mk~ and ~custom_config.h~ options can be used to specify values to be appended to the corresponding files. Join multiple lines with ~\n~.
|
||||
|
||||
The ~Merge QMK Branches~ option can be used to merge branches at build time. Branches are specified in the form ~<user>/<repo>/<branch>~. E.g. QMK ~master~ and ~develop~ would be specified as ~qmk/qmk_firmware/master~ and ~qmk/qmk_firmware/develop~ respectively. Multiple space separated branches can be specified. For no merges, leave as ~default~.
|
||||
|
||||
|
||||
** Subset Mapping
|
||||
|
||||
The keymap, build options, and configuration are shared between keyboards. The
|
||||
layout is mapped onto keyboards with different physical layouts as a subset
|
||||
without code duplication using the QMK userspace feature and C macros.
|
||||
|
||||
|
||||
*** Userspace
|
||||
|
||||
The keymap is defined for ~LAYOUT_miryoku~ which is 10x4, with the outer 2
|
||||
positions on the bottom row unused and the rest of the bottom row being the
|
||||
thumb keys.
|
||||
|
||||
- [[./rules.mk]] :: Build options. Automatically included.
|
||||
|
||||
- [[./custom_rules.mk]] :: Custom ~make~ options including customised defaults for alternative layout and mapping options. Included from ~rules.mk~.
|
||||
|
||||
- [[./post_rules.mk]] :: Handles Miryoku ~make~ options. Included from ~rules.mk~.
|
||||
|
||||
- [[./config.h]] :: Config options. Automatically included.
|
||||
|
||||
- [[./custom_config.h]] :: Custom config options. Included from ~config.h~.
|
||||
|
||||
- [[./manna-harbour_miryoku.h]] :: Keymap-related definitions. Included from ~manna-harbour_miryoku.c~. Layer data is generated by [[https://github.com/manna-harbour/miryoku_babel][Miryoku Babel]] and is included from files in the [[miryoku_babel]] directory.
|
||||
|
||||
- [[./manna-harbour_miryoku.c]] :: Contains the keymap. Added from ~rules.mk~.
|
||||
|
||||
|
||||
*** Community Layouts
|
||||
|
||||
To use the keymap on a keyboard supporting the community layouts feature,
|
||||
~LAYOUT_miryoku~ is defined as a macro mapping onto the layout's own ~LAYOUT~
|
||||
macro, leaving the unused keys as ~KC_NO~.
|
||||
|
||||
For keyboards supporting multiple layouts for which subset mappings are
|
||||
available, select the layout with ~FORCE_LAYOUT~ in the ~make~ command line when
|
||||
building. E.g.:
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make planck/rev6:manna-harbour_miryoku:flash FORCE_LAYOUT=planck_mit # planck_mit
|
||||
make planck/rev6:manna-harbour_miryoku:flash FORCE_LAYOUT=ortho_4x12 # ortho_4x12
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** 60_ansi
|
||||
|
||||
An angled ortho split layout is mapped onto the row-staggered keyboard. The
|
||||
rows are moved up to better position the thumb keys, the hands are separated as
|
||||
much as possible, and the left hand column angle is reversed to reduce ulnar
|
||||
deviation of the wrists.
|
||||
|
||||
[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-60_ansi.png]]
|
||||
|
||||
An alternative subset mapping is also provided without reverse column angle. To
|
||||
select this mapping, append ~MIRYOKU_MAPPING=NOREVERSEANGLE~ to the ~make~
|
||||
command line when building.
|
||||
|
||||
[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-60_ansi-noreverseangle.png]]
|
||||
|
||||
Another alternative subset mapping is provided mapping only the 3x10 alphas,
|
||||
plus spacebar for space / Nav, with the remainder being the default 60_ansi
|
||||
keymap with semicolon in place of quote. To select this mapping, append
|
||||
~MIRYOKU_MAPPING=LITE~ to the ~make~ command line when building.
|
||||
|
||||
Keyboards supporting this layout: alps64, amj60, bakeneko60, bm60poker, bm60rgb, do60, dp60, dz60, facew, gskt00, infinity60, jm60, kc60, kc60se, ok60, org60, paladin64, panc60, reviung61, smk60, v60_type_r, yd60mq, 1upkeyboards/1up60hse, 1upkeyboards/1up60rgb, 40percentclub/luddite, acheron/keebspcb, acheron/lasgweloth, ai03/polaris, akegata_denki/device_one, atxkb/1894, bioi/g60ble, bt66tech/bt66tech60, cannonkeys/an_c, cannonkeys/instant60, cannonkeys/practice60, clawsome/coupe, dm9records/tartan, duck/eagle_viper, evyd13/plain60, exclusive/e6_rgb, gh60/revc, gh60/satan, gh60/v1p3, handwired/xealousbrown, hineybush/h60, hs60/v1, keebio/wtf60, noxary/260, playkbtw/pk60, ryloo_studio/m0110, thevankeyboards/bananasplit, wilba_tech/zeal60, xd60/rev2, xd60/rev3, cannonkeys/db60/hotswap, cannonkeys/db60/j02, cannonkeys/db60/rev2, exclusive/e6v2/le, exclusive/e6v2/oe, foxlab/leaf60/universal, handwired/co60/rev1, handwired/co60/rev7, handwired/swiftrax/nodu, hs60/v2/ansi, inett_studio/sqx/universal, melgeek/mj61/rev1, melgeek/mj61/rev2, melgeek/mj63/rev1, melgeek/mj63/rev2, sentraq/s60_x/default, sentraq/s60_x/rgb.
|
||||
|
||||
Example build command lines:
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make dz60:manna-harbour_miryoku:flash # dz60
|
||||
make dz60:manna-harbour_miryoku:flash MIRYOKU_MAPPING=NOREVERSEANGLE # dz60, without reverse column angle
|
||||
make dz60:manna-harbour_miryoku:flash MIRYOKU_MAPPING=LITE # dz60, with lite mapping
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** alice
|
||||
|
||||
This is a hybrid mapping. Only the 3x10 alphas plus spacebars as primary thumb keys are mapped. The remaining keys are the same as the default keymap but with semicolon in place of quote. The keys adjacent to the spacebars are also mapped as corresponding thumb keys but may not be usable as such.
|
||||
|
||||
Keyboards supporting this layout: cheshire/curiosity, handwired/owlet60, mechlovin/adelais, projectkb/alice, sck/osa, axolstudio/yeti, coarse/cordillera, edda, evyd13/wonderland, fallacy, kb_elmo/sesame, keebsforall/coarse60, ramonimbao/aelith, sneakbox/aliceclone, tkc/osav2, zoo/wampus.
|
||||
|
||||
|
||||
**** alice_split_bs
|
||||
|
||||
This is a hybrid mapping. Only the 3x10 alphas plus spacebars as primary thumb keys are mapped. The remaining keys are the same as the default keymap but with semicolon in place of quote. The keys adjacent to the spacebars are also mapped as corresponding thumb keys but may not be usable as such.
|
||||
|
||||
Keyboards supporting this layout: cheshire/curiosity, ergosaurus, handwired/colorlice, handwired/owlet60, mechlovin/adelais, projectkb/alice, sck/osa, tgr/alice, xelus/valor/rev1, xelus/valor/rev2, axolstudio/yeti, coarse/cordillera, edda, evyd13/wonderland, fallacy, kb_elmo/sesame, keebsforall/coarse60, nightly_boards/alter/rev1, ramonimbao/aelith, seigaiha, sneakbox/aliceclone, tkc/osav2, zoo/wampus.
|
||||
|
||||
|
||||
**** ergodox
|
||||
|
||||
For the ergodox layout, the main 5x3 alphas are used as usual. The primary and
|
||||
secondary thumb keys are the inner and outer 2u thumb keys and the tertiary
|
||||
thumb key is the innermost key of the partial bottom row. The remaining keys
|
||||
are unused.
|
||||
|
||||
[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ergodox.png]]
|
||||
|
||||
An alternative subset mapping is provided with all keys shifted up one row creating thumb keys in the original alpha area. To select this mapping, append ~MIRYOKU_MAPPING=SHIFTED_ROWS~ to the ~make~ command line when building.
|
||||
|
||||
[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ergodox-shifted_rows.png]]
|
||||
|
||||
Another alternative subset mapping is provided as for ~MIRYOKU_MAPPING=SHIFTED_ROWS~ but with the thumb keys shifted one position in the direction of thumb extension. To select this mapping, append ~MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS~ to the ~make~ command line when building.
|
||||
|
||||
[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ergodox-shifted_rows-extended_thumbs.png]]
|
||||
|
||||
Another alternative subset mapping is provided as for ~MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS~ but with the pinkie column moved down one row. To select this mapping, append ~MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS_PINKIE_STAGGER~ to the ~make~ command line when building.
|
||||
|
||||
[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ergodox-shifted_rows-extended_thumbs-pinkie_stagger.png]]
|
||||
|
||||
Keyboards supporting this layout: ergodone, ergodox_ez, ergodox_infinity, hotdox.
|
||||
|
||||
Example build command lines:
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make ergodox_infinity:manna-harbour_miryoku:flash # ergodox_infinity
|
||||
make ergodox_ez:manna-harbour_miryoku:flash # ergodox_ez
|
||||
make ergodox_ez:manna-harbour_miryoku:flash MIRYOKU_MAPPING=SHIFTED_ROWS # ergodox_ez, shifted rows
|
||||
make ergodox_ez:manna-harbour_miryoku:flash MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS # ergodox_ez, shifted rows, extended thumbs
|
||||
make ergodox_ez:manna-harbour_miryoku:flash MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS_PINKIE_STAGGER # ergodox_ez, shifted rows, extended thumbs, pinkie stagger
|
||||
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** ortho_4x10
|
||||
|
||||
An alternative with 180 degree rotation is also provided to enable the USB cable to be relocated for use with laptops. To select this mapping, append ~MIRYOKU_MAPPING=ROTATE~ to the ~make~ command line when building.
|
||||
|
||||
Keyboards supporting this layout: newgame40, nimrod, marksard/rhymestone, pabile/p40.
|
||||
|
||||
Example build command lines:
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make marksard/rhymestone:manna-harbour_miryoku:flash # marksard/rhymestone
|
||||
make pabile/p40:manna-harbour_miryoku:flash MIRYOKU_MAPPING=ROTATE # pabile/p40, rotate
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** ortho_4x12
|
||||
|
||||
For the ortho_4x12 layout, the middle two columns, and the 2 keys on each end of
|
||||
the bottom row are unused. This allows the hands to be positioned without ulnar
|
||||
deviation of the wrists.
|
||||
|
||||
[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ortho_4x12.png]]
|
||||
|
||||
For split keyboards using this layout the halves can be positioned and rotated
|
||||
for each hand and so an alternative mapping is provided. The right half is as
|
||||
follows: The rightmost column bottom 3 keys is the pinkie column. The middle 4
|
||||
columns top 3 rows are for the remaining fingers. The pinkie column is one row
|
||||
lower than the other columns to provide some column stagger. The bottom row
|
||||
left 3 keys are the thumb keys. The remaining keys are unused. To select this
|
||||
mapping, append ~MIRYOKU_MAPPING=SPLIT~ to the ~make~ command line when
|
||||
building.
|
||||
|
||||
[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ortho_4x12-split.png]]
|
||||
|
||||
An alternative with extended thumb position but without pinkie column stagger is
|
||||
also provided. To select this mapping, append ~MIRYOKU_MAPPING=EXTENDED_THUMBS~
|
||||
to the ~make~ command line when building.
|
||||
|
||||
[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ortho_4x12-extended_thumbs.png]]
|
||||
|
||||
Keyboards supporting this layout: chimera_ls, contra, efreet, jj40, jnao, lets_split, lets_split_eh, meira, niu_mini, quark, tau4, telophase, vitamins_included, zlant, 40percentclub/4x4, 40percentclub/nori, acheron/shark, boardsource/4x12, cannonkeys/ortho48, dm9records/plaid, evyd13/eon40, evyd13/pockettype, handwired/floorboard, handwired/jotanck, handwired/wulkan, kbdfans/kbd4x, keebio/levinson, keebio/wavelet, mechstudio/ud_40_ortho, planck/ez, planck/light, planck/rev1, planck/rev2, planck/rev3, planck/rev4, planck/rev5, planck/rev6, planck/thk, rgbkb/zygomorph, zvecr/split_blackpill, zvecr/zv48, keebio/nyquist/rev1, keebio/nyquist/rev2, keebio/nyquist/rev3, montsinger/rebound/rev1, montsinger/rebound/rev2, montsinger/rebound/rev3, montsinger/rebound/rev4, signum/3_0/elitec, spaceman/pancake/feather, spaceman/pancake/promicro, ymdk/ymd40/v2.
|
||||
|
||||
Example build command lines:
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make planck/rev6:manna-harbour_miryoku:flash FORCE_LAYOUT=ortho_4x12 # planck, ortho_4x12
|
||||
make planck/rev6:manna-harbour_miryoku:flash FORCE_LAYOUT=ortho_4x12 MIRYOKU_MAPPING=EXTENDED_THUMBS # planck, ortho_4x12, extended thumbs
|
||||
make keebio/levinson:manna-harbour_miryoku:flash MIRYOKU_MAPPING=SPLIT # levinson
|
||||
make keebio/levinson:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS # levinson, extended thumbs
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** ortho_5x12
|
||||
|
||||
As per ortho_4x12 but the top row is unused.
|
||||
|
||||
Keyboards supporting this layout: fractal, jj50, jnao, boardsource/5x12, cannonkeys/atlas_alps, cannonkeys/ortho60, handwired/jot50, handwired/riblee_f401, handwired/riblee_f411, handwired/rs60, keycapsss/o4l_5x12, peej/lumberjack, preonic/rev1, preonic/rev2, preonic/rev3, rgbkb/zygomorph, keebio/nyquist/rev1, keebio/nyquist/rev2, keebio/nyquist/rev3.
|
||||
|
||||
Example build command lines:
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make preonic/rev3:manna-harbour_miryoku:flash # preonic/rev3
|
||||
make preonic/rev3:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS # preonic/rev3, extended thumbs
|
||||
make keebio/nyquist/rev3:manna-harbour_miryoku:flash MIRYOKU_MAPPING=SPLIT # nyquist/rev3, split
|
||||
make keebio/nyquist/rev3:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS # nyquist/rev3, extended thumbs
|
||||
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** ortho_5x15
|
||||
|
||||
For the ortho_5x15 layout, the top row, middle 5 columns, and the 2 keys on each
|
||||
end of the bottom row are unused. This allows the hands to be positioned
|
||||
without ulnar deviation of the wrists.
|
||||
|
||||
[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ortho_5x15.png]]
|
||||
|
||||
An alternative subset mapping is also provided with the thumb keys shifted
|
||||
across one position in the direction of thumb extension. To select this
|
||||
mapping, append ~MIRYOKU_MAPPING=EXTENDED_THUMBS~ to the ~make~ command line
|
||||
when building.
|
||||
|
||||
[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ortho_5x15-extended_thumbs.png]]
|
||||
|
||||
Keyboards supporting this layout: atomic, geminate60, idobo, punk75, xd75, 40percentclub/5x5, 40percentclub/i75, cannonkeys/ortho75, sendyyeah/75pixels.
|
||||
|
||||
Example build command lines:
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make atomic:manna-harbour_miryoku:flash # atomic
|
||||
make atomic:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS # atomic, extended thumbs
|
||||
make idobo:manna-harbour_miryoku:flash # idobo
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** planck_mit
|
||||
|
||||
The middle two columns including the middle 2u key, and the 2 keys on each end
|
||||
of the bottom row are unused.
|
||||
|
||||
Keyboards supporting this layout: bm40hsrgb, contra, efreet, jj40, latin47ble, mt40, niu_mini, quark, zlant, dm9records/plaid, evyd13/eon40, handwired/aranck, handwired/heisenberg, kbdfans/kbd4x, planck/ez, planck/light, planck/rev1, planck/rev2, planck/rev3, planck/rev4, planck/rev5, planck/rev6, planck/thk, spaceman/pancake/feather, spaceman/pancake/promicro.
|
||||
|
||||
Example build command lines:
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make planck/ez:manna-harbour_miryoku:flash # planck ez
|
||||
make planck/rev6:manna-harbour_miryoku:flash FORCE_LAYOUT=planck_mit # planck rev6, mit
|
||||
|
||||
#+END_SRC
|
||||
|
||||
|
||||
|
||||
**** split_3x5_2
|
||||
|
||||
[[#thumb-combos][Thumb combos]] are enabled automatically for this layout.
|
||||
|
||||
Keyboards supporting this layout: a_dux, alt34/rev1, bastardkb/dilemma, cradio, ferris/0_1, ferris/0_2, ferris/sweep
|
||||
|
||||
Example build command lines:
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make ferris/0_2:manna-harbour_miryoku:flash # ferris/0_2
|
||||
make ferris/sweep:manna-harbour_miryoku:flash # ferris/sweep
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** split_3x5_3
|
||||
|
||||
Keyboards supporting this layout: arch_36, boardsource/microdox, centromere, crkbd, eek, miniaxe, minidox/rev1, pteron36, squiggle/rev1, suihankey/split/rev1.
|
||||
|
||||
Example build command lines:
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make crkbd:manna-harbour_miryoku:flash # crkbd
|
||||
make minidox:manna-harbour_miryoku:flash # minidox
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** split_3x6_3
|
||||
|
||||
The outer columns are unused.
|
||||
|
||||
Keyboards supporting this layout: centromere, crkbd, bastardkb/tbkmini.
|
||||
|
||||
Example build command lines:
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make bastardkb/tbkmini:manna-harbour_miryoku:flash # bastardkb/tbkmini
|
||||
make crkbd:manna-harbour_miryoku:flash # crkbd
|
||||
#+END_SRC
|
||||
|
||||
|
||||
|
||||
*** Keyboards
|
||||
|
||||
To use the keymap on a keyboard which does not support the layouts feature,
|
||||
~LAYOUT_miryoku~ is defined as a macro mapping onto the keyboard's own ~LAYOUT~
|
||||
macro, leaving the unused keys as ~KC_NO~.
|
||||
|
||||
|
||||
**** a_dux
|
||||
|
||||
[[#thumb-combos][Thumb combos]] are enabled automatically for this keyboard.
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make a_dux:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** atreus
|
||||
|
||||
Only the main 5x3 alphas and the inner 3 thumb keys are used.
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make atreus:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** bastardkb/charybdis/3x5
|
||||
|
||||
[[#thumb-combos][Thumb combos]] are enabled automatically for this keyboard.
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make bastardkb/charybdis/3x5:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** bastardkb/charybdis/4x6
|
||||
|
||||
On the trackball side the bottom row thumb key is used as the tertiary thumb key. Additionally, [[#thumb-combos][thumb combos]] are enabled automatically for this keyboard.
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make bastardkb/charybdis/4x6:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** bastardkb/scylla
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make bastardkb/scylla:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** draculad
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make draculad:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** ergotravel
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make ergotravel:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** for_science
|
||||
|
||||
The top row is unused.
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make for_science:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** fortitude60
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make fortitude60:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** gergo
|
||||
|
||||
Only the main 5x3 alphas and the outer 3 thumb keys are used.
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make gergo:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** handwired/dactyl_manuform/4x5
|
||||
|
||||
Only the main 5x3 alphas and the main 3 thumb keys are used.
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make handwired/dactyl_manuform/4x5:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** handwired/dactyl_manuform/4x6
|
||||
|
||||
Only the main 5x3 alphas and the main 3 thumb keys are used.
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make handwired/dactyl_manuform/4x6:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** handwired/dactyl_manuform/5x6
|
||||
|
||||
Only the main 5x3 alphas and the main 3 thumb keys are used.
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make handwired/dactyl_manuform/5x6:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** jorne
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make jorne:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** keebio/iris
|
||||
|
||||
Only the main 5x3 alphas and the bottom 3 thumb keys are used.
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make keebio/iris/rev4:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** keyboardio/atreus
|
||||
|
||||
Only the main 5x3 alphas and the inner 3 thumb keys are used.
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make keyboardio/atreus:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** keyboardio/model01
|
||||
|
||||
Only the main 5x3 alphas and the inner 3 thumb keys are used.
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make keyboardio/model01:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** lily58
|
||||
|
||||
Only the main 5x3 alphas and the inner 3 thumb keys are used.
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make lily58:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** moonlander
|
||||
|
||||
The main 5x3 alphas are used as usual. The primary, secondary, and tertiary
|
||||
thumb keys are the closest piano key, middle piano key, and the innermost key of
|
||||
the partial bottom row, respectively. The remaining keys are unused.
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make moonlander:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** pluckey
|
||||
|
||||
Only the main 5x3 alphas and the main 3 thumb keys are used.
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make pluckey:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** redox_w
|
||||
|
||||
Only the main 5x3 alphas and the main 3 thumb keys are used.
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make redox_w:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** salicylic_acid3/naked48
|
||||
|
||||
An alternative mapping with extended thumb position is also provided. To select this mapping, append ~MIRYOKU_MAPPING=EXTENDED_THUMBS~ to the ~make~ command line when building.
|
||||
|
||||
Example build command lines:
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make salicylic_acid3/naked48:manna-harbour_miryoku:flash # default
|
||||
make salicylic_acid3/naked48:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS # extended thumbs
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** satt/vision
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make satt/vision:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** sofle
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make sofle:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** splitkb/kyria
|
||||
|
||||
Only the main 5x3 alphas and the middle 3 lower thumb keys are used.
|
||||
|
||||
[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-kyria.png]]
|
||||
|
||||
An alternative subset mapping is also provided with the thumb keys shifted one
|
||||
position in the direction of thumb extension. To select this mapping, append
|
||||
~MIRYOKU_MAPPING=EXTENDED_THUMBS~ to the ~make~ command line when building.
|
||||
|
||||
[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-kyria-extended_thumbs.png]]
|
||||
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make splitkb/kyria:manna-harbour_miryoku:flash
|
||||
make splitkb/kyria:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS # extended thumb position
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** takashicompany/minizone
|
||||
|
||||
The bottom row middle two keys are mapped to left and right mouse buttons.
|
||||
|
||||
An alternative subset mapping is also provided with the thumb keys shifted one
|
||||
position in the direction of thumb extension. To select this mapping, append
|
||||
~MIRYOKU_MAPPING=EXTENDED_THUMBS~ to the ~make~ command line when building.
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make takashicompany/minizone:manna-harbour_miryoku:flash # make
|
||||
make takashicompany/minizone:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS # make, extended thumb position
|
||||
make takashicompany/minizone:manna-harbour_miryoku:flash POINTING_DEVICE_ENABLE=yes POINTING_DEVICE_DRIVER=pimoroni_trackball OLED_ENABLE=no # make, with pimoroni trackball
|
||||
qmk compile -c -kb takashicompany/minizone -km manna-harbour_miryoku # qmk
|
||||
qmk compile -c -kb takashicompany/minizone -km manna-harbour_miryoku -e MIRYOKU_MAPPING=EXTENDED_THUMBS # qmk, extended thumb position
|
||||
qmk compile -c -kb takashicompany/minizone -km manna-harbour_miryoku -e POINTING_DEVICE_ENABLE=yes -e POINTING_DEVICE_DRIVER=pimoroni_trackball -e OLED_ENABLE=no # qmk, with pimoroni trackball
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** torn
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make torn:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
**** waterfowl
|
||||
|
||||
To build for this keyboard,
|
||||
|
||||
#+BEGIN_SRC sh :tangle no
|
||||
make waterfowl:manna-harbour_miryoku:flash
|
||||
#+END_SRC
|
||||
|
||||
|
||||
** Additional and Experimental Features
|
||||
|
||||
|
||||
*** Bilateral Combinations
|
||||
|
||||
- [[https://github.com/manna-harbour/qmk_firmware/issues/29][Bilateral Combinations]]
|
||||
|
||||
|
||||
*** Caps Word
|
||||
|
||||
[[https://github.com/qmk/qmk_firmware/blob/master/docs/feature_caps_word.md][Caps Word]] is used in place of ~Caps Lock~. Combine with ~Shift~ for ~Caps Lock~.
|
||||
|
||||
|
||||
*** Retro Shift
|
||||
|
||||
- [[https://github.com/manna-harbour/qmk_firmware/issues/33][Retro Shift]]
|
||||
|
||||
|
||||
*** Thumb Combos
|
||||
|
||||
~MIRYOKU_KLUDGE_THUMBCOMBOS=yes~
|
||||
|
||||
Combo the primary and secondary thumb keys to emulate the tertiary thumb key. Can be used on keyboards with missing or hard to reach tertiary thumb keys or for compatibility with same. Requires suitable keycaps to enable the thumb to press both keys simultaneously.
|
||||
|
||||
|
||||
|
||||
*** 𝑥MK
|
||||
|
||||
Use Miryoku QMK with any keyboard with [[https://github.com/manna-harbour/xmk][𝑥MK]].
|
||||
|
||||
For [[#local-builds][local builds]], merge https://github.com/manna-harbour/qmk_firmware/tree/xmk and build for keyboard ~converter/xmk~.
|
||||
|
||||
For [[#workflow-builds][workflow builds]], use the Build Inputs workflow and build with keyboard ~converter/xmk~ and merge ~manna-harbour/qmk_firmware/xmk~, or use the Build Example 𝑥MK workflow.
|
||||
|
||||
Also see [[https://github.com/manna-harbour/miryoku_kmonad][Miryoku KMonad]].
|
||||
|
||||
|
||||
**
|
||||
|
||||
[[https://github.com/manna-harbour][https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/manna-harbour-boa-32.png]]
|
||||
15
users/manna-harbour_miryoku/rules.mk
Normal file
15
users/manna-harbour_miryoku/rules.mk
Normal file
@@ -0,0 +1,15 @@
|
||||
# Copyright 2019 Manna Harbour
|
||||
# https://github.com/manna-harbour/miryoku
|
||||
|
||||
MOUSEKEY_ENABLE = yes
|
||||
EXTRAKEY_ENABLE = yes
|
||||
AUTO_SHIFT_ENABLE = yes
|
||||
TAP_DANCE_ENABLE = yes
|
||||
CAPS_WORD_ENABLE = yes
|
||||
KEY_OVERRIDE_ENABLE = yes
|
||||
|
||||
INTROSPECTION_KEYMAP_C = manna-harbour_miryoku.c # keymaps
|
||||
|
||||
include users/manna-harbour_miryoku/custom_rules.mk
|
||||
|
||||
include users/manna-harbour_miryoku/post_rules.mk
|
||||
Reference in New Issue
Block a user