mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-08-26 17:01:41 +00:00
Compare commits
92 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
7daa2e210c | ||
![]() |
7d953332e0 | ||
![]() |
03685309fd | ||
![]() |
e09ca63317 | ||
![]() |
3dbb7f261d | ||
![]() |
93e8a401df | ||
![]() |
7f9409bbb3 | ||
![]() |
633464acfa | ||
![]() |
f744e22b49 | ||
![]() |
1a913aa12e | ||
![]() |
75f83210f4 | ||
![]() |
2170b75b26 | ||
![]() |
d1270c9d55 | ||
![]() |
546dfce209 | ||
![]() |
e0614e4f52 | ||
![]() |
49dc332a04 | ||
![]() |
60e1910e5b | ||
![]() |
4e2ab3a177 | ||
![]() |
41f649c9a9 | ||
![]() |
d91938c19d | ||
![]() |
a3cd1290be | ||
![]() |
7d33d1bace | ||
![]() |
4b9f5578a0 | ||
![]() |
59c8672f5c | ||
![]() |
a7920acff5 | ||
![]() |
79a87a9c2b | ||
![]() |
8d3581a49f | ||
![]() |
cd96377312 | ||
![]() |
8b98e67643 | ||
![]() |
6876263961 | ||
![]() |
4caeb64888 | ||
![]() |
70540a1f74 | ||
![]() |
f0dc206784 | ||
![]() |
caca8949de | ||
![]() |
0232941b1d | ||
![]() |
63445be4e5 | ||
![]() |
619885b484 | ||
![]() |
6592f83589 | ||
![]() |
43d74d7fa5 | ||
![]() |
cd981ec56a | ||
![]() |
12f308748f | ||
![]() |
ac0ba832c7 | ||
![]() |
c5ddada32e | ||
![]() |
8a950a7116 | ||
![]() |
64551a8386 | ||
![]() |
ae59a51193 | ||
![]() |
5dc7951dc0 | ||
![]() |
a866fbf381 | ||
![]() |
8af7200085 | ||
![]() |
f028dbf179 | ||
![]() |
aa2b4a688b | ||
![]() |
57475caab0 | ||
![]() |
34205f5bb5 | ||
![]() |
9f1608a6a2 | ||
![]() |
0a056cfd81 | ||
![]() |
5c1442766c | ||
![]() |
816f2f9cc2 | ||
![]() |
666623d39a | ||
![]() |
0eabb01e27 | ||
![]() |
b664db3cf3 | ||
![]() |
a5ecd4eb87 | ||
![]() |
f3f444c1df | ||
![]() |
81c51ec51c | ||
![]() |
b5a12fa6d3 | ||
![]() |
29c82cfb33 | ||
![]() |
2cd684f8e0 | ||
![]() |
c4d05010cb | ||
![]() |
6276f54752 | ||
![]() |
8e820cde13 | ||
![]() |
572395ac20 | ||
![]() |
95c74ae4ae | ||
![]() |
3fc710e0b1 | ||
![]() |
dd0a35273c | ||
![]() |
cf7404630e | ||
![]() |
ef872595ae | ||
![]() |
eac9ee8d3f | ||
![]() |
1d706bd77c | ||
![]() |
3e60997edb | ||
![]() |
a74846a0db | ||
![]() |
038d9118b6 | ||
![]() |
be771e5fd2 | ||
![]() |
1fbee7c316 | ||
![]() |
8b39ae13c7 | ||
![]() |
1bb6d8de6f | ||
![]() |
a888057453 | ||
![]() |
eae7343741 | ||
![]() |
c59fb1b477 | ||
![]() |
e7cb7bc737 | ||
![]() |
1ed48c774e | ||
![]() |
54b80ecf9f | ||
![]() |
97a73637e0 | ||
![]() |
653ecf91c2 |
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -92,3 +92,4 @@ GRAPHICS
|
||||
# hex files
|
||||
*.hex binary
|
||||
*.eep binary
|
||||
nix/sources.nix linguist-generated=true
|
||||
|
@@ -15,7 +15,7 @@ The breaking change period is when we will merge PR's that change QMK in dangero
|
||||
|
||||
## When is the next Breaking Change?
|
||||
|
||||
The next Breaking Change is scheduled for February 27, 2021.
|
||||
The next Breaking Change is scheduled for May 29, 2021.
|
||||
|
||||
### Important Dates
|
||||
|
||||
|
@@ -131,6 +131,16 @@ Check your environment and report problems only:
|
||||
|
||||
qmk doctor -n
|
||||
|
||||
## `qmk format-json`
|
||||
|
||||
Formats a JSON file in a (mostly) human-friendly way. Will usually correctly detect the format of the JSON (info.json or keymap.json) but you can override this with `--format` if neccesary.
|
||||
|
||||
**Usage**:
|
||||
|
||||
```
|
||||
qmk format-json [-f FORMAT] <json_file>
|
||||
```
|
||||
|
||||
## `qmk info`
|
||||
|
||||
Displays information about keyboards and keymaps in QMK. You can use this to get information about a keyboard, show the layouts, display the underlying key matrix, or to pretty-print JSON keymaps.
|
||||
@@ -170,7 +180,7 @@ qmk json2c [-o OUTPUT] filename
|
||||
## `qmk c2json`
|
||||
|
||||
Creates a keymap.json from a keymap.c.
|
||||
**Note:** Parsing C source files is not easy, therefore this subcommand may not work your keymap. In some cases not using the C pre-processor helps.
|
||||
**Note:** Parsing C source files is not easy, therefore this subcommand may not work with your keymap. In some cases not using the C pre-processor helps.
|
||||
|
||||
**Usage**:
|
||||
|
||||
|
@@ -19,12 +19,10 @@ These functions allow you to activate layers in various ways. Note that layers a
|
||||
|
||||
### Caveats :id=caveats
|
||||
|
||||
Currently, `LT()` and `MT()` are limited to the [Basic Keycode set](keycodes_basic.md), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. Specifically, dual function keys like `LT` and `MT` use a 16 bit keycode. 4 bits are used for the function identifier, the next 12 are divided into the parameters. Layer Tap uses 4 bits for the layer (and is why it's limited to layers 0-15, actually), while Mod Tap does the same, 4 bits for the identifier, 4 bits for which mods are used, and all of them use 8 bits for the keycode. Because of this, the keycode used is limited to `0xFF` (0-255), which are the basic keycodes only.
|
||||
Currently, the `layer` argument of `LT()` is limited to layers 0-15, and the `kc` argument to the [Basic Keycode set](keycodes_basic.md), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. This is because QMK uses 16-bit keycodes, of which 4 bits are used for the function identifier and 4 bits for the layer, leaving only 8 bits for the keycode.
|
||||
|
||||
Expanding this would be complicated, at best. Moving to a 32-bit keycode would solve a lot of this, but would double the amount of space that the keymap matrix uses. And it could potentially cause issues, too. If you need to apply modifiers to your tapped keycode, [Tap Dance](feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys) can be used to accomplish this.
|
||||
|
||||
Additionally, if at least one right-handed modifier is specified in a Mod Tap or Layer Tap, it will cause all modifiers specified to become right-handed, so it is not possible to mix and match the two.
|
||||
|
||||
## Working with Layers :id=working-with-layers
|
||||
|
||||
Care must be taken when switching layers, it's possible to lock yourself into a layer with no way to deactivate that layer (without unplugging your keyboard.) We've created some guidelines to help users avoid the most common problems.
|
||||
|
@@ -254,6 +254,9 @@ enum rgb_matrix_effects {
|
||||
RGB_MATRIX_RAINBOW_PINWHEELS, // Full dual gradients spinning two halfs of keyboard
|
||||
RGB_MATRIX_RAINDROPS, // Randomly changes a single key's hue
|
||||
RGB_MATRIX_JELLYBEAN_RAINDROPS, // Randomly changes a single key's hue and saturation
|
||||
RGB_MATRIX_HUE_BREATHING, // Hue shifts up a slight ammount at the same time, then shifts back
|
||||
RGB_MATRIX_HUE_PENDULUM, // Hue shifts up a slight ammount in a wave to the right, then back to the left
|
||||
RGB_MATRIX_HUE_WAVE, // Hue shifts up a slight ammount and then back down in a wave to the right
|
||||
#if define(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
|
||||
RGB_MATRIX_TYPING_HEATMAP, // How hot is your WPM!
|
||||
RGB_MATRIX_DIGITAL_RAIN, // That famous computer simulation
|
||||
@@ -305,6 +308,9 @@ You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `con
|
||||
|`#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS` |Disables `RGB_MATRIX_RAINBOW_PINWHEELS` |
|
||||
|`#define DISABLE_RGB_MATRIX_RAINDROPS` |Disables `RGB_MATRIX_RAINDROPS` |
|
||||
|`#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS` |Disables `RGB_MATRIX_JELLYBEAN_RAINDROPS` |
|
||||
|`#define DISABLE_RGB_MATRIX_HUE_BREATHING` |Disables `RGB_MATRIX_HUE_BREATHING` |
|
||||
|`#define DISABLE_RGB_MATRIX_HUE_PENDULUM` |Disables `RGB_MATRIX_HUE_PENDULUM` |
|
||||
|`#define DISABLE_RGB_MATRIX_HUE_WAVE ` |Disables `RGB_MATRIX_HUE_WAVE ` |
|
||||
|`#define DISABLE_RGB_MATRIX_TYPING_HEATMAP` |Disables `RGB_MATRIX_TYPING_HEATMAP` |
|
||||
|`#define DISABLE_RGB_MATRIX_DIGITAL_RAIN` |Disables `RGB_MATRIX_DIGITAL_RAIN` |
|
||||
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE` |Disables `RGB_MATRIX_SOLID_REACTIVE_SIMPLE` |
|
||||
|
@@ -76,7 +76,7 @@ qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS),
|
||||
};
|
||||
|
||||
// Add tap dance item in place of a key code
|
||||
// Add tap dance item to your keymap in place of a keycode
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// ...
|
||||
TD(TD_ESC_CAPS)
|
||||
@@ -206,20 +206,22 @@ You will need a few things that can be used for 'Quad Function Tap-Dance'.
|
||||
You'll need to add these to the top of your `keymap.c` file, before your keymap.
|
||||
|
||||
```c
|
||||
typedef enum {
|
||||
TD_NONE,
|
||||
TD_UNKNOWN,
|
||||
TD_SINGLE_TAP,
|
||||
TD_SINGLE_HOLD,
|
||||
TD_DOUBLE_TAP,
|
||||
TD_DOUBLE_HOLD,
|
||||
TD_DOUBLE_SINGLE_TAP, // Send two single taps
|
||||
TD_TRIPLE_TAP,
|
||||
TD_TRIPLE_HOLD
|
||||
} td_state_t;
|
||||
|
||||
typedef struct {
|
||||
bool is_press_action;
|
||||
uint8_t state;
|
||||
} tap;
|
||||
|
||||
enum {
|
||||
SINGLE_TAP = 1,
|
||||
SINGLE_HOLD,
|
||||
DOUBLE_TAP,
|
||||
DOUBLE_HOLD,
|
||||
DOUBLE_SINGLE_TAP, // Send two single taps
|
||||
TRIPLE_TAP,
|
||||
TRIPLE_HOLD
|
||||
};
|
||||
td_state_t state;
|
||||
} td_tap_t;
|
||||
|
||||
// Tap dance enums
|
||||
enum {
|
||||
@@ -227,7 +229,7 @@ enum {
|
||||
SOME_OTHER_DANCE
|
||||
};
|
||||
|
||||
uint8_t cur_dance(qk_tap_dance_state_t *state);
|
||||
td_state_t cur_dance(qk_tap_dance_state_t *state);
|
||||
|
||||
// For the x tap dance. Put it here so it can be used in any keymap
|
||||
void x_finished(qk_tap_dance_state_t *state, void *user_data);
|
||||
@@ -261,61 +263,61 @@ Now, at the bottom of your `keymap.c` file, you'll need to add the following:
|
||||
* Letters used in common words as a double. For example 'p' in 'pepper'. If a tap dance function existed on the
|
||||
* letter 'p', the word 'pepper' would be quite frustating to type.
|
||||
*
|
||||
* For the third point, there does exist the 'DOUBLE_SINGLE_TAP', however this is not fully tested
|
||||
* For the third point, there does exist the 'TD_DOUBLE_SINGLE_TAP', however this is not fully tested
|
||||
*
|
||||
*/
|
||||
uint8_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
td_state_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
if (state->count == 1) {
|
||||
if (state->interrupted || !state->pressed) return SINGLE_TAP;
|
||||
if (state->interrupted || !state->pressed) return TD_SINGLE_TAP;
|
||||
// Key has not been interrupted, but the key is still held. Means you want to send a 'HOLD'.
|
||||
else return SINGLE_HOLD;
|
||||
else return TD_SINGLE_HOLD;
|
||||
} else if (state->count == 2) {
|
||||
// DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap
|
||||
// TD_DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap
|
||||
// action when hitting 'pp'. Suggested use case for this return value is when you want to send two
|
||||
// keystrokes of the key, and not the 'double tap' action/macro.
|
||||
if (state->interrupted) return DOUBLE_SINGLE_TAP;
|
||||
else if (state->pressed) return DOUBLE_HOLD;
|
||||
else return DOUBLE_TAP;
|
||||
if (state->interrupted) return TD_DOUBLE_SINGLE_TAP;
|
||||
else if (state->pressed) return TD_DOUBLE_HOLD;
|
||||
else return TD_DOUBLE_TAP;
|
||||
}
|
||||
|
||||
// Assumes no one is trying to type the same letter three times (at least not quickly).
|
||||
// If your tap dance key is 'KC_W', and you want to type "www." quickly - then you will need to add
|
||||
// an exception here to return a 'TRIPLE_SINGLE_TAP', and define that enum just like 'DOUBLE_SINGLE_TAP'
|
||||
// an exception here to return a 'TD_TRIPLE_SINGLE_TAP', and define that enum just like 'TD_DOUBLE_SINGLE_TAP'
|
||||
if (state->count == 3) {
|
||||
if (state->interrupted || !state->pressed) return TRIPLE_TAP;
|
||||
else return TRIPLE_HOLD;
|
||||
} else return 8; // Magic number. At some point this method will expand to work for more presses
|
||||
if (state->interrupted || !state->pressed) return TD_TRIPLE_TAP;
|
||||
else return TD_TRIPLE_HOLD;
|
||||
} else return TD_UNKNOWN;
|
||||
}
|
||||
|
||||
// Create an instance of 'tap' for the 'x' tap dance.
|
||||
static tap xtap_state = {
|
||||
// Create an instance of 'td_tap_t' for the 'x' tap dance.
|
||||
static td_tap_t xtap_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
.state = TD_NONE
|
||||
};
|
||||
|
||||
void x_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
xtap_state.state = cur_dance(state);
|
||||
switch (xtap_state.state) {
|
||||
case SINGLE_TAP: register_code(KC_X); break;
|
||||
case SINGLE_HOLD: register_code(KC_LCTRL); break;
|
||||
case DOUBLE_TAP: register_code(KC_ESC); break;
|
||||
case DOUBLE_HOLD: register_code(KC_LALT); break;
|
||||
case TD_SINGLE_TAP: register_code(KC_X); break;
|
||||
case TD_SINGLE_HOLD: register_code(KC_LCTRL); break;
|
||||
case TD_DOUBLE_TAP: register_code(KC_ESC); break;
|
||||
case TD_DOUBLE_HOLD: register_code(KC_LALT); break;
|
||||
// Last case is for fast typing. Assuming your key is `f`:
|
||||
// For example, when typing the word `buffer`, and you want to make sure that you send `ff` and not `Esc`.
|
||||
// In order to type `ff` when typing fast, the next character will have to be hit within the `TAPPING_TERM`, which by default is 200ms.
|
||||
case DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X);
|
||||
case TD_DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X);
|
||||
}
|
||||
}
|
||||
|
||||
void x_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
switch (xtap_state.state) {
|
||||
case SINGLE_TAP: unregister_code(KC_X); break;
|
||||
case SINGLE_HOLD: unregister_code(KC_LCTRL); break;
|
||||
case DOUBLE_TAP: unregister_code(KC_ESC); break;
|
||||
case DOUBLE_HOLD: unregister_code(KC_LALT);
|
||||
case DOUBLE_SINGLE_TAP: unregister_code(KC_X);
|
||||
case TD_SINGLE_TAP: unregister_code(KC_X); break;
|
||||
case TD_SINGLE_HOLD: unregister_code(KC_LCTRL); break;
|
||||
case TD_DOUBLE_TAP: unregister_code(KC_ESC); break;
|
||||
case TD_DOUBLE_HOLD: unregister_code(KC_LALT);
|
||||
case TD_DOUBLE_SINGLE_TAP: unregister_code(KC_X);
|
||||
}
|
||||
xtap_state.state = 0;
|
||||
xtap_state.state = TD_NONE;
|
||||
}
|
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
@@ -343,9 +345,11 @@ enum td_keycodes {
|
||||
|
||||
// Define a type containing as many tapdance states as you need
|
||||
typedef enum {
|
||||
SINGLE_TAP,
|
||||
SINGLE_HOLD,
|
||||
DOUBLE_SINGLE_TAP
|
||||
TD_NONE,
|
||||
TD_UNKNOWN,
|
||||
TD_SINGLE_TAP,
|
||||
TD_SINGLE_HOLD,
|
||||
TD_DOUBLE_SINGLE_TAP
|
||||
} td_state_t;
|
||||
|
||||
// Create a global instance of the tapdance state type
|
||||
@@ -354,7 +358,7 @@ static td_state_t td_state;
|
||||
// Declare your tapdance functions:
|
||||
|
||||
// Function to determine the current tapdance state
|
||||
uint8_t cur_dance(qk_tap_dance_state_t *state);
|
||||
td_state_t cur_dance(qk_tap_dance_state_t *state);
|
||||
|
||||
// `finished` and `reset` functions for each tapdance keycode
|
||||
void altlp_finished(qk_tap_dance_state_t *state, void *user_data);
|
||||
@@ -365,14 +369,14 @@ Below your `LAYOUT`, define each of the tapdance functions:
|
||||
|
||||
```c
|
||||
// Determine the tapdance state to return
|
||||
uint8_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
td_state_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
if (state->count == 1) {
|
||||
if (state->interrupted || !state->pressed) return SINGLE_TAP;
|
||||
else return SINGLE_HOLD;
|
||||
if (state->interrupted || !state->pressed) return TD_SINGLE_TAP;
|
||||
else return TD_SINGLE_HOLD;
|
||||
}
|
||||
|
||||
if (state->count == 2) return DOUBLE_SINGLE_TAP;
|
||||
else return 3; // Any number higher than the maximum state value you return above
|
||||
if (state->count == 2) return TD_DOUBLE_SINGLE_TAP;
|
||||
else return TD_UNKNOWN; // Any number higher than the maximum state value you return above
|
||||
}
|
||||
|
||||
// Handle the possible states for each tapdance keycode you define:
|
||||
@@ -380,13 +384,13 @@ uint8_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
void altlp_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
td_state = cur_dance(state);
|
||||
switch (td_state) {
|
||||
case SINGLE_TAP:
|
||||
case TD_SINGLE_TAP:
|
||||
register_code16(KC_LPRN);
|
||||
break;
|
||||
case SINGLE_HOLD:
|
||||
case TD_SINGLE_HOLD:
|
||||
register_mods(MOD_BIT(KC_LALT)); // For a layer-tap key, use `layer_on(_MY_LAYER)` here
|
||||
break;
|
||||
case DOUBLE_SINGLE_TAP: // Allow nesting of 2 parens `((` within tapping term
|
||||
case TD_DOUBLE_SINGLE_TAP: // Allow nesting of 2 parens `((` within tapping term
|
||||
tap_code16(KC_LPRN);
|
||||
register_code16(KC_LPRN);
|
||||
}
|
||||
@@ -394,13 +398,13 @@ void altlp_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
|
||||
void altlp_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
switch (td_state) {
|
||||
case SINGLE_TAP:
|
||||
case TD_SINGLE_TAP:
|
||||
unregister_code16(KC_LPRN);
|
||||
break;
|
||||
case SINGLE_HOLD:
|
||||
case TD_SINGLE_HOLD:
|
||||
unregister_mods(MOD_BIT(KC_LALT)); // For a layer-tap key, use `layer_off(_MY_LAYER)` here
|
||||
break;
|
||||
case DOUBLE_SINGLE_TAP:
|
||||
case TD_DOUBLE_SINGLE_TAP:
|
||||
unregister_code16(KC_LPRN);
|
||||
}
|
||||
}
|
||||
@@ -420,17 +424,19 @@ Tap Dance can be used to mimic MO(layer) and TG(layer) functionality. For this e
|
||||
The first step is to include the following code towards the beginning of your `keymap.c`:
|
||||
|
||||
```c
|
||||
// Define a type for as many tap dance states as you need
|
||||
typedef enum {
|
||||
TD_NONE,
|
||||
TD_UNKNOWN,
|
||||
TD_SINGLE_TAP,
|
||||
TD_SINGLE_HOLD,
|
||||
TD_DOUBLE_TAP
|
||||
} td_state_t;
|
||||
|
||||
typedef struct {
|
||||
bool is_press_action;
|
||||
uint8_t state;
|
||||
} tap;
|
||||
|
||||
// Define a type for as many tap dance states as you need
|
||||
enum {
|
||||
SINGLE_TAP = 1,
|
||||
SINGLE_HOLD,
|
||||
DOUBLE_TAP
|
||||
};
|
||||
td_state_t state;
|
||||
} td_tap_t;
|
||||
|
||||
enum {
|
||||
QUOT_LAYR, // Our custom tap dance key; add any other tap dance keys to this enum
|
||||
@@ -439,7 +445,7 @@ enum {
|
||||
// Declare the functions to be used with your tap dance key(s)
|
||||
|
||||
// Function associated with all tap dances
|
||||
uint8_t cur_dance(qk_tap_dance_state_t *state);
|
||||
td_state_t cur_dance(qk_tap_dance_state_t *state);
|
||||
|
||||
// Functions associated with individual tap dances
|
||||
void ql_finished(qk_tap_dance_state_t *state, void *user_data);
|
||||
@@ -450,31 +456,31 @@ Towards the bottom of your `keymap.c`, include the following code:
|
||||
|
||||
```c
|
||||
// Determine the current tap dance state
|
||||
uint8_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
td_state_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
if (state->count == 1) {
|
||||
if (!state->pressed) return SINGLE_TAP;
|
||||
else return SINGLE_HOLD;
|
||||
} else if (state->count == 2) return DOUBLE_TAP;
|
||||
else return 8;
|
||||
if (!state->pressed) return TD_SINGLE_TAP;
|
||||
else return TD_SINGLE_HOLD;
|
||||
} else if (state->count == 2) return TD_DOUBLE_TAP;
|
||||
else return TD_UNKNOWN;
|
||||
}
|
||||
|
||||
// Initialize tap structure associated with example tap dance key
|
||||
static tap ql_tap_state = {
|
||||
static td_tap_t ql_tap_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
.state = TD_NONE
|
||||
};
|
||||
|
||||
// Functions that control what our tap dance key does
|
||||
void ql_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
ql_tap_state.state = cur_dance(state);
|
||||
switch (ql_tap_state.state) {
|
||||
case SINGLE_TAP:
|
||||
case TD_SINGLE_TAP:
|
||||
tap_code(KC_QUOT);
|
||||
break;
|
||||
case SINGLE_HOLD:
|
||||
case TD_SINGLE_HOLD:
|
||||
layer_on(_MY_LAYER);
|
||||
break;
|
||||
case DOUBLE_TAP:
|
||||
case TD_DOUBLE_TAP:
|
||||
// Check to see if the layer is already set
|
||||
if (layer_state_is(_MY_LAYER)) {
|
||||
// If already set, then switch it off
|
||||
@@ -489,10 +495,10 @@ void ql_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
|
||||
void ql_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
// If the key was held down and now is released then switch off the layer
|
||||
if (ql_tap_state.state == SINGLE_HOLD) {
|
||||
if (ql_tap_state.state == TD_SINGLE_HOLD) {
|
||||
layer_off(_MY_LAYER);
|
||||
}
|
||||
ql_tap_state.state = 0;
|
||||
ql_tap_state.state = TD_NONE;
|
||||
}
|
||||
|
||||
// Associate our tap dance key with its functionality
|
||||
@@ -505,7 +511,7 @@ The above code is similar to that used in previous examples. The one point to no
|
||||
|
||||
The use of `cur_dance()` and `ql_tap_state` mirrors the above examples.
|
||||
|
||||
The `case:SINGLE_TAP` in `ql_finished` is similar to the above examples. The `SINGLE_HOLD` case works in conjunction with `ql_reset()` to switch to `_MY_LAYER` while the tap dance key is held, and to switch away from `_MY_LAYER` when the key is released. This mirrors the use of `MO(_MY_LAYER)`. The `DOUBLE_TAP` case works by checking whether `_MY_LAYER` is the active layer, and toggling it on or off accordingly. This mirrors the use of `TG(_MY_LAYER)`.
|
||||
The `case: TD_SINGLE_TAP` in `ql_finished` is similar to the above examples. The `TD_SINGLE_HOLD` case works in conjunction with `ql_reset()` to switch to `_MY_LAYER` while the tap dance key is held, and to switch away from `_MY_LAYER` when the key is released. This mirrors the use of `MO(_MY_LAYER)`. The `TD_DOUBLE_TAP` case works by checking whether `_MY_LAYER` is the active layer, and toggling it on or off accordingly. This mirrors the use of `TG(_MY_LAYER)`.
|
||||
|
||||
`tap_dance_actions[]` works similar to the above examples. Note that I used `ACTION_TAP_DANCE_FN_ADVANCED_TIME()` instead of `ACTION_TAP_DANCE_FN_ADVANCED()`. This is because I like my `TAPPING_TERM` to be short (\~175ms) for my non-tap-dance keys but find that this is too quick for me to reliably complete tap dance actions - thus the increased time of 275ms here.
|
||||
|
||||
|
@@ -50,11 +50,13 @@ For convenience, QMK includes some Mod-Tap shortcuts to make common combinations
|
||||
|
||||
## Caveats
|
||||
|
||||
Unfortunately, these keycodes cannot be used in Mod-Taps or Layer-Taps, since any modifiers specified in the keycode are ignored.
|
||||
Currently, the `kc` argument of `MT()` is limited to the [Basic Keycode set](keycodes_basic.md), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. This is because QMK uses 16-bit keycodes, of which 3 bits are used for the function identifier, 1 bit for selecting right or left mods, and 4 bits to tell which mods are used, leaving only 8 bits for the keycode. Additionally, if at least one right-handed modifier is specified in a Mod-Tap, it will cause all modifiers specified to become right-handed, so it is not possible to mix and match the two - for example, Left Control and Right Shift would become Right Control and Right Shift.
|
||||
|
||||
Additionally, you may run into issues when using Remote Desktop Connection on Windows. Because these codes send shift very fast, Remote Desktop may miss the codes.
|
||||
Expanding this would be complicated, at best. Moving to a 32-bit keycode would solve a lot of this, but would double the amount of space that the keymap matrix uses. And it could potentially cause issues, too. If you need to apply modifiers to your tapped keycode, [Tap Dance](feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys) can be used to accomplish this.
|
||||
|
||||
To fix this, open Remote Desktop Connection, click on "Show Options", open the the "Local Resources" tab. In the keyboard section, change the drop down to "On this Computer". This will fix the issue, and allow the characters to work correctly.
|
||||
You may also run into issues when using Remote Desktop Connection on Windows. Because these keycodes send key events faster than a human, Remote Desktop could miss them.
|
||||
To fix this, open Remote Desktop Connection, click on "Show Options", open the the "Local Resources" tab, and in the keyboard section, change the drop down to "On this Computer". This will fix the issue, and allow the characters to work correctly.
|
||||
It can also be mitigated by increasing [`TAP_CODE_DELAY`](config_options.md#behaviors-that-can-be-configured).
|
||||
|
||||
## Other Resources
|
||||
|
||||
|
@@ -70,6 +70,8 @@ Install the QMK CLI by running:
|
||||
|
||||
### ** Linux/WSL **
|
||||
|
||||
?> **Note for WSL users**: By default, the installation process will clone the QMK repository into your WSL home directory, but if you have cloned manually, ensure that it is located inside the WSL instance instead of the Windows filesystem (ie. not in `/mnt`), as accessing it is currently [extremely slow](https://github.com/microsoft/WSL/issues/4197).
|
||||
|
||||
#### Prerequisites
|
||||
|
||||
You will need to install Git and Python. It's very likely that you already have both, but if not, one of the following commands should install them:
|
||||
|
@@ -4,9 +4,9 @@
|
||||
|
||||
Split ergonomics meets productivity. Breeze Rev1 is a split keyboard with 6×4 keys, 4 key thumb cluster, arrow keys, and a 6 key macro cluster, with ortholinear column-staggered.
|
||||
|
||||
* Keyboard Maintainer: [Eithan Shavit](https://github.com/eithanshavit)
|
||||
* Keyboard Maintainer: [AfternoonLabs](https://github.com/afternoonlabs)
|
||||
* Hardware Supported: Breeze Rev1 PCB
|
||||
* Hardware Availability: Coming soon
|
||||
* Hardware Availability: [store.afternoonlab.com](https://store.afternoonlabs.com)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
|
@@ -9,8 +9,8 @@ BOOTLOADER = caterina
|
||||
#
|
||||
SPLIT_KEYBOARD = yes
|
||||
BOOTMAGIC_ENABLE = lite
|
||||
MOUSEKEY_ENABLE = no # Mouse keys
|
||||
EXTRAKEY_ENABLE = no # Audio control and System control
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = yes # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
|
22
keyboards/afternoonlabs/oceanbreeze/config.h
Normal file
22
keyboards/afternoonlabs/oceanbreeze/config.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Copyright 2021 Afternoon Labs
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
#define NO_ACTION_MACRO
|
||||
#define NO_ACTION_FUNCTION
|
71
keyboards/afternoonlabs/oceanbreeze/keymaps/default/keymap.c
Normal file
71
keyboards/afternoonlabs/oceanbreeze/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,71 @@
|
||||
/* Copyright 2021 Afternoon Labs
|
||||
*
|
||||
* 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
|
||||
|
||||
enum layer_names {
|
||||
_MAIN,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
};
|
||||
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_MAIN] = LAYOUT(
|
||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_GRV,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_UP,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_DOWN, KC_RIGHT,
|
||||
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX
|
||||
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||
),
|
||||
|
||||
[_LOWER] = LAYOUT(
|
||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
|
||||
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
|
||||
_______, _______, _______, _______, _______, _______, _______, _______
|
||||
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||
),
|
||||
|
||||
[_RAISE] = LAYOUT(
|
||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______,
|
||||
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
|
||||
_______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT
|
||||
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||
)
|
||||
};
|
@@ -0,0 +1,5 @@
|
||||
# Default Ocean Breeze Layout
|
||||
|
||||

|
||||
|
||||
This is the default suggested layout for Ocean Breeze Split Keyboard.
|
17
keyboards/afternoonlabs/oceanbreeze/oceanbreeze.c
Normal file
17
keyboards/afternoonlabs/oceanbreeze/oceanbreeze.c
Normal file
@@ -0,0 +1,17 @@
|
||||
/* Copyright 2021 Afternoon Labs
|
||||
*
|
||||
* 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 "oceanbreeze.h"
|
21
keyboards/afternoonlabs/oceanbreeze/oceanbreeze.h
Normal file
21
keyboards/afternoonlabs/oceanbreeze/oceanbreeze.h
Normal file
@@ -0,0 +1,21 @@
|
||||
/* Copyright 2021 Afternoon Labs
|
||||
*
|
||||
* 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
|
||||
|
||||
#ifdef KEYBOARD_afternoonlabs_oceanbreeze_rev1
|
||||
# include "rev1.h"
|
||||
#endif
|
49
keyboards/afternoonlabs/oceanbreeze/rev1/config.h
Normal file
49
keyboards/afternoonlabs/oceanbreeze/rev1/config.h
Normal file
@@ -0,0 +1,49 @@
|
||||
/* Copyright 2021 Afternoon Labs
|
||||
*
|
||||
* 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
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x616C
|
||||
#define PRODUCT_ID 0x0003
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER AfternoonLabs
|
||||
#define PRODUCT OceanBreeze
|
||||
|
||||
/* key matrix size */
|
||||
// Rows are doubled-up
|
||||
#define MATRIX_ROWS 12
|
||||
#define MATRIX_COLS 9
|
||||
|
||||
// wiring of each half
|
||||
#define MATRIX_ROW_PINS \
|
||||
{ F4, F5, F6, F7, B1, B6 }
|
||||
#define MATRIX_COL_PINS \
|
||||
{ B2, D1, D0, D4, C6, D7, E6, B4, B5 }
|
||||
|
||||
#define SPLIT_HAND_PIN B3
|
||||
|
||||
/* Set 0 if debouncing isn't needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
#define SOFT_SERIAL_PIN D2
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
#define BOOTMAGIC_LITE_ROW_RIGHT 0
|
||||
#define BOOTMAGIC_LITE_COLUMN_RIGHT 5
|
||||
#define BOOTMAGIC_LITE_ROW_LEFT 0
|
||||
#define BOOTMAGIC_LITE_COLUMN_LEFT 5
|
86
keyboards/afternoonlabs/oceanbreeze/rev1/info.json
Normal file
86
keyboards/afternoonlabs/oceanbreeze/rev1/info.json
Normal file
@@ -0,0 +1,86 @@
|
||||
{
|
||||
"keyboard_name": "OceanBreeze",
|
||||
"url": "afternoonlabs.com",
|
||||
"productId": "0x0003",
|
||||
"maintainer": "afternoonlabs",
|
||||
"width": 19,
|
||||
"height": 6,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"x":0, "y":0.375},
|
||||
{"x":1, "y":0.375},
|
||||
{"x":2, "y":0.125},
|
||||
{"x":3, "y":0},
|
||||
{"x":4, "y":0.125},
|
||||
{"x":5, "y":0.25},
|
||||
{"x":9.75, "y":0.25},
|
||||
{"x":10.75, "y":0.125},
|
||||
{"x":11.75, "y":0},
|
||||
{"x":12.75, "y":0.125},
|
||||
{"x":13.75, "y":0.375},
|
||||
{"x":14.75, "y":0.375},
|
||||
{"x":16, "y":0.375},
|
||||
{"x":17, "y":0.375},
|
||||
{"x":18, "y":0.375},
|
||||
|
||||
{"x":0, "y":1.375},
|
||||
{"x":1, "y":1.375},
|
||||
{"x":2, "y":1.125},
|
||||
{"x":3, "y":1},
|
||||
{"x":4, "y":1.125},
|
||||
{"x":5, "y":1.25},
|
||||
{"x":9.75, "y":1.25},
|
||||
{"x":10.75, "y":1.125},
|
||||
{"x":11.75, "y":1},
|
||||
{"x":12.75, "y":1.125},
|
||||
{"x":13.75, "y":1.375},
|
||||
{"x":14.75, "y":1.375},
|
||||
{"x":16, "y":1.375},
|
||||
{"x":17, "y":1.375},
|
||||
{"x":18, "y":1.375},
|
||||
|
||||
{"x":0, "y":2.375},
|
||||
{"x":1, "y":2.375},
|
||||
{"x":2, "y":2.125},
|
||||
{"x":3, "y":2},
|
||||
{"x":4, "y":2.125},
|
||||
{"x":5, "y":2.25},
|
||||
{"x":9.75, "y":2.25},
|
||||
{"x":10.75, "y":2.125},
|
||||
{"x":11.75, "y":2},
|
||||
{"x":12.75, "y":2.125},
|
||||
{"x":13.75, "y":2.375},
|
||||
{"x":14.75, "y":2.375},
|
||||
{"x":17, "y":2.375},
|
||||
|
||||
{"x":0, "y":3.375},
|
||||
{"x":1, "y":3.375},
|
||||
{"x":2, "y":3.125},
|
||||
{"x":3, "y":3},
|
||||
{"x":4, "y":3.125},
|
||||
{"x":5, "y":3.25},
|
||||
{"x":6.25, "y":3.75},
|
||||
{"x":8.5, "y":3.75},
|
||||
{"x":9.75, "y":3.25},
|
||||
{"x":10.75, "y":3.125},
|
||||
{"x":11.75, "y":3},
|
||||
{"x":12.75, "y":3.125},
|
||||
{"x":13.75, "y":3.375},
|
||||
{"x":14.75, "y":3.375},
|
||||
{"x":16, "y":3.375},
|
||||
{"x":17, "y":3.375},
|
||||
{"x":18, "y":3.375},
|
||||
|
||||
{"x":2.5, "y":4.25},
|
||||
{"x":3.5, "y":4.25},
|
||||
{"x":4.5, "y":4.5},
|
||||
{"x":6.25, "y":4.75},
|
||||
{"x":8.5, "y":4.75},
|
||||
{"x":10.25, "y":4.5},
|
||||
{"x":11.25, "y":4.25},
|
||||
{"x":12.25, "y":4.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
15
keyboards/afternoonlabs/oceanbreeze/rev1/readme.md
Normal file
15
keyboards/afternoonlabs/oceanbreeze/rev1/readme.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# Breeze
|
||||
|
||||

|
||||
|
||||
Special Edition of the [Breeze](https://afternoonlabs.com). This one has two 1Us instead of the larger 2U on the thumb cluster.
|
||||
|
||||
* Keyboard Maintainer: [AfternoonLabs](https://github.com/afternoonlabs)
|
||||
* Hardware Supported: Ocean Breeze Rev1 PCB
|
||||
* Hardware Availability: [store.afternoonlab.com](https://store.afternoonlabs.com)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make afternoonlabs/oceanbreeze/rev1:default
|
||||
|
||||
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).
|
17
keyboards/afternoonlabs/oceanbreeze/rev1/rev1.c
Normal file
17
keyboards/afternoonlabs/oceanbreeze/rev1/rev1.c
Normal file
@@ -0,0 +1,17 @@
|
||||
/* Copyright 2021 Afternoon Labs
|
||||
*
|
||||
* 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 "oceanbreeze.h"
|
44
keyboards/afternoonlabs/oceanbreeze/rev1/rev1.h
Normal file
44
keyboards/afternoonlabs/oceanbreeze/rev1/rev1.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Copyright 2021 Afternoon Labs
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "oceanbreeze.h"
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define XXX KC_NO
|
||||
|
||||
#define LAYOUT( \
|
||||
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, MC0, MC1, MC2, \
|
||||
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, MC3, MC4, MC5, \
|
||||
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, AUP, \
|
||||
L30, L31, L32, L33, L34, L35, LT4, RT1, R30, R31, R32, R33, R34, R35, ALT, ADN, ART, \
|
||||
LT0, LT1, LT2, LT3, RT2, RT3, RT4, RT5 \
|
||||
) { \
|
||||
{ L05, L04, L03, L02, L01, L00, XXX, XXX, XXX }, \
|
||||
{ L15, L14, L13, L12, L11, L10, XXX, XXX, XXX }, \
|
||||
{ L25, L24, L23, L22, L21, L20, XXX, XXX, XXX }, \
|
||||
{ L35, L34, L33, L32, L31, L30, XXX, XXX, XXX }, \
|
||||
{ LT3, LT2, LT1, LT0, XXX, XXX, XXX, XXX, XXX }, \
|
||||
{ LT4, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX }, \
|
||||
{ R00, R01, R02, R03, R04, R05, MC0, MC1, MC2 }, \
|
||||
{ R10, R11, R12, R13, R14, R15, MC3, MC4, MC5 }, \
|
||||
{ R20, R21, R22, R23, R24, R25, XXX, AUP, XXX }, \
|
||||
{ R30, R31, R32, R33, R34, R35, ALT, ADN, ART }, \
|
||||
{ RT2, RT3, RT4, RT5, XXX, XXX, XXX, XXX, XXX }, \
|
||||
{ RT1, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \
|
||||
}
|
23
keyboards/afternoonlabs/oceanbreeze/rev1/rules.mk
Normal file
23
keyboards/afternoonlabs/oceanbreeze/rev1/rules.mk
Normal file
@@ -0,0 +1,23 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = caterina
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = yes # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = no # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
SPLIT_KEYBOARD = yes
|
48
keyboards/anavi/macropad2/keymaps/git/keymap.c
Normal file
48
keyboards/anavi/macropad2/keymaps/git/keymap.c
Normal file
@@ -0,0 +1,48 @@
|
||||
/* Copyright 2021 Leon Anavi <leon@anavi.org>
|
||||
*
|
||||
* 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
|
||||
|
||||
enum custom_keycodes {
|
||||
GITCOMMIT = SAFE_RANGE,
|
||||
GITPUSH
|
||||
};
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
// Set backlight to the maximum brightness
|
||||
backlight_level(2);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case GITCOMMIT:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("git commit -s\n");
|
||||
}
|
||||
break;
|
||||
case GITPUSH:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("git push\n");
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
GITCOMMIT, GITPUSH
|
||||
)
|
||||
};
|
@@ -39,4 +39,15 @@ led_config_t g_led_config = {
|
||||
2, 2, 2, 2, 2, 2
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
void suspend_power_down_kb(void) {
|
||||
rgb_matrix_set_suspend_state(true);
|
||||
suspend_power_down_user();
|
||||
}
|
||||
|
||||
void suspend_wakeup_init_kb(void) {
|
||||
rgb_matrix_set_suspend_state(false);
|
||||
suspend_wakeup_init_user();
|
||||
}
|
||||
#endif
|
||||
|
@@ -50,3 +50,6 @@
|
||||
#ifdef RGB_DI_PIN
|
||||
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
|
||||
#endif
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
|
||||
#endif
|
||||
|
@@ -26,34 +26,19 @@ led_config_t g_led_config = { {
|
||||
{ 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 }
|
||||
}, {
|
||||
// LED Index to Physical Position
|
||||
//I have no idea how to calculate this based on a templete, nor do have a good enough ruler to measure this.
|
||||
// Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
|
||||
{ 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, { 225, 0 },
|
||||
// Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
|
||||
{ 4, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, { 225, 16 },
|
||||
// Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up
|
||||
{ 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 225, 32 },
|
||||
// LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
|
||||
{ 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 225, 48 },
|
||||
// Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right
|
||||
{ 2, 64 }, { 21, 64 }, { 39, 64 }, { 94, 64 }, { 148, 64 }, { 163, 64 }, { 178, 64 }, { 193, 64 }, { 208, 64 }, { 225, 64 },
|
||||
// UNDERGLOW
|
||||
{ 185, 45 }, { 160, 45 }, { 125, 45 }, { 95, 45 }, { 60, 45 }, { 25, 45 }
|
||||
{ 0, 0}, { 15, 0}, { 30, 0}, { 45, 0}, { 60, 0}, { 75, 0}, { 90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {202, 0}, {225, 0}, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
|
||||
{ 4, 16}, { 22, 16}, { 37, 16}, { 52, 16}, { 67, 16}, { 82, 16}, { 97, 16}, {112, 16}, {127, 16}, {142, 16}, {157, 16}, {172, 16}, {187, 16}, {206, 16}, {225, 16}, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
|
||||
{ 6, 32}, { 26, 32}, { 41, 32}, { 56, 32}, { 71, 32}, { 86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {176, 32}, {201, 32}, {225, 32}, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up
|
||||
{ 9, 48}, { 34, 48}, { 49, 48}, { 64, 48}, { 79, 48}, { 94, 48}, {109, 48}, {124, 48}, {139, 48}, {154, 48}, {169, 48}, {189, 48}, { 10, 48}, {225, 48}, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
|
||||
{ 2, 64}, { 21, 64}, { 39, 64}, { 94, 64}, {148, 64}, {163, 64}, {178, 64}, {193, 64}, {208, 64}, {225, 64}, // Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right
|
||||
{185, 45}, {160, 45}, {125, 45}, { 95, 45}, { 60, 45}, { 25, 45} // UNDERGLOW
|
||||
}, {
|
||||
// LED Index to Flag
|
||||
//need to recheck what should be a modifier
|
||||
|
||||
// Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
// Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
// Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
// LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
|
||||
// Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right
|
||||
1, 1, 1, 4, 1, 1, 1, 1, 1, 1,
|
||||
// UNDERGLOW
|
||||
2, 2, 2, 2, 2, 2
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
|
||||
1, 1, 1, 4, 1, 1, 1, 1, 1, 1, // Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right
|
||||
2, 2, 2, 2, 2, 2 // UNDERGLOW
|
||||
} };
|
||||
#endif
|
||||
|
@@ -24,7 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define PRODUCT_ID 0xEF6F
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER KPRepublic
|
||||
#define PRODUCT bm68rgb
|
||||
#define PRODUCT BM68 RGB
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
@@ -56,30 +56,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
// The number of LEDs connected
|
||||
#define DRIVER_LED_TOTAL 74
|
||||
#ifdef RGB_DI_PIN
|
||||
#define RGBLED_NUM 74
|
||||
//# define RGBLIGHT_HUE_STEP 8
|
||||
//# define RGBLIGHT_SAT_STEP 8
|
||||
//# define RGBLIGHT_VAL_STEP 8
|
||||
//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
||||
//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||
/*== all animations enable ==*/
|
||||
//# define RGBLIGHT_ANIMATIONS
|
||||
/*== or choose animations ==*/
|
||||
//# define RGBLIGHT_EFFECT_BREATHING
|
||||
//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||
//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
//# define RGBLIGHT_EFFECT_SNAKE
|
||||
//# define RGBLIGHT_EFFECT_KNIGHT
|
||||
//# define RGBLIGHT_EFFECT_CHRISTMAS
|
||||
//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
//# define RGBLIGHT_EFFECT_RGB_TEST
|
||||
//# define RGBLIGHT_EFFECT_ALTERNATING
|
||||
/*== customize breathing effect ==*/
|
||||
/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
|
||||
//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
|
||||
/*==== use exp() and sin() ====*/
|
||||
//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
|
||||
//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
|
||||
#define RGBLED_NUM 74
|
||||
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
|
||||
#endif
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
|
@@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
};
|
||||
|
||||
/*
|
||||
Templete
|
||||
Template
|
||||
[ ] = LAYOUT_65_ansi(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
|
55
keyboards/bm68rgb/keymaps/via/keymap.c
Normal file
55
keyboards/bm68rgb/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,55 @@
|
||||
/* Copyright 2021 peepeetee
|
||||
*
|
||||
* 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
|
||||
|
||||
// Defines names for use in layer keycodes and the keymap
|
||||
// enum layer_names {
|
||||
// _BASE,
|
||||
// _FN
|
||||
// };
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_65_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_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_HOME,
|
||||
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_LSFT, KC_UP, KC_PGDN,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1),KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_65_ansi(
|
||||
KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
||||
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
[2] = LAYOUT_65_ansi(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
[3] = LAYOUT_65_ansi(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
};
|
1
keyboards/bm68rgb/keymaps/via/readme.md
Normal file
1
keyboards/bm68rgb/keymaps/via/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default VIA keymap for bm68rgb
|
1
keyboards/bm68rgb/keymaps/via/rules.mk
Normal file
1
keyboards/bm68rgb/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
@@ -7,7 +7,7 @@ BOOTLOADER = atmel-dfu
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||
BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
@@ -22,6 +22,6 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
RGB_MATRIX_ENABLE = yes
|
||||
RGB_MATRIX_DRIVER = WS2812
|
||||
#LTO_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
||||
|
||||
LAYOUTS = 65_ansi
|
||||
|
@@ -58,6 +58,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
#define DRIVER_LED_TOTAL 24 // Number of LEDs
|
||||
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
@@ -35,4 +35,15 @@ led_config_t g_led_config = { {
|
||||
LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
|
||||
LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL
|
||||
} };
|
||||
|
||||
|
||||
void suspend_power_down_kb(void) {
|
||||
rgb_matrix_set_suspend_state(true);
|
||||
suspend_power_down_user();
|
||||
}
|
||||
|
||||
void suspend_wakeup_init_kb(void) {
|
||||
rgb_matrix_set_suspend_state(false);
|
||||
suspend_wakeup_init_user();
|
||||
}
|
||||
#endif
|
||||
|
14
keyboards/cherrybstudio/cb87/cb87.c
Normal file
14
keyboards/cherrybstudio/cb87/cb87.c
Normal file
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
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 "cb87.h"
|
73
keyboards/cherrybstudio/cb87/cb87.h
Normal file
73
keyboards/cherrybstudio/cb87/cb87.h
Normal file
@@ -0,0 +1,73 @@
|
||||
/*
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define LAYOUT_all( \
|
||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K100, K101, K102, K103, K104, K105, \
|
||||
K106, K107, K108, K109, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K300, K301, K302, \
|
||||
K303, K304, K305, K306, K307, K308, K309, K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, \
|
||||
K500, K501, K502, K503, K504, K505, K506, K507, K508, K509, K600, K601, K602, K603, \
|
||||
K604, K605, K606, K607, K608, K609, K700, K701, K702, K703, K704, K705, K706, K707, \
|
||||
K708, K709, K800, K801, K802, K803, K804, K805, K806, K807, K808 \
|
||||
) { \
|
||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009 }, \
|
||||
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109 }, \
|
||||
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209 }, \
|
||||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309 }, \
|
||||
{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409 }, \
|
||||
{ K500, K501, K502, K503, K504, K505, K506, K507, K508, K509 }, \
|
||||
{ K600, K601, K602, K603, K604, K605, K606, K607, K608, K609 }, \
|
||||
{ K700, K701, K702, K703, K704, K705, K706, K707, K708, K709 }, \
|
||||
{ K800, K801, K802, K803, K804, K805, K806, K807, K808, KC_NO } \
|
||||
}
|
||||
|
||||
#define LAYOUT_tkl_ansi( \
|
||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K100, K101, K102, K103, K104, K105, \
|
||||
K106, K107, K108, K109, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K300, K301, K302, \
|
||||
K303, K304, K305, K306, K307, K308, K309, K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, \
|
||||
K500, K501, K502, K503, K504, K505, K506, K507, K508, K509, K600, K601, K603, \
|
||||
K604, K606, K607, K608, K609, K700, K701, K702, K703, K704, K705, K706, K707, \
|
||||
K708, K709, K800, K801, K802, K803, K804, K805, K806, K807, K808 \
|
||||
) { \
|
||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009 }, \
|
||||
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109 }, \
|
||||
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209 }, \
|
||||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309 }, \
|
||||
{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409 }, \
|
||||
{ K500, K501, K502, K503, K504, K505, K506, K507, K508, K509 }, \
|
||||
{ K600, K601, KC_NO, K603, K604, KC_NO, K606, K607, K608, K609 }, \
|
||||
{ K700, K701, K702, K703, K704, K705, K706, K707, K708, K709 }, \
|
||||
{ K800, K801, K802, K803, K804, K805, K806, K807, K808, KC_NO } \
|
||||
}
|
||||
|
||||
#define LAYOUT_tkl_iso( \
|
||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K100, K101, K102, K103, K104, K105, \
|
||||
K106, K107, K108, K109, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K300, K301, K302, \
|
||||
K303, K304, K305, K306, K307, K308, K309, K400, K401, K402, K403, K404, K405, K407, K408, K409, \
|
||||
K500, K501, K502, K503, K504, K505, K506, K507, K508, K509, K600, K601, K602, K603, \
|
||||
K604, K605, K606, K607, K608, K609, K700, K701, K702, K703, K704, K705, K706, K707, \
|
||||
K708, K709, K800, K801, K802, K803, K804, K805, K806, K807, K808 \
|
||||
) { \
|
||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009 }, \
|
||||
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109 }, \
|
||||
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209 }, \
|
||||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309 }, \
|
||||
{ K400, K401, K402, K403, K404, K405, KC_NO, K407, K408, K409 }, \
|
||||
{ K500, K501, K502, K503, K504, K505, K506, K507, K508, K509 }, \
|
||||
{ K600, K601, K602, K603, K604, K605, K606, K607, K608, K609 }, \
|
||||
{ K700, K701, K702, K703, K704, K705, K706, K707, K708, K709 }, \
|
||||
{ K800, K801, K802, K803, K804, K805, K806, K807, K808, KC_NO } \
|
||||
}
|
63
keyboards/cherrybstudio/cb87/config.h
Normal file
63
keyboards/cherrybstudio/cb87/config.h
Normal file
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x4342 // CB
|
||||
#define PRODUCT_ID 0x8787
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER CherryB Studio
|
||||
#define PRODUCT CB87
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 9
|
||||
#define MATRIX_COLS 10
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
* 0 1 2 3 4 5 6 7 8 9
|
||||
*/
|
||||
#define MATRIX_ROW_PINS { B0, B1, B2, B3, B7, D0, D1, D2, D3 }
|
||||
#define MATRIX_COL_PINS { D5, D4, D6, D7, B4, B5, F5, C6, C7, F7 }
|
||||
//#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
#define BACKLIGHT_PIN B6
|
||||
#ifdef BACKLIGHT_PIN
|
||||
#define BACKLIGHT_LEVELS 3
|
||||
#endif
|
||||
|
||||
#define LED_CAPS_LOCK_PIN F0
|
||||
|
||||
/* Set 0 if debouncing isn't needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
#define RGB_DI_PIN E6
|
||||
#ifdef RGB_DI_PIN
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 22 /* 16 Bottom 6 top*/
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#endif
|
295
keyboards/cherrybstudio/cb87/info.json
Normal file
295
keyboards/cherrybstudio/cb87/info.json
Normal file
@@ -0,0 +1,295 @@
|
||||
{
|
||||
"keyboard_name": "CB87",
|
||||
"url": "https://discord.gg/qVwv3gcq83",
|
||||
"maintainer": "duongaanh",
|
||||
"width": 18.25,
|
||||
"height": 6.5,
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"label":"Esc", "x":0, "y":0},
|
||||
{"label":"F1", "x":2, "y":0},
|
||||
{"label":"F2", "x":3, "y":0},
|
||||
{"label":"F3", "x":4, "y":0},
|
||||
{"label":"F4", "x":5, "y":0},
|
||||
{"label":"F5", "x":6.5, "y":0},
|
||||
{"label":"F6", "x":7.5, "y":0},
|
||||
{"label":"F7", "x":8.5, "y":0},
|
||||
{"label":"F8", "x":9.5, "y":0},
|
||||
{"label":"F9", "x":11, "y":0},
|
||||
{"label":"F10", "x":12, "y":0},
|
||||
{"label":"F11", "x":13, "y":0},
|
||||
{"label":"F12", "x":14, "y":0},
|
||||
{"label":"PrtSc", "x":15.25, "y":0},
|
||||
{"label":"Scroll Lock", "x":16.25, "y":0},
|
||||
{"label":"Pause", "x":17.25, "y":0},
|
||||
{"label":"~", "x":0, "y":1.5},
|
||||
{"label":"1", "x":1, "y":1.5},
|
||||
{"label":"2", "x":2, "y":1.5},
|
||||
{"label":"3", "x":3, "y":1.5},
|
||||
{"label":"4", "x":4, "y":1.5},
|
||||
{"label":"5", "x":5, "y":1.5},
|
||||
{"label":"6", "x":6, "y":1.5},
|
||||
{"label":"7", "x":7, "y":1.5},
|
||||
{"label":"8", "x":8, "y":1.5},
|
||||
{"label":"9", "x":9, "y":1.5},
|
||||
{"label":"0", "x":10, "y":1.5},
|
||||
{"label":"-", "x":11, "y":1.5},
|
||||
{"label":"=", "x":12, "y":1.5},
|
||||
{"label":"Backspace", "x":13, "y":1.5, "w":2},
|
||||
{"label":"Insert", "x":15.25, "y":1.5},
|
||||
{"label":"Home", "x":16.25, "y":1.5},
|
||||
{"label":"PgUp", "x":17.25, "y":1.5},
|
||||
{"label":"Tab", "x":0, "y":2.5, "w":1.5},
|
||||
{"label":"Q", "x":1.5, "y":2.5},
|
||||
{"label":"W", "x":2.5, "y":2.5},
|
||||
{"label":"E", "x":3.5, "y":2.5},
|
||||
{"label":"R", "x":4.5, "y":2.5},
|
||||
{"label":"T", "x":5.5, "y":2.5},
|
||||
{"label":"Y", "x":6.5, "y":2.5},
|
||||
{"label":"U", "x":7.5, "y":2.5},
|
||||
{"label":"I", "x":8.5, "y":2.5},
|
||||
{"label":"O", "x":9.5, "y":2.5},
|
||||
{"label":"P", "x":10.5, "y":2.5},
|
||||
{"label":"[", "x":11.5, "y":2.5},
|
||||
{"label":"]", "x":12.5, "y":2.5},
|
||||
{"label":"\\", "x":13.5, "y":2.5, "w":1.5},
|
||||
{"label":"Delete", "x":15.25, "y":2.5},
|
||||
{"label":"End", "x":16.25, "y":2.5},
|
||||
{"label":"PgDn", "x":17.25, "y":2.5},
|
||||
{"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
|
||||
{"label":"A", "x":1.75, "y":3.5},
|
||||
{"label":"S", "x":2.75, "y":3.5},
|
||||
{"label":"D", "x":3.75, "y":3.5},
|
||||
{"label":"F", "x":4.75, "y":3.5},
|
||||
{"label":"G", "x":5.75, "y":3.5},
|
||||
{"label":"H", "x":6.75, "y":3.5},
|
||||
{"label":"J", "x":7.75, "y":3.5},
|
||||
{"label":"K", "x":8.75, "y":3.5},
|
||||
{"label":"L", "x":9.75, "y":3.5},
|
||||
{"label":";", "x":10.75, "y":3.5},
|
||||
{"label":"'", "x":11.75, "y":3.5},
|
||||
{"label":"ISO", "x":12.75, "y":3.5},
|
||||
{"label":"Enter", "x":13.75, "y":3.5, "w":1.25},
|
||||
{"label":"Shift", "x":0, "y":4.5, "w":1.25},
|
||||
{"label":"ISO", "x":1.25, "y":4.5},
|
||||
{"label":"Z", "x":2.25, "y":4.5},
|
||||
{"label":"X", "x":3.25, "y":4.5},
|
||||
{"label":"C", "x":4.25, "y":4.5},
|
||||
{"label":"V", "x":5.25, "y":4.5},
|
||||
{"label":"B", "x":6.25, "y":4.5},
|
||||
{"label":"N", "x":7.25, "y":4.5},
|
||||
{"label":"M", "x":8.25, "y":4.5},
|
||||
{"label":",", "x":9.25, "y":4.5},
|
||||
{"label":".", "x":10.25, "y":4.5},
|
||||
{"label":"/", "x":11.25, "y":4.5},
|
||||
{"label":"Shift", "x":12.25, "y":4.5, "w":2.75},
|
||||
{"label":"Up", "x":16.25, "y":4.5},
|
||||
{"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
|
||||
{"label":"Win", "x":1.25, "y":5.5, "w":1.25},
|
||||
{"label":"Alt", "x":2.5, "y":5.5, "w":1.25},
|
||||
{"label":"Space", "x":3.75, "y":5.5, "w":6.25},
|
||||
{"label":"Alt", "x":10, "y":5.5, "w":1.25},
|
||||
{"label":"Win", "x":11.25, "y":5.5, "w":1.25},
|
||||
{"label":"App", "x":12.5, "y":5.5, "w":1.25},
|
||||
{"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25},
|
||||
{"label":"Left", "x":15.25, "y":5.5},
|
||||
{"label":"Down", "x":16.25, "y":5.5},
|
||||
{"label":"Right", "x":17.25, "y":5.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_ansi": {
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":2, "y":0},
|
||||
{"x":3, "y":0},
|
||||
{"x":4, "y":0},
|
||||
{"x":5, "y":0},
|
||||
{"x":6.5, "y":0},
|
||||
{"x":7.5, "y":0},
|
||||
{"x":8.5, "y":0},
|
||||
{"x":9.5, "y":0},
|
||||
{"x":11, "y":0},
|
||||
{"x":12, "y":0},
|
||||
{"x":13, "y":0},
|
||||
{"x":14, "y":0},
|
||||
{"x":15.25, "y":0},
|
||||
{"x":16.25, "y":0},
|
||||
{"x":17.25, "y":0},
|
||||
|
||||
{"x":0, "y":1.5},
|
||||
{"x":1, "y":1.5},
|
||||
{"x":2, "y":1.5},
|
||||
{"x":3, "y":1.5},
|
||||
{"x":4, "y":1.5},
|
||||
{"x":5, "y":1.5},
|
||||
{"x":6, "y":1.5},
|
||||
{"x":7, "y":1.5},
|
||||
{"x":8, "y":1.5},
|
||||
{"x":9, "y":1.5},
|
||||
{"x":10, "y":1.5},
|
||||
{"x":11, "y":1.5},
|
||||
{"x":12, "y":1.5},
|
||||
{"x":13, "y":1.5, "w":2},
|
||||
{"x":15.25, "y":1.5},
|
||||
{"x":16.25, "y":1.5},
|
||||
{"x":17.25, "y":1.5},
|
||||
|
||||
{"x":0, "y":2.5, "w":1.5},
|
||||
{"x":1.5, "y":2.5},
|
||||
{"x":2.5, "y":2.5},
|
||||
{"x":3.5, "y":2.5},
|
||||
{"x":4.5, "y":2.5},
|
||||
{"x":5.5, "y":2.5},
|
||||
{"x":6.5, "y":2.5},
|
||||
{"x":7.5, "y":2.5},
|
||||
{"x":8.5, "y":2.5},
|
||||
{"x":9.5, "y":2.5},
|
||||
{"x":10.5, "y":2.5},
|
||||
{"x":11.5, "y":2.5},
|
||||
{"x":12.5, "y":2.5},
|
||||
{"x":13.5, "y":2.5, "w":1.5},
|
||||
{"x":15.25, "y":2.5},
|
||||
{"x":16.25, "y":2.5},
|
||||
{"x":17.25, "y":2.5},
|
||||
|
||||
{"x":0, "y":3.5, "w":1.75},
|
||||
{"x":1.75, "y":3.5},
|
||||
{"x":2.75, "y":3.5},
|
||||
{"x":3.75, "y":3.5},
|
||||
{"x":4.75, "y":3.5},
|
||||
{"x":5.75, "y":3.5},
|
||||
{"x":6.75, "y":3.5},
|
||||
{"x":7.75, "y":3.5},
|
||||
{"x":8.75, "y":3.5},
|
||||
{"x":9.75, "y":3.5},
|
||||
{"x":10.75, "y":3.5},
|
||||
{"x":11.75, "y":3.5},
|
||||
{"x":12.75, "y":3.5, "w":2.25},
|
||||
|
||||
{"x":0, "y":4.5, "w":2.25},
|
||||
{"x":2.25, "y":4.5},
|
||||
{"x":3.25, "y":4.5},
|
||||
{"x":4.25, "y":4.5},
|
||||
{"x":5.25, "y":4.5},
|
||||
{"x":6.25, "y":4.5},
|
||||
{"x":7.25, "y":4.5},
|
||||
{"x":8.25, "y":4.5},
|
||||
{"x":9.25, "y":4.5},
|
||||
{"x":10.25, "y":4.5},
|
||||
{"x":11.25, "y":4.5},
|
||||
{"x":12.25, "y":4.5, "w":2.75},
|
||||
{"x":16.25, "y":4.5},
|
||||
|
||||
{"x":0, "y":5.5, "w":1.25},
|
||||
{"x":1.25, "y":5.5, "w":1.25},
|
||||
{"x":2.5, "y":5.5, "w":1.25},
|
||||
{"x":3.75, "y":5.5, "w":6.25},
|
||||
{"x":10, "y":5.5, "w":1.25},
|
||||
{"x":11.25, "y":5.5, "w":1.25},
|
||||
{"x":12.5, "y":5.5, "w":1.25},
|
||||
{"x":13.75, "y":5.5, "w":1.25},
|
||||
{"x":15.25, "y":5.5},
|
||||
{"x":16.25, "y":5.5},
|
||||
{"x":17.25, "y":5.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_iso": {
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":2, "y":0},
|
||||
{"x":3, "y":0},
|
||||
{"x":4, "y":0},
|
||||
{"x":5, "y":0},
|
||||
{"x":6.5, "y":0},
|
||||
{"x":7.5, "y":0},
|
||||
{"x":8.5, "y":0},
|
||||
{"x":9.5, "y":0},
|
||||
{"x":11, "y":0},
|
||||
{"x":12, "y":0},
|
||||
{"x":13, "y":0},
|
||||
{"x":14, "y":0},
|
||||
{"x":15.25, "y":0},
|
||||
{"x":16.25, "y":0},
|
||||
{"x":17.25, "y":0},
|
||||
|
||||
{"x":0, "y":1.5},
|
||||
{"x":1, "y":1.5},
|
||||
{"x":2, "y":1.5},
|
||||
{"x":3, "y":1.5},
|
||||
{"x":4, "y":1.5},
|
||||
{"x":5, "y":1.5},
|
||||
{"x":6, "y":1.5},
|
||||
{"x":7, "y":1.5},
|
||||
{"x":8, "y":1.5},
|
||||
{"x":9, "y":1.5},
|
||||
{"x":10, "y":1.5},
|
||||
{"x":11, "y":1.5},
|
||||
{"x":12, "y":1.5},
|
||||
{"x":13, "y":1.5, "w":2},
|
||||
{"x":15.25, "y":1.5},
|
||||
{"x":16.25, "y":1.5},
|
||||
{"x":17.25, "y":1.5},
|
||||
|
||||
{"x":0, "y":2.5, "w":1.5},
|
||||
{"x":1.5, "y":2.5},
|
||||
{"x":2.5, "y":2.5},
|
||||
{"x":3.5, "y":2.5},
|
||||
{"x":4.5, "y":2.5},
|
||||
{"x":5.5, "y":2.5},
|
||||
{"x":6.5, "y":2.5},
|
||||
{"x":7.5, "y":2.5},
|
||||
{"x":8.5, "y":2.5},
|
||||
{"x":9.5, "y":2.5},
|
||||
{"x":10.5, "y":2.5},
|
||||
{"x":11.5, "y":2.5},
|
||||
{"x":12.5, "y":2.5},
|
||||
{"x":15.25, "y":2.5},
|
||||
{"x":16.25, "y":2.5},
|
||||
{"x":17.25, "y":2.5},
|
||||
|
||||
{"x":0, "y":3.5, "w":1.75},
|
||||
{"x":1.75, "y":3.5},
|
||||
{"x":2.75, "y":3.5},
|
||||
{"x":3.75, "y":3.5},
|
||||
{"x":4.75, "y":3.5},
|
||||
{"x":5.75, "y":3.5},
|
||||
{"x":6.75, "y":3.5},
|
||||
{"x":7.75, "y":3.5},
|
||||
{"x":8.75, "y":3.5},
|
||||
{"x":9.75, "y":3.5},
|
||||
{"x":10.75, "y":3.5},
|
||||
{"x":11.75, "y":3.5},
|
||||
{"x":12.75, "y":3.5},
|
||||
{"x":13.75, "y":2.5, "w":1.25, "h":2},
|
||||
|
||||
{"x":0, "y":4.5, "w":1.25},
|
||||
{"x":1.25, "y":4.5},
|
||||
{"x":2.25, "y":4.5},
|
||||
{"x":3.25, "y":4.5},
|
||||
{"x":4.25, "y":4.5},
|
||||
{"x":5.25, "y":4.5},
|
||||
{"x":6.25, "y":4.5},
|
||||
{"x":7.25, "y":4.5},
|
||||
{"x":8.25, "y":4.5},
|
||||
{"x":9.25, "y":4.5},
|
||||
{"x":10.25, "y":4.5},
|
||||
{"x":11.25, "y":4.5},
|
||||
{"x":12.25, "y":4.5, "w":2.75},
|
||||
{"x":16.25, "y":4.5},
|
||||
|
||||
{"x":0, "y":5.5, "w":1.25},
|
||||
{"x":1.25, "y":5.5, "w":1.25},
|
||||
{"x":2.5, "y":5.5, "w":1.25},
|
||||
{"x":3.75, "y":5.5, "w":6.25},
|
||||
{"x":10, "y":5.5, "w":1.25},
|
||||
{"x":11.25, "y":5.5, "w":1.25},
|
||||
{"x":12.5, "y":5.5, "w":1.25},
|
||||
{"x":13.75, "y":5.5, "w":1.25},
|
||||
{"x":15.25, "y":5.5},
|
||||
{"x":16.25, "y":5.5},
|
||||
{"x":17.25, "y":5.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
34
keyboards/cherrybstudio/cb87/keymaps/default/keymap.c
Normal file
34
keyboards/cherrybstudio/cb87/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS,
|
||||
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_HOME, 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_BSLS, KC_DEL, KC_END, 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_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
};
|
1
keyboards/cherrybstudio/cb87/keymaps/default/readme.md
Normal file
1
keyboards/cherrybstudio/cb87/keymaps/default/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default keymap for CB87
|
50
keyboards/cherrybstudio/cb87/keymaps/via/keymap.c
Normal file
50
keyboards/cherrybstudio/cb87/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
Copyright 2020 Tybera
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS,
|
||||
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_HOME, 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_BSLS, KC_DEL, KC_END, 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_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[2] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[3] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
};
|
2
keyboards/cherrybstudio/cb87/keymaps/via/rules.mk
Normal file
2
keyboards/cherrybstudio/cb87/keymaps/via/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
LTO_ENABLE = yes
|
||||
VIA_ENABLE = yes
|
26
keyboards/cherrybstudio/cb87/readme.md
Normal file
26
keyboards/cherrybstudio/cb87/readme.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# CherryB Studio CB87
|
||||
|
||||

|
||||
|
||||
A TKL PCB for CherryB Studio Freyr and replacement for some TKL keyboards.
|
||||
|
||||
* Keyboard Maintainer: duongaanh
|
||||
* Hardware Supported: CB87, atmega32u4
|
||||
* Hardware Availability: [CherryB Studio](https://www.reddit.com/r/mechmarket/comments/kkgs6p/gb_freyr_tkl_cb_edition_holiday_preorder/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cherrybstudio/cb87:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cherrybstudio/cb87:default:flash
|
||||
|
||||
## Accessing Bootloader Mode
|
||||
|
||||
To access Bootloader Mode, do one of the following:
|
||||
|
||||
* Tap the Reset switch mounted on the top side of the PCB to the left of the spacebar
|
||||
* Hold the top left key of the keyboard while connecting the USB cable
|
||||
|
||||
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).
|
24
keyboards/cherrybstudio/cb87/rules.mk
Normal file
24
keyboards/cherrybstudio/cb87/rules.mk
Normal file
@@ -0,0 +1,24 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
|
||||
LAYOUTS = tkl_ansi tkl_iso
|
@@ -29,7 +29,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#define MATRIX_ROW_PINS { C5, C4, B6, B7, C7 }
|
||||
#define MATRIX_ROW_PINS_RIGHT { D3, D2, D5, D6, B0 }
|
||||
#define MATRIX_COL_PINS { C6, B4, B3, B2, B1, B0 }
|
||||
/* The last three NO_PIN are dummies to make the same size as MATRIX_ROW_PINS_RIGHT. */
|
||||
#define MATRIX_COL_PINS { C6, B4, B3, B2, B1, B0, NO_PIN, NO_PIN, NO_PIN }
|
||||
#define MATRIX_COL_PINS_RIGHT { C7, B7, B6, B5, B4, B3, B2, C6, D4 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
|
82
keyboards/ck60i/info.json
Normal file
82
keyboards/ck60i/info.json
Normal file
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"keyboard_name": "CK60i",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"width": 15,
|
||||
"height": 5,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"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":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":13.5, "y":1, "w":1.5},
|
||||
|
||||
{"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":2, "w":1.25},
|
||||
|
||||
{"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},
|
||||
{"x":11, "y":4},
|
||||
{"x":12, "y":4},
|
||||
{"x":13, "y":4},
|
||||
{"x":14, "y":4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
Copyright 2020 dsanchezseco
|
||||
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
|
||||
|
||||
enum layers {
|
||||
DVO, // dvorak
|
||||
QWE, // qwerty
|
||||
SYS, // system
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* dvorak */
|
||||
[DVO] = LAYOUT(
|
||||
KC_VOLD, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, KC_PSCR, KC_PAUS, MO(SYS),
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
|
||||
LCTL(KC_A), LCTL(KC_Z), KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, XXXXXXX, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_BSPC, KC_PEQL, KC_PSLS, KC_PAST,
|
||||
LCTL(KC_B), LCTL(KC_X), KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, XXXXXXX, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PMNS,
|
||||
LCTL(KC_D), LCTL(KC_C), KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_BSLS, KC_ENT, KC_UP, KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||
LCTL(KC_F), LCTL(KC_V), KC_LSFT, KC_BSLS, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, XXXXXXX, KC_RSFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||
LCTL(KC_G), LCTL(KC_W), KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LGUI, XXXXXXX, KC_P0, KC_PDOT, XXXXXXX
|
||||
),
|
||||
/* qwerty */
|
||||
[QWE] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, XXXXXXX, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, XXXXXXX
|
||||
),
|
||||
|
||||
/* system */
|
||||
[SYS] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______, _______, KC_NLCK, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, TO(DVO), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, TO(QWE), _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, XXXXXXX
|
||||
),
|
||||
};
|
@@ -0,0 +1 @@
|
||||
MOUSEKEY_ENABLE = no
|
@@ -45,4 +45,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
#endif
|
||||
|
||||
#define ONESHOT_TAP_TOGGLE 3 /* Tapping this number of times holds the key until tapped once again. */
|
||||
#define ONESHOT_TIMEOUT 5000 /* Time (in ms) before the one shot key is released */
|
||||
|
||||
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
|
||||
|
@@ -19,48 +19,58 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum custom_keycodes {
|
||||
ARROW_FUNCTION = SAFE_RANGE
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case ARROW_FUNCTION:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("() => {}");
|
||||
} else {
|
||||
SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_ENTER));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
LT(1, KC_ESC), LT(2, KC_A), KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LSFT, MT(MOD_LCTL, KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, MT(MOD_RCTL, KC_SLSH), KC_RSFT,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LALT, LGUI(KC_SPACE), LGUI_T(KC_SPC), MT(MOD_RSFT, KC_ENT), LT(2, KC_BSPC), KC_RALT
|
||||
//`--------------------------' '--------------------------´
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
LT(1, KC_ESC), LT(2, KC_A), LT(3, KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
OSM(MOD_LSFT), MT(MOD_LCTL, KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, MT(MOD_RCTL, KC_SLSH), OSM(MOD_RSFT),
|
||||
KC_LALT, LGUI(KC_SPACE), LGUI_T(KC_SPC), MT(MOD_RSFT, KC_ENT), MO(2), KC_RALT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, _______,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
_______, _______, _______, _______, _______, _______
|
||||
//`--------------------------' '--------------------------´
|
||||
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, _______,
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[2] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
_______, _______, _______, _______, _______, _______
|
||||
//`--------------------------' '--------------------------´
|
||||
)
|
||||
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, ARROW_FUNCTION, KC_LT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV,
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_GT, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[3] = LAYOUT_split_3x6_3(
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, LALT(LSFT(KC_0)), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LGUI(LSFT(KC_4)), XXXXXXX,
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LGUI(KC_MINS), LGUI(KC_PLUS), XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
||||
|
||||
#ifdef OLED_DRIVER_ENABLE
|
||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||
if (!is_master) {
|
||||
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
|
||||
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
|
||||
}
|
||||
return rotation;
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
# armand1m crkbd layout
|
||||
|
||||
This is the personal layout for [@armand1m](https://github.com/armand1m)
|
||||
This is the personal layout for [@armand1m](https://go.d1m.dev/github)
|
||||
|
||||
This layout is heavily inspired in my personal Moonlander layout, optimized for my own personal usage.
|
||||
|
||||
@@ -8,6 +8,35 @@ As of the date of this writing, my environment runs OS X Big Sur with yabai and
|
||||
|
||||
I am a huge fan of ModTaps, so this layout will contain some of those to allow for a better experience in such a small keyboard like the crkbd.
|
||||
|
||||
## Layout
|
||||
|
||||
You can find `json` files for http://www.keyboard-layout-editor.com/ in the keymap folder.
|
||||
|
||||
Here are some screenshots for convenience:
|
||||
|
||||
Base Layer:<br/>
|
||||
<a href="https://ibb.co/fYZw3yj"><img src="https://i.ibb.co/0j1b06H/Screen-Shot-2021-03-15-at-4-58-43-PM.png" alt="Base Layer" border="0"></a>
|
||||
|
||||
Numbers Layer:<br/>
|
||||
<a href="https://ibb.co/30Vg1tS"><img src="https://i.ibb.co/hKr3sp2/Screen-Shot-2021-03-15-at-5-18-07-PM.png" alt="Numbers Layer" border="0"></a>
|
||||
|
||||
Symbols Layer:<br/>
|
||||
<a href="https://ibb.co/ryCg4pS"><img src="https://i.ibb.co/q1tzkgf/Screen-Shot-2021-03-15-at-5-18-33-PM.png" alt="Symbols Layer" border="0"></a>
|
||||
|
||||
## Choices
|
||||
|
||||
Every keymap is pretty unique and tailored to suit it's main creators needs. Here are some of my choices for the keys and their explanations:
|
||||
|
||||
- Left thumb acts as Space when tapping but as Command when holding: this makes my life so much easier in OS X. Having command reachable all the time just feels right to me and Mod Taps help me a lot on this.
|
||||
|
||||
- Right thumb acts as Enter when tapping but as Right Shift when holding: this is more of an experiment. I usually use shift on my pinkies. It is an interesting feature but I often forget about it.
|
||||
|
||||
- Esc lives in the home row, before A. It also acts as a layer toggle to the numbers layer when held. Having the LT to the numbers layer here allows me to actually reach the number 1 pretty nicely and other numbers on the left hand pretty easily.
|
||||
|
||||
- Keys on the home row are used to switch to layers, so "A" goes to layer 2 when held. I started making this in the Moonlander and migrated the practice, but still sometimes I use the MO 2 on the right thumb.
|
||||
|
||||
- One Shot Keys are enabled for the shifts on the pinkies. If you press it twice: it will lock on shift until pressed again (pretty much like caps lock). These are handy when you're typing and just don't want to hold shift to have a capitalized word.
|
||||
|
||||
## Usage
|
||||
|
||||
In case you have `qmk` installed:
|
||||
|
@@ -1,25 +1,25 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
#pragma once
|
||||
|
||||
/* Select hand configuration */
|
||||
|
||||
// #define MASTER_LEFT
|
||||
#define MASTER_RIGHT
|
||||
#define MASTER_LEFT
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
#define SSD1306OLED
|
||||
#define SWAP_SCLN
|
||||
|
||||
// #define TAPPING_FORCE_HOLD
|
||||
#define TAPPING_TERM 300
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
|
||||
#undef RGBLED_NUM
|
||||
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
#define RGBLED_NUM 27
|
||||
#define RGBLIGHT_LIMIT_VAL 100
|
||||
#define RGBLIGHT_HUE_STEP 10
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
# undef RGBLED_NUM
|
||||
# define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
# define RGBLED_NUM 27
|
||||
# define RGBLIGHT_LIMIT_VAL 100
|
||||
# define RGBLIGHT_HUE_STEP 10
|
||||
# define RGBLIGHT_SAT_STEP 17
|
||||
# define RGBLIGHT_VAL_STEP 17
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
|
||||
#endif // CONFIG_USER_H
|
||||
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
|
||||
|
@@ -1,9 +1,6 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#ifdef PROTOCOL_LUFA
|
||||
#include "split_util.h"
|
||||
#endif
|
||||
#ifdef SSD1306OLED
|
||||
#include "oled.h"
|
||||
# include "split_util.h"
|
||||
#endif
|
||||
|
||||
#include "edvorakjp.h"
|
||||
@@ -14,85 +11,63 @@
|
||||
* };
|
||||
*/
|
||||
|
||||
#define KC_ KC_TRNS
|
||||
|
||||
#define KC_TMB1 KC_LA(TAB)
|
||||
#define KC_TMB2 KC_LS(SPC)
|
||||
#define KC_TMB3 TD(TD_LOWER) // act as LOWER when hold, as KC_LANG2(=English) when tapped
|
||||
#define KC_TMB4 TD(TD_RAISE) // act as RAISE when hold, as KC_LANG1(=Japanese) when tapped
|
||||
#define KC_TMB5 KC_RC(BSPC)
|
||||
#define KC_TMB6 KC_RG(ENT)
|
||||
#define KC_TMB7 KC_RC(DEL)
|
||||
#define LAYOUT_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__)
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_EDVORAK] = LAYOUT_kc(
|
||||
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
|
||||
GRV ,QUOT,COMM , DOT , Y , Q , F , G , R , W , P ,BSLS,
|
||||
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
|
||||
EQL , A ,LA(O),LG(E),LC(I), U , D ,RS(T),RG(N),RA(S), M ,MINS,
|
||||
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
|
||||
ESC ,SCLN, X , C , V , Z , H , J , K , L , B ,SLSH,
|
||||
//`----+----+-----+-----+-----+----+----| |----+----+-----+-----+-----+----+----'
|
||||
TMB1 ,TMB2,TMB3, TMB4,TMB5,TMB6
|
||||
// `-----+----+----' `----+----+-----'
|
||||
[L_EDVORAKJP_BASE] = LAYOUT_wrapper(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_GRV, __EDVORAKJP_BASE_L1__ , __EDVORAKJP_BASE_R1__ , KC_BSLS,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_EQL, __EDVORAKJP_BASE_L2__ , __EDVORAKJP_BASE_R2__ , KC_MINS,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_ESC, __EDVORAKJP_BASE_L3__ , __EDVORAKJP_BASE_R3__ , KC_SLSH,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
LA_TAB, LS_SPC,LOWER_TD, RAISE_TD, RC_BSPC, RG_ENT
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
[_LOWER] = LAYOUT_kc(
|
||||
//|----+----+------+------+------+----| |----+------+------+-------+----+----|
|
||||
, , LCBR , LBRC , LPRN , , , RPRN , RBRC , RCBR , , ,
|
||||
//|----+----+------+------+------+----| |----+------+------+-------+----+----|
|
||||
F1 , F2 ,LA(F3),LG(F4),LC(F5), F6 , F7 ,RS(F8),RG(F9),RA(F10),F11 ,F12 ,
|
||||
//|----+----+------+------+------+----| |----+------+------+-------+----+----|
|
||||
PSCR, , HOME , PGDN , PGUP ,END , LEFT, DOWN , UP , RGHT , , ,
|
||||
//`----+----+------+------+------+----+----| |----+----+------+------+-------+----+----'
|
||||
, , NO , MAC ,TMB7,
|
||||
// `-----+----+----' `----+----+-----'
|
||||
[L_EDVORAKJP_LOWER] = LAYOUT_wrapper(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_L__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_R__ , XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
__EDVORAKJP_FUNCTION_L__ , __EDVORAKJP_FUNCTION_R__ ,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_TRNS, KC_TRNS, XXXXXXX, KC_MAC, RC_DEL, KC_TRNS
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
[_RAISE] = LAYOUT_kc(
|
||||
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
|
||||
, ,EXLM , AT ,HASH ,DLR , PERC,CIRC ,AMPR ,ASTR , , ,
|
||||
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
|
||||
, 1 ,LA(2),LG(3),LC(4), 5 , 6 ,RS(7),RG(8),RA(9), 0 , ,
|
||||
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
|
||||
PSCR, ,HOME ,PGDN ,PGUP ,END , LEFT,DOWN , UP ,RGHT , , ,
|
||||
//`----+----+-----+-----+-----+----+----| |----+----+-----+-----+-----+----+----'
|
||||
, ,WIN , NO , ,
|
||||
// `-----+----+----' `----+----+----'
|
||||
[L_EDVORAKJP_RAISE] = LAYOUT_wrapper(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
XXXXXXX, XXXXXXX, __EDVORAKJP_SYMBOL_L__ , __EDVORAKJP_SYMBOL_R__ , XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
XXXXXXX, __EDVORAKJP_NUMBER_L__ , __EDVORAKJP_NUMBER_R__ , XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_TRNS, KC_TRNS, KC_WIN, XXXXXXX, KC_TRNS, KC_TRNS
|
||||
//`--------------------------' `--------------------------'
|
||||
)
|
||||
};
|
||||
|
||||
#ifdef SSD1306OLED
|
||||
void matrix_init_keymap(void) {
|
||||
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
|
||||
#ifdef MASTER_RIGHT
|
||||
iota_gfx_init(has_usb()); // turns on the display
|
||||
#else
|
||||
iota_gfx_init(!has_usb());
|
||||
#endif // MASTER_RIGHT
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
iota_gfx_task(); // this is what updates the display continuously
|
||||
}
|
||||
#endif
|
||||
// clang-format on
|
||||
|
||||
#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
uint32_t layer_state_set_keymap(uint32_t state) {
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
|
||||
switch (biton32(state)) {
|
||||
case _LOWER:
|
||||
rgblight_sethsv_noeeprom_red();
|
||||
break;
|
||||
case _RAISE:
|
||||
rgblight_sethsv_noeeprom_green();
|
||||
break;
|
||||
default: // for any other layers, or the default layer
|
||||
rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
|
||||
rgblight_sethsv_red();
|
||||
break;
|
||||
}
|
||||
return state;
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
|
||||
switch (biton32(state)) {
|
||||
case L_EDVORAKJP_LOWER:
|
||||
rgblight_sethsv_noeeprom_red();
|
||||
break;
|
||||
case L_EDVORAKJP_RAISE:
|
||||
rgblight_sethsv_noeeprom_green();
|
||||
break;
|
||||
default: // for any other layers, or the default layer
|
||||
rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
|
||||
rgblight_sethsv_red();
|
||||
break;
|
||||
}
|
||||
return state;
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,76 +1,55 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "oled.h"
|
||||
|
||||
// NOTE: Redefined to avoid to use snprintf(); It makes size of firmware big.
|
||||
const char *read_mode_icon(bool windows_mode) {
|
||||
static const char logo[][2][3] = {{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}};
|
||||
static char mode_icon[10];
|
||||
#ifdef OLED_DRIVER_ENABLE
|
||||
void render_host_led_state(void) { oled_write(read_host_led_state(), false); }
|
||||
|
||||
int mode_number = windows_mode ? 1 : 0;
|
||||
strcpy(mode_icon, logo[mode_number][0]);
|
||||
void render_layer_state(void) {
|
||||
char layer_name[17];
|
||||
oled_write_P(PSTR("Layer: "), false);
|
||||
|
||||
strcat(mode_icon, "\n");
|
||||
strcat(mode_icon, logo[mode_number][1]);
|
||||
|
||||
return mode_icon;
|
||||
switch (biton32(layer_state)) {
|
||||
case L_EDVORAKJP_BASE:
|
||||
oled_write_ln_P(PSTR("Default"), false);
|
||||
break;
|
||||
case L_EDVORAKJP_LOWER:
|
||||
oled_write_ln_P(PSTR("Lower"), false);
|
||||
break;
|
||||
case L_EDVORAKJP_RAISE:
|
||||
oled_write_ln_P(PSTR("Raise"), false);
|
||||
break;
|
||||
default:
|
||||
snprintf(layer_name, sizeof(layer_name), "Undef-%ld", layer_state);
|
||||
oled_write_ln(layer_name, false);
|
||||
}
|
||||
}
|
||||
|
||||
const char *read_layer_state(void) {
|
||||
static char layer_state_str[24];
|
||||
char layer_name[17];
|
||||
void render_logo(void) { oled_write(read_logo(), false); }
|
||||
|
||||
switch (biton32(layer_state)) {
|
||||
case L_BASE:
|
||||
strcpy(layer_name, "Default");
|
||||
break;
|
||||
case _RAISE:
|
||||
strcpy(layer_name, "Raise");
|
||||
break;
|
||||
case _LOWER:
|
||||
strcpy(layer_name, "Lower");
|
||||
break;
|
||||
default:
|
||||
snprintf(layer_name, sizeof(layer_name), "Undef-%ld", layer_state);
|
||||
}
|
||||
void render_mode_icon(bool is_windows) {
|
||||
static const char logo[][2][3] = {
|
||||
{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
|
||||
{{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
|
||||
};
|
||||
static char mode_icon[10];
|
||||
|
||||
strcpy(layer_state_str, "Layer: ");
|
||||
|
||||
strcat(layer_state_str, layer_name);
|
||||
strcat(layer_state_str, "\n");
|
||||
return layer_state_str;
|
||||
snprintf(mode_icon, sizeof(mode_icon), "%s\n%s ", logo[is_windows][0], logo[is_windows][1]);
|
||||
oled_write(mode_icon, false);
|
||||
}
|
||||
|
||||
const char *read_host_led_state(void) {
|
||||
static char led_str[24];
|
||||
strcpy(led_str, (host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ? "NMLK" : " ");
|
||||
strcat(led_str, (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ? " CAPS" : " ");
|
||||
strcat(led_str, (host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) ? " SCLK" : " ");
|
||||
return led_str;
|
||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||
// flips the display 180 degrees if offhand
|
||||
return is_keyboard_left() ? rotation : rotation ^ OLED_ROTATION_180;
|
||||
}
|
||||
|
||||
void matrix_update(struct CharacterMatrix *dest,
|
||||
const struct CharacterMatrix *source) {
|
||||
if (memcmp(dest->display, source->display, sizeof(dest->display))) {
|
||||
memcpy(dest->display, source->display, sizeof(dest->display));
|
||||
dest->dirty = true;
|
||||
}
|
||||
}
|
||||
|
||||
void iota_gfx_task_user(void) {
|
||||
struct CharacterMatrix matrix;
|
||||
|
||||
matrix_clear(&matrix);
|
||||
#ifdef MASTER_RIGHT
|
||||
if (!is_master) {
|
||||
#else
|
||||
if (is_master) {
|
||||
#endif // MASTER_RIGHT
|
||||
matrix_write(&matrix, read_mode_icon(!get_enable_kc_lang()));
|
||||
matrix_write(&matrix, " ");
|
||||
matrix_write(&matrix, read_layer_state());
|
||||
matrix_write(&matrix, read_host_led_state());
|
||||
} else {
|
||||
matrix_write(&matrix, read_logo());
|
||||
}
|
||||
matrix_update(&display, &matrix);
|
||||
void oled_task_user(void) {
|
||||
if (is_keyboard_left()) {
|
||||
render_mode_icon(!get_enable_kc_lang());
|
||||
render_layer_state();
|
||||
render_host_led_state();
|
||||
} else {
|
||||
render_logo();
|
||||
}
|
||||
}
|
||||
#endif // OLED_DRIVER_ENABLE
|
||||
|
@@ -1,24 +1,17 @@
|
||||
#ifndef OLED_USER_H
|
||||
#define OLED_USER_H
|
||||
#pragma once
|
||||
|
||||
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
|
||||
#include "ssd1306.h"
|
||||
#include "edvorakjp.h"
|
||||
|
||||
//assign the right code to your layers for OLED display
|
||||
#define L_BASE 0
|
||||
|
||||
extern uint8_t is_master;
|
||||
extern bool japanese_mode;
|
||||
|
||||
// method prototypes defined in crkbd/lib
|
||||
extern const char *read_host_led_state(void);
|
||||
extern const char *read_logo(void);
|
||||
extern const char *read_mode_icon(bool swap);
|
||||
|
||||
const char *read_mode_icon(bool swap);
|
||||
const char *read_layer_state(void);
|
||||
const char *read_host_led_state(void);
|
||||
void matrix_update(struct CharacterMatrix *dest,
|
||||
const struct CharacterMatrix *source);
|
||||
void iota_gfx_task_user(void);
|
||||
|
||||
#endif // OLED_CONFIG_USER_H
|
||||
void render_host_led_state(void);
|
||||
void render_layer_state(void);
|
||||
void render_logo(void);
|
||||
void render_mode_icon(bool is_windows);
|
||||
oled_rotation_t oled_init_user(oled_rotation_t rotation);
|
||||
void oled_task_user(void);
|
||||
|
@@ -16,17 +16,13 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
|
||||
SWAP_HANDS_ENABLE = no # Enable one-hand typing
|
||||
TAP_DANCE_ENABLE = yes
|
||||
OLED_DRIVER_ENABLE = yes
|
||||
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
# If you want to change the display of OLED, you need to change here
|
||||
SRC += ./lib/glcdfont.c \
|
||||
SRC += ./lib/host_led_state_reader.c \
|
||||
./lib/logo_reader.c \
|
||||
oled.c \
|
||||
# ./lib/rgb_state_reader.c \
|
||||
# ./lib/layer_state_reader.c \
|
||||
# ./lib/keylogger.c \
|
||||
# ./lib/mode_icon_reader.c \
|
||||
# ./lib/host_led_state_reader.c \
|
||||
# ./lib/timelogger.c \
|
||||
./lib/mode_icon_reader.c \
|
||||
oled.c
|
||||
|
68
keyboards/dmqdesign/spin/keymaps/via/keymap.c
Normal file
68
keyboards/dmqdesign/spin/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,68 @@
|
||||
/* Copyright 2020-2021 adamkraus6
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
KC_7, KC_8, KC_9, TO(0),
|
||||
KC_4, KC_5, KC_6, TO(1),
|
||||
KC_1, KC_2, KC_3, TO(2),
|
||||
KC_0, KC_BSPC, KC_ENTER
|
||||
),
|
||||
|
||||
[1] = LAYOUT(
|
||||
KC_NO, KC_NO, KC_NO, KC_TRNS,
|
||||
KC_NO, KC_NO, KC_NO, KC_TRNS,
|
||||
KC_NO, KC_NO, KC_NO, KC_TRNS,
|
||||
KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
|
||||
[2] = LAYOUT(
|
||||
KC_NO, KC_NO, KC_NO, KC_TRNS,
|
||||
KC_NO, KC_NO, KC_NO, KC_TRNS,
|
||||
KC_NO, KC_NO, KC_NO, KC_TRNS,
|
||||
KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
|
||||
[3] = LAYOUT(
|
||||
KC_NO, KC_NO, KC_NO, KC_TRNS,
|
||||
KC_NO, KC_NO, KC_NO, KC_TRNS,
|
||||
KC_NO, KC_NO, KC_NO, KC_TRNS,
|
||||
KC_NO, KC_NO, KC_NO
|
||||
)
|
||||
};
|
||||
|
||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (index == 0) { /* First encoder */
|
||||
if (clockwise) {
|
||||
rgblight_increase_hue(); //Cycle through the RGB hue
|
||||
} else {
|
||||
rgblight_decrease_hue();
|
||||
}
|
||||
} else if (index == 1) { /* Second encoder */
|
||||
if (clockwise) {
|
||||
rgblight_increase_sat();
|
||||
} else {
|
||||
rgblight_decrease_sat();
|
||||
}
|
||||
} else if (index == 2) { /* Third encoder */
|
||||
if (clockwise) {
|
||||
rgblight_increase_val(); //Change brightness on the RGB LEDs
|
||||
} else {
|
||||
rgblight_decrease_val();
|
||||
}
|
||||
}
|
||||
}
|
1
keyboards/dmqdesign/spin/keymaps/via/rules.mk
Normal file
1
keyboards/dmqdesign/spin/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
112
keyboards/draytronics/daisy/config.h
Normal file
112
keyboards/draytronics/daisy/config.h
Normal file
@@ -0,0 +1,112 @@
|
||||
/*Copyright 2021 Blake Drayson / Draytronics
|
||||
|
||||
Contact info@draytronics.co.uk
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
#define VENDOR_ID 0x4454 //DT for DrayTronics
|
||||
#define PRODUCT_ID 0x4441 //DA for Daisy
|
||||
#define DEVICE_VER 0x0100 //Version 1
|
||||
#define MANUFACTURER Draytronics
|
||||
#define PRODUCT DAISY
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 3
|
||||
#define MATRIX_COLS 4
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
|
||||
#define MATRIX_ROW_PINS { B0, C0, C1}
|
||||
#define MATRIX_COL_PINS { C2, C3, C4, C5 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
#define ENCODERS_PAD_A { B1, D0 }
|
||||
#define ENCODERS_PAD_B { B2, D1 }
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
#define TAP_CODE_DELAY 10
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||
//#define MATRIX_HAS_GHOST
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
|
||||
* This is useful for the Windows task manager shortcut (ctrl+shift+esc).
|
||||
*/
|
||||
//#define GRAVE_ESC_CTRL_OVERRIDE
|
||||
/*
|
||||
* Force NKRO
|
||||
*
|
||||
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||
* makefile for this to work.)
|
||||
*
|
||||
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||
* until the next keyboard reset.
|
||||
*
|
||||
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||
* fully operational during normal computer usage.
|
||||
*
|
||||
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||
* power-up.
|
||||
*
|
||||
*/
|
||||
//#define FORCE_NKRO
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
/* disable these deprecated features by default */
|
||||
#define NO_ACTION_MACRO
|
||||
#define NO_ACTION_FUNCTION
|
||||
|
||||
//Underglow
|
||||
#define RGB_DI_PIN D4 // Underglow led pin
|
||||
#ifdef RGB_DI_PIN
|
||||
#define RGBLED_NUM 4
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
||||
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||
/*== all animations enable ==*/
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#endif
|
19
keyboards/draytronics/daisy/daisy.c
Normal file
19
keyboards/draytronics/daisy/daisy.c
Normal file
@@ -0,0 +1,19 @@
|
||||
/*Copyright 2021 Blake Drayson / Draytronics
|
||||
|
||||
Contact info@draytronics.co.uk
|
||||
|
||||
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 "daisy.h"
|
33
keyboards/draytronics/daisy/daisy.h
Normal file
33
keyboards/draytronics/daisy/daisy.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/*Copyright 2021 Blake Drayson / Draytronics
|
||||
|
||||
Contact info@draytronics.co.uk
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define _x_ KC_NO
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define LAYOUT_daisy( \
|
||||
K00, K03, \
|
||||
K10, K11, K12, K13, \
|
||||
K20, K21, K22, K23 \
|
||||
) { \
|
||||
{ K00, _x_, _x_, K03, }, \
|
||||
{ K10, K11, K12, K13, }, \
|
||||
{ K20, K21, K22, K23, }, \
|
||||
}
|
25
keyboards/draytronics/daisy/info.json
Normal file
25
keyboards/draytronics/daisy/info.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"keyboard_name": "Draytronics DAISY",
|
||||
"url": "https://www.draytronics.co.uk/daisy",
|
||||
"maintainer": "ghostseven",
|
||||
"width": 4,
|
||||
"height": 3,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label":"", "x":0, "y":0},
|
||||
{"label":"", "x":3, "y":0},
|
||||
|
||||
{"label":"", "x":0, "y":1},
|
||||
{"label":"", "x":1, "y":1},
|
||||
{"label":"", "x":2, "y":1},
|
||||
{"label":"", "x":3, "y":1},
|
||||
|
||||
{"label":"", "x":0, "y":2},
|
||||
{"label":"", "x":1, "y":2},
|
||||
{"label":"", "x":2, "y":2},
|
||||
{"label":"", "x":3, "y":1, "h":2}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
51
keyboards/draytronics/daisy/keymaps/default/keymap.c
Normal file
51
keyboards/draytronics/daisy/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,51 @@
|
||||
/*Copyright 2021 Blake Drayson / Draytronics
|
||||
|
||||
Contact info@draytronics.co.uk
|
||||
|
||||
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 _BASE 0 // Base layer
|
||||
#define _CODE 1 // Code layer
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT_daisy(
|
||||
KC_MUTE, KC_HOME,
|
||||
MO(_CODE), KC_MPRV, KC_MNXT, KC_MPLY,
|
||||
C(KC_LEFT), C(KC_UP), C(KC_DOWN), C(KC_RIGHT)
|
||||
),
|
||||
[_CODE] = LAYOUT_daisy(
|
||||
KC_MUTE, KC_END,
|
||||
_______, RGB_MOD, RGB_VAI, RGB_TOG,
|
||||
G(S(KC_5)), G(A(KC_ESC)), G(KC_F), RESET
|
||||
)
|
||||
};
|
||||
|
||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (index == 0) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLD);
|
||||
} else {
|
||||
tap_code(KC_VOLU);
|
||||
}
|
||||
}
|
||||
else if (index == 1) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_PGUP);
|
||||
} else {
|
||||
tap_code(KC_PGDN);
|
||||
}
|
||||
}
|
||||
}
|
20
keyboards/draytronics/daisy/readme.md
Normal file
20
keyboards/draytronics/daisy/readme.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# DAISY
|
||||

|
||||
|
||||
An open source macro pad with rotary encoders and under glow, designed to be easily built with (mostly) through hole components. More info / kits / PCB designs available at [draytronics.co.uk/daisy](https://www.draytronics.co.uk/daisy)
|
||||
|
||||
* Keyboard Maintainer: [Blake Drayson](https://github.com/ghostseven)
|
||||
* Hardware Supported: DAISY PCB / ATMega328P
|
||||
* Hardware Availability: [draytronics.co.uk](https://draytronics.co.uk)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make draytronics/daisy:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make draytronics/daisy:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
VIA design config file avaliable [here](https://www.draytronics.co.uk/f_daisy/draytronics_daisy_via_config.json)
|
23
keyboards/draytronics/daisy/rules.mk
Normal file
23
keyboards/draytronics/daisy/rules.mk
Normal file
@@ -0,0 +1,23 @@
|
||||
# MCU name
|
||||
MCU = atmega328p
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = USBasp
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = no # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
ENCODER_ENABLE = yes # Rotary encoder support
|
@@ -2,11 +2,11 @@
|
||||
|
||||

|
||||
|
||||
A open source 17 key numpad keyboard, designed to be easily built at home with through hole components. More info / kits / PCB designs available at [draytronics.co.uk/scarlet](draytronics.co.uk)
|
||||
A open source 17 key numpad keyboard, designed to be easily built at home with through hole components. More info / kits / PCB designs available at [draytronics.co.uk/scarlet](https://draytronics.co.uk)
|
||||
|
||||
* Keyboard Maintainer: [Blake Drayson](https://github.com/ghostseven)
|
||||
* Hardware Supported: SCARLET PCB / ATMega32A
|
||||
* Hardware Availability: [draytronics.co.uk](draytronics.co.uk)
|
||||
* Hardware Availability: [draytronics.co.uk](https://draytronics.co.uk)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
|
@@ -708,3 +708,30 @@
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \
|
||||
{ k40, k41, KC_NO, k43, KC_NO, KC_NO, k46, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d, k4e } \
|
||||
}
|
||||
|
||||
/* LAYOUT_64_ansi
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │10 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
|
||||
* │20 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │
|
||||
* ├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┬───┤
|
||||
* │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │
|
||||
* ├────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┼───┼───┼───┼───┤
|
||||
* │40 │41 │43 │46 │4a │4b │4c │4d │4e │
|
||||
* └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘
|
||||
*/
|
||||
#define LAYOUT_64_ansi( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
|
||||
k10, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \
|
||||
k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
|
||||
k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
|
||||
k40, k41, k43, k46, k4a, k4b, k4c, k4d, k4e \
|
||||
) { \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, KC_NO }, \
|
||||
{ k10, KC_NO, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \
|
||||
{ k20, KC_NO, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, KC_NO }, \
|
||||
{ k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \
|
||||
{ k40, k41, KC_NO, k43, KC_NO, KC_NO, k46, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d, k4e } \
|
||||
}
|
||||
|
@@ -1873,6 +1873,74 @@
|
||||
{"x": 13, "y": 4},
|
||||
{"x": 14, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_64_ansi": {
|
||||
"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":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":13.5, "y":1, "w":1.5},
|
||||
{"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, "w":2.25},
|
||||
{"x":0, "y":3, "w":2},
|
||||
{"x":2, "y":3},
|
||||
{"x":3, "y":3},
|
||||
{"x":4, "y":3},
|
||||
{"x":5, "y":3},
|
||||
{"x":6, "y":3},
|
||||
{"x":7, "y":3},
|
||||
{"x":8, "y":3},
|
||||
{"x":9, "y":3},
|
||||
{"x":10, "y":3},
|
||||
{"x":11, "y":3},
|
||||
{"x":12, "y":3},
|
||||
{"x":13, "y":3},
|
||||
{"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},
|
||||
{"x":11, "y":4},
|
||||
{"x":12, "y":4},
|
||||
{"x":13, "y":4},
|
||||
{"x":14, "y":4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
18
keyboards/dz60/keymaps/gk64/keymap.c
Normal file
18
keyboards/dz60/keymaps/gk64/keymap.c
Normal file
@@ -0,0 +1,18 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
LAYOUT_64_ansi(
|
||||
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_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_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_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, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
LAYOUT_64_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_DEL,
|
||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||
};
|
47
keyboards/epoch80/config.h
Normal file
47
keyboards/epoch80/config.h
Normal file
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
Copyright 2021 kb-elmo<mail@elmo.space>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x6463
|
||||
#define PRODUCT_ID 0x0000
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER caryworks
|
||||
#define PRODUCT epoch80
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 6
|
||||
#define MATRIX_COLS 17
|
||||
|
||||
/* Keyboard Matrix Assignments */
|
||||
#define MATRIX_ROW_PINS { D1, D0, B3, B0, B2, B1 }
|
||||
#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D4, D6, D2, D3, D5 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Indicator LEDs */
|
||||
#define LED_CAPS_LOCK_PIN E6
|
||||
#define LED_SCROLL_LOCK_PIN B7
|
||||
#define LED_PIN_ON_STATE 0
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
17
keyboards/epoch80/epoch80.c
Normal file
17
keyboards/epoch80/epoch80.c
Normal file
@@ -0,0 +1,17 @@
|
||||
/* Copyright 2021 kb-elmo<mail@elmo.space>
|
||||
*
|
||||
* 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 "epoch80.h"
|
157
keyboards/epoch80/epoch80.h
Normal file
157
keyboards/epoch80/epoch80.h
Normal file
@@ -0,0 +1,157 @@
|
||||
/* Copyright 2021 kb-elmo<mail@elmo.space>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define ____ KC_NO
|
||||
|
||||
/* This is a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
#define LAYOUT_all( \
|
||||
k000, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, \
|
||||
k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k314, k114, k115, k116, \
|
||||
k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, \
|
||||
k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k313, \
|
||||
k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, k413, k415, \
|
||||
k500, k501, k502, k506, k510, k511, k512, k513, k514, k515, k516 \
|
||||
) { \
|
||||
{ k000, ____, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, }, \
|
||||
{ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, }, \
|
||||
{ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, }, \
|
||||
{ k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, ____, k313, k314, ____, ____, }, \
|
||||
{ k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, k413, ____, k415, ____, }, \
|
||||
{ k500, k501, k502, ____, ____, ____, k506, ____, ____, ____, k510, k511, k512, k513, k514, k515, k516, } \
|
||||
}
|
||||
|
||||
#define LAYOUT_tkl_ansi( \
|
||||
k000, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, \
|
||||
k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, \
|
||||
k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, \
|
||||
k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k313, \
|
||||
k400, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, k415, \
|
||||
k500, k501, k502, k506, k510, k511, k512, k513, k514, k515, k516 \
|
||||
) { \
|
||||
{ k000, ____, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, }, \
|
||||
{ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, }, \
|
||||
{ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, }, \
|
||||
{ k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, ____, k313, ____, ____, ____, }, \
|
||||
{ k400, ____, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, ____, ____, k415, ____, }, \
|
||||
{ k500, k501, k502, ____, ____, ____, k506, ____, ____, ____, k510, k511, k512, k513, k514, k515, k516, } \
|
||||
}
|
||||
|
||||
#define LAYOUT_tkl_ansi_splitbs( \
|
||||
k000, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, \
|
||||
k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k314, k114, k115, k116, \
|
||||
k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, \
|
||||
k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k313, \
|
||||
k400, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, k415, \
|
||||
k500, k501, k502, k506, k510, k511, k512, k513, k514, k515, k516 \
|
||||
) { \
|
||||
{ k000, ____, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, }, \
|
||||
{ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, }, \
|
||||
{ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, }, \
|
||||
{ k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, ____, k313, k314, ____, ____, }, \
|
||||
{ k400, ____, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, ____, ____, k415, ____, }, \
|
||||
{ k500, k501, k502, ____, ____, ____, k506, ____, ____, ____, k510, k511, k512, k513, k514, k515, k516, } \
|
||||
}
|
||||
|
||||
#define LAYOUT_tkl_ansi_tsangan( \
|
||||
k000, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, \
|
||||
k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, \
|
||||
k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, \
|
||||
k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k313, \
|
||||
k400, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, k415, \
|
||||
k500, k501, k502, k506, k511, k512, k513, k514, k515, k516 \
|
||||
) { \
|
||||
{ k000, ____, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, }, \
|
||||
{ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, }, \
|
||||
{ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, }, \
|
||||
{ k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, ____, k313, ____, ____, ____, }, \
|
||||
{ k400, ____, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, ____, ____, k415, ____, }, \
|
||||
{ k500, k501, k502, ____, ____, ____, k506, ____, ____, ____, ____, k511, k512, k513, k514, k515, k516, } \
|
||||
}
|
||||
|
||||
#define LAYOUT_tkl_ansi_tsangan_splitbs( \
|
||||
k000, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, \
|
||||
k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k314, k114, k115, k116, \
|
||||
k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, \
|
||||
k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k313, \
|
||||
k400, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, k415, \
|
||||
k500, k501, k502, k506, k511, k512, k513, k514, k515, k516 \
|
||||
) { \
|
||||
{ k000, ____, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, }, \
|
||||
{ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, }, \
|
||||
{ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, }, \
|
||||
{ k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, ____, k313, k314, ____, ____, }, \
|
||||
{ k400, ____, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, ____, ____, k415, ____, }, \
|
||||
{ k500, k501, k502, ____, ____, ____, k506, ____, ____, ____, ____, k511, k512, k513, k514, k515, k516, } \
|
||||
}
|
||||
|
||||
#define LAYOUT_tkl_ansi_wkl( \
|
||||
k000, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, \
|
||||
k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, \
|
||||
k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, \
|
||||
k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k313, \
|
||||
k400, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, k415, \
|
||||
k500, k502, k506, k511, k513, k514, k515, k516 \
|
||||
) { \
|
||||
{ k000, ____, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, }, \
|
||||
{ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, }, \
|
||||
{ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, }, \
|
||||
{ k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, ____, k313, ____, ____, ____, }, \
|
||||
{ k400, ____, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, ____, ____, k415, ____, }, \
|
||||
{ k500, ____, k502, ____, ____, ____, k506, ____, ____, ____, ____, k511, ____, k513, k514, k515, k516, } \
|
||||
}
|
||||
|
||||
#define LAYOUT_tkl_ansi_wkl_splitbs( \
|
||||
k000, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, \
|
||||
k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k314, k114, k115, k116, \
|
||||
k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, \
|
||||
k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k313, \
|
||||
k400, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, k415, \
|
||||
k500, k502, k506, k511, k513, k514, k515, k516 \
|
||||
) { \
|
||||
{ k000, ____, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, }, \
|
||||
{ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, }, \
|
||||
{ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, }, \
|
||||
{ k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, ____, k313, k314, ____, ____, }, \
|
||||
{ k400, ____, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, ____, ____, k415, ____, }, \
|
||||
{ k500, ____, k502, ____, ____, ____, k506, ____, ____, ____, ____, k511, ____, k513, k514, k515, k516, } \
|
||||
}
|
||||
|
||||
#define LAYOUT_tkl_iso( \
|
||||
k000, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, \
|
||||
k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, \
|
||||
k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k214, k215, k216, \
|
||||
k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k213, k313, \
|
||||
k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, k415, \
|
||||
k500, k501, k502, k506, k510, k511, k512, k513, k514, k515, k516 \
|
||||
) { \
|
||||
{ k000, ____, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, }, \
|
||||
{ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, }, \
|
||||
{ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, }, \
|
||||
{ k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, ____, k313, ____, ____, ____, }, \
|
||||
{ k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, ____, ____, k415, ____, }, \
|
||||
{ k500, k501, k502, ____, ____, ____, k506, ____, ____, ____, k510, k511, k512, k513, k514, k515, k516, } \
|
||||
}
|
736
keyboards/epoch80/info.json
Normal file
736
keyboards/epoch80/info.json
Normal file
@@ -0,0 +1,736 @@
|
||||
{
|
||||
"keyboard_name": "epoch80",
|
||||
"url": "https://kbdfans.com/collections/80-diy-kit/products/coming-soon-epoch-80-mechanical-keyboard",
|
||||
"maintainer": "kb-elmo",
|
||||
"width": 18.5,
|
||||
"height": 6.5,
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":2, "y":0},
|
||||
{"x":3, "y":0},
|
||||
{"x":4, "y":0},
|
||||
{"x":5, "y":0},
|
||||
{"x":6.5, "y":0},
|
||||
{"x":7.5, "y":0},
|
||||
{"x":8.5, "y":0},
|
||||
{"x":9.5, "y":0},
|
||||
{"x":11, "y":0},
|
||||
{"x":12, "y":0},
|
||||
{"x":13, "y":0},
|
||||
{"x":14, "y":0},
|
||||
{"x":15.5, "y":0},
|
||||
{"x":16.5, "y":0},
|
||||
{"x":17.5, "y":0},
|
||||
{"x":0, "y":1.5},
|
||||
{"x":1, "y":1.5},
|
||||
{"x":2, "y":1.5},
|
||||
{"x":3, "y":1.5},
|
||||
{"x":4, "y":1.5},
|
||||
{"x":5, "y":1.5},
|
||||
{"x":6, "y":1.5},
|
||||
{"x":7, "y":1.5},
|
||||
{"x":8, "y":1.5},
|
||||
{"x":9, "y":1.5},
|
||||
{"x":10, "y":1.5},
|
||||
{"x":11, "y":1.5},
|
||||
{"x":12, "y":1.5},
|
||||
{"x":13, "y":1.5},
|
||||
{"x":14, "y":1.5},
|
||||
{"x":15.5, "y":1.5},
|
||||
{"x":16.5, "y":1.5},
|
||||
{"x":17.5, "y":1.5},
|
||||
{"x":0, "y":2.5, "w":1.5},
|
||||
{"x":1.5, "y":2.5},
|
||||
{"x":2.5, "y":2.5},
|
||||
{"x":3.5, "y":2.5},
|
||||
{"x":4.5, "y":2.5},
|
||||
{"x":5.5, "y":2.5},
|
||||
{"x":6.5, "y":2.5},
|
||||
{"x":7.5, "y":2.5},
|
||||
{"x":8.5, "y":2.5},
|
||||
{"x":9.5, "y":2.5},
|
||||
{"x":10.5, "y":2.5},
|
||||
{"x":11.5, "y":2.5},
|
||||
{"x":12.5, "y":2.5},
|
||||
{"x":13.5, "y":2.5, "w":1.5},
|
||||
{"x":15.5, "y":2.5},
|
||||
{"x":16.5, "y":2.5},
|
||||
{"x":17.5, "y":2.5},
|
||||
{"x":0, "y":3.5, "w":1.75},
|
||||
{"x":1.75, "y":3.5},
|
||||
{"x":2.75, "y":3.5},
|
||||
{"x":3.75, "y":3.5},
|
||||
{"x":4.75, "y":3.5},
|
||||
{"x":5.75, "y":3.5},
|
||||
{"x":6.75, "y":3.5},
|
||||
{"x":7.75, "y":3.5},
|
||||
{"x":8.75, "y":3.5},
|
||||
{"x":9.75, "y":3.5},
|
||||
{"x":10.75, "y":3.5},
|
||||
{"x":11.75, "y":3.5},
|
||||
{"x":12.75, "y":3.5, "w":2.25},
|
||||
{"x":0, "y":4.5, "w":1.25},
|
||||
{"x":1.25, "y":4.5},
|
||||
{"x":2.25, "y":4.5},
|
||||
{"x":3.25, "y":4.5},
|
||||
{"x":4.25, "y":4.5},
|
||||
{"x":5.25, "y":4.5},
|
||||
{"x":6.25, "y":4.5},
|
||||
{"x":7.25, "y":4.5},
|
||||
{"x":8.25, "y":4.5},
|
||||
{"x":9.25, "y":4.5},
|
||||
{"x":10.25, "y":4.5},
|
||||
{"x":11.25, "y":4.5},
|
||||
{"x":12.25, "y":4.5, "w":1.75},
|
||||
{"x":14, "y":4.5},
|
||||
{"x":16.5, "y":4.5},
|
||||
{"x":0, "y":5.5, "w":1.25},
|
||||
{"x":1.25, "y":5.5, "w":1.25},
|
||||
{"x":2.5, "y":5.5, "w":1.25},
|
||||
{"x":3.75, "y":5.5, "w":6.25},
|
||||
{"x":10, "y":5.5, "w":1.25},
|
||||
{"x":11.25, "y":5.5, "w":1.25},
|
||||
{"x":12.5, "y":5.5, "w":1.25},
|
||||
{"x":13.75, "y":5.5, "w":1.25},
|
||||
{"x":15.5, "y":5.5},
|
||||
{"x":16.5, "y":5.5},
|
||||
{"x":17.5, "y":5.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_ansi": {
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":2, "y":0},
|
||||
{"x":3, "y":0},
|
||||
{"x":4, "y":0},
|
||||
{"x":5, "y":0},
|
||||
{"x":6.5, "y":0},
|
||||
{"x":7.5, "y":0},
|
||||
{"x":8.5, "y":0},
|
||||
{"x":9.5, "y":0},
|
||||
{"x":11, "y":0},
|
||||
{"x":12, "y":0},
|
||||
{"x":13, "y":0},
|
||||
{"x":14, "y":0},
|
||||
{"x":15.5, "y":0},
|
||||
{"x":16.5, "y":0},
|
||||
{"x":17.5, "y":0},
|
||||
{"x":0, "y":1.5},
|
||||
{"x":1, "y":1.5},
|
||||
{"x":2, "y":1.5},
|
||||
{"x":3, "y":1.5},
|
||||
{"x":4, "y":1.5},
|
||||
{"x":5, "y":1.5},
|
||||
{"x":6, "y":1.5},
|
||||
{"x":7, "y":1.5},
|
||||
{"x":8, "y":1.5},
|
||||
{"x":9, "y":1.5},
|
||||
{"x":10, "y":1.5},
|
||||
{"x":11, "y":1.5},
|
||||
{"x":12, "y":1.5},
|
||||
{"x":13, "y":1.5, "w":2},
|
||||
{"x":15.5, "y":1.5},
|
||||
{"x":16.5, "y":1.5},
|
||||
{"x":17.5, "y":1.5},
|
||||
{"x":0, "y":2.5, "w":1.5},
|
||||
{"x":1.5, "y":2.5},
|
||||
{"x":2.5, "y":2.5},
|
||||
{"x":3.5, "y":2.5},
|
||||
{"x":4.5, "y":2.5},
|
||||
{"x":5.5, "y":2.5},
|
||||
{"x":6.5, "y":2.5},
|
||||
{"x":7.5, "y":2.5},
|
||||
{"x":8.5, "y":2.5},
|
||||
{"x":9.5, "y":2.5},
|
||||
{"x":10.5, "y":2.5},
|
||||
{"x":11.5, "y":2.5},
|
||||
{"x":12.5, "y":2.5},
|
||||
{"x":13.5, "y":2.5, "w":1.5},
|
||||
{"x":15.5, "y":2.5},
|
||||
{"x":16.5, "y":2.5},
|
||||
{"x":17.5, "y":2.5},
|
||||
{"x":0, "y":3.5, "w":1.75},
|
||||
{"x":1.75, "y":3.5},
|
||||
{"x":2.75, "y":3.5},
|
||||
{"x":3.75, "y":3.5},
|
||||
{"x":4.75, "y":3.5},
|
||||
{"x":5.75, "y":3.5},
|
||||
{"x":6.75, "y":3.5},
|
||||
{"x":7.75, "y":3.5},
|
||||
{"x":8.75, "y":3.5},
|
||||
{"x":9.75, "y":3.5},
|
||||
{"x":10.75, "y":3.5},
|
||||
{"x":11.75, "y":3.5},
|
||||
{"x":12.75, "y":3.5, "w":2.25},
|
||||
{"x":0, "y":4.5, "w":2.25},
|
||||
{"x":2.25, "y":4.5},
|
||||
{"x":3.25, "y":4.5},
|
||||
{"x":4.25, "y":4.5},
|
||||
{"x":5.25, "y":4.5},
|
||||
{"x":6.25, "y":4.5},
|
||||
{"x":7.25, "y":4.5},
|
||||
{"x":8.25, "y":4.5},
|
||||
{"x":9.25, "y":4.5},
|
||||
{"x":10.25, "y":4.5},
|
||||
{"x":11.25, "y":4.5},
|
||||
{"x":12.25, "y":4.5, "w":2.75},
|
||||
{"x":16.5, "y":4.5},
|
||||
{"x":0, "y":5.5, "w":1.25},
|
||||
{"x":1.25, "y":5.5, "w":1.25},
|
||||
{"x":2.5, "y":5.5, "w":1.25},
|
||||
{"x":3.75, "y":5.5, "w":6.25},
|
||||
{"x":10, "y":5.5, "w":1.25},
|
||||
{"x":11.25, "y":5.5, "w":1.25},
|
||||
{"x":12.5, "y":5.5, "w":1.25},
|
||||
{"x":13.75, "y":5.5, "w":1.25},
|
||||
{"x":15.5, "y":5.5},
|
||||
{"x":16.5, "y":5.5},
|
||||
{"x":17.5, "y":5.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_ansi_splitbs": {
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":2, "y":0},
|
||||
{"x":3, "y":0},
|
||||
{"x":4, "y":0},
|
||||
{"x":5, "y":0},
|
||||
{"x":6.5, "y":0},
|
||||
{"x":7.5, "y":0},
|
||||
{"x":8.5, "y":0},
|
||||
{"x":9.5, "y":0},
|
||||
{"x":11, "y":0},
|
||||
{"x":12, "y":0},
|
||||
{"x":13, "y":0},
|
||||
{"x":14, "y":0},
|
||||
{"x":15.5, "y":0},
|
||||
{"x":16.5, "y":0},
|
||||
{"x":17.5, "y":0},
|
||||
{"x":0, "y":1.5},
|
||||
{"x":1, "y":1.5},
|
||||
{"x":2, "y":1.5},
|
||||
{"x":3, "y":1.5},
|
||||
{"x":4, "y":1.5},
|
||||
{"x":5, "y":1.5},
|
||||
{"x":6, "y":1.5},
|
||||
{"x":7, "y":1.5},
|
||||
{"x":8, "y":1.5},
|
||||
{"x":9, "y":1.5},
|
||||
{"x":10, "y":1.5},
|
||||
{"x":11, "y":1.5},
|
||||
{"x":12, "y":1.5},
|
||||
{"x":13, "y":1.5},
|
||||
{"x":14, "y":1.5},
|
||||
{"x":15.5, "y":1.5},
|
||||
{"x":16.5, "y":1.5},
|
||||
{"x":17.5, "y":1.5},
|
||||
{"x":0, "y":2.5, "w":1.5},
|
||||
{"x":1.5, "y":2.5},
|
||||
{"x":2.5, "y":2.5},
|
||||
{"x":3.5, "y":2.5},
|
||||
{"x":4.5, "y":2.5},
|
||||
{"x":5.5, "y":2.5},
|
||||
{"x":6.5, "y":2.5},
|
||||
{"x":7.5, "y":2.5},
|
||||
{"x":8.5, "y":2.5},
|
||||
{"x":9.5, "y":2.5},
|
||||
{"x":10.5, "y":2.5},
|
||||
{"x":11.5, "y":2.5},
|
||||
{"x":12.5, "y":2.5},
|
||||
{"x":13.5, "y":2.5, "w":1.5},
|
||||
{"x":15.5, "y":2.5},
|
||||
{"x":16.5, "y":2.5},
|
||||
{"x":17.5, "y":2.5},
|
||||
{"x":0, "y":3.5, "w":1.75},
|
||||
{"x":1.75, "y":3.5},
|
||||
{"x":2.75, "y":3.5},
|
||||
{"x":3.75, "y":3.5},
|
||||
{"x":4.75, "y":3.5},
|
||||
{"x":5.75, "y":3.5},
|
||||
{"x":6.75, "y":3.5},
|
||||
{"x":7.75, "y":3.5},
|
||||
{"x":8.75, "y":3.5},
|
||||
{"x":9.75, "y":3.5},
|
||||
{"x":10.75, "y":3.5},
|
||||
{"x":11.75, "y":3.5},
|
||||
{"x":12.75, "y":3.5, "w":2.25},
|
||||
{"x":0, "y":4.5, "w":2.25},
|
||||
{"x":2.25, "y":4.5},
|
||||
{"x":3.25, "y":4.5},
|
||||
{"x":4.25, "y":4.5},
|
||||
{"x":5.25, "y":4.5},
|
||||
{"x":6.25, "y":4.5},
|
||||
{"x":7.25, "y":4.5},
|
||||
{"x":8.25, "y":4.5},
|
||||
{"x":9.25, "y":4.5},
|
||||
{"x":10.25, "y":4.5},
|
||||
{"x":11.25, "y":4.5},
|
||||
{"x":12.25, "y":4.5, "w":2.75},
|
||||
{"x":16.5, "y":4.5},
|
||||
{"x":0, "y":5.5, "w":1.25},
|
||||
{"x":1.25, "y":5.5, "w":1.25},
|
||||
{"x":2.5, "y":5.5, "w":1.25},
|
||||
{"x":3.75, "y":5.5, "w":6.25},
|
||||
{"x":10, "y":5.5, "w":1.25},
|
||||
{"x":11.25, "y":5.5, "w":1.25},
|
||||
{"x":12.5, "y":5.5, "w":1.25},
|
||||
{"x":13.75, "y":5.5, "w":1.25},
|
||||
{"x":15.5, "y":5.5},
|
||||
{"x":16.5, "y":5.5},
|
||||
{"x":17.5, "y":5.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_ansi_tsangan": {
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":2, "y":0},
|
||||
{"x":3, "y":0},
|
||||
{"x":4, "y":0},
|
||||
{"x":5, "y":0},
|
||||
{"x":6.5, "y":0},
|
||||
{"x":7.5, "y":0},
|
||||
{"x":8.5, "y":0},
|
||||
{"x":9.5, "y":0},
|
||||
{"x":11, "y":0},
|
||||
{"x":12, "y":0},
|
||||
{"x":13, "y":0},
|
||||
{"x":14, "y":0},
|
||||
{"x":15.5, "y":0},
|
||||
{"x":16.5, "y":0},
|
||||
{"x":17.5, "y":0},
|
||||
{"x":0, "y":1.5},
|
||||
{"x":1, "y":1.5},
|
||||
{"x":2, "y":1.5},
|
||||
{"x":3, "y":1.5},
|
||||
{"x":4, "y":1.5},
|
||||
{"x":5, "y":1.5},
|
||||
{"x":6, "y":1.5},
|
||||
{"x":7, "y":1.5},
|
||||
{"x":8, "y":1.5},
|
||||
{"x":9, "y":1.5},
|
||||
{"x":10, "y":1.5},
|
||||
{"x":11, "y":1.5},
|
||||
{"x":12, "y":1.5},
|
||||
{"x":13, "y":1.5, "w":2},
|
||||
{"x":15.5, "y":1.5},
|
||||
{"x":16.5, "y":1.5},
|
||||
{"x":17.5, "y":1.5},
|
||||
{"x":0, "y":2.5, "w":1.5},
|
||||
{"x":1.5, "y":2.5},
|
||||
{"x":2.5, "y":2.5},
|
||||
{"x":3.5, "y":2.5},
|
||||
{"x":4.5, "y":2.5},
|
||||
{"x":5.5, "y":2.5},
|
||||
{"x":6.5, "y":2.5},
|
||||
{"x":7.5, "y":2.5},
|
||||
{"x":8.5, "y":2.5},
|
||||
{"x":9.5, "y":2.5},
|
||||
{"x":10.5, "y":2.5},
|
||||
{"x":11.5, "y":2.5},
|
||||
{"x":12.5, "y":2.5},
|
||||
{"x":13.5, "y":2.5, "w":1.5},
|
||||
{"x":15.5, "y":2.5},
|
||||
{"x":16.5, "y":2.5},
|
||||
{"x":17.5, "y":2.5},
|
||||
{"x":0, "y":3.5, "w":1.75},
|
||||
{"x":1.75, "y":3.5},
|
||||
{"x":2.75, "y":3.5},
|
||||
{"x":3.75, "y":3.5},
|
||||
{"x":4.75, "y":3.5},
|
||||
{"x":5.75, "y":3.5},
|
||||
{"x":6.75, "y":3.5},
|
||||
{"x":7.75, "y":3.5},
|
||||
{"x":8.75, "y":3.5},
|
||||
{"x":9.75, "y":3.5},
|
||||
{"x":10.75, "y":3.5},
|
||||
{"x":11.75, "y":3.5},
|
||||
{"x":12.75, "y":3.5, "w":2.25},
|
||||
{"x":0, "y":4.5, "w":2.25},
|
||||
{"x":2.25, "y":4.5},
|
||||
{"x":3.25, "y":4.5},
|
||||
{"x":4.25, "y":4.5},
|
||||
{"x":5.25, "y":4.5},
|
||||
{"x":6.25, "y":4.5},
|
||||
{"x":7.25, "y":4.5},
|
||||
{"x":8.25, "y":4.5},
|
||||
{"x":9.25, "y":4.5},
|
||||
{"x":10.25, "y":4.5},
|
||||
{"x":11.25, "y":4.5},
|
||||
{"x":12.25, "y":4.5, "w":2.75},
|
||||
{"x":16.5, "y":4.5},
|
||||
{"x":0, "y":5.5, "w":1.5},
|
||||
{"x":1.5, "y":5.5},
|
||||
{"x":2.5, "y":5.5, "w":1.5},
|
||||
{"x":4, "y":5.5, "w":7},
|
||||
{"x":11, "y":5.5, "w":1.5},
|
||||
{"x":12.5, "y":5.5},
|
||||
{"x":13.5, "y":5.5, "w":1.5},
|
||||
{"x":15.5, "y":5.5},
|
||||
{"x":16.5, "y":5.5},
|
||||
{"x":17.5, "y":5.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_ansi_tsangan_splitbs": {
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":2, "y":0},
|
||||
{"x":3, "y":0},
|
||||
{"x":4, "y":0},
|
||||
{"x":5, "y":0},
|
||||
{"x":6.5, "y":0},
|
||||
{"x":7.5, "y":0},
|
||||
{"x":8.5, "y":0},
|
||||
{"x":9.5, "y":0},
|
||||
{"x":11, "y":0},
|
||||
{"x":12, "y":0},
|
||||
{"x":13, "y":0},
|
||||
{"x":14, "y":0},
|
||||
{"x":15.5, "y":0},
|
||||
{"x":16.5, "y":0},
|
||||
{"x":17.5, "y":0},
|
||||
{"x":0, "y":1.5},
|
||||
{"x":1, "y":1.5},
|
||||
{"x":2, "y":1.5},
|
||||
{"x":3, "y":1.5},
|
||||
{"x":4, "y":1.5},
|
||||
{"x":5, "y":1.5},
|
||||
{"x":6, "y":1.5},
|
||||
{"x":7, "y":1.5},
|
||||
{"x":8, "y":1.5},
|
||||
{"x":9, "y":1.5},
|
||||
{"x":10, "y":1.5},
|
||||
{"x":11, "y":1.5},
|
||||
{"x":12, "y":1.5},
|
||||
{"x":13, "y":1.5},
|
||||
{"x":14, "y":1.5},
|
||||
{"x":15.5, "y":1.5},
|
||||
{"x":16.5, "y":1.5},
|
||||
{"x":17.5, "y":1.5},
|
||||
{"x":0, "y":2.5, "w":1.5},
|
||||
{"x":1.5, "y":2.5},
|
||||
{"x":2.5, "y":2.5},
|
||||
{"x":3.5, "y":2.5},
|
||||
{"x":4.5, "y":2.5},
|
||||
{"x":5.5, "y":2.5},
|
||||
{"x":6.5, "y":2.5},
|
||||
{"x":7.5, "y":2.5},
|
||||
{"x":8.5, "y":2.5},
|
||||
{"x":9.5, "y":2.5},
|
||||
{"x":10.5, "y":2.5},
|
||||
{"x":11.5, "y":2.5},
|
||||
{"x":12.5, "y":2.5},
|
||||
{"x":13.5, "y":2.5, "w":1.5},
|
||||
{"x":15.5, "y":2.5},
|
||||
{"x":16.5, "y":2.5},
|
||||
{"x":17.5, "y":2.5},
|
||||
{"x":0, "y":3.5, "w":1.75},
|
||||
{"x":1.75, "y":3.5},
|
||||
{"x":2.75, "y":3.5},
|
||||
{"x":3.75, "y":3.5},
|
||||
{"x":4.75, "y":3.5},
|
||||
{"x":5.75, "y":3.5},
|
||||
{"x":6.75, "y":3.5},
|
||||
{"x":7.75, "y":3.5},
|
||||
{"x":8.75, "y":3.5},
|
||||
{"x":9.75, "y":3.5},
|
||||
{"x":10.75, "y":3.5},
|
||||
{"x":11.75, "y":3.5},
|
||||
{"x":12.75, "y":3.5, "w":2.25},
|
||||
{"x":0, "y":4.5, "w":2.25},
|
||||
{"x":2.25, "y":4.5},
|
||||
{"x":3.25, "y":4.5},
|
||||
{"x":4.25, "y":4.5},
|
||||
{"x":5.25, "y":4.5},
|
||||
{"x":6.25, "y":4.5},
|
||||
{"x":7.25, "y":4.5},
|
||||
{"x":8.25, "y":4.5},
|
||||
{"x":9.25, "y":4.5},
|
||||
{"x":10.25, "y":4.5},
|
||||
{"x":11.25, "y":4.5},
|
||||
{"x":12.25, "y":4.5, "w":2.75},
|
||||
{"x":16.5, "y":4.5},
|
||||
{"x":0, "y":5.5, "w":1.5},
|
||||
{"x":1.5, "y":5.5},
|
||||
{"x":2.5, "y":5.5, "w":1.5},
|
||||
{"x":4, "y":5.5, "w":7},
|
||||
{"x":11, "y":5.5, "w":1.5},
|
||||
{"x":12.5, "y":5.5},
|
||||
{"x":13.5, "y":5.5, "w":1.5},
|
||||
{"x":15.5, "y":5.5},
|
||||
{"x":16.5, "y":5.5},
|
||||
{"x":17.5, "y":5.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_ansi_wkl": {
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":2, "y":0},
|
||||
{"x":3, "y":0},
|
||||
{"x":4, "y":0},
|
||||
{"x":5, "y":0},
|
||||
{"x":6.5, "y":0},
|
||||
{"x":7.5, "y":0},
|
||||
{"x":8.5, "y":0},
|
||||
{"x":9.5, "y":0},
|
||||
{"x":11, "y":0},
|
||||
{"x":12, "y":0},
|
||||
{"x":13, "y":0},
|
||||
{"x":14, "y":0},
|
||||
{"x":15.5, "y":0},
|
||||
{"x":16.5, "y":0},
|
||||
{"x":17.5, "y":0},
|
||||
{"x":0, "y":1.5},
|
||||
{"x":1, "y":1.5},
|
||||
{"x":2, "y":1.5},
|
||||
{"x":3, "y":1.5},
|
||||
{"x":4, "y":1.5},
|
||||
{"x":5, "y":1.5},
|
||||
{"x":6, "y":1.5},
|
||||
{"x":7, "y":1.5},
|
||||
{"x":8, "y":1.5},
|
||||
{"x":9, "y":1.5},
|
||||
{"x":10, "y":1.5},
|
||||
{"x":11, "y":1.5},
|
||||
{"x":12, "y":1.5},
|
||||
{"x":13, "y":1.5, "w":2},
|
||||
{"x":15.5, "y":1.5},
|
||||
{"x":16.5, "y":1.5},
|
||||
{"x":17.5, "y":1.5},
|
||||
{"x":0, "y":2.5, "w":1.5},
|
||||
{"x":1.5, "y":2.5},
|
||||
{"x":2.5, "y":2.5},
|
||||
{"x":3.5, "y":2.5},
|
||||
{"x":4.5, "y":2.5},
|
||||
{"x":5.5, "y":2.5},
|
||||
{"x":6.5, "y":2.5},
|
||||
{"x":7.5, "y":2.5},
|
||||
{"x":8.5, "y":2.5},
|
||||
{"x":9.5, "y":2.5},
|
||||
{"x":10.5, "y":2.5},
|
||||
{"x":11.5, "y":2.5},
|
||||
{"x":12.5, "y":2.5},
|
||||
{"x":13.5, "y":2.5, "w":1.5},
|
||||
{"x":15.5, "y":2.5},
|
||||
{"x":16.5, "y":2.5},
|
||||
{"x":17.5, "y":2.5},
|
||||
{"x":0, "y":3.5, "w":1.75},
|
||||
{"x":1.75, "y":3.5},
|
||||
{"x":2.75, "y":3.5},
|
||||
{"x":3.75, "y":3.5},
|
||||
{"x":4.75, "y":3.5},
|
||||
{"x":5.75, "y":3.5},
|
||||
{"x":6.75, "y":3.5},
|
||||
{"x":7.75, "y":3.5},
|
||||
{"x":8.75, "y":3.5},
|
||||
{"x":9.75, "y":3.5},
|
||||
{"x":10.75, "y":3.5},
|
||||
{"x":11.75, "y":3.5},
|
||||
{"x":12.75, "y":3.5, "w":2.25},
|
||||
{"x":0, "y":4.5, "w":2.25},
|
||||
{"x":2.25, "y":4.5},
|
||||
{"x":3.25, "y":4.5},
|
||||
{"x":4.25, "y":4.5},
|
||||
{"x":5.25, "y":4.5},
|
||||
{"x":6.25, "y":4.5},
|
||||
{"x":7.25, "y":4.5},
|
||||
{"x":8.25, "y":4.5},
|
||||
{"x":9.25, "y":4.5},
|
||||
{"x":10.25, "y":4.5},
|
||||
{"x":11.25, "y":4.5},
|
||||
{"x":12.25, "y":4.5, "w":2.75},
|
||||
{"x":16.5, "y":4.5},
|
||||
{"x":0, "y":5.5, "w":1.5},
|
||||
{"x":2.5, "y":5.5, "w":1.5},
|
||||
{"x":4, "y":5.5, "w":7},
|
||||
{"x":11, "y":5.5, "w":1.5},
|
||||
{"x":13.5, "y":5.5, "w":1.5},
|
||||
{"x":15.5, "y":5.5},
|
||||
{"x":16.5, "y":5.5},
|
||||
{"x":17.5, "y":5.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_ansi_wkl_splitbs": {
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":2, "y":0},
|
||||
{"x":3, "y":0},
|
||||
{"x":4, "y":0},
|
||||
{"x":5, "y":0},
|
||||
{"x":6.5, "y":0},
|
||||
{"x":7.5, "y":0},
|
||||
{"x":8.5, "y":0},
|
||||
{"x":9.5, "y":0},
|
||||
{"x":11, "y":0},
|
||||
{"x":12, "y":0},
|
||||
{"x":13, "y":0},
|
||||
{"x":14, "y":0},
|
||||
{"x":15.5, "y":0},
|
||||
{"x":16.5, "y":0},
|
||||
{"x":17.5, "y":0},
|
||||
{"x":0, "y":1.5},
|
||||
{"x":1, "y":1.5},
|
||||
{"x":2, "y":1.5},
|
||||
{"x":3, "y":1.5},
|
||||
{"x":4, "y":1.5},
|
||||
{"x":5, "y":1.5},
|
||||
{"x":6, "y":1.5},
|
||||
{"x":7, "y":1.5},
|
||||
{"x":8, "y":1.5},
|
||||
{"x":9, "y":1.5},
|
||||
{"x":10, "y":1.5},
|
||||
{"x":11, "y":1.5},
|
||||
{"x":12, "y":1.5},
|
||||
{"x":13, "y":1.5},
|
||||
{"x":14, "y":1.5},
|
||||
{"x":15.5, "y":1.5},
|
||||
{"x":16.5, "y":1.5},
|
||||
{"x":17.5, "y":1.5},
|
||||
{"x":0, "y":2.5, "w":1.5},
|
||||
{"x":1.5, "y":2.5},
|
||||
{"x":2.5, "y":2.5},
|
||||
{"x":3.5, "y":2.5},
|
||||
{"x":4.5, "y":2.5},
|
||||
{"x":5.5, "y":2.5},
|
||||
{"x":6.5, "y":2.5},
|
||||
{"x":7.5, "y":2.5},
|
||||
{"x":8.5, "y":2.5},
|
||||
{"x":9.5, "y":2.5},
|
||||
{"x":10.5, "y":2.5},
|
||||
{"x":11.5, "y":2.5},
|
||||
{"x":12.5, "y":2.5},
|
||||
{"x":13.5, "y":2.5, "w":1.5},
|
||||
{"x":15.5, "y":2.5},
|
||||
{"x":16.5, "y":2.5},
|
||||
{"x":17.5, "y":2.5},
|
||||
{"x":0, "y":3.5, "w":1.75},
|
||||
{"x":1.75, "y":3.5},
|
||||
{"x":2.75, "y":3.5},
|
||||
{"x":3.75, "y":3.5},
|
||||
{"x":4.75, "y":3.5},
|
||||
{"x":5.75, "y":3.5},
|
||||
{"x":6.75, "y":3.5},
|
||||
{"x":7.75, "y":3.5},
|
||||
{"x":8.75, "y":3.5},
|
||||
{"x":9.75, "y":3.5},
|
||||
{"x":10.75, "y":3.5},
|
||||
{"x":11.75, "y":3.5},
|
||||
{"x":12.75, "y":3.5, "w":2.25},
|
||||
{"x":0, "y":4.5, "w":2.25},
|
||||
{"x":2.25, "y":4.5},
|
||||
{"x":3.25, "y":4.5},
|
||||
{"x":4.25, "y":4.5},
|
||||
{"x":5.25, "y":4.5},
|
||||
{"x":6.25, "y":4.5},
|
||||
{"x":7.25, "y":4.5},
|
||||
{"x":8.25, "y":4.5},
|
||||
{"x":9.25, "y":4.5},
|
||||
{"x":10.25, "y":4.5},
|
||||
{"x":11.25, "y":4.5},
|
||||
{"x":12.25, "y":4.5, "w":2.75},
|
||||
{"x":16.5, "y":4.5},
|
||||
{"x":0, "y":5.5, "w":1.5},
|
||||
{"x":2.5, "y":5.5, "w":1.5},
|
||||
{"x":4, "y":5.5, "w":7},
|
||||
{"x":11, "y":5.5, "w":1.5},
|
||||
{"x":13.5, "y":5.5, "w":1.5},
|
||||
{"x":15.5, "y":5.5},
|
||||
{"x":16.5, "y":5.5},
|
||||
{"x":17.5, "y":5.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_iso": {
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":2, "y":0},
|
||||
{"x":3, "y":0},
|
||||
{"x":4, "y":0},
|
||||
{"x":5, "y":0},
|
||||
{"x":6.5, "y":0},
|
||||
{"x":7.5, "y":0},
|
||||
{"x":8.5, "y":0},
|
||||
{"x":9.5, "y":0},
|
||||
{"x":11, "y":0},
|
||||
{"x":12, "y":0},
|
||||
{"x":13, "y":0},
|
||||
{"x":14, "y":0},
|
||||
{"x":15.5, "y":0},
|
||||
{"x":16.5, "y":0},
|
||||
{"x":17.5, "y":0},
|
||||
{"x":0, "y":1.5},
|
||||
{"x":1, "y":1.5},
|
||||
{"x":2, "y":1.5},
|
||||
{"x":3, "y":1.5},
|
||||
{"x":4, "y":1.5},
|
||||
{"x":5, "y":1.5},
|
||||
{"x":6, "y":1.5},
|
||||
{"x":7, "y":1.5},
|
||||
{"x":8, "y":1.5},
|
||||
{"x":9, "y":1.5},
|
||||
{"x":10, "y":1.5},
|
||||
{"x":11, "y":1.5},
|
||||
{"x":12, "y":1.5},
|
||||
{"x":13, "y":1.5, "w":2},
|
||||
{"x":15.5, "y":1.5},
|
||||
{"x":16.5, "y":1.5},
|
||||
{"x":17.5, "y":1.5},
|
||||
{"x":0, "y":2.5, "w":1.5},
|
||||
{"x":1.5, "y":2.5},
|
||||
{"x":2.5, "y":2.5},
|
||||
{"x":3.5, "y":2.5},
|
||||
{"x":4.5, "y":2.5},
|
||||
{"x":5.5, "y":2.5},
|
||||
{"x":6.5, "y":2.5},
|
||||
{"x":7.5, "y":2.5},
|
||||
{"x":8.5, "y":2.5},
|
||||
{"x":9.5, "y":2.5},
|
||||
{"x":10.5, "y":2.5},
|
||||
{"x":11.5, "y":2.5},
|
||||
{"x":12.5, "y":2.5},
|
||||
{"x":13.75, "y":2.5, "w":1.25, "h":2},
|
||||
{"x":15.5, "y":2.5},
|
||||
{"x":16.5, "y":2.5},
|
||||
{"x":17.5, "y":2.5},
|
||||
{"x":0, "y":3.5, "w":1.75},
|
||||
{"x":1.75, "y":3.5},
|
||||
{"x":2.75, "y":3.5},
|
||||
{"x":3.75, "y":3.5},
|
||||
{"x":4.75, "y":3.5},
|
||||
{"x":5.75, "y":3.5},
|
||||
{"x":6.75, "y":3.5},
|
||||
{"x":7.75, "y":3.5},
|
||||
{"x":8.75, "y":3.5},
|
||||
{"x":9.75, "y":3.5},
|
||||
{"x":10.75, "y":3.5},
|
||||
{"x":11.75, "y":3.5},
|
||||
{"x":12.75, "y":3.5},
|
||||
{"x":0, "y":4.5, "w":1.25},
|
||||
{"x":1.25, "y":4.5},
|
||||
{"x":2.25, "y":4.5},
|
||||
{"x":3.25, "y":4.5},
|
||||
{"x":4.25, "y":4.5},
|
||||
{"x":5.25, "y":4.5},
|
||||
{"x":6.25, "y":4.5},
|
||||
{"x":7.25, "y":4.5},
|
||||
{"x":8.25, "y":4.5},
|
||||
{"x":9.25, "y":4.5},
|
||||
{"x":10.25, "y":4.5},
|
||||
{"x":11.25, "y":4.5},
|
||||
{"x":12.25, "y":4.5, "w":2.75},
|
||||
{"x":16.5, "y":4.5},
|
||||
{"x":0, "y":5.5, "w":1.25},
|
||||
{"x":1.25, "y":5.5, "w":1.25},
|
||||
{"x":2.5, "y":5.5, "w":1.25},
|
||||
{"x":3.75, "y":5.5, "w":6.25},
|
||||
{"x":10, "y":5.5, "w":1.25},
|
||||
{"x":11.25, "y":5.5, "w":1.25},
|
||||
{"x":12.5, "y":5.5, "w":1.25},
|
||||
{"x":13.75, "y":5.5, "w":1.25},
|
||||
{"x":15.5, "y":5.5},
|
||||
{"x":16.5, "y":5.5},
|
||||
{"x":17.5, "y":5.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
36
keyboards/epoch80/keymaps/default/keymap.c
Normal file
36
keyboards/epoch80/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,36 @@
|
||||
/* Copyright 2021 kb-elmo<mail@elmo.space>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_tkl_ansi(
|
||||
KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS,
|
||||
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_HOME, 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_BSLS, KC_DEL, KC_END, 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_ENT,
|
||||
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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_tkl_ansi(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, BL_DEC, BL_INC,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
36
keyboards/epoch80/keymaps/iso/keymap.c
Normal file
36
keyboards/epoch80/keymaps/iso/keymap.c
Normal file
@@ -0,0 +1,36 @@
|
||||
/* Copyright 2021 kb-elmo<mail@elmo.space>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_tkl_iso(
|
||||
KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS,
|
||||
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_HOME, 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_END, 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, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_tkl_iso(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, BL_DEC, BL_INC,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
36
keyboards/epoch80/keymaps/tsangan/keymap.c
Normal file
36
keyboards/epoch80/keymaps/tsangan/keymap.c
Normal file
@@ -0,0 +1,36 @@
|
||||
/* Copyright 2021 kb-elmo<mail@elmo.space>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_tkl_ansi_tsangan(
|
||||
KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS,
|
||||
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_HOME, 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_BSLS, KC_DEL, KC_END, 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_ENT,
|
||||
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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_tkl_ansi_tsangan(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, BL_DEC, BL_INC,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
52
keyboards/epoch80/keymaps/via/keymap.c
Normal file
52
keyboards/epoch80/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,52 @@
|
||||
/* Copyright 2021 kb-elmo<mail@elmo.space>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS,
|
||||
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_DEL, KC_INS, KC_HOME, 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_BSLS, KC_DEL, KC_END, 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_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, MO(1), KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[2] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[3] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
1
keyboards/epoch80/keymaps/via/rules.mk
Normal file
1
keyboards/epoch80/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
36
keyboards/epoch80/keymaps/wkl/keymap.c
Normal file
36
keyboards/epoch80/keymaps/wkl/keymap.c
Normal file
@@ -0,0 +1,36 @@
|
||||
/* Copyright 2021 kb-elmo<mail@elmo.space>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_tkl_ansi_wkl(
|
||||
KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS,
|
||||
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_HOME, 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_BSLS, KC_DEL, KC_END, 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_ENT,
|
||||
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_LCTL, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_tkl_ansi_wkl(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, BL_DEC, BL_INC,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
20
keyboards/epoch80/readme.md
Normal file
20
keyboards/epoch80/readme.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Epoch 80 / Dolch.CR 80
|
||||
|
||||

|
||||
|
||||
Dolch PAC inspired TKL keyboard designed by Cary Works and made by KBDFans.
|
||||
The board was also sold in a zFrontier groupbuy under the name Dolch.CR 80.
|
||||
|
||||
* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo)
|
||||
* Hardware Supported: Epoch 80 / Dolch.CR 80 PCB
|
||||
* Hardware Availability: https://kbdfans.com/collections/80-diy-kit/products/coming-soon-epoch-80-mechanical-keyboard
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make epoch80:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make epoch80:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
24
keyboards/epoch80/rules.mk
Normal file
24
keyboards/epoch80/rules.mk
Normal file
@@ -0,0 +1,24 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = no # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = no # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
|
||||
LAYOUTS = tkl_ansi tkl_iso
|
@@ -20,8 +20,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xBEEF
|
||||
#define PRODUCT_ID 0xFEED
|
||||
#define VENDOR_ID 0x434B
|
||||
#define PRODUCT_ID 0xE590
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER reggalicious
|
||||
#define PRODUCT ergosaurus
|
||||
@@ -58,24 +58,24 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
// #define BACKLIGHT_BREATHING
|
||||
// #define BACKLIGHT_LEVELS 3
|
||||
|
||||
// #ifdef RGBLIGHT_ENABLE
|
||||
// #define RGB_DI_PIN B6
|
||||
// #define RGBLED_NUM 16
|
||||
// #define RGBLIGHT_HUE_STEP 8
|
||||
// #define RGBLIGHT_SAT_STEP 8
|
||||
// #define RGBLIGHT_VAL_STEP 8
|
||||
// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
||||
// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
# define RGB_DI_PIN B6
|
||||
#define RGBLED_NUM 32
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#define RGBLIGHT_LIMIT_VAL 200 /* The maximum brightness level */
|
||||
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||
// /*== all animations enable ==*/
|
||||
// #define RGBLIGHT_ANIMATIONS
|
||||
// /*== or choose animations ==*/
|
||||
// #define RGBLIGHT_EFFECT_BREATHING
|
||||
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
#define RGBLIGHT_EFFECT_BREATHING
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
// #define RGBLIGHT_EFFECT_SNAKE
|
||||
// #define RGBLIGHT_EFFECT_KNIGHT
|
||||
// #define RGBLIGHT_EFFECT_CHRISTMAS
|
||||
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
// #define RGBLIGHT_EFFECT_RGB_TEST
|
||||
// #define RGBLIGHT_EFFECT_ALTERNATING
|
||||
// /*== customize breathing effect ==*/
|
||||
@@ -84,7 +84,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
// /*==== use exp() and sin() ====*/
|
||||
// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
|
||||
// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
|
||||
// #endif
|
||||
#endif
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
@@ -198,6 +198,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
|
||||
/* enable basic MIDI features:
|
||||
- MIDI notes can be sent when in Music mode is on
|
||||
*/
|
||||
|
51
keyboards/ergosaurus/keymaps/default/via/keymap.c
Normal file
51
keyboards/ergosaurus/keymaps/default/via/keymap.c
Normal file
@@ -0,0 +1,51 @@
|
||||
/* Copyright 2021 littleferris
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_alice_split_bs(
|
||||
KC_GRV, 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_BSLS, KC_DEL,
|
||||
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_BSPC,
|
||||
KC_PGDN, KC_LCTL, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LGUI, KC_LALT, KC_ENT, MO(2), KC_SPC, KC_RALT, KC_RCTL
|
||||
),
|
||||
|
||||
[1] = LAYOUT_alice_split_bs(
|
||||
_______, 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_UP, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[2] = LAYOUT_alice_split_bs(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, RESET
|
||||
),
|
||||
|
||||
[3] = LAYOUT_alice_split_bs(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, RESET
|
||||
)
|
||||
};
|
2
keyboards/ergosaurus/keymaps/default/via/rules.mk
Normal file
2
keyboards/ergosaurus/keymaps/default/via/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
17
keyboards/eyeohdesigns/babyv/babyv.c
Normal file
17
keyboards/eyeohdesigns/babyv/babyv.c
Normal file
@@ -0,0 +1,17 @@
|
||||
/* Copyright 2020 Eye Oh! Designs
|
||||
*
|
||||
* 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 "babyv.h"
|
71
keyboards/eyeohdesigns/babyv/babyv.h
Normal file
71
keyboards/eyeohdesigns/babyv/babyv.h
Normal file
@@ -0,0 +1,71 @@
|
||||
/* Copyright 2020 Eye Oh! Designs
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define LAYOUT_1u( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
|
||||
k30, k33, k34, k35, k36, k37, k38, k3b \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
|
||||
{ k30, KC_NO, KC_NO, k33, k34, k35, k36, k37, k38, KC_NO, KC_NO, k3b } \
|
||||
}
|
||||
|
||||
#define LAYOUT_2u( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
|
||||
k30, k33, k35, k36, k38, k3b \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
|
||||
{ k30, KC_NO, KC_NO, k33, KC_NO, k35, k36, KC_NO, k38, KC_NO, KC_NO, k3b } \
|
||||
}
|
||||
|
||||
#define LAYOUT_1u_2u( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
|
||||
k30, k33, k34, k35, k36, k38, k3b \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
|
||||
{ k30, KC_NO, KC_NO, k33, k34, k35, k36, KC_NO, k38, KC_NO, KC_NO, k3b } \
|
||||
}
|
||||
#define LAYOUT_2u_1u( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
|
||||
k30, k33, k35, k36, k37, k38, k3b \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
|
||||
{ k30, KC_NO, KC_NO, k33, KC_NO, k35, k36, k37, k38, KC_NO, KC_NO, k3b } \
|
||||
}
|
||||
|
60
keyboards/eyeohdesigns/babyv/config.h
Normal file
60
keyboards/eyeohdesigns/babyv/config.h
Normal file
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
Copyright 2020 Eye Oh! Designs
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x0000
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Eye Oh Designs
|
||||
#define PRODUCT babyv
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 4
|
||||
#define MATRIX_COLS 12
|
||||
|
||||
|
||||
#define MATRIX_ROW_PINS { B5, D2, D5, D3 }
|
||||
#define MATRIX_COL_PINS { D0, D1, B4, D7, D6, D4, B0, B1, B2, F0, F1, F4 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
#define BACKLIGHT_PIN B6
|
||||
#define BACKLIGHT_LEVELS 3
|
||||
|
||||
#define RGB_DI_PIN B7
|
||||
#define RGBLED_NUM 12
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
||||
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||
// /*== all animations enable ==*/
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* disable these deprecated features by default */
|
||||
#define NO_ACTION_MACRO
|
||||
#define NO_ACTION_FUNCTION
|
22
keyboards/eyeohdesigns/babyv/info.json
Normal file
22
keyboards/eyeohdesigns/babyv/info.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"keyboard_name": "babyv",
|
||||
"url": "",
|
||||
"maintainer": "eye oh designs",
|
||||
"width": 14.25,
|
||||
"height": 6.14,
|
||||
"layouts": {
|
||||
"LAYOUT_2u": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":7, "y":0}, {"label":"U", "x":8, "y":0}, {"label":"I", "x":9, "y":0}, {"label":"O", "x":10, "y":0}, {"label":"P", "x":11, "y":0}, {"label":"Back Space", "x":12, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":7, "y":1}, {"label":"J", "x":8, "y":1}, {"label":"K", "x":9, "y":1}, {"label":"L", "x":10, "y":1}, {"label":";", "x":11, "y":1}, {"label":"Return", "x":12, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":7, "y":2}, {"label":"M", "x":8, "y":2}, {"label":",", "x":9, "y":2}, {"label":".", "x":10, "y":2}, {"label":"/", "x":11, "y":2}, {"label":"Shift", "x":12, "y":2}, {"label":"Ctl", "x":0, "y":3}, {"label":"Alt", "x":3, "y":3}, {"x":4, "y":3, "w":2}, {"x":7, "y":3, "w":2}, {"label":"Fn", "x":9, "y":3}, {"label":"OS", "x":12, "y":3}]
|
||||
},
|
||||
"LAYOUT_1u": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":7, "y":0}, {"label":"U", "x":8, "y":0}, {"label":"I", "x":9, "y":0}, {"label":"O", "x":10, "y":0}, {"label":"P", "x":11, "y":0}, {"label":"Back Space", "x":12, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":7, "y":1}, {"label":"J", "x":8, "y":1}, {"label":"K", "x":9, "y":1}, {"label":"L", "x":10, "y":1}, {"label":";", "x":11, "y":1}, {"label":"Return", "x":12, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":7, "y":2}, {"label":"M", "x":8, "y":2}, {"label":",", "x":9, "y":2}, {"label":".", "x":10, "y":2}, {"label":"/", "x":11, "y":2}, {"label":"Shift", "x":12, "y":2}, {"label":"Ctl", "x":0, "y":3}, {"label":"Alt", "x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"label":"Fn", "x":9, "y":3}, {"label":"OS", "x":12, "y":3}]
|
||||
},
|
||||
"LAYOUT_1u2u": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":7, "y":0}, {"label":"U", "x":8, "y":0}, {"label":"I", "x":9, "y":0}, {"label":"O", "x":10, "y":0}, {"label":"P", "x":11, "y":0}, {"label":"Back Space", "x":12, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":7, "y":1}, {"label":"J", "x":8, "y":1}, {"label":"K", "x":9, "y":1}, {"label":"L", "x":10, "y":1}, {"label":";", "x":11, "y":1}, {"label":"Return", "x":12, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":7, "y":2}, {"label":"M", "x":8, "y":2}, {"label":",", "x":9, "y":2}, {"label":".", "x":10, "y":2}, {"label":"/", "x":11, "y":2}, {"label":"Shift", "x":12, "y":2}, {"x":0, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":7, "y":3, "w":2}, {"x":9, "y":3}, {"label":"OS", "x":12, "y":3}]
|
||||
},
|
||||
"LAYOUT_2u1u": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":7, "y":0}, {"label":"U", "x":8, "y":0}, {"label":"I", "x":9, "y":0}, {"label":"O", "x":10, "y":0}, {"label":"P", "x":11, "y":0}, {"label":"Back Space", "x":12, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":7, "y":1}, {"label":"J", "x":8, "y":1}, {"label":"K", "x":9, "y":1}, {"label":"L", "x":10, "y":1}, {"label":";", "x":11, "y":1}, {"label":"Return", "x":12, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":7, "y":2}, {"label":"M", "x":8, "y":2}, {"label":",", "x":9, "y":2}, {"label":".", "x":10, "y":2}, {"label":"/", "x":11, "y":2}, {"label":"Shift", "x":12, "y":2}, {"x":0, "y":3}, {"x":3, "y":3}, {"x":4, "y":3, "w":2}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"label":"OS", "x":12, "y":3}]
|
||||
}
|
||||
|
||||
}
|
||||
}
|
45
keyboards/eyeohdesigns/babyv/keymaps/1u/keymap.c
Normal file
45
keyboards/eyeohdesigns/babyv/keymaps/1u/keymap.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/* Copyright 2020 Eye Oh! Designs
|
||||
*
|
||||
* 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
|
||||
|
||||
// Defines names for use in layer keycodes and the keymap
|
||||
enum layer_names {
|
||||
|
||||
QWERTY,
|
||||
FUNCTN,
|
||||
NUMBRS,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[QWERTY] = LAYOUT_1u(
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
|
||||
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_LCTL, MO(FUNCTN), MO(NUMBRS), KC_SPC, KC_SPC, MO(NUMBRS), MO(FUNCTN), KC_RALT
|
||||
),
|
||||
[FUNCTN] = LAYOUT_1u(
|
||||
KC_VOLU, KC_Q, KC_PGUP, RGB_TOG, BL_STEP, KC_T, KC_Y, KC_U, KC_UP, RGB_MOD, RGB_RMOD, KC_DEL,
|
||||
KC_VOLD, KC_HOME, KC_PGDN, KC_D, KC_U, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_QUOT, RESET,
|
||||
KC_LSFT, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_LBRC, KC_RBRC, RGB_VAI, RGB_VAD, KC_DOT, KC_BSLS, KC_RSFT,
|
||||
KC_LCTL, KC_TRNS, KC_TRNS, KC_SPC, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[NUMBRS] = LAYOUT_1u(
|
||||
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_MUTE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ENT,
|
||||
KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_RSFT,
|
||||
KC_LCTL, KC_TRNS, KC_TRNS, KC_SPC, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
};
|
44
keyboards/eyeohdesigns/babyv/keymaps/1u2u/keymap.c
Normal file
44
keyboards/eyeohdesigns/babyv/keymaps/1u2u/keymap.c
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Copyright 2020 Eye Oh! Designs
|
||||
*
|
||||
* 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
|
||||
|
||||
// Defines names for use in layer keycodes and the keymap
|
||||
enum layer_names {
|
||||
QWERTY,
|
||||
FUNCTN,
|
||||
NUMBRS,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[QWERTY] = LAYOUT_1u_2u(
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
|
||||
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_LCTL, KC_LALT, MO(FUNCTN), MO(NUMBRS), KC_SPC, MO(FUNCTN), KC_RCTL
|
||||
),
|
||||
[FUNCTN] = LAYOUT_1u_2u(
|
||||
KC_VOLU, KC_Q, KC_PGUP, RGB_TOG, BL_STEP, KC_T, KC_Y, KC_U, KC_UP, RGB_MOD, RGB_RMOD, KC_DEL,
|
||||
KC_VOLD, KC_HOME, KC_PGDN, KC_D, KC_U, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_QUOT, RESET,
|
||||
KC_LSFT, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_LBRC, KC_RBRC, RGB_VAI, RGB_VAD, KC_DOT, KC_BSLS, KC_RSFT,
|
||||
KC_LGUI, KC_LALT, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, RESET
|
||||
),
|
||||
[NUMBRS] = LAYOUT_1u_2u(
|
||||
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_MUTE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ENT,
|
||||
KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_RSFT,
|
||||
KC_LCTL, KC_LALT, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_RCTL
|
||||
),
|
||||
};
|
45
keyboards/eyeohdesigns/babyv/keymaps/2u1u/keymap.c
Normal file
45
keyboards/eyeohdesigns/babyv/keymaps/2u1u/keymap.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/* Copyright 2020 Eye Oh! Designs
|
||||
*
|
||||
* 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
|
||||
|
||||
// Defines names for use in layer keycodes and the keymap
|
||||
enum layer_names {
|
||||
|
||||
QWERTY,
|
||||
FUNCTN,
|
||||
NUMBRS,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[QWERTY] = LAYOUT_2u_1u(
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
|
||||
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_LCTL, MO(FUNCTN), KC_SPC, MO(NUMBRS), MO(FUNCTN), KC_LGUI, KC_RALT
|
||||
),
|
||||
[FUNCTN] = LAYOUT_2u_1u(
|
||||
KC_VOLU, KC_Q, KC_PGUP, RGB_TOG, BL_STEP, KC_T, KC_Y, KC_U, KC_UP, RGB_MOD, RGB_RMOD, KC_DEL,
|
||||
KC_VOLD, KC_HOME, KC_PGDN, KC_D, KC_U, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_QUOT, RESET,
|
||||
KC_LSFT, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_LBRC, KC_RBRC, RGB_VAI, RGB_VAD, KC_DOT, KC_BSLS, KC_RSFT,
|
||||
KC_LCTL, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_LGUI, KC_TRNS
|
||||
),
|
||||
[NUMBRS] = LAYOUT_2u_1u(
|
||||
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_MUTE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ENT,
|
||||
KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_RSFT,
|
||||
KC_LCTL, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_LGUI, KC_TRNS
|
||||
),
|
||||
};
|
44
keyboards/eyeohdesigns/babyv/keymaps/default/keymap.c
Normal file
44
keyboards/eyeohdesigns/babyv/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Copyright 2020 Eye Oh! Designs
|
||||
*
|
||||
* 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
|
||||
|
||||
// Defines names for use in layer keycodes and the keymap
|
||||
enum layer_names {
|
||||
QWERTY,
|
||||
FUNCT,
|
||||
NUMBRS,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[QWERTY] = LAYOUT_2u(
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
|
||||
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_LCTL, KC_LALT, MO(NUMBRS), KC_SPC, MO(FUNCT), KC_LGUI
|
||||
),
|
||||
[FUNCT] = LAYOUT_2u(
|
||||
KC_VOLU, KC_Q, KC_PGUP, RGB_TOG, BL_STEP, KC_T, KC_Y, KC_U, KC_UP, RGB_MOD, RGB_RMOD, KC_DEL,
|
||||
KC_VOLD, KC_HOME, KC_PGDN, KC_D, KC_U, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_QUOT, RESET,
|
||||
KC_LSFT, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_LBRC, KC_RBRC, RGB_VAI, RGB_VAD, KC_DOT, KC_BSLS, KC_RSFT,
|
||||
KC_LCTL, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, RESET
|
||||
),
|
||||
[NUMBRS] = LAYOUT_2u(
|
||||
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_MUTE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ENT,
|
||||
KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_RSFT,
|
||||
KC_LCTL, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_LGUI
|
||||
),
|
||||
};
|
19
keyboards/eyeohdesigns/babyv/readme.md
Normal file
19
keyboards/eyeohdesigns/babyv/readme.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# babyV
|
||||
|
||||

|
||||
|
||||
babyV is a 40% ortholinear take on the EM7/Alice layout.
|
||||
|
||||
* Keyboard Maintainer: [Eye Oh Designs](https://github.com/joedinkle)
|
||||
* Hardware Supported: babyV ver 1.00
|
||||
* Hardware Availability: Groupbuy ran from Nov - Dec 2020
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make eyeohdesigns/babyv:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make eyeohdesigns/babyv:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
22
keyboards/eyeohdesigns/babyv/rules.mk
Normal file
22
keyboards/eyeohdesigns/babyv/rules.mk
Normal file
@@ -0,0 +1,22 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = no # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = no # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
13
keyboards/eyeohdesigns/readme.md
Normal file
13
keyboards/eyeohdesigns/readme.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# eye oh designs
|
||||
|
||||
When I'm not spending time with family, or busy with work, I make keyboards that I hope you'll love.
|
||||
|
||||
Stay up to date with my projects on Instagram: @eyeohdesigns
|
||||
|
||||
I post on reddit and Geekhack as joedinkle
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
@@ -1,12 +1,61 @@
|
||||
{
|
||||
"keyboard_name": "cornelius",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"width": 7.55,
|
||||
"height": 6.11,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [{"label":"E", "x":2.5, "y":0}, {"label":"R", "x":3.5, "y":0.125}, {"label":"W", "x":1.5, "y":0.25}, {"label":"T", "x":4.5, "y":0.25}, {"label":"Tab", "x":-0.5, "y":0.625}, {"label":"Q", "x":0.5, "y":0.625}, {"label":"D", "x":2.5, "y":1}, {"label":"F", "x":3.5, "y":1.125}, {"label":"S", "x":1.5, "y":1.25}, {"label":"G", "x":4.5, "y":1.25}, {"label":"Esc", "x":-0.5, "y":1.625}, {"label":"A", "x":0.5, "y":1.625}, {"label":"C", "x":2.5, "y":2}, {"label":"V", "x":3.5, "y":2.125}, {"label":"X", "x":1.5, "y":2.25}, {"label":"B", "x":4.5, "y":2.25}, {"label":"Shift", "x":-0.5, "y":2.625}, {"label":"Z", "x":0.5, "y":2.625}, {"label":"Win", "x":1.5, "y":3.25}, {"label":"Alt", "x":3, "y":3.25}, {"label":"Fn", "x":-0.5, "y":3.625}, {"label":"Ctrl", "x":0.5, "y":3.625}, {"label":"Lower", "x":4.97, "y":2.11}, {"x":6.55, "y":0.48}, {"x":-7.55, "y":1.94}, {"label":"Raise", "x":-5.95, "y":3.58}, {"label":"I", "x":-3.5, "y":1.48}, {"label":"U", "x":-4.5, "y":1.605}, {"label":"Y", "x":-5.5, "y":1.73}, {"label":"O", "x":-2.5, "y":1.73}, {"label":"P", "x":-1.5, "y":2.105}, {"label":"Bksp", "x":-0.5, "y":2.105}, {"label":"K", "x":-3.5, "y":2.48}, {"label":"J", "x":-4.5, "y":2.605}, {"label":"H", "x":-5.5, "y":2.73}, {"label":"L", "x":-2.5, "y":2.73}, {"label":":", "x":-1.5, "y":3.105}, {"label":"\"", "x":-0.5, "y":3.105}, {"label":"<", "x":-3.5, "y":3.48}, {"label":"M", "x":-4.5, "y":3.605}, {"label":"N", "x":-5.5, "y":3.73}, {"label":">", "x":-2.5, "y":3.73}, {"label":"?", "x":-1.5, "y":4.105}, {"label":"Shift", "x":-0.5, "y":4.105}, {"label":"Alt", "x":-4, "y":4.73}, {"label":"Win", "x":-2.5, "y":4.73}, {"label":"Ctrl", "x":-1.5, "y":5.105}, {"label":"Fn", "x":-0.5, "y":5.105}]
|
||||
"keyboard_name":"cornelius",
|
||||
"url":"",
|
||||
"maintainer":"foostan",
|
||||
"width":14,
|
||||
"height":8.5,
|
||||
"layouts":{
|
||||
"LAYOUT":{
|
||||
"layout":[
|
||||
{"label":"Tab", "x":0,"y":0.625},
|
||||
{"label":"Q", "x":1,"y":0.625},
|
||||
{"label":"W", "x":2,"y":0.25},
|
||||
{"label":"E", "x":3,"y":0},
|
||||
{"label":"R", "x":4,"y":0.125},
|
||||
{"label":"T", "x":5,"y":0.25},
|
||||
{"label":"Y", "x":8,"y":0.25},
|
||||
{"label":"U", "x":9,"y":0.125},
|
||||
{"label":"I", "x":10,"y":0},
|
||||
{"label":"O", "x":11,"y":0.25},
|
||||
{"label":"P", "x":12,"y":0.625},
|
||||
{"label":"Bksp", "x":13,"y":0.625},
|
||||
{"label":"Esc", "x":0,"y":1.625},
|
||||
{"label":"A", "x":1,"y":1.625},
|
||||
{"label":"S", "x":2,"y":1.25},
|
||||
{"label":"D", "x":3,"y":1},
|
||||
{"label":"F", "x":4,"y":1.125},
|
||||
{"label":"G", "x":5,"y":1.25},
|
||||
{"label":"H", "x":8,"y":1.25},
|
||||
{"label":"J", "x":9,"y":1.125},
|
||||
{"label":"K", "x":10,"y":1},
|
||||
{"label":"L", "x":11,"y":1.25},
|
||||
{"label":":", "x":12,"y":1.625},
|
||||
{"label":"\"", "x":13,"y":1.625},
|
||||
{"label":"Shift", "x":0,"y":2.625},
|
||||
{"label":"Z", "x":1,"y":2.625},
|
||||
{"label":"X", "x":2,"y":2.25},
|
||||
{"label":"C", "x":3,"y":2},
|
||||
{"label":"V", "x":4,"y":2.125},
|
||||
{"label":"B", "x":5,"y":2.25},
|
||||
{"label":"N", "x":8,"y":2.25},
|
||||
{"label":"M", "x":9,"y":2.125},
|
||||
{"label":"<", "x":10,"y":2},
|
||||
{"label":">", "x":11,"y":2.25},
|
||||
{"label":"?", "x":12,"y":2.625},
|
||||
{"label":"Shift", "x":13,"y":2.625},
|
||||
{"label":"Fn", "x":0,"y":3.625},
|
||||
{"label":"Ctrl", "x":1,"y":3.625},
|
||||
{"label":"Win", "x":2,"y":3.25},
|
||||
{"label":"Alt", "x":3.5,"y":3.25},
|
||||
{"label":"Lower", "x":4.5,"y":3.5},
|
||||
{"x":5.5,"y":3.75},
|
||||
{"x":7.5,"y":3.75},
|
||||
{"label":"Raise", "x":8.5,"y":3.5},
|
||||
{"label":"Alt", "x":9.5,"y":3.25},
|
||||
{"label":"Win", "x":11,"y":3.25},
|
||||
{"label":"Ctrl", "x":12,"y":3.625},
|
||||
{"label":"Fn", "x":13,"y":3.625}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -3,8 +3,8 @@
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x6965
|
||||
#define VENDOR_ID 0x4E45 // NE
|
||||
#define PRODUCT_ID 0x5244 // RD
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER GON
|
||||
#define PRODUCT NerD TKL
|
||||
@@ -22,6 +22,9 @@
|
||||
#define MATRIX_COL_PINS { E6, B0, B1, B2, B3, F0, D0, D5, D1 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
#define BOOTMAGIC_LITE_ROW 8
|
||||
#define BOOTMAGIC_LITE_COLUMN 0
|
||||
|
||||
/* COL2ROW or ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
|
58
keyboards/gon/nerdtkl/keymaps/via/keymap.c
Normal file
58
keyboards/gon/nerdtkl/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,58 @@
|
||||
/* Copyright 2020 Michael Kaylan
|
||||
*
|
||||
* 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
|
||||
|
||||
// Keymap layers
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_tkl(
|
||||
KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS,
|
||||
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_HOME, 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_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_LCTL, 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, MO(1), KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_tkl(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[2] = LAYOUT_tkl(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[3] = LAYOUT_tkl(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
};
|
3
keyboards/gon/nerdtkl/keymaps/via/rules.mk
Normal file
3
keyboards/gon/nerdtkl/keymaps/via/rules.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
||||
BACKLIGHT_ENABLE = yes
|
@@ -2,8 +2,8 @@
|
||||
"keyboard_name": "bolek",
|
||||
"url": "https://github.com/klausweiss/bolek",
|
||||
"maintainer": "klausweiss",
|
||||
"height": 5,
|
||||
"width": 11,
|
||||
"height": 5.25,
|
||||
"width": 12.75,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
@@ -12,34 +12,34 @@
|
||||
{ "label": "E", "x": 2, "y": 0 },
|
||||
{ "label": "R", "x": 3, "y": 0.25 },
|
||||
{ "label": "T", "x": 4, "y": 0.5 },
|
||||
{ "label": "A", "x": 0, "y": 1.25 },
|
||||
{ "label": "S", "x": 1, "y": 1 },
|
||||
{ "label": "D", "x": 2, "y": 1 },
|
||||
{ "label": "F", "x": 3, "y": 1.25 },
|
||||
{ "label": "G", "x": 4, "y": 1.5 },
|
||||
{ "label": "Z", "x": 0, "y": 2.25 },
|
||||
{ "label": "X", "x": 1, "y": 2 },
|
||||
{ "label": "C", "x": 2, "y": 2 },
|
||||
{ "label": "V", "x": 3, "y": 2.25 },
|
||||
{ "label": "B", "x": 4, "y": 2.5 },
|
||||
{ "label": "ESC", "x": 3.25, "y": 3.75 },
|
||||
{ "label": "SPC", "x": 4.25, "y": 4 },
|
||||
{ "label": "TAB", "x": 5.25, "y": 4.25 },
|
||||
{ "label": "Y", "x": 7.75, "y": 0.5 },
|
||||
{ "label": "U", "x": 8.75, "y": 0.25 },
|
||||
{ "label": "I", "x": 9.75, "y": 0 },
|
||||
{ "label": "O", "x": 10.75, "y": 0 },
|
||||
{ "label": "P", "x": 11.75, "y": 0.25 },
|
||||
{ "label": "A", "x": 0, "y": 1.25 },
|
||||
{ "label": "S", "x": 1, "y": 1 },
|
||||
{ "label": "D", "x": 2, "y": 1 },
|
||||
{ "label": "F", "x": 3, "y": 1.25 },
|
||||
{ "label": "G", "x": 4, "y": 1.5 },
|
||||
{ "label": "H", "x": 7.75, "y": 1.5 },
|
||||
{ "label": "J", "x": 8.75, "y": 1.25 },
|
||||
{ "label": "K", "x": 9.75, "y": 1 },
|
||||
{ "label": "L", "x": 10.75, "y": 1 },
|
||||
{ "label": ";", "x": 11.75, "y": 1.25 },
|
||||
{ "label": "Z", "x": 0, "y": 2.25 },
|
||||
{ "label": "X", "x": 1, "y": 2 },
|
||||
{ "label": "C", "x": 2, "y": 2 },
|
||||
{ "label": "V", "x": 3, "y": 2.25 },
|
||||
{ "label": "B", "x": 4, "y": 2.5 },
|
||||
{ "label": "N", "x": 7.75, "y": 2.5 },
|
||||
{ "label": "M", "x": 8.75, "y": 2.25 },
|
||||
{ "label": ",", "x": 9.75, "y": 2 },
|
||||
{ "label": ".", "x": 10.75, "y": 2 },
|
||||
{ "label": "'", "x": 11.75, "y": 2.25 },
|
||||
{ "label": "ESC", "x": 3.25, "y": 3.75 },
|
||||
{ "label": "SPC", "x": 4.25, "y": 4 },
|
||||
{ "label": "TAB", "x": 5.25, "y": 4.25 },
|
||||
{ "label": "RET", "x": 6.5, "y": 4.25 },
|
||||
{ "label": "BSPC", "x": 7.5, "y": 4 },
|
||||
{ "label": "RESET", "x": 8.5, "y": 3.75 }
|
||||
|
57
keyboards/handwired/ergocheap/chconf.h
Normal file
57
keyboards/handwired/ergocheap/chconf.h
Normal file
@@ -0,0 +1,57 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file was auto-generated by:
|
||||
* `qmk chibios-confupdate -i keyboards/handwired/ergocheap/chconf.h -r platforms/chibios/common/configs/chconf.h`
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define CH_CFG_ST_TIMEDELTA 0
|
||||
|
||||
#define CH_CFG_USE_TM FALSE
|
||||
|
||||
#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
|
||||
|
||||
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
|
||||
|
||||
#define CH_CFG_USE_MEMPOOLS FALSE
|
||||
|
||||
#define CH_CFG_USE_OBJ_FIFOS FALSE
|
||||
|
||||
#define CH_CFG_USE_PIPES FALSE
|
||||
|
||||
#define CH_CFG_USE_DYNAMIC FALSE
|
||||
|
||||
#define CH_CFG_USE_FACTORY FALSE
|
||||
|
||||
#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE
|
||||
|
||||
#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE
|
||||
|
||||
#define CH_CFG_FACTORY_SEMAPHORES FALSE
|
||||
|
||||
#define CH_CFG_FACTORY_MAILBOXES FALSE
|
||||
|
||||
#define CH_CFG_FACTORY_OBJ_FIFOS FALSE
|
||||
|
||||
#define CH_CFG_FACTORY_PIPES FALSE
|
||||
|
||||
#define CH_DBG_ENABLE_STACK_CHECK FALSE
|
||||
|
||||
#include_next <chconf.h>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user