Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7874f297b3 | ||
|
|
3541f01a72 | ||
|
|
eae21eed74 | ||
|
|
e62ab7e259 | ||
|
|
0270d4d5a1 | ||
|
|
7e9ed2acbf | ||
|
|
66d4734371 | ||
|
|
6cf574396a | ||
|
|
f0a9c10b6d | ||
|
|
78954a0d3e | ||
|
|
02412156d5 | ||
|
|
e70fef03c1 | ||
|
|
7e7eb69edf |
No files matched your search
@@ -114,7 +114,15 @@ Two more deprecated functions exist that provide the LED state as a `uint8_t`:
|
|||||||
|
|
||||||
This function will be called when the state of one of those 5 LEDs changes. It receives the LED state as a struct parameter.
|
This function will be called when the state of one of those 5 LEDs changes. It receives the LED state as a struct parameter.
|
||||||
|
|
||||||
You must return either `true` or `false` from this function, depending on whether you want to override the keyboard-level implementation.
|
By convention, return `true` from `led_update_user()` to get the `led_update_kb()` hook to run its code, and
|
||||||
|
return `false` when you would prefer not to run the code in `led_update_kb()`.
|
||||||
|
|
||||||
|
Some examples include:
|
||||||
|
|
||||||
|
- overriding the LEDs to use them for something else like layer indication
|
||||||
|
- return `false` because you do not want the `_kb()` function to run, as it would override your layer behavior.
|
||||||
|
- play a sound when an LED turns on or off.
|
||||||
|
- return `true` because you want the `_kb` function to run, and this is in addition to the default LED behavior.
|
||||||
|
|
||||||
?> Because the `led_set_*` functions return `void` instead of `bool`, they do not allow for overriding the keyboard LED control, and thus it's recommended to use `led_update_*` instead.
|
?> Because the `led_set_*` functions return `void` instead of `bool`, they do not allow for overriding the keyboard LED control, and thus it's recommended to use `led_update_*` instead.
|
||||||
|
|
||||||
@@ -122,66 +130,41 @@ You must return either `true` or `false` from this function, depending on whethe
|
|||||||
|
|
||||||
```c
|
```c
|
||||||
bool led_update_kb(led_t led_state) {
|
bool led_update_kb(led_t led_state) {
|
||||||
if(led_update_user(led_state)) {
|
bool res = led_update_user(led_state);
|
||||||
if (led_state.num_lock) {
|
if(res) {
|
||||||
writePinLow(B0);
|
// writePin sets the pin high for 1 and low for 0.
|
||||||
} else {
|
// In this example the pins are inverted, setting
|
||||||
writePinHigh(B0);
|
// it low/0 turns it on, and high/1 turns the LED off.
|
||||||
}
|
// This behavior depends on whether the LED is between the pin
|
||||||
if (led_state.caps_lock) {
|
// and VCC or the pin and GND.
|
||||||
writePinLow(B1);
|
writePin(B0, !led_state.num_lock);
|
||||||
} else {
|
writePin(B1, !led_state.caps_lock);
|
||||||
writePinHigh(B1);
|
writePin(B2, !led_state.scroll_lock);
|
||||||
}
|
writePin(B3, !led_state.compose);
|
||||||
if (led_state.scroll_lock) {
|
writePin(B4, !led_state.kana);
|
||||||
writePinLow(B2);
|
|
||||||
} else {
|
|
||||||
writePinHigh(B2);
|
|
||||||
}
|
|
||||||
if (led_state.compose) {
|
|
||||||
writePinLow(B3);
|
|
||||||
} else {
|
|
||||||
writePinHigh(B3);
|
|
||||||
}
|
|
||||||
if (led_state.kana) {
|
|
||||||
writePinLow(B4);
|
|
||||||
} else {
|
|
||||||
writePinHigh(B4);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### Example `led_update_user()` Implementation
|
### Example `led_update_user()` Implementation
|
||||||
|
|
||||||
|
This incomplete example would play a sound if Caps Lock is turned on or off. It returns `true`, because you also want the LEDs to maintain their state.
|
||||||
|
|
||||||
```c
|
```c
|
||||||
|
#ifdef AUDIO_ENABLE
|
||||||
|
float caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND);
|
||||||
|
float caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND);
|
||||||
|
#endif
|
||||||
|
|
||||||
bool led_update_user(led_t led_state) {
|
bool led_update_user(led_t led_state) {
|
||||||
if (led_state.num_lock) {
|
#ifdef AUDIO_ENABLE
|
||||||
writePinLow(B0);
|
static uint8_t caps_state = 0;
|
||||||
} else {
|
if (caps_state != led_state.caps_lock) {
|
||||||
writePinHigh(B0);
|
led_state.caps_lock ? PLAY_SONG(caps_on) : PLAY_SONG(caps_off);
|
||||||
}
|
caps_state = led_state.caps_lock;
|
||||||
if (led_state.caps_lock) {
|
|
||||||
writePinLow(B1);
|
|
||||||
} else {
|
|
||||||
writePinHigh(B1);
|
|
||||||
}
|
|
||||||
if (led_state.scroll_lock) {
|
|
||||||
writePinLow(B2);
|
|
||||||
} else {
|
|
||||||
writePinHigh(B2);
|
|
||||||
}
|
|
||||||
if (led_state.compose) {
|
|
||||||
writePinLow(B3);
|
|
||||||
} else {
|
|
||||||
writePinHigh(B3);
|
|
||||||
}
|
|
||||||
if (led_state.kana) {
|
|
||||||
writePinLow(B4);
|
|
||||||
} else {
|
|
||||||
writePinHigh(B4);
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@@ -411,7 +394,7 @@ void keyboard_post_init_user(void) {
|
|||||||
// Set default layer, if enabled
|
// Set default layer, if enabled
|
||||||
if (user_config.rgb_layer_change) {
|
if (user_config.rgb_layer_change) {
|
||||||
rgblight_enable_noeeprom();
|
rgblight_enable_noeeprom();
|
||||||
rgblight_sethsv_noeeprom_cyan();
|
rgblight_sethsv_noeeprom_cyan();
|
||||||
rgblight_mode_noeeprom(1);
|
rgblight_mode_noeeprom(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -459,18 +442,18 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||||||
}
|
}
|
||||||
return true; // Let QMK send the enter press/release events
|
return true; // Let QMK send the enter press/release events
|
||||||
case RGB_LYR: // This allows me to use underglow as layer indication, or as normal
|
case RGB_LYR: // This allows me to use underglow as layer indication, or as normal
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
user_config.rgb_layer_change ^= 1; // Toggles the status
|
user_config.rgb_layer_change ^= 1; // Toggles the status
|
||||||
eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM
|
eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM
|
||||||
if (user_config.rgb_layer_change) { // if layer state indication is enabled,
|
if (user_config.rgb_layer_change) { // if layer state indication is enabled,
|
||||||
layer_state_set(layer_state); // then immediately update the layer color
|
layer_state_set(layer_state); // then immediately update the layer color
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false; break;
|
return false; break;
|
||||||
case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // For any of the RGB codes (see quantum_keycodes.h, L400 for reference)
|
case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // For any of the RGB codes (see quantum_keycodes.h, L400 for reference)
|
||||||
if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled
|
if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled
|
||||||
if (user_config.rgb_layer_change) { // only if this is enabled
|
if (user_config.rgb_layer_change) { // only if this is enabled
|
||||||
user_config.rgb_layer_change = false; // disable it, and
|
user_config.rgb_layer_change = false; // disable it, and
|
||||||
eeconfig_update_user(user_config.raw); // write the setings to EEPROM
|
eeconfig_update_user(user_config.raw); // write the setings to EEPROM
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -483,7 +466,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||||||
And lastly, you want to add the `eeconfig_init_user` function, so that when the EEPROM is reset, you can specify default values, and even custom actions. To force an EEPROM reset, use the `EEP_RST` keycode or [Bootmagic](feature_bootmagic.md) functionallity. For example, if you want to set rgb layer indication by default, and save the default valued.
|
And lastly, you want to add the `eeconfig_init_user` function, so that when the EEPROM is reset, you can specify default values, and even custom actions. To force an EEPROM reset, use the `EEP_RST` keycode or [Bootmagic](feature_bootmagic.md) functionallity. For example, if you want to set rgb layer indication by default, and save the default valued.
|
||||||
|
|
||||||
```c
|
```c
|
||||||
void eeconfig_init_user(void) { // EEPROM is getting reset!
|
void eeconfig_init_user(void) { // EEPROM is getting reset!
|
||||||
user_config.raw = 0;
|
user_config.raw = 0;
|
||||||
user_config.rgb_layer_change = true; // We want this enabled by default
|
user_config.rgb_layer_change = true; // We want this enabled by default
|
||||||
eeconfig_update_user(user_config.raw); // Write default value to EEPROM now
|
eeconfig_update_user(user_config.raw); // Write default value to EEPROM now
|
||||||
@@ -508,7 +491,7 @@ The `val` is the value of the data that you want to write to EEPROM. And the `e
|
|||||||
|
|
||||||
By default, the tapping term is defined globally, and is not configurable by key. For most users, this is perfectly fine. But in come cases, dual function keys would be greatly improved by different timeouts than `LT` keys, or because some keys may be easier to hold than others. Instead of using custom key codes for each, this allows for per key configurable `TAPPING_TERM`.
|
By default, the tapping term is defined globally, and is not configurable by key. For most users, this is perfectly fine. But in come cases, dual function keys would be greatly improved by different timeouts than `LT` keys, or because some keys may be easier to hold than others. Instead of using custom key codes for each, this allows for per key configurable `TAPPING_TERM`.
|
||||||
|
|
||||||
To enable this functionality, you need to add `#define TAPPING_TERM_PER_KEY` to your `config.h`, first.
|
To enable this functionality, you need to add `#define TAPPING_TERM_PER_KEY` to your `config.h`, first.
|
||||||
|
|
||||||
|
|
||||||
## Example `get_tapping_term` Implementation
|
## Example `get_tapping_term` Implementation
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -90,8 +90,8 @@ void led_set_user(uint8_t usb_led) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
switch (biton32(state)) {
|
switch (get_highest_layer(state)) {
|
||||||
case 1:
|
case 1:
|
||||||
writePinHigh(D1);
|
writePinHigh(D1);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ void led_set_user(uint8_t usb_led) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
|
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
@@ -108,7 +108,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -163,4 +163,3 @@ void matrix_init_user(void) {
|
|||||||
|
|
||||||
void matrix_scan_user(void) {
|
void matrix_scan_user(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,7 +144,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
|
return update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -194,6 +194,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
|
return update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
|
||||||
}
|
}
|
||||||
@@ -174,7 +174,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
|
|||||||
ergodox_right_led_2_off();
|
ergodox_right_led_2_off();
|
||||||
ergodox_right_led_3_off();
|
ergodox_right_led_3_off();
|
||||||
|
|
||||||
uint8_t layer = biton32(state);
|
uint8_t layer = get_highest_layer(state);
|
||||||
switch (layer) {
|
switch (layer) {
|
||||||
case 0:
|
case 0:
|
||||||
#ifdef RGBLIGHT_COLOR_LAYER_0
|
#ifdef RGBLIGHT_COLOR_LAYER_0
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ const uint16_t PROGMEM fn_actions[] = {
|
|||||||
[1] = TT(1)
|
[1] = TT(1)
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
|
|
||||||
uint8_t layer = biton32(state);
|
uint8_t layer = get_highest_layer(state);
|
||||||
|
|
||||||
ergodox_led_all_off();
|
ergodox_led_all_off();
|
||||||
ergodox_board_led_1_off();
|
ergodox_board_led_1_off();
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -267,4 +267,3 @@ void matrix_init_user(void) {
|
|||||||
|
|
||||||
void matrix_scan_user(void) {
|
void matrix_scan_user(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,7 +143,7 @@ layer_state_t layer_state_set_user(layer_state_t state)
|
|||||||
{
|
{
|
||||||
turn_off_leds();
|
turn_off_leds();
|
||||||
|
|
||||||
switch (biton32(state))
|
switch (get_highest_layer(state))
|
||||||
{
|
{
|
||||||
case NORMAL_LAYER:
|
case NORMAL_LAYER:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -50,8 +50,8 @@ KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9,
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Layer based ilumination, just binary */
|
/* Layer based ilumination, just binary */
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
switch (biton32(state)) {
|
switch (get_highest_layer(state)) {
|
||||||
case _FNONE:
|
case _FNONE:
|
||||||
palSetPad(GPIOA, 0); //OFF Color A
|
palSetPad(GPIOA, 0); //OFF Color A
|
||||||
palClearPad(GPIOA, 1); //ON Color B
|
palClearPad(GPIOA, 1); //ON Color B
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,9 +78,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
#ifdef JOTANCK_LEDS
|
#ifdef JOTANCK_LEDS
|
||||||
switch (biton32(state)) {
|
switch (get_highest_layer(state)) {
|
||||||
case _LOWER:
|
case _LOWER:
|
||||||
writePinHigh(JOTANCK_LED1);
|
writePinHigh(JOTANCK_LED1);
|
||||||
writePinLow(JOTANCK_LED2);
|
writePinLow(JOTANCK_LED2);
|
||||||
|
|||||||
@@ -132,9 +132,9 @@ void led_set_user(uint8_t usb_led) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//function for layer indicator LED
|
//function for layer indicator LED
|
||||||
uint32_t layer_state_set_user(uint32_t state)
|
layer_state_t layer_state_set_user(layer_state_t state)
|
||||||
{
|
{
|
||||||
if (biton32(state) == 2) {
|
if (get_highest_layer(state) == 2) {
|
||||||
writePinHigh(C6);
|
writePinHigh(C6);
|
||||||
} else {
|
} else {
|
||||||
writePinLow(C6);
|
writePinLow(C6);
|
||||||
|
|||||||
@@ -986,7 +986,7 @@ void process_doublespace(bool pressed, bool *isactive, bool *otheractive, bool *
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
uint32_t layer_state_set_kb(uint32_t state)
|
layer_state_t layer_state_set_user(layer_state_t state)
|
||||||
{
|
{
|
||||||
// turn on punc layer if both fun & num are on
|
// turn on punc layer if both fun & num are on
|
||||||
if ((state & ((1UL<<_NUM) | (1UL<<_FUN))) == ((1UL<<_NUM) | (1UL<<_FUN))) {
|
if ((state & ((1UL<<_NUM) | (1UL<<_FUN))) == ((1UL<<_NUM) | (1UL<<_FUN))) {
|
||||||
|
|||||||
@@ -99,6 +99,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
}
|
}
|
||||||
@@ -102,7 +102,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
float tone_qwerty[][2] = TONE_QWERTY;
|
float tone_qwerty[][2] = TONE_QWERTY;
|
||||||
float tone_numpad[][2] = TONE_NUMPAD;
|
float tone_numpad[][2] = TONE_NUMPAD;
|
||||||
|
|
||||||
uint32_t default_layer_state_set_kb(uint32_t state) {
|
layer_state_t default_layer_state_set_kb(layer_state_t state) {
|
||||||
if (state == 1UL<<_QWERTY) {
|
if (state == 1UL<<_QWERTY) {
|
||||||
PLAY_SONG(tone_qwerty);
|
PLAY_SONG(tone_qwerty);
|
||||||
} else if (state == 1UL<<_NUMPAD) {
|
} else if (state == 1UL<<_NUMPAD) {
|
||||||
|
|||||||
@@ -75,9 +75,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state)
|
layer_state_t layer_state_set_user(layer_state_t state)
|
||||||
{
|
{
|
||||||
uint8_t layer=biton32(state);
|
uint8_t layer=get_highest_layer(state);
|
||||||
switch(layer)
|
switch(layer)
|
||||||
{
|
{
|
||||||
case DF:
|
case DF:
|
||||||
|
|||||||
@@ -99,6 +99,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,85 @@
|
|||||||
|
/* Copyright 2019 Danny Nguyen <[email protected]>
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
#define _AUDACITY 0
|
||||||
|
#define _LIGHTS 1
|
||||||
|
|
||||||
|
enum custom_keycodes {
|
||||||
|
AUDACITY = SAFE_RANGE,
|
||||||
|
LIGHTS,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define KC_ KC_TRNS
|
||||||
|
#define KC_AUD AUDACITY
|
||||||
|
#define KC_LITE LIGHTS
|
||||||
|
#define KC_ZNRM LCTL(KC_2) // zoom normal
|
||||||
|
#define KC_SAVE LCTL(KC_S) // save
|
||||||
|
#define KC_SYNC LALT(KC_S) // sync-lock tracks
|
||||||
|
#define KC_SLNC LCTL(KC_L) // silence selection
|
||||||
|
#define KC_BL_S BL_STEP
|
||||||
|
#define KC_RGBM RGB_MOD
|
||||||
|
#define KC_RGBT RGB_TOG
|
||||||
|
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/*
|
||||||
|
| Knob 1: Vol Dn/Up | | Knob 2: Page Dn/Up |
|
||||||
|
| Press: Mute | Home | Press: Play/Pause |
|
||||||
|
| Hold: Layer 2 | Up | RGB Mode |
|
||||||
|
| Left | Down | Right |
|
||||||
|
*/
|
||||||
|
[_AUDACITY] = LAYOUT(
|
||||||
|
//,-------+-------+-------.
|
||||||
|
KC_LITE,KC_SAVE,KC_ZNRM,
|
||||||
|
//|-------+-------+-------|
|
||||||
|
KC_SYNC,KC_SLNC,KC_BSPC,
|
||||||
|
//|-------+-------+-------|
|
||||||
|
KC_SPC , KC_F1 , KC_F2
|
||||||
|
//`-------+-------+-------'
|
||||||
|
),
|
||||||
|
/*
|
||||||
|
| RESET | N/A | Media Stop |
|
||||||
|
| Held: Layer 2 | Home | RGB Mode |
|
||||||
|
| Media Previous | End | Media Next |
|
||||||
|
*/
|
||||||
|
[_LIGHTS] = LAYOUT(
|
||||||
|
//,-------+-------+-------.
|
||||||
|
KC_ ,KC_BL_S,KC_STOP,
|
||||||
|
//|-------+-------+-------|
|
||||||
|
KC_RGBM,KC_HOME,KC_RGBT,
|
||||||
|
//|-------+-------+-------|
|
||||||
|
KC_MPRV,KC_END ,KC_MNXT
|
||||||
|
//`-------+-------+-------'
|
||||||
|
),
|
||||||
|
};
|
||||||
|
|
||||||
|
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
if (index == 0) {
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_RGHT);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_LEFT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (index == 1) {
|
||||||
|
if (clockwise) {
|
||||||
|
SEND_STRING(SS_LCTRL("1")); // audacity zoom in
|
||||||
|
} else {
|
||||||
|
SEND_STRING(SS_LCTRL("3")); // audacity zoom out
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2017 Danny Nguyen <danny@keeb.io>
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
/* Use I2C or Serial, not both */
|
||||||
|
|
||||||
|
#define USE_SERIAL
|
||||||
|
// #define USE_I2C
|
||||||
|
|
||||||
|
/* Select hand configuration */
|
||||||
|
|
||||||
|
#define MASTER_LEFT
|
||||||
|
// #define MASTER_RIGHT
|
||||||
|
// #define EE_HANDS
|
||||||
|
|
||||||
|
#define TAPPING_TERM 150
|
||||||
|
|
||||||
|
#define TAPPING_TOGGLE 2
|
||||||
|
#define PERMISSIVE_HOLD
|
||||||
|
|
||||||
|
#undef RGBLED_NUM
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#define RGBLED_NUM 12
|
||||||
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
@@ -0,0 +1,161 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
enum layer_names {
|
||||||
|
_QWERTY,
|
||||||
|
_LOWER,
|
||||||
|
_RAISE,
|
||||||
|
_ADJUST,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum custom_keycodes {
|
||||||
|
LOWER = SAFE_RANGE,
|
||||||
|
RAISE,
|
||||||
|
ADJUST,
|
||||||
|
GUSR,
|
||||||
|
HGRP,
|
||||||
|
CHUS,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define KC_ KC_TRNS
|
||||||
|
|
||||||
|
#define KC_CAPW LGUI(LSFT(KC_3)) // Capture whole screen
|
||||||
|
#define KC_CPYW LGUI(LSFT(LCTL(KC_3))) // Copy whole screen
|
||||||
|
#define KC_CAPP LGUI(LSFT(KC_4)) // Capture portion of screen
|
||||||
|
#define KC_CPYP LGUI(LSFT(LCTL(KC_4))) // Copy portion of screen
|
||||||
|
#define KC_ESCC MT(MOD_LCTL, KC_ESC)
|
||||||
|
#define KC_LOWR LOWER
|
||||||
|
#define KC_RASE RAISE
|
||||||
|
#define KC_RST RESET
|
||||||
|
#define KC_BL_S BL_STEP
|
||||||
|
|
||||||
|
// Left and right shift as mot-tap square braces
|
||||||
|
#define KC_LSBR MT(MOD_LSFT, KC_LBRC)
|
||||||
|
#define KC_RSBR MT(MOD_RSFT, KC_RBRC)
|
||||||
|
|
||||||
|
// mod-tap shift/minus
|
||||||
|
#define KC_SMIN MT(MOD_LSFT, KC_MINS)
|
||||||
|
|
||||||
|
// Tap-toggle layers
|
||||||
|
#define KC_TT_L TT(1)
|
||||||
|
#define KC_TT_R TT(2)
|
||||||
|
|
||||||
|
#define KC_RGBM RGB_MOD
|
||||||
|
#define KC_RGBT RGB_TOG
|
||||||
|
|
||||||
|
#define KC_SLOK LGUI(LCTL(KC_Q)) // mojave lock screen
|
||||||
|
#define KC_GUSR GUSR // "gam info user" macro
|
||||||
|
#define KC_HGRP HGRP // "history | grep" macro
|
||||||
|
#define KC_CHUS CHUS // "thisisunsafe" chrome browser macro
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_QWERTY] = LAYOUT_kc(
|
||||||
|
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
|
||||||
|
GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC,
|
||||||
|
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||||
|
TAB , Q , W , E , R , T , Y , U , I , O , P ,BSLS,
|
||||||
|
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||||
|
ESC , A , S , D , F , G , H , J , K , L ,SCLN,QUOT,
|
||||||
|
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
|
||||||
|
LSBR, Z , X , C , V , B ,TT_L, TT_R, N , M ,COMM,DOT ,SLSH,RSBR,
|
||||||
|
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
|
||||||
|
LCTL,SMIN,LGUI, ENT ,SPC ,LALT
|
||||||
|
// `----+----+----' `----+----+----'
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LOWER] = LAYOUT_kc(
|
||||||
|
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
|
||||||
|
TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,MINS,EQL , ,
|
||||||
|
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||||
|
,SLOK, , UP , ,RGBT, P7 , P8 , P9 , E , F ,LPRN,
|
||||||
|
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||||
|
DEL , ,LEFT,DOWN,RGHT,GUSR, P4 , P5 , P6 , C , D ,RPRN,
|
||||||
|
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
|
||||||
|
BL_S, , , ,HGRP,CHUS, , , P1 , P2 , P3 , A , B , ,
|
||||||
|
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
|
||||||
|
, , , DOT , P0 ,COLN
|
||||||
|
// `----+----+----' `----+----+----'
|
||||||
|
),
|
||||||
|
|
||||||
|
[_RAISE] = LAYOUT_kc(
|
||||||
|
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
|
||||||
|
F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,
|
||||||
|
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||||
|
,RGBT,RGBM, , , , ,AMPR,MUTE, , , ,
|
||||||
|
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||||
|
,CAPW,CPYW,CAPP,CPYP,PGUP, EQL ,HOME,VOLU,MRWD,MFFD, ,
|
||||||
|
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
|
||||||
|
, , , , ,PGDN, , ,PLUS,END ,VOLD,MPLY,MSTP, ,
|
||||||
|
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
|
||||||
|
, , , , ,
|
||||||
|
// `----+----+----' `----+----+----'
|
||||||
|
),
|
||||||
|
|
||||||
|
[_ADJUST] = LAYOUT(
|
||||||
|
//,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------.
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
|
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
|
RESET , DEBUG , RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------'
|
||||||
|
_______, _______, _______, _______, _______, _______
|
||||||
|
// `--------+--------+--------' `--------+--------+--------'
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef AUDIO_ENABLE
|
||||||
|
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
switch (keycode) {
|
||||||
|
case LOWER:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
layer_on(_LOWER);
|
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||||
|
} else {
|
||||||
|
layer_off(_LOWER);
|
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
case RAISE:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
layer_on(_RAISE);
|
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||||
|
} else {
|
||||||
|
layer_off(_RAISE);
|
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
case ADJUST:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
layer_on(_ADJUST);
|
||||||
|
} else {
|
||||||
|
layer_off(_ADJUST);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
case GUSR:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
SEND_STRING("gam info user ");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case HGRP:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
SEND_STRING("history|grep ");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case CHUS:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
SEND_STRING("thisisunsafe");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# HBBisenieks' Iris Layout
|
||||||
|
|
||||||
|
A modified Iris layout with toggle-tap layers and a hexidecimal
|
||||||
|
numpad. Other features include Space-Cadet-like shift keys that can do
|
||||||
|
square or curly braces and a home-row escape key.
|
||||||
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
RGBLIGHT_ENABLE = yes
|
||||||
|
BACKLIGHT_ENABLE = yes
|
||||||
|
|
||||||
|
# Comment out for pro-micro board
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
"width": 17.25,
|
"width": 17.25,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_68_ansi": {
|
||||||
"layout": [
|
"layout": [
|
||||||
{"label":"~", "x":0, "y":0},
|
{"label":"~", "x":0, "y":0},
|
||||||
{"label":"!", "x":1, "y":0},
|
{"label":"!", "x":1, "y":0},
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
#define _FN1 1
|
#define _FN1 1
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_QWERTY] = LAYOUT(
|
[_QWERTY] = LAYOUT_68_ansi(
|
||||||
//┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────────────┐ ┌────────┬────────┐
|
//┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────────────┐ ┌────────┬────────┐
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_PGUP,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_PGUP,
|
||||||
//├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────────────┤ ├────────┼────────┤
|
//├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────────────┤ ├────────┼────────┤
|
||||||
@@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
//└──────────┴──────────┴──────────┴───────────────────────────────────────────────────────┴──────────┴──────────┴──────────┘ └────────┴────────┴────────┘
|
//└──────────┴──────────┴──────────┴───────────────────────────────────────────────────────┴──────────┴──────────┴──────────┘ └────────┴────────┴────────┘
|
||||||
),
|
),
|
||||||
|
|
||||||
[_FN1] = LAYOUT(
|
[_FN1] = LAYOUT_68_ansi(
|
||||||
//┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────────────┐ ┌────────┬────────┐
|
//┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────────────┐ ┌────────┬────────┐
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_HOME,
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_HOME,
|
||||||
//├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────────────┤ ├────────┼────────┤
|
//├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────────────┤ ├────────┼────────┤
|
||||||
|
|||||||
@@ -28,3 +28,5 @@ MIDI_ENABLE = no # MIDI controls
|
|||||||
UNICODE_ENABLE = no # Unicode
|
UNICODE_ENABLE = no # Unicode
|
||||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
AUDIO_ENABLE = no # Audio output on port C6
|
AUDIO_ENABLE = no # Audio output on port C6
|
||||||
|
|
||||||
|
LAYOUTS = 68_ansi
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT_68_ansi( \
|
||||||
A1, A2, A3, A4, A5, A6, A7, A8, E1, E2, E3, E4, E5, E6, E7, E8, \
|
A1, A2, A3, A4, A5, A6, A7, A8, E1, E2, E3, E4, E5, E6, E7, E8, \
|
||||||
B1, B2, B3, B4, B5, B6, B7, B8, F1, F2, F3, F4, F5, F6, F7, F8, \
|
B1, B2, B3, B4, B5, B6, B7, B8, F1, F2, F3, F4, F5, F6, F7, F8, \
|
||||||
C1, C2, C3, C4, C5, C6, C7, C8, G1, G2, G3, G4, G5, \
|
C1, C2, C3, C4, C5, C6, C7, C8, G1, G2, G3, G4, G5, \
|
||||||
@@ -72,3 +72,5 @@
|
|||||||
KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67, KC_##K68, \
|
KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67, KC_##K68, \
|
||||||
KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74 \
|
KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74 \
|
||||||
)
|
)
|
||||||
|
|
||||||
|
#define LAYOUT LAYOUT_68_ansi
|
||||||
@@ -18,4 +18,4 @@ Example of flashing this keyboard:
|
|||||||
|
|
||||||
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).
|
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).
|
||||||
|
|
||||||
A build guide for the Kyria can be found at [docs.splitkb.com](https://docs.splitkb.com/docs/kyria-build-log/).
|
A build guide for the Kyria can be found at [docs.splitkb.com](https://docs.splitkb.com/hc/en-us/articles/360010552059-Kyria-Build-Guide-Introduction).
|
||||||
@@ -116,9 +116,9 @@ if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
switch (biton32(state)) {
|
switch (get_highest_layer(state)) {
|
||||||
case _LOWER:
|
case _LOWER:
|
||||||
rgblight_sethsv_noeeprom(HSV_GREEN);
|
rgblight_sethsv_noeeprom(HSV_GREEN);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -115,6 +115,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
}
|
}
|
||||||
@@ -22,3 +22,33 @@ RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
|||||||
_______, KC_LALT, _______, _______, _______, KC_RALT, _______ \
|
_______, KC_LALT, _______, _______, _______, KC_RALT, _______ \
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef USE_LEDS_FOR_LAYERS
|
||||||
|
// example of how to use LEDs as layer indicators
|
||||||
|
static uint8_t top = 1;
|
||||||
|
static uint8_t middle = 0;
|
||||||
|
static uint8_t bottom = 0;
|
||||||
|
|
||||||
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
|
top = middle = bottom = 0;
|
||||||
|
switch (get_highest_layer(state)) {
|
||||||
|
case _BASE:
|
||||||
|
top = 1;
|
||||||
|
break;
|
||||||
|
case _FUNC:
|
||||||
|
middle = 1;
|
||||||
|
break;
|
||||||
|
default: // for any other layers, or the default layer
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
// override kb level function
|
||||||
|
bool led_update_user(led_t usb_led) {
|
||||||
|
writePin(B1, !top);
|
||||||
|
writePin(B2, !middle);
|
||||||
|
writePin(B3, !bottom);
|
||||||
|
return false; // we are using LEDs for something else override kb
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
#include "wonderland.h"
|
#include "wonderland.h"
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
void matrix_init_kb(void) {
|
void matrix_init_kb(void) {
|
||||||
// put your keyboard start-up code here
|
// put your keyboard start-up code here
|
||||||
// runs once when the firmware starts up
|
// runs once when the firmware starts up
|
||||||
@@ -7,12 +8,14 @@ void matrix_init_kb(void) {
|
|||||||
led_init_ports();
|
led_init_ports();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
void matrix_scan_kb(void) {
|
void matrix_scan_kb(void) {
|
||||||
// put your looping keyboard code here
|
// put your looping keyboard code here
|
||||||
// runs every cycle (a lot)
|
// runs every cycle (a lot)
|
||||||
matrix_scan_user();
|
matrix_scan_user();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
void led_init_ports(void) {
|
void led_init_ports(void) {
|
||||||
// * Set our LED pins as output
|
// * Set our LED pins as output
|
||||||
setPinOutput(B1);
|
setPinOutput(B1);
|
||||||
@@ -20,23 +23,12 @@ void led_init_ports(void) {
|
|||||||
setPinOutput(B3);
|
setPinOutput(B3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void led_set_kb(uint8_t usb_led) {
|
bool led_update_kb(led_t led_state) {
|
||||||
if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) {
|
bool runDefault = led_update_user(led_state);
|
||||||
writePinLow(B1);
|
if (runDefault) {
|
||||||
} else {
|
writePin(B1, !led_state.num_lock);
|
||||||
writePinHigh(B1);
|
writePin(B2, !led_state.caps_lock);
|
||||||
|
writePin(B3, !led_state.scroll_lock);
|
||||||
}
|
}
|
||||||
|
return runDefault;
|
||||||
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
|
|
||||||
writePinLow(B2);
|
|
||||||
} else {
|
|
||||||
writePinHigh(B2);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
|
|
||||||
writePinLow(B3);
|
|
||||||
} else {
|
|
||||||
writePinHigh(B3);
|
|
||||||
}
|
|
||||||
led_set_user(usb_led);
|
|
||||||
}
|
}
|
||||||
@@ -110,7 +110,7 @@ void rgb_matrix_indicators_user(void) {
|
|||||||
}
|
}
|
||||||
#else /* no RGB matrix support */
|
#else /* no RGB matrix support */
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
if (state & (1<<NUM)) {
|
if (state & (1<<NUM)) {
|
||||||
set_numpad_colours(1, &set_led_to);
|
set_numpad_colours(1, &set_led_to);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ enum layers {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#define _x_ KC_NO
|
#define _x_ KC_NO
|
||||||
|
|
||||||
#define LAYOUT_iso( \
|
#define LAYOUT_65_iso_blocker( \
|
||||||
K0D, K0C, K0B, K0A, K09, K08, K07, K06, K05, K04, K03, K02, K01, K00, K0E, \
|
K0D, K0C, K0B, K0A, K09, K08, K07, K06, K05, K04, K03, K02, K01, K00, K0E, \
|
||||||
K1D, K1C, K1B, K1A, K19, K18, K17, K16, K15, K14, K13, K12, K11, K1E, \
|
K1D, K1C, K1B, K1A, K19, K18, K17, K16, K15, K14, K13, K12, K11, K1E, \
|
||||||
K2D, K2C, K2B, K2A, K29, K28, K27, K26, K25, K24, K23, K22, K10, K21, K2E, \
|
K2D, K2C, K2B, K2A, K29, K28, K27, K26, K25, K24, K23, K22, K10, K21, K2E, \
|
||||||
@@ -56,3 +56,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define LAYOUT LAYOUT_65_ansi_blocker // added to not break existing checked in keymaps
|
#define LAYOUT LAYOUT_65_ansi_blocker // added to not break existing checked in keymaps
|
||||||
|
#define LAYOUT_iso LAYOUT_65_iso_blocker
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
"height": 6,
|
"height": 6,
|
||||||
"width": 15,
|
"width": 15,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT_iso": {
|
"LAYOUT_65_iso_blocker": {
|
||||||
"key_count": 68,
|
"key_count": 68,
|
||||||
"layout": [{"label":"K0D", "x":0, "y":0}, {"label":"K0C", "x":1, "y":0}, {"label":"K0B", "x":2, "y":0}, {"label":"K0A", "x":3, "y":0}, {"label":"K09", "x":4, "y":0}, {"label":"K08", "x":5, "y":0}, {"label":"K07", "x":6, "y":0}, {"label":"K06", "x":7, "y":0}, {"label":"K05", "x":8, "y":0}, {"label":"K04", "x":9, "y":0}, {"label":"K03", "x":10, "y":0}, {"label":"K02", "x":11, "y":0}, {"label":"K01", "x":12, "y":0}, {"label":"K00", "x":13, "y":0, "w":2}, {"label":"K0E", "x":15, "y":0}, {"label":"K1D", "x":0, "y":1, "w":1.5}, {"label":"K1C", "x":1.5, "y":1}, {"label":"K1B", "x":2.5, "y":1}, {"label":"K1A", "x":3.5, "y":1}, {"label":"K19", "x":4.5, "y":1}, {"label":"K18", "x":5.5, "y":1}, {"label":"K17", "x":6.5, "y":1}, {"label":"K16", "x":7.5, "y":1}, {"label":"K15", "x":8.5, "y":1}, {"label":"K14", "x":9.5, "y":1}, {"label":"K13", "x":10.5, "y":1}, {"label":"K12", "x":11.5, "y":1}, {"label":"K11", "x":12.5, "y":1}, {"label":"K1E", "x":15, "y":1}, {"label":"K2D", "x":0, "y":2, "w":1.75}, {"label":"K2C", "x":1.75, "y":2}, {"label":"K2B", "x":2.75, "y":2}, {"label":"K2A", "x":3.75, "y":2}, {"label":"K29", "x":4.75, "y":2}, {"label":"K28", "x":5.75, "y":2}, {"label":"K27", "x":6.75, "y":2}, {"label":"K26", "x":7.75, "y":2}, {"label":"K25", "x":8.75, "y":2}, {"label":"K24", "x":9.75, "y":2}, {"label":"K23", "x":10.75, "y":2}, {"label":"K22", "x":11.75, "y":2}, {"label":"K10", "x":12.75, "y":2}, {"label":"K21", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"K2E", "x":15, "y":2}, {"label":"K3D", "x":0, "y":3, "w":1.25}, {"label":"K4A", "x":1.25, "y":3}, {"label":"K3C", "x":2.25, "y":3}, {"label":"K3B", "x":3.25, "y":3}, {"label":"K3A", "x":4.25, "y":3}, {"label":"K39", "x":5.25, "y":3}, {"label":"K38", "x":6.25, "y":3}, {"label":"K37", "x":7.25, "y":3}, {"label":"K36", "x":8.25, "y":3}, {"label":"K35", "x":9.25, "y":3}, {"label":"K34", "x":10.25, "y":3}, {"label":"K33", "x":11.25, "y":3}, {"label":"K32", "x":12.25, "y":3, "w":1.75}, {"label":"K30", "x":14, "y":3}, {"label":"K3E", "x":15, "y":3}, {"label":"K4D", "x":0, "y":4, "w":1.25}, {"label":"K4C", "x":1.25, "y":4, "w":1.25}, {"label":"K4B", "x":2.5, "y":4, "w":1.25}, {"label":"K48", "x":3.75, "y":4, "w":6.25}, {"label":"K44", "x":10, "y":4, "w":1.25}, {"label":"K43", "x":11.25, "y":4, "w":1.25}, {"label":"K42", "x":13, "y":4}, {"label":"K40", "x":14, "y":4}, {"label":"K4E", "x":15, "y":4}]
|
"layout": [{"label":"K0D", "x":0, "y":0}, {"label":"K0C", "x":1, "y":0}, {"label":"K0B", "x":2, "y":0}, {"label":"K0A", "x":3, "y":0}, {"label":"K09", "x":4, "y":0}, {"label":"K08", "x":5, "y":0}, {"label":"K07", "x":6, "y":0}, {"label":"K06", "x":7, "y":0}, {"label":"K05", "x":8, "y":0}, {"label":"K04", "x":9, "y":0}, {"label":"K03", "x":10, "y":0}, {"label":"K02", "x":11, "y":0}, {"label":"K01", "x":12, "y":0}, {"label":"K00", "x":13, "y":0, "w":2}, {"label":"K0E", "x":15, "y":0}, {"label":"K1D", "x":0, "y":1, "w":1.5}, {"label":"K1C", "x":1.5, "y":1}, {"label":"K1B", "x":2.5, "y":1}, {"label":"K1A", "x":3.5, "y":1}, {"label":"K19", "x":4.5, "y":1}, {"label":"K18", "x":5.5, "y":1}, {"label":"K17", "x":6.5, "y":1}, {"label":"K16", "x":7.5, "y":1}, {"label":"K15", "x":8.5, "y":1}, {"label":"K14", "x":9.5, "y":1}, {"label":"K13", "x":10.5, "y":1}, {"label":"K12", "x":11.5, "y":1}, {"label":"K11", "x":12.5, "y":1}, {"label":"K1E", "x":15, "y":1}, {"label":"K2D", "x":0, "y":2, "w":1.75}, {"label":"K2C", "x":1.75, "y":2}, {"label":"K2B", "x":2.75, "y":2}, {"label":"K2A", "x":3.75, "y":2}, {"label":"K29", "x":4.75, "y":2}, {"label":"K28", "x":5.75, "y":2}, {"label":"K27", "x":6.75, "y":2}, {"label":"K26", "x":7.75, "y":2}, {"label":"K25", "x":8.75, "y":2}, {"label":"K24", "x":9.75, "y":2}, {"label":"K23", "x":10.75, "y":2}, {"label":"K22", "x":11.75, "y":2}, {"label":"K10", "x":12.75, "y":2}, {"label":"K21", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"K2E", "x":15, "y":2}, {"label":"K3D", "x":0, "y":3, "w":1.25}, {"label":"K4A", "x":1.25, "y":3}, {"label":"K3C", "x":2.25, "y":3}, {"label":"K3B", "x":3.25, "y":3}, {"label":"K3A", "x":4.25, "y":3}, {"label":"K39", "x":5.25, "y":3}, {"label":"K38", "x":6.25, "y":3}, {"label":"K37", "x":7.25, "y":3}, {"label":"K36", "x":8.25, "y":3}, {"label":"K35", "x":9.25, "y":3}, {"label":"K34", "x":10.25, "y":3}, {"label":"K33", "x":11.25, "y":3}, {"label":"K32", "x":12.25, "y":3, "w":1.75}, {"label":"K30", "x":14, "y":3}, {"label":"K3E", "x":15, "y":3}, {"label":"K4D", "x":0, "y":4, "w":1.25}, {"label":"K4C", "x":1.25, "y":4, "w":1.25}, {"label":"K4B", "x":2.5, "y":4, "w":1.25}, {"label":"K48", "x":3.75, "y":4, "w":6.25}, {"label":"K44", "x":10, "y":4, "w":1.25}, {"label":"K43", "x":11.25, "y":4, "w":1.25}, {"label":"K42", "x":13, "y":4}, {"label":"K40", "x":14, "y":4}, {"label":"K4E", "x":15, "y":4}]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -23,14 +23,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
[_BL] = LAYOUT(
|
[_BL] = LAYOUT_65_ansi_blocker(
|
||||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR, \
|
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR, \
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, \
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, \
|
||||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_LEFT, KC_DOWN, KC_RIGHT),
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||||
|
|
||||||
[_FL] = LAYOUT(
|
[_FL] = LAYOUT_65_ansi_blocker(
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PAUS, \
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PAUS, \
|
||||||
KC_TRNS, KC_NO, KC_UP, KC_NO, RGB_TOG,RGB_VAI,RGB_HUI,RGB_SAI,KC_INS, RESET, KC_PSCR, KC_SLCK, KC_PAUS, KC_BSLS, KC_SLCK, \
|
KC_TRNS, KC_NO, KC_UP, KC_NO, RGB_TOG,RGB_VAI,RGB_HUI,RGB_SAI,KC_INS, RESET, KC_PSCR, KC_SLCK, KC_PAUS, KC_BSLS, KC_SLCK, \
|
||||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,RGB_MOD,RGB_VAD,RGB_HUD,RGB_SAD,KC_NO, KC_NO, KC_F14, KC_F15, KC_INS, KC_HOME, \
|
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,RGB_MOD,RGB_VAD,RGB_HUD,RGB_SAD,KC_NO, KC_NO, KC_F14, KC_F15, KC_INS, KC_HOME, \
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[0] = LAYOUT_iso(
|
[0] = LAYOUT_65_iso_blocker(
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
|
||||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_END,
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_END,
|
||||||
|
|||||||
@@ -27,4 +27,4 @@ OPT_DEFS = -DDEBUG_LEVEL=0
|
|||||||
CUSTOM_MATRIX = yes
|
CUSTOM_MATRIX = yes
|
||||||
SRC = matrix.c
|
SRC = matrix.c
|
||||||
|
|
||||||
LAYOUTS = 65_ansi_blocker
|
LAYOUTS = 65_ansi_blocker 65_iso_blocker
|
||||||
@@ -234,7 +234,7 @@ void eeconfig_init_user(void) { // EEPROM is getting reset!
|
|||||||
eeconfig_update_user(led_config.raw);
|
eeconfig_update_user(led_config.raw);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,3 +3,5 @@
|
|||||||
#ifdef AUDIO_ENABLE
|
#ifdef AUDIO_ENABLE
|
||||||
#define STARTUP_SONG SONG(DVORAK_SOUND)
|
#define STARTUP_SONG SONG(DVORAK_SOUND)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 5
|
||||||
@@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
|
|
||||||
[_ADJUST] = LAYOUT_planck_grid(
|
[_ADJUST] = LAYOUT_planck_grid(
|
||||||
_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, KC_RIGHT, _______,
|
_______, RESET, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
|
||||||
_______, _______, _______, _______, _______, _______, _______, KC_LEFT, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, KC_LEFT, _______, _______, _______, _______,
|
||||||
_______, KC_PSCR, _______, KC_DOWN, KC_UP, _______, _______, _______, _______, _______, _______, _______,
|
_______, KC_PSCR, _______, KC_DOWN, KC_UP, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
@@ -46,6 +46,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//void matrix_init_user(void) {
|
||||||
|
// eeconfig_init();
|
||||||
|
//}
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
uint32_t layer_state_set_user(uint32_t state) {
|
||||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
}
|
}
|
||||||
@@ -83,9 +83,9 @@ void led_set_user(uint8_t usb_led) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//function for layer indicator LED
|
//function for layer indicator LED
|
||||||
uint32_t layer_state_set_user(uint32_t state)
|
layer_state_t layer_state_set_user(layer_state_t state)
|
||||||
{
|
{
|
||||||
if (biton32(state) == 1) {
|
if (get_highest_layer(state) == 1) {
|
||||||
writePinHigh(B3);
|
writePinHigh(B3);
|
||||||
} else {
|
} else {
|
||||||
writePinLow(B3);
|
writePinLow(B3);
|
||||||
|
|||||||
@@ -61,7 +61,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,6 +56,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
}
|
}
|
||||||
@@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -81,8 +81,8 @@ void keyboard_post_init_user(void) {
|
|||||||
rgblight_sethsv_noeeprom_white();
|
rgblight_sethsv_noeeprom_white();
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
switch (biton32(state)) {
|
switch (get_highest_layer(state)) {
|
||||||
case _LAYER1:
|
case _LAYER1:
|
||||||
rgblight_sethsv_noeeprom_cyan();
|
rgblight_sethsv_noeeprom_cyan();
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -59,10 +59,10 @@ void keyboard_post_init_user(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
// This code switches underglow color by active layer, if the user has enabled the feature
|
// This code switches underglow color by active layer, if the user has enabled the feature
|
||||||
if(user_config.layer_rgb) {
|
if(user_config.layer_rgb) {
|
||||||
switch (biton32(state)) {
|
switch (get_highest_layer(state)) {
|
||||||
case _BL:
|
case _BL:
|
||||||
rgblight_sethsv_noeeprom(0,10,255);
|
rgblight_sethsv_noeeprom(0,10,255);
|
||||||
rgblight_mode_noeeprom(1);
|
rgblight_mode_noeeprom(1);
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/*
|
||||||
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||||
|
* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│
|
||||||
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
|
||||||
|
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │
|
||||||
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│
|
||||||
|
* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │
|
||||||
|
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
|
||||||
|
* │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Sft│
|
||||||
|
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
|
||||||
|
* │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│
|
||||||
|
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||||
|
*/
|
||||||
|
[0] = LAYOUT_60_iso_split_bs_rshift(
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
|
||||||
|
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "60% ISO layout with split Backspace and Right Shift",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"width": 15,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_60_iso_split_bs_rshift": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0},
|
||||||
|
{"x":14, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1, "w":1.5},
|
||||||
|
{"x":1.5, "y":1},
|
||||||
|
{"x":2.5, "y":1},
|
||||||
|
{"x":3.5, "y":1},
|
||||||
|
{"x":4.5, "y":1},
|
||||||
|
{"x":5.5, "y":1},
|
||||||
|
{"x":6.5, "y":1},
|
||||||
|
{"x":7.5, "y":1},
|
||||||
|
{"x":8.5, "y":1},
|
||||||
|
{"x":9.5, "y":1},
|
||||||
|
{"x":10.5, "y":1},
|
||||||
|
{"x":11.5, "y":1},
|
||||||
|
{"x":12.5, "y":1},
|
||||||
|
|
||||||
|
{"x":0, "y":2, "w":1.75},
|
||||||
|
{"x":1.75, "y":2},
|
||||||
|
{"x":2.75, "y":2},
|
||||||
|
{"x":3.75, "y":2},
|
||||||
|
{"x":4.75, "y":2},
|
||||||
|
{"x":5.75, "y":2},
|
||||||
|
{"x":6.75, "y":2},
|
||||||
|
{"x":7.75, "y":2},
|
||||||
|
{"x":8.75, "y":2},
|
||||||
|
{"x":9.75, "y":2},
|
||||||
|
{"x":10.75, "y":2},
|
||||||
|
{"x":11.75, "y":2},
|
||||||
|
{"x":12.75, "y":2},
|
||||||
|
{"x":13.75, "y":1, "w":1.25, "h":2},
|
||||||
|
|
||||||
|
{"x":0, "y":3, "w":1.25},
|
||||||
|
{"x":1.25, "y":3},
|
||||||
|
{"x":2.25, "y":3},
|
||||||
|
{"x":3.25, "y":3},
|
||||||
|
{"x":4.25, "y":3},
|
||||||
|
{"x":5.25, "y":3},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":7.25, "y":3},
|
||||||
|
{"x":8.25, "y":3},
|
||||||
|
{"x":9.25, "y":3},
|
||||||
|
{"x":10.25, "y":3},
|
||||||
|
{"x":11.25, "y":3},
|
||||||
|
{"x":12.25, "y":3, "w":1.75},
|
||||||
|
{"x":14, "y":3},
|
||||||
|
|
||||||
|
{"x":0, "y":4, "w":1.25},
|
||||||
|
{"x":1.25, "y":4, "w":1.25},
|
||||||
|
{"x":2.5, "y":4, "w":1.25},
|
||||||
|
{"x":3.75, "y":4, "w":6.25},
|
||||||
|
{"x":10, "y":4, "w":1.25},
|
||||||
|
{"x":11.25, "y":4, "w":1.25},
|
||||||
|
{"x":12.5, "y":4, "w":1.25},
|
||||||
|
{"x":13.75, "y":4, "w":1.25}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
[{a:7},"","","","","","","","","","","","","","",""],
|
||||||
|
[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},""],
|
||||||
|
[{w:1.75},"","","","","","","","","","","","",""],
|
||||||
|
[{w:1.25},"","","","","","","","","","","","",{w:1.75},"",""],
|
||||||
|
[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},""]
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# 60_iso_split_bs_rshift
|
||||||
|
|
||||||
|
LAYOUT_60_iso_split_bs_rshift
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/*
|
||||||
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
|
||||||
|
* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Hom│
|
||||||
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
|
||||||
|
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │PgU│
|
||||||
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent├───┤
|
||||||
|
* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │PgD│
|
||||||
|
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤
|
||||||
|
* │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│
|
||||||
|
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
|
||||||
|
* │Ctrl│GUI │Alt │ │ Alt│Ctrl│ │ ← │ ↓ │ → │
|
||||||
|
* └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
|
||||||
|
*/
|
||||||
|
[0] = LAYOUT_65_iso_blocker(
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN,
|
||||||
|
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1,85 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "65% ISO layout with blocker",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"width": 16,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_65_iso_blocker": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0, "w":2},
|
||||||
|
{"x":15, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1, "w":1.5},
|
||||||
|
{"x":1.5, "y":1},
|
||||||
|
{"x":2.5, "y":1},
|
||||||
|
{"x":3.5, "y":1},
|
||||||
|
{"x":4.5, "y":1},
|
||||||
|
{"x":5.5, "y":1},
|
||||||
|
{"x":6.5, "y":1},
|
||||||
|
{"x":7.5, "y":1},
|
||||||
|
{"x":8.5, "y":1},
|
||||||
|
{"x":9.5, "y":1},
|
||||||
|
{"x":10.5, "y":1},
|
||||||
|
{"x":11.5, "y":1},
|
||||||
|
{"x":12.5, "y":1},
|
||||||
|
{"x":15, "y":1},
|
||||||
|
|
||||||
|
{"x":0, "y":2, "w":1.75},
|
||||||
|
{"x":1.75, "y":2},
|
||||||
|
{"x":2.75, "y":2},
|
||||||
|
{"x":3.75, "y":2},
|
||||||
|
{"x":4.75, "y":2},
|
||||||
|
{"x":5.75, "y":2},
|
||||||
|
{"x":6.75, "y":2},
|
||||||
|
{"x":7.75, "y":2},
|
||||||
|
{"x":8.75, "y":2},
|
||||||
|
{"x":9.75, "y":2},
|
||||||
|
{"x":10.75, "y":2},
|
||||||
|
{"x":11.75, "y":2},
|
||||||
|
{"x":12.75, "y":2},
|
||||||
|
{"x":13.75, "y":1, "w":1.25, "h":2},
|
||||||
|
{"x":15, "y":2},
|
||||||
|
|
||||||
|
{"x":0, "y":3, "w":1.25},
|
||||||
|
{"x":1.25, "y":3},
|
||||||
|
{"x":2.25, "y":3},
|
||||||
|
{"x":3.25, "y":3},
|
||||||
|
{"x":4.25, "y":3},
|
||||||
|
{"x":5.25, "y":3},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":7.25, "y":3},
|
||||||
|
{"x":8.25, "y":3},
|
||||||
|
{"x":9.25, "y":3},
|
||||||
|
{"x":10.25, "y":3},
|
||||||
|
{"x":11.25, "y":3},
|
||||||
|
{"x":12.25, "y":3, "w":1.75},
|
||||||
|
{"x":14, "y":3},
|
||||||
|
{"x":15, "y":3},
|
||||||
|
|
||||||
|
{"x":0, "y":4, "w":1.25},
|
||||||
|
{"x":1.25, "y":4, "w":1.25},
|
||||||
|
{"x":2.5, "y":4, "w":1.25},
|
||||||
|
{"x":3.75, "y":4, "w":6.25},
|
||||||
|
{"x":10, "y":4, "w":1.25},
|
||||||
|
{"x":11.25, "y":4, "w":1.25},
|
||||||
|
{"x":13, "y":4},
|
||||||
|
{"x":14, "y":4},
|
||||||
|
{"x":15, "y":4}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
[{a:7},"","","","","","","","","","","","","",{w:2},"",""],
|
||||||
|
[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"",""],
|
||||||
|
[{w:1.75},"","","","","","","","","","","","","",{x:1.25},""],
|
||||||
|
[{w:1.25},"","","","","","","","","","","","",{w:1.75},"","",""],
|
||||||
|
[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{x:0.5},"","",""]
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# 65_iso_blocker
|
||||||
|
|
||||||
|
LAYOUT_65_iso_blocker
|
||||||
|
|
||||||
|
This is the 65% ISO layout made popular by boards such as the Percent Canoe.
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "68% ANSI layout",
|
"keyboard_name": "68-key ANSI layout",
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"width": 17.25,
|
"width": 17.25,
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/*
|
||||||
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┐
|
||||||
|
* │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp││Ins│PgU│
|
||||||
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┤
|
||||||
|
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ ││Del│PgD│
|
||||||
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│└───┴───┘
|
||||||
|
* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │
|
||||||
|
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤┌───┐
|
||||||
|
* │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift ││ ↑ │
|
||||||
|
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬─┬──┴┼───┼───┐
|
||||||
|
* │Ctrl│GUI │Alt │ │ Alt│ GUI│Ctrl│ │ ← │ ↓ │ → │
|
||||||
|
* └────┴────┴────┴────────────────────────┴────┴────┴────┘ └───┴───┴───┘
|
||||||
|
*/
|
||||||
|
[0] = LAYOUT_68_iso(
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_PGUP,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_PGDN,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
|
||||||
|
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "68-key ISO layout",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"width": 17.25,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_68_iso": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0, "w":2},
|
||||||
|
{"x":15.25, "y":0},
|
||||||
|
{"x":16.25, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1, "w":1.5},
|
||||||
|
{"x":1.5, "y":1},
|
||||||
|
{"x":2.5, "y":1},
|
||||||
|
{"x":3.5, "y":1},
|
||||||
|
{"x":4.5, "y":1},
|
||||||
|
{"x":5.5, "y":1},
|
||||||
|
{"x":6.5, "y":1},
|
||||||
|
{"x":7.5, "y":1},
|
||||||
|
{"x":8.5, "y":1},
|
||||||
|
{"x":9.5, "y":1},
|
||||||
|
{"x":10.5, "y":1},
|
||||||
|
{"x":11.5, "y":1},
|
||||||
|
{"x":12.5, "y":1},
|
||||||
|
{"x":15.25, "y":1},
|
||||||
|
{"x":16.25, "y":1},
|
||||||
|
|
||||||
|
{"x":0, "y":2, "w":1.75},
|
||||||
|
{"x":1.75, "y":2},
|
||||||
|
{"x":2.75, "y":2},
|
||||||
|
{"x":3.75, "y":2},
|
||||||
|
{"x":4.75, "y":2},
|
||||||
|
{"x":5.75, "y":2},
|
||||||
|
{"x":6.75, "y":2},
|
||||||
|
{"x":7.75, "y":2},
|
||||||
|
{"x":8.75, "y":2},
|
||||||
|
{"x":9.75, "y":2},
|
||||||
|
{"x":10.75, "y":2},
|
||||||
|
{"x":11.75, "y":2},
|
||||||
|
{"x":12.75, "y":2},
|
||||||
|
{"x":13.75, "y":1, "w":1.25, "h":2},
|
||||||
|
|
||||||
|
{"x":0, "y":3, "w":1.25},
|
||||||
|
{"x":1.25, "y":3},
|
||||||
|
{"x":2.25, "y":3},
|
||||||
|
{"x":3.25, "y":3},
|
||||||
|
{"x":4.25, "y":3},
|
||||||
|
{"x":5.25, "y":3},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":7.25, "y":3},
|
||||||
|
{"x":8.25, "y":3},
|
||||||
|
{"x":9.25, "y":3},
|
||||||
|
{"x":10.25, "y":3},
|
||||||
|
{"x":11.25, "y":3},
|
||||||
|
{"x":12.25, "y":3, "w":2.75},
|
||||||
|
{"x":15.25, "y":3},
|
||||||
|
|
||||||
|
{"x":0, "y":4, "w":1.25},
|
||||||
|
{"x":1.25, "y":4, "w":1.25},
|
||||||
|
{"x":2.5, "y":4, "w":1.25},
|
||||||
|
{"x":3.75, "y":4, "w":6.25},
|
||||||
|
{"x":10, "y":4, "w":1.25},
|
||||||
|
{"x":11.25, "y":4, "w":1.25},
|
||||||
|
{"x":12.5, "y":4, "w":1.25},
|
||||||
|
{"x":14.25, "y":4},
|
||||||
|
{"x":15.25, "y":4},
|
||||||
|
{"x":16.25, "y":4}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
[{a:7},"","","","","","","","","","","","","",{w:2},"",{x:0.25},"",""],
|
||||||
|
[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"",{x:0.25},"",""],
|
||||||
|
[{w:1.75},"","","","","","","","","","","","",""],
|
||||||
|
[{w:1.25},"","","","","","","","","","","","",{w:2.75},"",{x:0.25},""],
|
||||||
|
[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{x:0.5},"","",""]
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# 68_iso
|
||||||
|
|
||||||
|
LAYOUT_68_iso
|
||||||
|
|
||||||
|
This is the 68 (actually 69) key ISO layout made popular by boards such as the Magicforce 69-key and Varmilo VA69M.
|
||||||
+8
-6
@@ -595,23 +595,25 @@ class MILC(object):
|
|||||||
|
|
||||||
return entrypoint_func
|
return entrypoint_func
|
||||||
|
|
||||||
def add_subcommand(self, handler, description, name=None, **kwargs):
|
def add_subcommand(self, handler, description, name=None, hidden=False, **kwargs):
|
||||||
"""Register a subcommand.
|
"""Register a subcommand.
|
||||||
|
|
||||||
If name is not provided we use `handler.__name__`.
|
If name is not provided we use `handler.__name__`.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if self._inside_context_manager:
|
if self._inside_context_manager:
|
||||||
raise RuntimeError('You must run this before the with statement!')
|
raise RuntimeError('You must run this before the with statement!')
|
||||||
|
|
||||||
if self._subparsers is None:
|
if self._subparsers is None:
|
||||||
self.add_subparsers()
|
self.add_subparsers(metavar="")
|
||||||
|
|
||||||
if not name:
|
if not name:
|
||||||
name = handler.__name__.replace("_", "-")
|
name = handler.__name__.replace("_", "-")
|
||||||
|
|
||||||
self.acquire_lock()
|
self.acquire_lock()
|
||||||
|
if not hidden:
|
||||||
kwargs['help'] = description
|
self._subparsers.metavar = "{%s,%s}" % (self._subparsers.metavar[1:-1], name) if self._subparsers.metavar else "{%s%s}" % (self._subparsers.metavar[1:-1], name)
|
||||||
|
kwargs['help'] = description
|
||||||
self.subcommands[name] = SubparserWrapper(self, name, self._subparsers.add_parser(name, **kwargs))
|
self.subcommands[name] = SubparserWrapper(self, name, self._subparsers.add_parser(name, **kwargs))
|
||||||
self.subcommands[name].set_defaults(entrypoint=handler)
|
self.subcommands[name].set_defaults(entrypoint=handler)
|
||||||
|
|
||||||
@@ -619,11 +621,11 @@ class MILC(object):
|
|||||||
|
|
||||||
return handler
|
return handler
|
||||||
|
|
||||||
def subcommand(self, description, **kwargs):
|
def subcommand(self, description, hidden=False, **kwargs):
|
||||||
"""Decorator to register a subcommand.
|
"""Decorator to register a subcommand.
|
||||||
"""
|
"""
|
||||||
def subcommand_function(handler):
|
def subcommand_function(handler):
|
||||||
return self.add_subcommand(handler, description, **kwargs)
|
return self.add_subcommand(handler, description, hidden=hidden, **kwargs)
|
||||||
|
|
||||||
return subcommand_function
|
return subcommand_function
|
||||||
|
|
||||||
|
|||||||
+336
-201
@@ -1,207 +1,342 @@
|
|||||||
#ifndef SEND_STRING_KEYCODES
|
/* Copyright 2019
|
||||||
#define SEND_STRING_KEYCODES
|
*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#define X_NO 00
|
#pragma once
|
||||||
#define X_ROLL_OVER 01
|
|
||||||
#define X_POST_FAIL 02
|
// clang-format off
|
||||||
#define X_UNDEFINED 03
|
|
||||||
#define X_A 04
|
/* Punctuation */
|
||||||
#define X_B 05
|
#define X_ENT X_ENTER
|
||||||
#define X_C 06
|
#define X_ESC X_ESCAPE
|
||||||
#define X_D 07
|
#define X_BSPC X_BSPACE
|
||||||
#define X_E 08
|
#define X_SPC X_SPACE
|
||||||
#define X_F 09
|
#define X_MINS X_MINUS
|
||||||
#define X_G 0a
|
#define X_EQL X_EQUAL
|
||||||
#define X_H 0b
|
#define X_LBRC X_LBRACKET
|
||||||
#define X_I 0c
|
#define X_RBRC X_RBRACKET
|
||||||
#define X_J 0d
|
#define X_BSLS X_BSLASH
|
||||||
#define X_K 0e
|
#define X_NUHS X_NONUS_HASH
|
||||||
#define X_L 0f
|
#define X_SCLN X_SCOLON
|
||||||
#define X_M 10
|
#define X_QUOT X_QUOTE
|
||||||
#define X_N 11
|
#define X_GRV X_GRAVE
|
||||||
#define X_O 12
|
#define X_COMM X_COMMA
|
||||||
#define X_P 13
|
#define X_SLSH X_SLASH
|
||||||
#define X_Q 14
|
#define X_NUBS X_NONUS_BSLASH
|
||||||
#define X_R 15
|
|
||||||
#define X_S 16
|
/* Lock Keys */
|
||||||
#define X_T 17
|
#define X_CLCK X_CAPSLOCK
|
||||||
#define X_U 18
|
#define X_CAPS X_CAPSLOCK
|
||||||
#define X_V 19
|
#define X_SLCK X_SCROLLLOCK
|
||||||
#define X_W 1a
|
#define X_NLCK X_NUMLOCK
|
||||||
#define X_X 1b
|
#define X_LCAP X_LOCKING_CAPS
|
||||||
#define X_Y 1c
|
#define X_LNUM X_LOCKING_NUM
|
||||||
#define X_Z 1d
|
#define X_LSCR X_LOCKING_SCROLL
|
||||||
#define X_1 1e
|
|
||||||
#define X_2 1f
|
/* Commands */
|
||||||
#define X_3 20
|
#define X_PSCR X_PSCREEN
|
||||||
#define X_4 21
|
#define X_PAUS X_PAUSE
|
||||||
#define X_5 22
|
#define X_BRK X_PAUSE
|
||||||
#define X_6 23
|
#define X_INS X_INSERT
|
||||||
#define X_7 24
|
#define X_DEL X_DELETE
|
||||||
#define X_8 25
|
#define X_PGDN X_PGDOWN
|
||||||
#define X_9 26
|
#define X_RGHT X_RIGHT
|
||||||
#define X_0 27
|
#define X_APP X_APPLICATION
|
||||||
#define X_ENTER 28
|
#define X_EXEC X_EXECUTE
|
||||||
#define X_ESCAPE 29
|
#define X_SLCT X_SELECT
|
||||||
#define X_BSPACE 2a
|
#define X_AGIN X_AGAIN
|
||||||
#define X_TAB 2b
|
#define X_PSTE X_PASTE
|
||||||
#define X_SPACE 2c
|
#define X_ERAS X_ALT_ERASE
|
||||||
#define X_MINUS 2d
|
#define X_CLR X_CLEAR
|
||||||
#define X_EQUAL 2e
|
|
||||||
#define X_LBRACKET 2f
|
/* Keypad */
|
||||||
#define X_RBRACKET 30
|
#define X_PSLS X_KP_SLASH
|
||||||
#define X_BSLASH 31
|
#define X_PAST X_KP_ASTERISK
|
||||||
#define X_NONUS_HASH 32
|
#define X_PMNS X_KP_MINUS
|
||||||
#define X_SCOLON 33
|
#define X_PPLS X_KP_PLUS
|
||||||
#define X_QUOTE 34
|
#define X_PENT X_KP_ENTER
|
||||||
#define X_GRAVE 35
|
#define X_P1 X_KP_1
|
||||||
#define X_COMMA 36
|
#define X_P2 X_KP_2
|
||||||
#define X_DOT 37
|
#define X_P3 X_KP_3
|
||||||
#define X_SLASH 38
|
#define X_P4 X_KP_4
|
||||||
#define X_CAPSLOCK 39
|
#define X_P5 X_KP_5
|
||||||
#define X_F1 3a
|
#define X_P6 X_KP_6
|
||||||
#define X_F2 3b
|
#define X_P7 X_KP_7
|
||||||
#define X_F3 3c
|
#define X_P8 X_KP_8
|
||||||
#define X_F4 3d
|
#define X_P9 X_KP_9
|
||||||
#define X_F5 3e
|
#define X_P0 X_KP_0
|
||||||
#define X_F6 3f
|
#define X_PDOT X_KP_DOT
|
||||||
#define X_F7 40
|
#define X_PEQL X_KP_EQUAL
|
||||||
#define X_F8 41
|
#define X_PCMM X_KP_COMMA
|
||||||
#define X_F9 42
|
|
||||||
#define X_F10 43
|
/* Japanese specific */
|
||||||
#define X_F11 44
|
#define X_ZKHK X_GRAVE
|
||||||
#define X_F12 45
|
#define X_RO X_INT1
|
||||||
#define X_PSCREEN 46
|
#define X_KANA X_INT2
|
||||||
#define X_SCROLLLOCK 47
|
#define X_JYEN X_INT3
|
||||||
#define X_PAUSE 48
|
#define X_HENK X_INT4
|
||||||
#define X_INSERT 49
|
#define X_MHEN X_INT5
|
||||||
#define X_HOME 4a
|
|
||||||
#define X_PGUP 4b
|
/* Korean specific */
|
||||||
#define X_DELETE 4c
|
#define X_HAEN X_LANG1
|
||||||
#define X_END 4d
|
#define X_HANJ X_LANG2
|
||||||
#define X_PGDOWN 4e
|
|
||||||
#define X_RIGHT 4f
|
|
||||||
#define X_LEFT 50
|
|
||||||
#define X_DOWN 51
|
|
||||||
#define X_UP 52
|
|
||||||
#define X_NUMLOCK 53
|
|
||||||
#define X_KP_SLASH 54
|
|
||||||
#define X_KP_ASTERISK 55
|
|
||||||
#define X_KP_MINUS 56
|
|
||||||
#define X_KP_PLUS 57
|
|
||||||
#define X_KP_ENTER 58
|
|
||||||
#define X_KP_1 59
|
|
||||||
#define X_KP_2 5a
|
|
||||||
#define X_KP_3 5b
|
|
||||||
#define X_KP_4 5c
|
|
||||||
#define X_KP_5 5d
|
|
||||||
#define X_KP_6 5e
|
|
||||||
#define X_KP_7 5f
|
|
||||||
#define X_KP_8 60
|
|
||||||
#define X_KP_9 61
|
|
||||||
#define X_KP_0 62
|
|
||||||
#define X_KP_DOT 63
|
|
||||||
#define X_NONUS_BSLASH 64
|
|
||||||
#define X_APPLICATION 65
|
|
||||||
#define X_POWER 66
|
|
||||||
#define X_KP_EQUAL 67
|
|
||||||
#define X_F13 68
|
|
||||||
#define X_F14 69
|
|
||||||
#define X_F15 6a
|
|
||||||
#define X_F16 6b
|
|
||||||
#define X_F17 6c
|
|
||||||
#define X_F18 6d
|
|
||||||
#define X_F19 6e
|
|
||||||
#define X_F20 6f
|
|
||||||
#define X_F21 70
|
|
||||||
#define X_F22 71
|
|
||||||
#define X_F23 72
|
|
||||||
#define X_F24 73
|
|
||||||
#define X_EXECUTE 74
|
|
||||||
#define X_HELP 75
|
|
||||||
#define X_MENU 76
|
|
||||||
#define X_SELECT 77
|
|
||||||
#define X_STOP 78
|
|
||||||
#define X_AGAIN 79
|
|
||||||
#define X_UNDO 7a
|
|
||||||
#define X_CUT 7b
|
|
||||||
#define X_COPY 7c
|
|
||||||
#define X_PASTE 7d
|
|
||||||
#define X_FIND 7e
|
|
||||||
#define X__MUTE 7f
|
|
||||||
#define X__VOLUP 80
|
|
||||||
#define X__VOLDOWN 81
|
|
||||||
#define X_LOCKING_CAPS 82
|
|
||||||
#define X_LOCKING_NUM 83
|
|
||||||
#define X_LOCKING_SCROLL 84
|
|
||||||
#define X_KP_COMMA 85
|
|
||||||
#define X_KP_EQUAL_AS400 86
|
|
||||||
#define X_INT1 87
|
|
||||||
#define X_INT2 88
|
|
||||||
#define X_INT3 89
|
|
||||||
#define X_INT4 8a
|
|
||||||
#define X_INT5 8b
|
|
||||||
#define X_INT6 8c
|
|
||||||
#define X_INT7 8d
|
|
||||||
#define X_INT8 8e
|
|
||||||
#define X_INT9 8f
|
|
||||||
#define X_LANG1 90
|
|
||||||
#define X_LANG2 91
|
|
||||||
#define X_LANG3 92
|
|
||||||
#define X_LANG4 93
|
|
||||||
#define X_LANG5 94
|
|
||||||
#define X_LANG6 95
|
|
||||||
#define X_LANG7 96
|
|
||||||
#define X_LANG8 97
|
|
||||||
#define X_LANG9 98
|
|
||||||
#define X_ALT_ERASE 99
|
|
||||||
#define X_SYSREQ 9a
|
|
||||||
#define X_CANCEL 9b
|
|
||||||
#define X_CLEAR 9c
|
|
||||||
#define X_PRIOR 9d
|
|
||||||
#define X_RETURN 9e
|
|
||||||
#define X_SEPARATOR 9f
|
|
||||||
#define X_OUT a0
|
|
||||||
#define X_OPER a1
|
|
||||||
#define X_CLEAR_AGAIN a2
|
|
||||||
#define X_CRSEL a3
|
|
||||||
#define X_EXSEL a4
|
|
||||||
|
|
||||||
/* Modifiers */
|
/* Modifiers */
|
||||||
#define X_LCTRL e0
|
#define X_LCTL X_LCTRL
|
||||||
#define X_LSHIFT e1
|
#define X_LSFT X_LSHIFT
|
||||||
#define X_LALT e2
|
#define X_LCMD X_LGUI
|
||||||
#define X_LGUI e3
|
#define X_LWIN X_LGUI
|
||||||
#define X_RCTRL e4
|
#define X_RCTL X_RCTRL
|
||||||
#define X_RSHIFT e5
|
#define X_RSFT X_RSHIFT
|
||||||
#define X_RALT e6
|
#define X_ALGR X_RALT
|
||||||
#define X_RGUI e7
|
#define X_RCMD X_RGUI
|
||||||
|
#define X_RWIN X_RGUI
|
||||||
|
|
||||||
/* System Control */
|
/* Generic Desktop Page (0x01) */
|
||||||
#define X_SYSTEM_POWER a5
|
#define X_PWR X_SYSTEM_POWER
|
||||||
#define X_SYSTEM_SLEEP a6
|
#define X_SLEP X_SYSTEM_SLEEP
|
||||||
#define X_SYSTEM_WAKE a7
|
#define X_WAKE X_SYSTEM_WAKE
|
||||||
|
|
||||||
/* Media Control */
|
/* Consumer Page (0x0C) */
|
||||||
#define X_AUDIO_MUTE a8
|
#define X_MUTE X_AUDIO_MUTE
|
||||||
#define X_AUDIO_VOL_UP a9
|
#define X_VOLU X_AUDIO_VOL_UP
|
||||||
#define X_AUDIO_VOL_DOWN aa
|
#define X_VOLD X_AUDIO_VOL_DOWN
|
||||||
#define X_MEDIA_NEXT_TRACK ab
|
#define X_MNXT X_MEDIA_NEXT_TRACK
|
||||||
#define X_MEDIA_PREV_TRACK ac
|
#define X_MPRV X_MEDIA_PREV_TRACK
|
||||||
#define X_MEDIA_STOP ad
|
#define X_MSTP X_MEDIA_STOP
|
||||||
#define X_MEDIA_PLAY_PAUSE ae
|
#define X_MPLY X_MEDIA_PLAY_PAUSE
|
||||||
#define X_MEDIA_SELECT af
|
#define X_MSEL X_MEDIA_SELECT
|
||||||
#define X_MEDIA_EJECT b0
|
#define X_EJCT X_MEDIA_EJECT
|
||||||
#define X_MAIL b1
|
#define X_CALC X_CALCULATOR
|
||||||
#define X_CALCULATOR b2
|
#define X_MYCM X_MY_COMPUTER
|
||||||
#define X_MY_COMPUTER b3
|
#define X_WSCH X_WWW_SEARCH
|
||||||
#define X_WWW_SEARCH b4
|
#define X_WHOM X_WWW_HOME
|
||||||
#define X_WWW_HOME b5
|
#define X_WBAK X_WWW_BACK
|
||||||
#define X_WWW_BACK b6
|
#define X_WFWD X_WWW_FORWARD
|
||||||
#define X_WWW_FORWARD b7
|
#define X_WSTP X_WWW_STOP
|
||||||
#define X_WWW_STOP b8
|
#define X_WREF X_WWW_REFRESH
|
||||||
#define X_WWW_REFRESH b9
|
#define X_WFAV X_WWW_FAVORITES
|
||||||
#define X_WWW_FAVORITES ba
|
#define X_MFFD X_MEDIA_FAST_FORWARD
|
||||||
|
#define X_MRWD X_MEDIA_REWIND
|
||||||
|
#define X_BRIU X_BRIGHTNESS_UP
|
||||||
|
#define X_BRID X_BRIGHTNESS_DOWN
|
||||||
|
|
||||||
|
/* System Specific */
|
||||||
|
#define X_BRMU X_PAUSE
|
||||||
|
#define X_BRMD X_SCROLLLOCK
|
||||||
|
|
||||||
|
/* Keyboard/Keypad Page (0x07) */
|
||||||
|
#define X_A 04
|
||||||
|
#define X_B 05
|
||||||
|
#define X_C 06
|
||||||
|
#define X_D 07
|
||||||
|
#define X_E 08
|
||||||
|
#define X_F 09
|
||||||
|
#define X_G 0a
|
||||||
|
#define X_H 0b
|
||||||
|
#define X_I 0c
|
||||||
|
#define X_J 0d
|
||||||
|
#define X_K 0e
|
||||||
|
#define X_L 0f
|
||||||
|
#define X_M 10
|
||||||
|
#define X_N 11
|
||||||
|
#define X_O 12
|
||||||
|
#define X_P 13
|
||||||
|
#define X_Q 14
|
||||||
|
#define X_R 15
|
||||||
|
#define X_S 16
|
||||||
|
#define X_T 17
|
||||||
|
#define X_U 18
|
||||||
|
#define X_V 19
|
||||||
|
#define X_W 1a
|
||||||
|
#define X_X 1b
|
||||||
|
#define X_Y 1c
|
||||||
|
#define X_Z 1d
|
||||||
|
#define X_1 1e
|
||||||
|
#define X_2 1f
|
||||||
|
#define X_3 20
|
||||||
|
#define X_4 21
|
||||||
|
#define X_5 22
|
||||||
|
#define X_6 23
|
||||||
|
#define X_7 24
|
||||||
|
#define X_8 25
|
||||||
|
#define X_9 26
|
||||||
|
#define X_0 27
|
||||||
|
#define X_ENTER 28
|
||||||
|
#define X_ESCAPE 29
|
||||||
|
#define X_BSPACE 2a
|
||||||
|
#define X_TAB 2b
|
||||||
|
#define X_SPACE 2c
|
||||||
|
#define X_MINUS 2d
|
||||||
|
#define X_EQUAL 2e
|
||||||
|
#define X_LBRACKET 2f
|
||||||
|
#define X_RBRACKET 30
|
||||||
|
#define X_BSLASH 31
|
||||||
|
#define X_NONUS_HASH 32
|
||||||
|
#define X_SCOLON 33
|
||||||
|
#define X_QUOTE 34
|
||||||
|
#define X_GRAVE 35
|
||||||
|
#define X_COMMA 36
|
||||||
|
#define X_DOT 37
|
||||||
|
#define X_SLASH 38
|
||||||
|
#define X_CAPSLOCK 39
|
||||||
|
#define X_F1 3a
|
||||||
|
#define X_F2 3b
|
||||||
|
#define X_F3 3c
|
||||||
|
#define X_F4 3d
|
||||||
|
#define X_F5 3e
|
||||||
|
#define X_F6 3f
|
||||||
|
#define X_F7 40
|
||||||
|
#define X_F8 41
|
||||||
|
#define X_F9 42
|
||||||
|
#define X_F10 43
|
||||||
|
#define X_F11 44
|
||||||
|
#define X_F12 45
|
||||||
|
#define X_PSCREEN 46
|
||||||
|
#define X_SCROLLLOCK 47
|
||||||
|
#define X_PAUSE 48
|
||||||
|
#define X_INSERT 49
|
||||||
|
#define X_HOME 4a
|
||||||
|
#define X_PGUP 4b
|
||||||
|
#define X_DELETE 4c
|
||||||
|
#define X_END 4d
|
||||||
|
#define X_PGDOWN 4e
|
||||||
|
#define X_RIGHT 4f
|
||||||
|
#define X_LEFT 50
|
||||||
|
#define X_DOWN 51
|
||||||
|
#define X_UP 52
|
||||||
|
#define X_NUMLOCK 53
|
||||||
|
#define X_KP_SLASH 54
|
||||||
|
#define X_KP_ASTERISK 55
|
||||||
|
#define X_KP_MINUS 56
|
||||||
|
#define X_KP_PLUS 57
|
||||||
|
#define X_KP_ENTER 58
|
||||||
|
#define X_KP_1 59
|
||||||
|
#define X_KP_2 5a
|
||||||
|
#define X_KP_3 5b
|
||||||
|
#define X_KP_4 5c
|
||||||
|
#define X_KP_5 5d
|
||||||
|
#define X_KP_6 5e
|
||||||
|
#define X_KP_7 5f
|
||||||
|
#define X_KP_8 60
|
||||||
|
#define X_KP_9 61
|
||||||
|
#define X_KP_0 62
|
||||||
|
#define X_KP_DOT 63
|
||||||
|
#define X_NONUS_BSLASH 64
|
||||||
|
#define X_APPLICATION 65
|
||||||
|
#define X_POWER 66
|
||||||
|
#define X_KP_EQUAL 67
|
||||||
|
#define X_F13 68
|
||||||
|
#define X_F14 69
|
||||||
|
#define X_F15 6a
|
||||||
|
#define X_F16 6b
|
||||||
|
#define X_F17 6c
|
||||||
|
#define X_F18 6d
|
||||||
|
#define X_F19 6e
|
||||||
|
#define X_F20 6f
|
||||||
|
#define X_F21 70
|
||||||
|
#define X_F22 71
|
||||||
|
#define X_F23 72
|
||||||
|
#define X_F24 73
|
||||||
|
#define X_EXECUTE 74
|
||||||
|
#define X_HELP 75
|
||||||
|
#define X_MENU 76
|
||||||
|
#define X_SELECT 77
|
||||||
|
#define X_STOP 78
|
||||||
|
#define X_AGAIN 79
|
||||||
|
#define X_UNDO 7a
|
||||||
|
#define X_CUT 7b
|
||||||
|
#define X_COPY 7c
|
||||||
|
#define X_PASTE 7d
|
||||||
|
#define X_FIND 7e
|
||||||
|
#define X__MUTE 7f
|
||||||
|
#define X__VOLUP 80
|
||||||
|
#define X__VOLDOWN 81
|
||||||
|
#define X_LOCKING_CAPS 82
|
||||||
|
#define X_LOCKING_NUM 83
|
||||||
|
#define X_LOCKING_SCROLL 84
|
||||||
|
#define X_KP_COMMA 85
|
||||||
|
#define X_KP_EQUAL_AS400 86
|
||||||
|
#define X_INT1 87
|
||||||
|
#define X_INT2 88
|
||||||
|
#define X_INT3 89
|
||||||
|
#define X_INT4 8a
|
||||||
|
#define X_INT5 8b
|
||||||
|
#define X_INT6 8c
|
||||||
|
#define X_INT7 8d
|
||||||
|
#define X_INT8 8e
|
||||||
|
#define X_INT9 8f
|
||||||
|
#define X_LANG1 90
|
||||||
|
#define X_LANG2 91
|
||||||
|
#define X_LANG3 92
|
||||||
|
#define X_LANG4 93
|
||||||
|
#define X_LANG5 94
|
||||||
|
#define X_LANG6 95
|
||||||
|
#define X_LANG7 96
|
||||||
|
#define X_LANG8 97
|
||||||
|
#define X_LANG9 98
|
||||||
|
#define X_ALT_ERASE 99
|
||||||
|
#define X_SYSREQ 9a
|
||||||
|
#define X_CANCEL 9b
|
||||||
|
#define X_CLEAR 9c
|
||||||
|
#define X_PRIOR 9d
|
||||||
|
#define X_RETURN 9e
|
||||||
|
#define X_SEPARATOR 9f
|
||||||
|
#define X_OUT a0
|
||||||
|
#define X_OPER a1
|
||||||
|
#define X_CLEAR_AGAIN a2
|
||||||
|
#define X_CRSEL a3
|
||||||
|
#define X_EXSEL a4
|
||||||
|
|
||||||
|
/* Modifiers */
|
||||||
|
#define X_LCTRL e0
|
||||||
|
#define X_LSHIFT e1
|
||||||
|
#define X_LALT e2
|
||||||
|
#define X_LGUI e3
|
||||||
|
#define X_RCTRL e4
|
||||||
|
#define X_RSHIFT e5
|
||||||
|
#define X_RALT e6
|
||||||
|
#define X_RGUI e7
|
||||||
|
|
||||||
|
/* Media and Function keys */
|
||||||
|
/* Generic Desktop Page (0x01) */
|
||||||
|
#define X_SYSTEM_POWER a5
|
||||||
|
#define X_SYSTEM_SLEEP a6
|
||||||
|
#define X_SYSTEM_WAKE a7
|
||||||
|
|
||||||
|
/* Consumer Page (0x0C) */
|
||||||
|
#define X_AUDIO_MUTE a8
|
||||||
|
#define X_AUDIO_VOL_UP a9
|
||||||
|
#define X_AUDIO_VOL_DOWN aa
|
||||||
|
#define X_MEDIA_NEXT_TRACK ab
|
||||||
|
#define X_MEDIA_PREV_TRACK ac
|
||||||
|
#define X_MEDIA_STOP ad
|
||||||
|
#define X_MEDIA_PLAY_PAUSE ae
|
||||||
|
#define X_MEDIA_SELECT af
|
||||||
|
#define X_MEDIA_EJECT b0
|
||||||
|
#define X_MAIL b1
|
||||||
|
#define X_CALCULATOR b2
|
||||||
|
#define X_MY_COMPUTER b3
|
||||||
|
#define X_WWW_SEARCH b4
|
||||||
|
#define X_WWW_HOME b5
|
||||||
|
#define X_WWW_BACK b6
|
||||||
|
#define X_WWW_FORWARD b7
|
||||||
|
#define X_WWW_STOP b8
|
||||||
|
#define X_WWW_REFRESH b9
|
||||||
|
#define X_WWW_FAVORITES ba
|
||||||
#define X_MEDIA_FAST_FORWARD bb
|
#define X_MEDIA_FAST_FORWARD bb
|
||||||
#define X_MEDIA_REWIND bc
|
#define X_MEDIA_REWIND bc
|
||||||
#endif
|
#define X_BRIGHTNESS_UP bd
|
||||||
|
#define X_BRIGHTNESS_DOWN be
|
||||||
+1
-1
@@ -321,7 +321,7 @@ extcoff: $(BUILD_DIR)/$(TARGET).elf
|
|||||||
bootloader:
|
bootloader:
|
||||||
make -C lib/lufa/Bootloaders/DFU/ clean
|
make -C lib/lufa/Bootloaders/DFU/ clean
|
||||||
$(TMK_DIR)/make_dfu_header.sh $(ALL_CONFIGS)
|
$(TMK_DIR)/make_dfu_header.sh $(ALL_CONFIGS)
|
||||||
$(eval MAX_SIZE=$(shell n=`$(CC) -E -mmcu=$(MCU) $(CFLAGS) $(OPT_DEFS) tmk_core/common/avr/bootloader_size.c 2> /dev/null | sed -ne '/^#/n;/^AVR_SIZE:/,$${s/^AVR_SIZE: //;p;}'` && echo $$(($$n)) || echo 0))
|
$(eval MAX_SIZE=$(shell n=`$(CC) -E -mmcu=$(MCU) $(CFLAGS) $(OPT_DEFS) tmk_core/common/avr/bootloader_size.c 2> /dev/null | sed -ne 's/\r//;/^#/n;/^AVR_SIZE:/,$${s/^AVR_SIZE: //;p;}'` && echo $$(($$n)) || echo 0))
|
||||||
$(eval PROGRAM_SIZE_KB=$(shell n=`expr $(MAX_SIZE) / 1024` && echo $$(($$n)) || echo 0))
|
$(eval PROGRAM_SIZE_KB=$(shell n=`expr $(MAX_SIZE) / 1024` && echo $$(($$n)) || echo 0))
|
||||||
$(eval BOOT_SECTION_SIZE_KB=$(shell n=`expr $(BOOTLOADER_SIZE) / 1024` && echo $$(($$n)) || echo 0))
|
$(eval BOOT_SECTION_SIZE_KB=$(shell n=`expr $(BOOTLOADER_SIZE) / 1024` && echo $$(($$n)) || echo 0))
|
||||||
$(eval FLASH_SIZE_KB=$(shell n=`expr $(PROGRAM_SIZE_KB) + $(BOOT_SECTION_SIZE_KB)` && echo $$(($$n)) || echo 0))
|
$(eval FLASH_SIZE_KB=$(shell n=`expr $(PROGRAM_SIZE_KB) + $(BOOT_SECTION_SIZE_KB)` && echo $$(($$n)) || echo 0))
|
||||||
|
|||||||
@@ -175,7 +175,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define KC_MPLY KC_MEDIA_PLAY_PAUSE
|
#define KC_MPLY KC_MEDIA_PLAY_PAUSE
|
||||||
#define KC_MSEL KC_MEDIA_SELECT
|
#define KC_MSEL KC_MEDIA_SELECT
|
||||||
#define KC_EJCT KC_MEDIA_EJECT
|
#define KC_EJCT KC_MEDIA_EJECT
|
||||||
#define KC_MAIL KC_MAIL
|
|
||||||
#define KC_CALC KC_CALCULATOR
|
#define KC_CALC KC_CALCULATOR
|
||||||
#define KC_MYCM KC_MY_COMPUTER
|
#define KC_MYCM KC_MY_COMPUTER
|
||||||
#define KC_WSCH KC_WWW_SEARCH
|
#define KC_WSCH KC_WWW_SEARCH
|
||||||
|
|||||||
+1
-1
@@ -397,7 +397,7 @@ ifeq ($(findstring avr-gcc,$(CC)),avr-gcc)
|
|||||||
SIZE_MARGIN = 1024
|
SIZE_MARGIN = 1024
|
||||||
|
|
||||||
check-size:
|
check-size:
|
||||||
$(eval MAX_SIZE=$(shell n=`$(CC) -E -mmcu=$(MCU) $(CFLAGS) $(OPT_DEFS) tmk_core/common/avr/bootloader_size.c 2> /dev/null | sed -ne '/^#/n;/^AVR_SIZE:/,$${s/^AVR_SIZE: //;p;}'` && echo $$(($$n)) || echo 0))
|
$(eval MAX_SIZE=$(shell n=`$(CC) -E -mmcu=$(MCU) $(CFLAGS) $(OPT_DEFS) tmk_core/common/avr/bootloader_size.c 2> /dev/null | sed -ne 's/\r//;/^#/n;/^AVR_SIZE:/,$${s/^AVR_SIZE: //;p;}'` && echo $$(($$n)) || echo 0))
|
||||||
$(eval CURRENT_SIZE=$(shell if [ -f $(BUILD_DIR)/$(TARGET).hex ]; then $(SIZE) --target=$(FORMAT) $(BUILD_DIR)/$(TARGET).hex | $(AWK) 'NR==2 {print $$4}'; else printf 0; fi))
|
$(eval CURRENT_SIZE=$(shell if [ -f $(BUILD_DIR)/$(TARGET).hex ]; then $(SIZE) --target=$(FORMAT) $(BUILD_DIR)/$(TARGET).hex | $(AWK) 'NR==2 {print $$4}'; else printf 0; fi))
|
||||||
$(eval FREE_SIZE=$(shell expr $(MAX_SIZE) - $(CURRENT_SIZE)))
|
$(eval FREE_SIZE=$(shell expr $(MAX_SIZE) - $(CURRENT_SIZE)))
|
||||||
$(eval OVER_SIZE=$(shell expr $(CURRENT_SIZE) - $(MAX_SIZE)))
|
$(eval OVER_SIZE=$(shell expr $(CURRENT_SIZE) - $(MAX_SIZE)))
|
||||||
|
|||||||
+23
-43
@@ -8,25 +8,27 @@ installflip=false
|
|||||||
util_dir=$(dirname "$0")
|
util_dir=$(dirname "$0")
|
||||||
|
|
||||||
echo "Installing dependencies needed for the installation (quazip)"
|
echo "Installing dependencies needed for the installation (quazip)"
|
||||||
pacman --needed -S base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-clang msys/git msys/p7zip msys/python3 msys/unzip
|
pacman --needed --noconfirm --disable-download-timeout -Sy base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-clang msys/git msys/p7zip mingw-w64-x86_64-python3-pip msys/unzip
|
||||||
|
|
||||||
source "$dir/win_shared_install.sh"
|
source "$dir/win_shared_install.sh"
|
||||||
|
|
||||||
function install_avr {
|
function install_avr {
|
||||||
rm -f -r "$avrtools"
|
rm -f -r "$avrtools"
|
||||||
wget "http://ww1.microchip.com/downloads/en/DeviceDoc/avr8-gnu-toolchain-3.6.1.1752-win32.any.x86.zip"
|
wget "https://blog.zakkemble.net/download/avr-gcc-8.3.0-x86-mingw.zip"
|
||||||
echo "Extracting AVR toolchain..."
|
echo "Extracting AVR toolchain..."
|
||||||
unzip -q avr8-gnu-toolchain-3.6.1.1752-win32.any.x86.zip
|
unzip -q -d . avr-gcc-8.3.0-x86-mingw.zip
|
||||||
mv avr8-gnu-toolchain-win32_x86/ avr8-gnu-toolchain
|
mv avr-gcc-8.3.0-x86-mingw avr8-gnu-toolchain
|
||||||
rm __MACOSX -R
|
rm avr8-gnu-toolchain/bin/make.exe
|
||||||
rm avr8-gnu-toolchain-3.6.1.1752-win32.any.x86.zip
|
rm avr-gcc-8.3.0-x86-mingw.zip
|
||||||
pacman --needed -S mingw-w64-x86_64-avrdude
|
pacman --needed --disable-download-timeout -S mingw-w64-x86_64-avrdude
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_arm {
|
function install_arm {
|
||||||
wget -O gcc-arm-none-eabi.zip "https://developer.arm.com/-/media/Files/downloads/gnu-rm/6-2017q2/gcc-arm-none-eabi-6-2017-q2-update-win32.zip?product=GNU%20ARM%20Embedded%20Toolchain,ZIP,,Windows,6-2017-q2-update"
|
rm -f -r "$armtools"
|
||||||
unzip -d gcc-arm-none-eabi gcc-arm-none-eabi.zip
|
wget -O gcc-arm-none-eabi-8-2019-q3-update-win32.zip "https://developer.arm.com/-/media/Files/downloads/gnu-rm/8-2019q3/RC1.1/gcc-arm-none-eabi-8-2019-q3-update-win32.zip"
|
||||||
rm gcc-arm-none-eabi.zip
|
echo "Extracting ARM toolchain..."
|
||||||
|
unzip -q -d gcc-arm-none-eabi gcc-arm-none-eabi-8-2019-q3-update-win32.zip
|
||||||
|
rm gcc-arm-none-eabi-8-2019-q3-update-win32.zip
|
||||||
}
|
}
|
||||||
|
|
||||||
function extract_flip {
|
function extract_flip {
|
||||||
@@ -43,17 +45,10 @@ if [ -f "FlipInstaller.exe" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -d "$avrtools" ]; then
|
if [ ! -d "$avrtools" ]; then
|
||||||
while true; do
|
echo
|
||||||
echo
|
echo "The AVR toolchain is not installed."
|
||||||
echo "The AVR toolchain is not installed."
|
echo "This is needed for building AVR based keyboards."
|
||||||
echo "This is needed for building AVR based keboards."
|
install_avr
|
||||||
read -p "Do you want to install it? (Y/N) " res
|
|
||||||
case $res in
|
|
||||||
[Yy]* ) install_avr; break;;
|
|
||||||
[Nn]* ) break;;
|
|
||||||
* ) echo "Invalid answer";;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
else
|
else
|
||||||
while true; do
|
while true; do
|
||||||
echo
|
echo
|
||||||
@@ -68,17 +63,10 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -d "$armtools" ]; then
|
if [ ! -d "$armtools" ]; then
|
||||||
while true; do
|
echo
|
||||||
echo
|
echo "The ARM toolchain is not installed."
|
||||||
echo "The ARM toolchain is not installed."
|
echo "This is needed for building ARM based keyboards."
|
||||||
echo "This is needed for building ARM based keyboards."
|
install_arm
|
||||||
read -p "Do you want to install it? (Y/N) " res
|
|
||||||
case $res in
|
|
||||||
[Yy]* ) install_arm; break;;
|
|
||||||
[Nn]* ) break;;
|
|
||||||
* ) echo "Invalid answer";;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
else
|
else
|
||||||
while true; do
|
while true; do
|
||||||
echo
|
echo
|
||||||
@@ -103,18 +91,10 @@ then
|
|||||||
echo "The line source ~/qmk_utils/activate_msys2.sh is already added to your /.bashrc"
|
echo "The line source ~/qmk_utils/activate_msys2.sh is already added to your /.bashrc"
|
||||||
echo "Not adding it twice!"
|
echo "Not adding it twice!"
|
||||||
else
|
else
|
||||||
while true; do
|
|
||||||
echo
|
echo
|
||||||
echo "Do you want to add 'source ~/qmk_utils/activate_msys2.sh' to the end of your"
|
echo "Adding 'source ~/qmk_utils/activate_msys2.sh' to the end of your"
|
||||||
echo ".bashrc file? Without this make won't find the needed utils, so if you don't"
|
echo ".bashrc file. Without this make won't find the needed utils."
|
||||||
echo "want to do it automatically, then you have to do it manually later."
|
echo "source ~/qmk_utils/activate_msys2.sh" >> ~/.bashrc;
|
||||||
read -p "(Y/N)? " res
|
|
||||||
case $res in
|
|
||||||
[Yy]* ) echo "source ~/qmk_utils/activate_msys2.sh" >> ~/.bashrc; break;;
|
|
||||||
[Nn]* ) break;;
|
|
||||||
* ) echo "Invalid answer";;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" ]] ; the
|
|||||||
# fix formatting
|
# fix formatting
|
||||||
git checkout master
|
git checkout master
|
||||||
git diff --diff-filter=AM --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | xargs -0 dos2unix
|
git diff --diff-filter=AM --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | xargs -0 dos2unix
|
||||||
git diff --diff-filter=AM --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | grep -e '^drivers' -e '^quantum' -e '^tests' -e '^tmk_core' | grep -v 'quantum/template' | xargs -0 clang-format
|
git diff --diff-filter=AM --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} '*.c' '*.h' '*.cpp' | grep -z -e '^drivers' -e '^quantum' -e '^tests' -e '^tmk_core' | grep -zv -e 'quantum/template' -e 'tmk_core/protocol/usb_hid' | xargs -0 clang-format -i
|
||||||
git diff --diff-filter=AM --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | xargs -0 git add
|
git diff --diff-filter=AM --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | xargs -0 git add
|
||||||
git commit -m "format code according to conventions [skip ci]" && git push [email protected]:qmk/qmk_firmware.git master
|
git commit -m "format code according to conventions [skip ci]" && git push [email protected]:qmk/qmk_firmware.git master
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user