Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b30d0361c5 | ||
|
|
063a74b660 | ||
|
|
3ff635b9a8 | ||
|
|
2c98c4dd4e | ||
|
|
8c66c5aa9b | ||
|
|
b7dc2eb9ab | ||
|
|
00fc35539d | ||
|
|
65c9da5a65 | ||
|
|
d1819f02df | ||
|
|
e1cdfdc0e7 | ||
|
|
97c18bfbc4 | ||
|
|
0e76b27661 | ||
|
|
bd4c66a26b | ||
|
|
7c57efaaf9 | ||
|
|
d4dc2a577f | ||
|
|
92839f8a09 | ||
|
|
907c1c64cf | ||
|
|
8b9e3e9979 | ||
|
|
6600f32d35 | ||
|
|
e9fa41631c | ||
|
|
91efcfb43a | ||
|
|
24f59c2d72 | ||
|
|
398a7e5b3f | ||
|
|
48db3ad6ef | ||
|
|
12b43f55d6 | ||
|
|
6d6340a82b | ||
|
|
67beec5e94 | ||
|
|
09a53d1aa3 | ||
|
|
4f9e5d4cde | ||
|
|
cf17a8eb95 | ||
|
|
207b17bc4d | ||
|
|
1baa99c647 | ||
|
|
e9e6054ee7 | ||
|
|
4e4a3449a7 | ||
|
|
7c17b87215 | ||
|
|
62ceb46e9d | ||
|
|
2c0201e80f | ||
|
|
51509ec07b | ||
|
|
b215bc3aba | ||
|
|
0928496220 | ||
|
|
a8904d47b7 | ||
|
|
32a47e7af4 | ||
|
|
b27c20d204 | ||
|
|
b87895dc12 | ||
|
|
2344b6865a | ||
|
|
3d45861216 | ||
|
|
e184da91a6 | ||
|
|
d36d5ecfad | ||
|
|
7baeaae9bb | ||
|
|
c85e010d45 | ||
|
|
097df6afdb | ||
|
|
6574ac52ad | ||
|
|
751a1789b5 | ||
|
|
ac7b1d0bf3 | ||
|
|
7369e195c2 | ||
|
|
30f4b4d763 | ||
|
|
9236c3a9d0 | ||
|
|
c2dd19de51 | ||
|
|
6d88794960 | ||
|
|
7a710fb426 | ||
|
|
c8b35b6230 | ||
|
|
995464cb9c | ||
|
|
45c73b13e1 |
No files matched your search
@@ -61,4 +61,4 @@ This page describes my cool feature. You can use my cool feature to make coffee
|
|||||||
|KC_SUGAR||Order Sugar|
|
|KC_SUGAR||Order Sugar|
|
||||||
```
|
```
|
||||||
|
|
||||||
Place your documentation into `docs/feature_<my_cool_feature>.md`, and add that file to the appropriate place in `docs/_sidebar.md`. If you have added any keycodes be sure to add them to `docs/keycodes.md` with a link back to your feature page.
|
Place your documentation into `docs/feature_<my_cool_feature>.md`, and add that file to the appropriate place in `docs/_summary.md`. If you have added any keycodes be sure to add them to `docs/keycodes.md` with a link back to your feature page.
|
||||||
+109
-138
@@ -1,4 +1,4 @@
|
|||||||
# Backlighting
|
# Backlighting :id=backlighting
|
||||||
|
|
||||||
Many keyboards support backlit keys by way of individual LEDs placed through or underneath the keyswitches. This feature is distinct from both the [RGB underglow](feature_rgblight.md) and [RGB matrix](feature_rgb_matrix.md) features as it usually allows for only a single colour per switch, though you can obviously install multiple different single coloured LEDs on a keyboard.
|
Many keyboards support backlit keys by way of individual LEDs placed through or underneath the keyswitches. This feature is distinct from both the [RGB underglow](feature_rgblight.md) and [RGB matrix](feature_rgb_matrix.md) features as it usually allows for only a single colour per switch, though you can obviously install multiple different single coloured LEDs on a keyboard.
|
||||||
|
|
||||||
@@ -6,103 +6,106 @@ QMK is able to control the brightness of these LEDs by switching them on and off
|
|||||||
|
|
||||||
The MCU can only supply so much current to its GPIO pins. Instead of powering the backlight directly from the MCU, the backlight pin is connected to a transistor or MOSFET that switches the power to the LEDs.
|
The MCU can only supply so much current to its GPIO pins. Instead of powering the backlight directly from the MCU, the backlight pin is connected to a transistor or MOSFET that switches the power to the LEDs.
|
||||||
|
|
||||||
## Feature Configuration
|
|
||||||
|
|
||||||
Most keyboards have backlighting enabled by default if they support it, but if it is not working for you, check that your `rules.mk` includes the following:
|
Most keyboards have backlighting enabled by default if they support it, but if it is not working for you, check that your `rules.mk` includes the following:
|
||||||
|
|
||||||
```makefile
|
```makefile
|
||||||
BACKLIGHT_ENABLE = yes
|
BACKLIGHT_ENABLE = yes
|
||||||
```
|
```
|
||||||
|
|
||||||
## Keycodes
|
## Keycodes :id=keycodes
|
||||||
Once enabled the following keycodes below can be used to change the backlight level.
|
|
||||||
|
|
||||||
|Key |Description |
|
Once enabled, the following keycodes below can be used to change the backlight level.
|
||||||
|---------|------------------------------------------|
|
|
||||||
|`BL_TOGG`|Turn the backlight on or off |
|
|
||||||
|`BL_STEP`|Cycle through backlight levels |
|
|
||||||
|`BL_ON` |Set the backlight to max brightness |
|
|
||||||
|`BL_OFF` |Turn the backlight off |
|
|
||||||
|`BL_INC` |Increase the backlight level |
|
|
||||||
|`BL_DEC` |Decrease the backlight level |
|
|
||||||
|`BL_BRTG`|Toggle backlight breathing |
|
|
||||||
|
|
||||||
## Backlight Functions
|
|Key |Description |
|
||||||
|
|---------|-----------------------------------|
|
||||||
|
|`BL_TOGG`|Turn the backlight on or off |
|
||||||
|
|`BL_STEP`|Cycle through backlight levels |
|
||||||
|
|`BL_ON` |Set the backlight to max brightness|
|
||||||
|
|`BL_OFF` |Turn the backlight off |
|
||||||
|
|`BL_INC` |Increase the backlight level |
|
||||||
|
|`BL_DEC` |Decrease the backlight level |
|
||||||
|
|`BL_BRTG`|Toggle backlight breathing |
|
||||||
|
|
||||||
|Function |Description |
|
## Functions :id=functions
|
||||||
|----------|-----------------------------------------------------------|
|
|
||||||
|`backlight_toggle()` |Turn the backlight on or off |
|
|
||||||
|`backlight_enable()` |Turn the backlight on |
|
|
||||||
|`backlight_disable()` |Turn the backlight off |
|
|
||||||
|`backlight_step()` |Cycle through backlight levels |
|
|
||||||
|`backlight_increase()` |Increase the backlight level |
|
|
||||||
|`backlight_decrease()` |Decrease the backlight level |
|
|
||||||
|`backlight_level(x)` |Sets the backlight level to specified level |
|
|
||||||
|`get_backlight_level()` |Return the current backlight level |
|
|
||||||
|`is_backlight_enabled()`|Return whether the backlight is currently on |
|
|
||||||
|
|
||||||
### Backlight Breathing Functions
|
These functions can be used to change the backlighting in custom code:
|
||||||
|
|
||||||
|Function |Description |
|
|Function |Description |
|
||||||
|----------|---------------------------------------------------|
|
|------------------------|--------------------------------------------|
|
||||||
|`breathing_toggle()` |Turn the backlight breathing on or off |
|
|`backlight_toggle()` |Turn the backlight on or off |
|
||||||
|`breathing_enable()` |Turns on backlight breathing |
|
|`backlight_enable()` |Turn the backlight on |
|
||||||
|`breathing_disable()` |Turns off backlight breathing |
|
|`backlight_disable()` |Turn the backlight off |
|
||||||
|
|`backlight_step()` |Cycle through backlight levels |
|
||||||
|
|`backlight_increase()` |Increase the backlight level |
|
||||||
|
|`backlight_decrease()` |Decrease the backlight level |
|
||||||
|
|`backlight_level(x)` |Sets the backlight level to specified level |
|
||||||
|
|`get_backlight_level()` |Return the current backlight level |
|
||||||
|
|`is_backlight_enabled()`|Return whether the backlight is currently on|
|
||||||
|
|
||||||
## Driver Configuration
|
If backlight breathing is enabled (see below), the following functions are also available:
|
||||||
|
|
||||||
|
|Function |Description |
|
||||||
|
|---------------------|--------------------------------------|
|
||||||
|
|`breathing_toggle()` |Turn the backlight breathing on or off|
|
||||||
|
|`breathing_enable()` |Turns on backlight breathing |
|
||||||
|
|`breathing_disable()`|Turns off backlight breathing |
|
||||||
|
|
||||||
|
## Configuration :id=configuration
|
||||||
|
|
||||||
To select which driver to use, configure your `rules.mk` with the following:
|
To select which driver to use, configure your `rules.mk` with the following:
|
||||||
|
|
||||||
```makefile
|
```makefile
|
||||||
BACKLIGHT_DRIVER = software # Valid driver values are 'pwm,software,no'
|
BACKLIGHT_DRIVER = software
|
||||||
```
|
```
|
||||||
|
|
||||||
See below for help on individual drivers.
|
Valid driver values are `pwm`, `software`, `custom` or `no`. See below for help on individual drivers.
|
||||||
|
|
||||||
## Common Driver Configuration
|
To configure the backlighting, `#define` these in your `config.h`:
|
||||||
|
|
||||||
To change the behavior of the backlighting, `#define` these in your `config.h`:
|
|Define |Default |Description |
|
||||||
|
|---------------------|-------------|-------------------------------------------------------------------------------------|
|
||||||
|
|`BACKLIGHT_PIN` |*Not defined*|The pin that controls the LED(s) |
|
||||||
|
|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) |
|
||||||
|
|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) |
|
||||||
|
|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported |
|
||||||
|
|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds |
|
||||||
|
|`BACKLIGHT_ON_STATE` |`1` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low|
|
||||||
|
|
||||||
|Define |Default |Description |
|
Unless you are designing your own keyboard, you generally should not need to change the `BACKLIGHT_PIN` or `BACKLIGHT_ON_STATE`.
|
||||||
|---------------------|-------------|--------------------------------------------------------------------------------------|
|
|
||||||
|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) |
|
|
||||||
|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) |
|
|
||||||
|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported |
|
|
||||||
|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds |
|
|
||||||
|`BACKLIGHT_ON_STATE` |`0` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low |
|
|
||||||
|
|
||||||
### Backlight On State
|
### Backlight On State :id=backlight-on-state
|
||||||
|
|
||||||
Most backlight circuits are driven by an N-channel MOSFET or NPN transistor. This means that to turn the transistor *on* and light the LEDs, you must drive the backlight pin, connected to the gate or base, *high*.
|
Most backlight circuits are driven by an N-channel MOSFET or NPN transistor. This means that to turn the transistor *on* and light the LEDs, you must drive the backlight pin, connected to the gate or base, *high*.
|
||||||
Sometimes, however, a P-channel MOSFET, or a PNP transistor is used. In this case, when the transistor is on, the pin is driven *low* instead.
|
Sometimes, however, a P-channel MOSFET, or a PNP transistor is used. In this case, when the transistor is on, the pin is driven *low* instead.
|
||||||
|
|
||||||
This functionality is configured at the keyboard level with the `BACKLIGHT_ON_STATE` define.
|
This functionality is configured at the keyboard level with the `BACKLIGHT_ON_STATE` define.
|
||||||
|
|
||||||
## AVR driver
|
### AVR Driver :id=avr-driver
|
||||||
|
|
||||||
|
The `pwm` driver is configured by default, however the equivalent setting within `rules.mk` would be:
|
||||||
|
|
||||||
On AVR boards, the default driver currently sniffs the configuration to pick the best scenario. The driver is configured by default, however the equivalent setting within rules.mk would be:
|
|
||||||
```makefile
|
```makefile
|
||||||
BACKLIGHT_DRIVER = pwm
|
BACKLIGHT_DRIVER = pwm
|
||||||
```
|
```
|
||||||
|
|
||||||
### Caveats
|
#### Caveats :id=avr-caveats
|
||||||
|
|
||||||
Hardware PWM is supported according to the following table:
|
On AVR boards, QMK automatically decides which driver to use according to the following table:
|
||||||
|
|
||||||
|Backlight Pin|AT90USB64/128|ATmega16/32U4|ATmega16/32U2|ATmega32A|ATmega328/P|
|
|Backlight Pin|AT90USB64/128|ATmega16/32U4|ATmega16/32U2|ATmega32A|ATmega328/P|
|
||||||
|-------------|-------------|-------------|-------------|---------|----------|
|
|-------------|-------------|-------------|-------------|---------|-----------|
|
||||||
|`B1` | | | | |Timer 1 |
|
|`B1` | | | | |Timer 1 |
|
||||||
|`B2` | | | | |Timer 1 |
|
|`B2` | | | | |Timer 1 |
|
||||||
|`B5` |Timer 1 |Timer 1 | | | |
|
|`B5` |Timer 1 |Timer 1 | | | |
|
||||||
|`B6` |Timer 1 |Timer 1 | | | |
|
|`B6` |Timer 1 |Timer 1 | | | |
|
||||||
|`B7` |Timer 1 |Timer 1 |Timer 1 | | |
|
|`B7` |Timer 1 |Timer 1 |Timer 1 | | |
|
||||||
|`C4` |Timer 3 | | | | |
|
|`C4` |Timer 3 | | | | |
|
||||||
|`C5` |Timer 3 | |Timer 1 | | |
|
|`C5` |Timer 3 | |Timer 1 | | |
|
||||||
|`C6` |Timer 3 |Timer 3 |Timer 1 | | |
|
|`C6` |Timer 3 |Timer 3 |Timer 1 | | |
|
||||||
|`D4` | | | |Timer 1 | |
|
|`D4` | | | |Timer 1 | |
|
||||||
|`D5` | | | |Timer 1 | |
|
|`D5` | | | |Timer 1 | |
|
||||||
|
|
||||||
All other pins will use software PWM. If the [Audio](feature_audio.md) feature is disabled or only using one timer, the backlight PWM can be triggered by a hardware timer:
|
All other pins will use timer-assisted software PWM:
|
||||||
|
|
||||||
|Audio Pin|Audio Timer|Software PWM Timer|
|
|Audio Pin|Audio Timer|Software PWM Timer|
|
||||||
|---------|-----------|------------------|
|
|---------|-----------|------------------|
|
||||||
@@ -113,44 +116,9 @@ All other pins will use software PWM. If the [Audio](feature_audio.md) feature i
|
|||||||
|`B6` |Timer 1 |Timer 3 |
|
|`B6` |Timer 1 |Timer 3 |
|
||||||
|`B7` |Timer 1 |Timer 3 |
|
|`B7` |Timer 1 |Timer 3 |
|
||||||
|
|
||||||
When both timers are in use for Audio, the backlight PWM will not use a hardware timer, but will instead be triggered during the matrix scan. In this case, breathing is not supported, and the backlight might flicker, because the PWM computation may not be called with enough timing precision.
|
When both timers are in use for Audio, the backlight PWM cannot use a hardware timer, and will instead be triggered during the matrix scan. In this case, breathing is not supported, and the backlight might flicker, because the PWM computation may not be called with enough timing precision.
|
||||||
|
|
||||||
### AVR Configuration
|
#### Hardware PWM Implementation :id=hardware-pwm-implementation
|
||||||
|
|
||||||
To change the behavior of the backlighting, `#define` these in your `config.h`:
|
|
||||||
|
|
||||||
|Define |Default |Description |
|
|
||||||
|---------------------|-------------|-------------------------------------------------------------------------------------------------------------|
|
|
||||||
|`BACKLIGHT_PIN` |`B7` |The pin that controls the LEDs. Unless you are designing your own keyboard, you shouldn't need to change this|
|
|
||||||
|`BACKLIGHT_PINS` |*Not defined*|experimental: see below for more information |
|
|
||||||
|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) |
|
|
||||||
|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) |
|
|
||||||
|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported |
|
|
||||||
|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds |
|
|
||||||
|`BACKLIGHT_ON_STATE` |`1` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low |
|
|
||||||
|
|
||||||
### Backlight On State
|
|
||||||
|
|
||||||
Most backlight circuits are driven by an N-channel MOSFET or NPN transistor. This means that to turn the transistor *on* and light the LEDs, you must drive the backlight pin, connected to the gate or base, *high*.
|
|
||||||
Sometimes, however, a P-channel MOSFET, or a PNP transistor is used. In this case, when the transistor is on, the pin is driven *low* instead.
|
|
||||||
|
|
||||||
This functionality is configured at the keyboard level with the `BACKLIGHT_ON_STATE` define.
|
|
||||||
|
|
||||||
### Multiple backlight pins
|
|
||||||
|
|
||||||
Most keyboards have only one backlight pin which control all backlight LEDs (especially if the backlight is connected to an hardware PWM pin).
|
|
||||||
In software PWM, it is possible to define multiple backlight pins. All those pins will be turned on and off at the same time during the PWM duty cycle.
|
|
||||||
This feature allows to set for instance the Caps Lock LED (or any other controllable LED) brightness at the same level as the other LEDs of the backlight. This is useful if you have mapped LCTRL in place of Caps Lock and you need the Caps Lock LED to be part of the backlight instead of being activated when Caps Lock is on.
|
|
||||||
|
|
||||||
To activate multiple backlight pins, you need to add something like this to your user `config.h`:
|
|
||||||
|
|
||||||
```c
|
|
||||||
#define BACKLIGHT_LED_COUNT 2
|
|
||||||
#undef BACKLIGHT_PIN
|
|
||||||
#define BACKLIGHT_PINS { F5, B2 }
|
|
||||||
```
|
|
||||||
|
|
||||||
### Hardware PWM Implementation
|
|
||||||
|
|
||||||
When using the supported pins for backlighting, QMK will use a hardware timer configured to output a PWM signal. This timer will count up to `ICRx` (by default `0xFFFF`) before resetting to 0.
|
When using the supported pins for backlighting, QMK will use a hardware timer configured to output a PWM signal. This timer will count up to `ICRx` (by default `0xFFFF`) before resetting to 0.
|
||||||
The desired brightness is calculated and stored in the `OCRxx` register. When the counter reaches this value, the backlight pin will go low, and is pulled high again when the counter resets.
|
The desired brightness is calculated and stored in the `OCRxx` register. When the counter reaches this value, the backlight pin will go low, and is pulled high again when the counter resets.
|
||||||
@@ -159,7 +127,7 @@ In this way `OCRxx` essentially controls the duty cycle of the LEDs, and thus th
|
|||||||
The breathing effect is achieved by registering an interrupt handler for `TIMER1_OVF_vect` that is called whenever the counter resets, roughly 244 times per second.
|
The breathing effect is achieved by registering an interrupt handler for `TIMER1_OVF_vect` that is called whenever the counter resets, roughly 244 times per second.
|
||||||
In this handler, the value of an incrementing counter is mapped onto a precomputed brightness curve. To turn off breathing, the interrupt handler is simply disabled, and the brightness reset to the level stored in EEPROM.
|
In this handler, the value of an incrementing counter is mapped onto a precomputed brightness curve. To turn off breathing, the interrupt handler is simply disabled, and the brightness reset to the level stored in EEPROM.
|
||||||
|
|
||||||
### Timer Assisted PWM Implementation
|
#### Timer Assisted PWM Implementation :id=timer-assisted-implementation
|
||||||
|
|
||||||
When `BACKLIGHT_PIN` is not set to a hardware backlight pin, QMK will use a hardware timer configured to trigger software interrupts. This time will count up to `ICRx` (by default `0xFFFF`) before resetting to 0.
|
When `BACKLIGHT_PIN` is not set to a hardware backlight pin, QMK will use a hardware timer configured to trigger software interrupts. This time will count up to `ICRx` (by default `0xFFFF`) before resetting to 0.
|
||||||
When resetting to 0, the CPU will fire an OVF (overflow) interrupt that will turn the LEDs on, starting the duty cycle.
|
When resetting to 0, the CPU will fire an OVF (overflow) interrupt that will turn the LEDs on, starting the duty cycle.
|
||||||
@@ -168,81 +136,84 @@ In this way `OCRxx` essentially controls the duty cycle of the LEDs, and thus th
|
|||||||
|
|
||||||
The breathing effect is the same as in the hardware PWM implementation.
|
The breathing effect is the same as in the hardware PWM implementation.
|
||||||
|
|
||||||
## ARM Driver
|
### ARM Driver :id=arm-configuration
|
||||||
|
|
||||||
|
While still in its early stages, ARM backlight support aims to eventually have feature parity with AVR. The `pwm` driver is configured by default, however the equivalent setting within `rules.mk` would be:
|
||||||
|
|
||||||
While still in its early stages, ARM backlight support aims to eventually have feature parity with AVR. The driver is configured by default, however the equivalent setting within rules.mk would be:
|
|
||||||
```makefile
|
```makefile
|
||||||
BACKLIGHT_DRIVER = pwm
|
BACKLIGHT_DRIVER = pwm
|
||||||
```
|
```
|
||||||
|
|
||||||
### Caveats
|
#### ChibiOS Configuration :id=arm-configuration
|
||||||
|
|
||||||
|
The following `#define`s apply only to ARM-based keyboards:
|
||||||
|
|
||||||
|
|Define |Default|Description |
|
||||||
|
|-----------------------|-------|-----------------------------------|
|
||||||
|
|`BACKLIGHT_PWM_DRIVER` |`PWMD4`|The PWM driver to use |
|
||||||
|
|`BACKLIGHT_PWM_CHANNEL`|`3` |The PWM channel to use |
|
||||||
|
|`BACKLIGHT_PAL_MODE` |`2` |The pin alternative function to use|
|
||||||
|
|
||||||
|
See the ST datasheet for your particular MCU to determine these values. Unless you are designing your own keyboard, you generally should not need to change them.
|
||||||
|
|
||||||
|
#### Caveats :id=arm-caveats
|
||||||
|
|
||||||
Currently only hardware PWM is supported, not timer assisted, and does not provide automatic configuration.
|
Currently only hardware PWM is supported, not timer assisted, and does not provide automatic configuration.
|
||||||
|
|
||||||
?> Backlight support for STMF072 has had limited testing, YMMV. If unsure, set `BACKLIGHT_ENABLE = no` in your rules.mk.
|
?> Backlight support for STM32F072 has had limited testing, so YMMV. If unsure, set `BACKLIGHT_ENABLE = no` in your `rules.mk`.
|
||||||
|
|
||||||
### ARM Configuration
|
### Software PWM Driver :id=software-pwm-driver
|
||||||
|
|
||||||
To change the behavior of the backlighting, `#define` these in your `config.h`:
|
In this mode, PWM is "emulated" while running other keyboard tasks. It offers maximum hardware compatibility without extra platform configuration. The tradeoff is the backlight might jitter when the keyboard is busy. To enable, add this to your `rules.mk`:
|
||||||
|
|
||||||
|Define |Default |Description |
|
|
||||||
|------------------------|-------------|-------------------------------------------------------------------------------------------------------------|
|
|
||||||
|`BACKLIGHT_PIN` |`B7` |The pin that controls the LEDs. Unless you are designing your own keyboard, you shouldn't need to change this|
|
|
||||||
|`BACKLIGHT_PWM_DRIVER` |`PWMD4` |The PWM driver to use, see ST datasheets for pin to PWM timer mapping. Unless you are designing your own keyboard, you shouldn't need to change this|
|
|
||||||
|`BACKLIGHT_PWM_CHANNEL` |`3` |The PWM channel to use, see ST datasheets for pin to PWM channel mapping. Unless you are designing your own keyboard, you shouldn't need to change this|
|
|
||||||
|`BACKLIGHT_PAL_MODE` |`2` |The pin alternative function to use, see ST datasheets for pin AF mapping. Unless you are designing your own keyboard, you shouldn't need to change this|
|
|
||||||
|
|
||||||
## Software PWM Driver :id=software-pwm-driver
|
|
||||||
|
|
||||||
Emulation of PWM while running other keyboard tasks, it offers maximum hardware compatibility without extra platform configuration. The tradeoff is the backlight might jitter when the keyboard is busy. To enable, add this to your rules.mk:
|
|
||||||
```makefile
|
```makefile
|
||||||
BACKLIGHT_DRIVER = software
|
BACKLIGHT_DRIVER = software
|
||||||
```
|
```
|
||||||
|
|
||||||
### Software PWM Configuration
|
#### Multiple Backlight Pins :id=multiple-backlight-pins
|
||||||
|
|
||||||
To change the behavior of the backlighting, `#define` these in your `config.h`:
|
|
||||||
|
|
||||||
|Define |Default |Description |
|
|
||||||
|-----------------|-------------|-------------------------------------------------------------------------------------------------------------|
|
|
||||||
|`BACKLIGHT_PIN` |`B7` |The pin that controls the LEDs. Unless you are designing your own keyboard, you shouldn't need to change this|
|
|
||||||
|`BACKLIGHT_PINS` |*Not defined*|experimental: see below for more information |
|
|
||||||
|
|
||||||
### Multiple backlight pins
|
|
||||||
|
|
||||||
Most keyboards have only one backlight pin which control all backlight LEDs (especially if the backlight is connected to an hardware PWM pin).
|
Most keyboards have only one backlight pin which control all backlight LEDs (especially if the backlight is connected to an hardware PWM pin).
|
||||||
In software PWM, it is possible to define multiple backlight pins. All those pins will be turned on and off at the same time during the PWM duty cycle.
|
In software PWM, it is possible to define multiple backlight pins, which will be turned on and off at the same time during the PWM duty cycle.
|
||||||
This feature allows to set for instance the Caps Lock LED (or any other controllable LED) brightness at the same level as the other LEDs of the backlight. This is useful if you have mapped LCTRL in place of Caps Lock and you need the Caps Lock LED to be part of the backlight instead of being activated when Caps Lock is on.
|
|
||||||
|
|
||||||
To activate multiple backlight pins, you need to add something like this to your user `config.h`:
|
This feature allows to set, for instance, the Caps Lock LED's (or any other controllable LED) brightness at the same level as the other LEDs of the backlight. This is useful if you have mapped Control in place of Caps Lock and you need the Caps Lock LED to be part of the backlight instead of being activated when Caps Lock is on, as it is usually wired to a separate pin from the backlight.
|
||||||
|
|
||||||
|
To activate multiple backlight pins, add something like this to your `config.h`, instead of `BACKLIGHT_PIN`:
|
||||||
|
|
||||||
```c
|
```c
|
||||||
#undef BACKLIGHT_PIN
|
|
||||||
#define BACKLIGHT_PINS { F5, B2 }
|
#define BACKLIGHT_PINS { F5, B2 }
|
||||||
```
|
```
|
||||||
|
|
||||||
## Custom Driver
|
### Custom Driver :id=custom-driver
|
||||||
|
|
||||||
To enable, add this to your rules.mk:
|
If none of the above drivers apply to your board (for example, you are using a separate IC to control the backlight), you can implement a custom backlight driver using this simple API provided by QMK. To enable, add this to your `rules.mk`:
|
||||||
|
|
||||||
```makefile
|
```makefile
|
||||||
BACKLIGHT_DRIVER = custom
|
BACKLIGHT_DRIVER = custom
|
||||||
```
|
```
|
||||||
|
|
||||||
When implementing the custom driver API, the provided keyboard hooks are as follows:
|
Then implement any of these hooks:
|
||||||
|
|
||||||
```c
|
```c
|
||||||
void backlight_init_ports(void) {
|
void backlight_init_ports(void) {
|
||||||
// Optional - Run on startup
|
// Optional - runs on startup
|
||||||
// - usually you want to configure pins here
|
// Usually you want to configure pins here
|
||||||
}
|
}
|
||||||
void backlight_set(uint8_t level) {
|
void backlight_set(uint8_t level) {
|
||||||
// Optional - Run on level change
|
// Optional - runs on level change
|
||||||
// - usually you want to respond to the new value
|
// Usually you want to respond to the new value
|
||||||
}
|
}
|
||||||
|
|
||||||
void backlight_task(void) {
|
void backlight_task(void) {
|
||||||
// Optional - Run periodically
|
// Optional - runs periodically
|
||||||
// - long running actions here can cause performance issues
|
// Note that this is called in the main keyboard loop,
|
||||||
|
// so long running actions here can cause performance issues
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Example Schematic
|
||||||
|
|
||||||
|
In this typical example, the backlight LEDs are all connected in parallel towards an N-channel MOSFET. Its gate pin is wired to one of the microcontroller's GPIO pins through a 470Ω resistor to avoid ringing.
|
||||||
|
A pulldown resistor is also placed between the gate pin and ground to keep it at a defined state when it is not otherwise being driven by the MCU.
|
||||||
|
The values of these resistors are not critical - see [this Electronics StackExchange question](https://electronics.stackexchange.com/q/68748) for more information.
|
||||||
|
|
||||||
|

|
||||||
@@ -294,3 +294,13 @@ To debug the mouse, add `debug_mouse = true` or enable via bootmagic.
|
|||||||
#define PS2_MOUSE_DEBUG_HID
|
#define PS2_MOUSE_DEBUG_HID
|
||||||
#define PS2_MOUSE_DEBUG_RAW
|
#define PS2_MOUSE_DEBUG_RAW
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Movement Hook :id=movement-hook
|
||||||
|
|
||||||
|
Process mouse movement in the keymap before it is sent to the host. Example
|
||||||
|
uses include filtering noise, adding acceleration, and automatically activating
|
||||||
|
a layer. To use, define the following function in your keymap:
|
||||||
|
|
||||||
|
```c
|
||||||
|
void ps2_mouse_moved_user(report_mouse_t *mouse_report);
|
||||||
|
```
|
||||||
+7
-8
@@ -1,8 +1,8 @@
|
|||||||
# QMK CLI :id=qmk-cli
|
# QMK CLI :id=qmk-cli
|
||||||
|
|
||||||
<!---
|
<!---
|
||||||
original document: 0.8.58:docs/cli.md
|
original document: 0.9.19:docs/cli.md
|
||||||
git diff 0.8.58 HEAD -- docs/cli.md | cat
|
git diff 0.9.19 HEAD -- docs/cli.md | cat
|
||||||
-->
|
-->
|
||||||
|
|
||||||
## 概要 :id=overview
|
## 概要 :id=overview
|
||||||
@@ -11,25 +11,24 @@ QMK CLI を使用すると QMK キーボードの構築と作業が簡単にな
|
|||||||
|
|
||||||
### 必要事項 :id=requirements
|
### 必要事項 :id=requirements
|
||||||
|
|
||||||
CLI は Python 3.5 以上を必要とします。我々は必要事項の数を少なくしようとしていますが、[`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt) に列挙されているパッケージもインストールする必要があります。これらは QMK CLI をインストールするときに自動的にインストールされます。
|
QMK は Python 3.6 以上を必要とします。我々は必要事項の数を少なくしようとしていますが、[`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt) に列挙されているパッケージもインストールする必要があります。これらは QMK CLI をインストールするときに自動的にインストールされます。
|
||||||
|
|
||||||
### Homebrew を使ったインストール (macOS、いくつかの Linux) :id=install-using-homebrew
|
### Homebrew を使ったインストール (macOS、いくつかの Linux) :id=install-using-homebrew
|
||||||
|
|
||||||
[Homebrew](https://brew.sh) をインストールしている場合は、タップして QMK をインストールすることができます:
|
[Homebrew](https://brew.sh) をインストールしている場合は、タップして QMK をインストールすることができます:
|
||||||
|
|
||||||
```
|
```
|
||||||
brew tap qmk/qmk
|
brew install qmk/qmk/qmk
|
||||||
brew install qmk
|
|
||||||
export QMK_HOME='~/qmk_firmware' # オプション、`qmk_firmware` の場所を設定します
|
export QMK_HOME='~/qmk_firmware' # オプション、`qmk_firmware` の場所を設定します
|
||||||
qmk setup # これは `qmk/qmk_firmware` をクローンし、オプションでビルド環境をセットアップします
|
qmk setup # これは `qmk/qmk_firmware` をクローンし、オプションでビルド環境をセットアップします
|
||||||
```
|
```
|
||||||
|
|
||||||
### easy_install あるいは pip を使ってインストール :id=install-using-easy_install-or-pip
|
### pip を使ってインストール :id=install-using-easy_install-or-pip
|
||||||
|
|
||||||
上のリストにあなたのシステムがない場合は、QMK を手動でインストールすることができます。最初に、python 3.5 (以降)をインストールしていて、pip をインストールしていることを確認してください。次に以下のコマンドを使って QMK をインストールします:
|
上で列挙した中にあなたのシステムがない場合は、QMK を手動でインストールすることができます。最初に、python 3.6 (以降)をインストールしていて、pip をインストールしていることを確認してください。次に以下のコマンドを使って QMK をインストールします:
|
||||||
|
|
||||||
```
|
```
|
||||||
pip3 install qmk
|
python3 -m pip install qmk
|
||||||
export QMK_HOME='~/qmk_firmware' # オプション、`qmk_firmware` の場所を設定します
|
export QMK_HOME='~/qmk_firmware' # オプション、`qmk_firmware` の場所を設定します
|
||||||
qmk setup # これは `qmk/qmk_firmware` をクローンし、オプションでビルド環境をセットアップします
|
qmk setup # これは `qmk/qmk_firmware` をクローンし、オプションでビルド環境をセットアップします
|
||||||
```
|
```
|
||||||
|
|||||||
+113
-75
@@ -1,48 +1,18 @@
|
|||||||
# QMK CLI コマンド
|
# QMK CLI コマンド
|
||||||
|
|
||||||
<!---
|
<!---
|
||||||
original document: 0.8.58:docs/cli.md
|
original document: 0.9.19:docs/cli_command.md
|
||||||
git diff 0.8.58 HEAD -- docs/cli.md | cat
|
git diff 0.9.19 HEAD -- docs/cli_command.md | cat
|
||||||
-->
|
-->
|
||||||
|
|
||||||
# CLI コマンド
|
# ユーザー用コマンド
|
||||||
|
|
||||||
## `qmk cformat`
|
|
||||||
|
|
||||||
このコマンドは clang-format を使って C コードを整形します。
|
|
||||||
|
|
||||||
引数無しで実行すると、変更された全てのコアコードを整形します。デフォルトでは `git diff` で `origin/master` をチェックし、ブランチは `-b <branch_name>` を使って変更できます。
|
|
||||||
|
|
||||||
`-a` で全てのコアコードを整形するか、コマンドラインでファイル名を渡して特定のファイルに対して実行します。
|
|
||||||
|
|
||||||
**指定したファイルに対する使い方**:
|
|
||||||
|
|
||||||
```
|
|
||||||
qmk cformat [file1] [file2] [...] [fileN]
|
|
||||||
```
|
|
||||||
|
|
||||||
**全てのコアファイルに対する使い方**:
|
|
||||||
|
|
||||||
```
|
|
||||||
qmk cformat -a
|
|
||||||
```
|
|
||||||
|
|
||||||
**origin/master で変更されたファイルのみに対する使い方**:
|
|
||||||
|
|
||||||
```
|
|
||||||
qmk cformat
|
|
||||||
```
|
|
||||||
|
|
||||||
**branch_name で変更されたファイルのみに対する使い方**:
|
|
||||||
|
|
||||||
```
|
|
||||||
qmk cformat -b branch_name
|
|
||||||
```
|
|
||||||
|
|
||||||
## `qmk compile`
|
## `qmk compile`
|
||||||
|
|
||||||
このコマンドにより、任意のディレクトリからファームウェアをコンパイルすることができます。<https://config.qmk.fm> からエクスポートした JSON をコンパイルするか、リポジトリ内でキーマップをコンパイルするか、現在の作業ディレクトリでキーボードをコンパイルすることができます。
|
このコマンドにより、任意のディレクトリからファームウェアをコンパイルすることができます。<https://config.qmk.fm> からエクスポートした JSON をコンパイルするか、リポジトリ内でキーマップをコンパイルするか、現在の作業ディレクトリでキーボードをコンパイルすることができます。
|
||||||
|
|
||||||
|
このコマンドはディレクトリを認識します。キーボードやキーマップのディレクトリにいる場合、自動的に KEYBOARD や KEYMAP を入力します。
|
||||||
|
|
||||||
**Configurator Exports での使い方**:
|
**Configurator Exports での使い方**:
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -113,6 +83,8 @@ $ qmk compile -kb dz60
|
|||||||
このコマンドは `qmk compile` に似ていますが、ブートローダを対象にすることもできます。ブートローダはオプションで、デフォルトでは `:flash` に設定されています。
|
このコマンドは `qmk compile` に似ていますが、ブートローダを対象にすることもできます。ブートローダはオプションで、デフォルトでは `:flash` に設定されています。
|
||||||
違うブートローダを指定するには、`-bl <bootloader>` を使ってください。利用可能なブートローダの詳細については、[ファームウェアを書き込む](ja/flashing.md)を見てください。
|
違うブートローダを指定するには、`-bl <bootloader>` を使ってください。利用可能なブートローダの詳細については、[ファームウェアを書き込む](ja/flashing.md)を見てください。
|
||||||
|
|
||||||
|
このコマンドはディレクトリを認識します。キーボードやキーマップのディレクトリにいる場合、自動的に KEYBOARD や KEYMAP を入力します。
|
||||||
|
|
||||||
**Configurator Exports での使い方**:
|
**Configurator Exports での使い方**:
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -141,16 +113,6 @@ qmk flash -b
|
|||||||
qmk config [-ro] [config_token1] [config_token2] [...] [config_tokenN]
|
qmk config [-ro] [config_token1] [config_token2] [...] [config_tokenN]
|
||||||
```
|
```
|
||||||
|
|
||||||
## `qmk docs`
|
|
||||||
|
|
||||||
このコマンドは、ドキュメントを参照または改善するために使うことができるローカル HTTP サーバを起動します。デフォルトのポートは 8936 です。
|
|
||||||
|
|
||||||
**使用法**:
|
|
||||||
|
|
||||||
```
|
|
||||||
qmk docs [-p PORT]
|
|
||||||
```
|
|
||||||
|
|
||||||
## `qmk doctor`
|
## `qmk doctor`
|
||||||
|
|
||||||
このコマンドは環境を調査し、潜在的なビルドあるいは書き込みの問題について警告します。必要に応じてそれらの多くを修正できます。
|
このコマンドは環境を調査し、潜在的なビルドあるいは書き込みの問題について警告します。必要に応じてそれらの多くを修正できます。
|
||||||
@@ -175,6 +137,32 @@ qmk doctor [-y] [-n]
|
|||||||
|
|
||||||
qmk doctor -n
|
qmk doctor -n
|
||||||
|
|
||||||
|
## `qmk info`
|
||||||
|
|
||||||
|
QMK のキーボードやキーマップに関する情報を表示します。キーボードに関する情報を取得したり、レイアウトを表示したり、基礎となるキーマトリックスを表示したり、JSON キーマップをきれいに印刷したりするのに使用できます。
|
||||||
|
|
||||||
|
**使用法**:
|
||||||
|
|
||||||
|
```
|
||||||
|
qmk info [-f FORMAT] [-m] [-l] [-km KEYMAP] [-kb KEYBOARD]
|
||||||
|
```
|
||||||
|
|
||||||
|
このコマンドはディレクトリを認識します。キーボードやキーマップのディレクトリにいる場合、自動的に KEYBOARD や KEYMAP を入力します。
|
||||||
|
|
||||||
|
**例**:
|
||||||
|
|
||||||
|
キーボードの基本情報を表示する:
|
||||||
|
|
||||||
|
qmk info -kb planck/rev5
|
||||||
|
|
||||||
|
キーボードのマトリクスを表示する:
|
||||||
|
|
||||||
|
qmk info -kb ergodox_ez -m
|
||||||
|
|
||||||
|
キーボードの JSON キーマップを表示する:
|
||||||
|
|
||||||
|
qmk info -kb clueboard/california -km default
|
||||||
|
|
||||||
## `qmk json2c`
|
## `qmk json2c`
|
||||||
|
|
||||||
QMK Configurator からエクスポートしたものから keymap.c を生成します。
|
QMK Configurator からエクスポートしたものから keymap.c を生成します。
|
||||||
@@ -185,6 +173,86 @@ QMK Configurator からエクスポートしたものから keymap.c を生成
|
|||||||
qmk json2c [-o OUTPUT] filename
|
qmk json2c [-o OUTPUT] filename
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## `qmk list-keyboards`
|
||||||
|
|
||||||
|
このコマンドは現在 `qmk_firmware` で定義されている全てのキーボードを列挙します。
|
||||||
|
|
||||||
|
**使用法**:
|
||||||
|
|
||||||
|
```
|
||||||
|
qmk list-keyboards
|
||||||
|
```
|
||||||
|
|
||||||
|
## `qmk list-keymaps`
|
||||||
|
|
||||||
|
このコマンドは指定されたキーボード(とリビジョン)の全てのキーマップを列挙します。
|
||||||
|
|
||||||
|
このコマンドはディレクトリを認識します。キーボードのディレクトリにいる場合、自動的に KEYBOARD を入力します。
|
||||||
|
|
||||||
|
**使用法**:
|
||||||
|
|
||||||
|
```
|
||||||
|
qmk list-keymaps -kb planck/ez
|
||||||
|
```
|
||||||
|
|
||||||
|
## `qmk new-keymap`
|
||||||
|
|
||||||
|
このコマンドは、キーボードの既存のデフォルトのキーマップに基づいて新しいキーマップを作成します。
|
||||||
|
|
||||||
|
このコマンドはディレクトリを認識します。キーボードやキーマップのディレクトリにいる場合、自動的に KEYBOARD や KEYMAP を入力します。
|
||||||
|
|
||||||
|
**使用法**:
|
||||||
|
|
||||||
|
```
|
||||||
|
qmk new-keymap [-kb KEYBOARD] [-km KEYMAP]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 開発者用コマンド
|
||||||
|
|
||||||
|
## `qmk cformat`
|
||||||
|
|
||||||
|
このコマンドは clang-format を使って C コードを整形します。
|
||||||
|
|
||||||
|
引数無しで実行すると、変更された全てのコアコードを整形します。デフォルトでは `git diff` で `origin/master` をチェックし、ブランチは `-b <branch_name>` を使って変更できます。
|
||||||
|
|
||||||
|
`-a` で全てのコアコードを整形するか、コマンドラインでファイル名を渡して特定のファイルに対して実行します。
|
||||||
|
|
||||||
|
**指定したファイルに対する使い方**:
|
||||||
|
|
||||||
|
```
|
||||||
|
qmk cformat [file1] [file2] [...] [fileN]
|
||||||
|
```
|
||||||
|
|
||||||
|
**全てのコアファイルに対する使い方**:
|
||||||
|
|
||||||
|
```
|
||||||
|
qmk cformat -a
|
||||||
|
```
|
||||||
|
|
||||||
|
**origin/master で変更されたファイルのみに対する使い方**:
|
||||||
|
|
||||||
|
```
|
||||||
|
qmk cformat
|
||||||
|
```
|
||||||
|
|
||||||
|
**branch_name で変更されたファイルのみに対する使い方**:
|
||||||
|
|
||||||
|
```
|
||||||
|
qmk cformat -b branch_name
|
||||||
|
```
|
||||||
|
|
||||||
|
## `qmk docs`
|
||||||
|
|
||||||
|
このコマンドは、ドキュメントを参照または改善するために使うことができるローカル HTTP サーバを起動します。デフォルトのポートは 8936 です。
|
||||||
|
|
||||||
|
**使用法**:
|
||||||
|
|
||||||
|
```
|
||||||
|
qmk docs [-p PORT]
|
||||||
|
```
|
||||||
|
|
||||||
## `qmk kle2json`
|
## `qmk kle2json`
|
||||||
|
|
||||||
このコマンドにより、生の KLE データから QMK Configurator の JSON へ変換することができます。絶対パスあるいは現在のディレクトリ内のファイル名のいずれかを受け取ります。デフォルトでは、`info.json` が既に存在している場合は上書きしません。上書きするには、`-f` あるいは `--force` フラグを使ってください。
|
このコマンドにより、生の KLE データから QMK Configurator の JSON へ変換することができます。絶対パスあるいは現在のディレクトリ内のファイル名のいずれかを受け取ります。デフォルトでは、`info.json` が既に存在している場合は上書きしません。上書きするには、`-f` あるいは `--force` フラグを使ってください。
|
||||||
@@ -207,36 +275,6 @@ $ qmk kle2json -f kle.txt -f
|
|||||||
Ψ Wrote out to info.json
|
Ψ Wrote out to info.json
|
||||||
```
|
```
|
||||||
|
|
||||||
## `qmk list-keyboards`
|
|
||||||
|
|
||||||
このコマンドは現在 `qmk_firmware` で定義されている全てのキーボードを列挙します。
|
|
||||||
|
|
||||||
**使用法**:
|
|
||||||
|
|
||||||
```
|
|
||||||
qmk list-keyboards
|
|
||||||
```
|
|
||||||
|
|
||||||
## `qmk list-keymaps`
|
|
||||||
|
|
||||||
このコマンドは指定されたキーボード(とリビジョン)の全てのキーマップを列挙します。
|
|
||||||
|
|
||||||
**使用法**:
|
|
||||||
|
|
||||||
```
|
|
||||||
qmk list-keymaps -kb planck/ez
|
|
||||||
```
|
|
||||||
|
|
||||||
## `qmk new-keymap`
|
|
||||||
|
|
||||||
このコマンドは、キーボードの既存のデフォルトのキーマップに基づいて新しいキーマップを作成します。
|
|
||||||
|
|
||||||
**使用法**:
|
|
||||||
|
|
||||||
```
|
|
||||||
qmk new-keymap [-kb KEYBOARD] [-km KEYMAP]
|
|
||||||
```
|
|
||||||
|
|
||||||
## `qmk pyformat`
|
## `qmk pyformat`
|
||||||
|
|
||||||
このコマンドは `qmk_firmware` 内の python コードを整形します。
|
このコマンドは `qmk_firmware` 内の python コードを整形します。
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
# 互換性のあるマイクロコントローラ
|
||||||
|
|
||||||
|
<!---
|
||||||
|
original document: 0.9.19:docs/compatible_microcontrollers.md
|
||||||
|
git diff 0.9.19 HEAD -- docs/compatible_microcontrollers.md | cat
|
||||||
|
-->
|
||||||
|
|
||||||
|
QMK は十分な容量のフラッシュメモリを備えた USB 対応 AVR または ARM マイクロコントローラで実行されます - 一般的に 32kB 以上ですが、ほとんどの機能を無効にすると*ほんの* 16kB に詰め込むことができます。
|
||||||
|
|
||||||
|
## Atmel AVR
|
||||||
|
|
||||||
|
以下は、USB スタックとして [LUFA](https://www.fourwalledcubicle.com/LUFA.php) を使います:
|
||||||
|
|
||||||
|
* [ATmega16U2](https://www.microchip.com/wwwproducts/en/ATmega16U2) / [ATmega32U2](https://www.microchip.com/wwwproducts/en/ATmega32U2)
|
||||||
|
* [ATmega16U4](https://www.microchip.com/wwwproducts/en/ATmega16U4) / [ATmega32U4](https://www.microchip.com/wwwproducts/en/ATmega32U4)
|
||||||
|
* [AT90USB64](https://www.microchip.com/wwwproducts/en/AT90USB646) / [AT90USB128](https://www.microchip.com/wwwproducts/en/AT90USB1286)
|
||||||
|
|
||||||
|
組み込みの USB インターフェースを持たない、いくつかの MCU は代わりに [V-USB](https://www.obdev.at/products/vusb/index.html) を使います:
|
||||||
|
|
||||||
|
* [ATmega32A](https://www.microchip.com/wwwproducts/en/ATmega32A)
|
||||||
|
* [ATmega328P](https://www.microchip.com/wwwproducts/en/ATmega328P)
|
||||||
|
* [ATmega328](https://www.microchip.com/wwwproducts/en/ATmega328)
|
||||||
|
|
||||||
|
## ARM
|
||||||
|
|
||||||
|
[ChibiOS](http://www.chibios.org) がサポートする USB 付きの ARM チップを使うこともできます。ほとんどのチップには十分な容量のフラッシュメモリがあります。動作するとわかっているのは:
|
||||||
|
|
||||||
|
### STMicroelectronics (STM32)
|
||||||
|
|
||||||
|
* [STM32F0x2](https://www.st.com/en/microcontrollers-microprocessors/stm32f0x2.html)
|
||||||
|
* [STM32F103](https://www.st.com/en/microcontrollers-microprocessors/stm32f103.html)
|
||||||
|
* [STM32F303](https://www.st.com/en/microcontrollers-microprocessors/stm32f303.html)
|
||||||
|
|
||||||
|
### NXP (Kinetis)
|
||||||
|
|
||||||
|
* [MKL26Z64](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/kl-series-cortex-m0-plus/kinetis-kl2x-72-96-mhz-usb-ultra-low-power-microcontrollers-mcus-based-on-arm-cortex-m0-plus-core:KL2x)
|
||||||
|
* [MK20DX128](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/k-series-cortex-m4/k2x-usb/kinetis-k20-50-mhz-full-speed-usb-mixed-signal-integration-microcontrollers-based-on-arm-cortex-m4-core:K20_50)
|
||||||
|
* [MK20DX256](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/k-series-cortex-m4/k2x-usb/kinetis-k20-72-mhz-full-speed-usb-mixed-signal-integration-microcontrollers-mcus-based-on-arm-cortex-m4-core:K20_72)
|
||||||
|
|
||||||
|
## Atmel ATSAM
|
||||||
|
|
||||||
|
Atmel の ATSAM マイクロコントローラの一つである、[Massdrop keyboards](https://github.com/qmk/qmk_firmware/tree/master/keyboards/massdrop) で使用されている [ATSAMD51J18A](https://www.microchip.com/wwwproducts/en/ATSAMD51J18A) には限定的なサポートがあります。
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
# ドキュメントベストプラクティス
|
||||||
|
|
||||||
|
<!---
|
||||||
|
original document: 0.9.19:docs/documentation_best_practices.md
|
||||||
|
git diff 0.9.19 HEAD -- docs/documentation_best_practices.md | cat
|
||||||
|
-->
|
||||||
|
|
||||||
|
このページは QMK のためのドキュメントを作成する時のベストプラクティスを文章化するためのものです。これらのガイドラインに従うことで、一貫したトーンとスタイルを維持することでき、他の人が QMK をより理解しやすくすることができます。
|
||||||
|
|
||||||
|
# ページの開始
|
||||||
|
|
||||||
|
ドキュメントページは通常 H1 ヘッダで始まり、最初の段落を使ってこのページの内容を説明します。この見出しと段落は目次の次にあるため、見出しは短くして空白の無い長い文字列を避けるように気を付けてください。
|
||||||
|
|
||||||
|
例:
|
||||||
|
|
||||||
|
```
|
||||||
|
# My Page Title
|
||||||
|
|
||||||
|
This page covers my super cool feature. You can use this feature to make coffee, squeeze fresh oj, and have an egg mcmuffin and hashbrowns delivered from your local macca's by drone.
|
||||||
|
```
|
||||||
|
|
||||||
|
# 見出し
|
||||||
|
|
||||||
|
通常、ページには複数の "H1" 見出しが有るべきです。H1 と H2 見出しのみが目次に含まれるので、適切に計画してください。目次が広くなりすぎないように、H1 と H2 の見出しでは幅を広げないようにしてください。
|
||||||
|
|
||||||
|
# スタイル付きのヒントブロック
|
||||||
|
|
||||||
|
注意を引くためにテキストの周りにスタイル付きのヒントブロックを描くことができます。
|
||||||
|
|
||||||
|
### 重要なもの
|
||||||
|
|
||||||
|
```
|
||||||
|
!> This is important
|
||||||
|
```
|
||||||
|
|
||||||
|
以下のように表示されます:
|
||||||
|
|
||||||
|
!> This is important
|
||||||
|
|
||||||
|
### 一般的なヒント
|
||||||
|
|
||||||
|
```
|
||||||
|
?> This is a helpful tip.
|
||||||
|
```
|
||||||
|
|
||||||
|
以下のように表示されます:
|
||||||
|
|
||||||
|
?> This is a helpful tip.
|
||||||
|
|
||||||
|
|
||||||
|
# 機能を文章化する
|
||||||
|
|
||||||
|
QMK のために新しい機能を作成した場合、そのドキュメントページを作成してください。長い必要は無く、機能を説明する幾つかの文と、関連するキーコードを列挙した表で十分です。以下は基本的なテンプレートです:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# My Cool Feature
|
||||||
|
|
||||||
|
This page describes my cool feature. You can use my cool feature to make coffee and order cream and sugar to be delivered via drone.
|
||||||
|
|
||||||
|
## My Cool Feature Keycodes
|
||||||
|
|
||||||
|
|Long Name|Short Name|Description|
|
||||||
|
|---------|----------|-----------|
|
||||||
|
|KC_COFFEE||Make Coffee|
|
||||||
|
|KC_CREAM||Order Cream|
|
||||||
|
|KC_SUGAR||Order Sugar|
|
||||||
|
```
|
||||||
|
|
||||||
|
ドキュメントを `docs/feature_<my_cool_feature>.md` に配置し、そのファイルを `docs/_summary.md` の適切な場所に追加します。キーコードを追加した場合は、機能ページに戻るリンクとともに `docs/keycodes.md` に追加するようにしてください。
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
# ドキュメントテンプレート
|
||||||
|
|
||||||
|
<!---
|
||||||
|
original document: 0.9.19:docs/documentation_templates.md
|
||||||
|
git diff 0.9.19 HEAD -- docs/documentation_templates.md | cat
|
||||||
|
-->
|
||||||
|
|
||||||
|
このページでは、新しいキーマップやキーボードを QMK に提出する際に使うべきテンプレートをまとめています。
|
||||||
|
|
||||||
|
## キーマップ `readme.md` テンプレート :id=keyboard-readmemd-template
|
||||||
|
|
||||||
|
ほとんどのキーマップには、レイアウトを表す画像があります。画像を作成するには、[Keyboard Layout Editor](http://keyboard-layout-editor.com) を使うことができます。画像は [Imgur](http://imgur.com) や別のホスティングサービスにアップロードし、プルリクエストに画像を含めないでください。
|
||||||
|
|
||||||
|
画像の下には、キーマップを理解してもらうための簡単な説明文を書いてください。
|
||||||
|
|
||||||
|
```
|
||||||
|

|
||||||
|
|
||||||
|
# Default Clueboard Layout
|
||||||
|
|
||||||
|
This is the default layout that comes flashed on every Clueboard. For the most
|
||||||
|
part it's a straightforward and easy to follow layout. The only unusual key is
|
||||||
|
the key in the upper left, which sends Escape normally, but Grave when any of
|
||||||
|
the Ctrl, Alt, or GUI modifiers are held down.
|
||||||
|
```
|
||||||
|
|
||||||
|
## キーボード `readme.md` テンプレート
|
||||||
|
|
||||||
|
```
|
||||||
|
# Planck
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/)
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
|
||||||
|
* Hardware Supported: Planck PCB rev1, rev2, rev3, rev4, Teensy 2.0
|
||||||
|
* Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make planck/rev4: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).
|
||||||
|
```
|
||||||
@@ -0,0 +1,104 @@
|
|||||||
|
#Persistent
|
||||||
|
#SingleInstance force
|
||||||
|
|
||||||
|
;=================================================================
|
||||||
|
; Macro Pad Shortcuts ;
|
||||||
|
;=================================================================
|
||||||
|
|
||||||
|
;=================================================================
|
||||||
|
; Layer 0
|
||||||
|
;;=================================================================
|
||||||
|
;Row 1
|
||||||
|
|
||||||
|
F13::Send a
|
||||||
|
F14::Send b
|
||||||
|
F15::Send c
|
||||||
|
F16::Send d
|
||||||
|
|
||||||
|
;Row 2
|
||||||
|
|
||||||
|
F17::Send e
|
||||||
|
F18::Send f
|
||||||
|
F19::Send g
|
||||||
|
F20::Send h
|
||||||
|
|
||||||
|
;Row 3
|
||||||
|
|
||||||
|
F21::Send i
|
||||||
|
F22::Send j
|
||||||
|
F23::Send k
|
||||||
|
F24::Send l
|
||||||
|
|
||||||
|
|
||||||
|
;=================================================================
|
||||||
|
; Layer 1
|
||||||
|
;;=================================================================
|
||||||
|
;Row 1
|
||||||
|
|
||||||
|
!F13::Send m
|
||||||
|
!F14::Send n
|
||||||
|
!F15::Send o
|
||||||
|
!F16::Send p
|
||||||
|
|
||||||
|
;Row 2
|
||||||
|
|
||||||
|
!F17::Send q
|
||||||
|
!F18::Send r
|
||||||
|
!F19::Send s
|
||||||
|
!F20::Send t
|
||||||
|
|
||||||
|
;Row 3
|
||||||
|
|
||||||
|
!F21::Send u
|
||||||
|
!F22::Send v
|
||||||
|
!F23::Send w
|
||||||
|
!F24::Send x
|
||||||
|
|
||||||
|
|
||||||
|
;=================================================================
|
||||||
|
; Layer 2
|
||||||
|
;;=================================================================
|
||||||
|
;Row 1
|
||||||
|
|
||||||
|
+F13::Send y
|
||||||
|
+F14::Send z
|
||||||
|
+F15::Send A
|
||||||
|
+F16::Send B
|
||||||
|
|
||||||
|
;Row 2
|
||||||
|
|
||||||
|
+F17::Send C
|
||||||
|
+F18::Send D
|
||||||
|
+F19::Send E
|
||||||
|
+F20::Send F
|
||||||
|
|
||||||
|
;Row 3
|
||||||
|
|
||||||
|
+F21::Send G
|
||||||
|
+F22::Send H
|
||||||
|
+F23::Send I
|
||||||
|
+F24::Send J
|
||||||
|
|
||||||
|
;=================================================================
|
||||||
|
; Layer 3
|
||||||
|
;;=================================================================
|
||||||
|
;Row 1
|
||||||
|
|
||||||
|
^F13::Send K
|
||||||
|
^F14::Send L
|
||||||
|
^F15::Send M
|
||||||
|
^F16::Send N
|
||||||
|
|
||||||
|
;Row 2
|
||||||
|
|
||||||
|
^F17::Send O
|
||||||
|
^F18::Send P
|
||||||
|
^F19::Send Q
|
||||||
|
^F20::Send R
|
||||||
|
|
||||||
|
;Row 3
|
||||||
|
|
||||||
|
^F21::Send S
|
||||||
|
^F22::Send T
|
||||||
|
^F23::Send U
|
||||||
|
^F24::Send V
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
// Time out one shot layers after 3 seconds
|
||||||
|
#define ONESHOT_TIMEOUT 3000
|
||||||
|
|
||||||
|
#define RGBLED_NUM 16
|
||||||
|
|
||||||
|
// Undef and redefine default brightness to half of 255
|
||||||
|
#undef RGBLIGHT_LIMIT_VAL
|
||||||
|
#define RGBLIGHT_LIMIT_VAL 128
|
||||||
|
|
||||||
|
//Define a preview timeout for RGB reviews
|
||||||
|
#define PREVIEW_TIMEOUT 5000
|
||||||
|
#define TAPPING_TERM 200
|
||||||
|
|
||||||
|
// Enable Light Layers implementation
|
||||||
|
#define RGBLIGHT_LAYERS
|
||||||
|
// Allow Light Layers to override RGB off configuration
|
||||||
|
#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
|
||||||
@@ -0,0 +1,136 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS)
|
||||||
|
static uint32_t rgb_preview_timer = 0;
|
||||||
|
#endif
|
||||||
|
extern rgblight_config_t rgblight_config;
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
//Layer 0 - Base Layer (F13 to F24, and One Shot Layer 1,2,3 or Toggle Layer 4)
|
||||||
|
[0] = LAYOUT_ortho_4x4(
|
||||||
|
KC_F13, KC_F14, KC_F15, KC_F16,
|
||||||
|
KC_F17, KC_F18, KC_F19, KC_F20,
|
||||||
|
KC_F21, KC_F22, KC_F23, KC_F24,
|
||||||
|
OSL(1), OSL(2), OSL(3), TG(4) //Transparent to let you go between layers
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT_ortho_4x4(
|
||||||
|
LALT(KC_F13), LALT(KC_F14), LALT(KC_F15), LALT(KC_F16),
|
||||||
|
LALT(KC_F17), LALT(KC_F18), LALT(KC_F19), LALT(KC_F20),
|
||||||
|
LALT(KC_F21), LALT(KC_F22), LALT(KC_F23), LALT(KC_F24),
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers
|
||||||
|
),
|
||||||
|
|
||||||
|
//Layer 2 - Shift + Function Key Layer
|
||||||
|
[2] = LAYOUT_ortho_4x4(
|
||||||
|
LSFT(KC_F13), LSFT(KC_F14), LSFT(KC_F15), LSFT(KC_F16),
|
||||||
|
LSFT(KC_F17), LSFT(KC_F18), LSFT(KC_F19), LSFT(KC_F20),
|
||||||
|
LSFT(KC_F21), LSFT(KC_F22), LSFT(KC_F23), LSFT(KC_F24),
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers
|
||||||
|
),
|
||||||
|
|
||||||
|
//Layer 3 - Control + Function Key
|
||||||
|
[3] = LAYOUT_ortho_4x4(
|
||||||
|
LCTL(KC_F13), LCTL(KC_F14), LCTL(KC_F15), LCTL(KC_F16),
|
||||||
|
LCTL(KC_F17), LCTL(KC_F18), LCTL(KC_F19), LCTL(KC_F20),
|
||||||
|
LCTL(KC_F21), LCTL(KC_F22), LCTL(KC_F23), LCTL(KC_F24),
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers
|
||||||
|
),
|
||||||
|
|
||||||
|
//Layer 4 - Multimedia
|
||||||
|
[4] = LAYOUT_ortho_4x4(
|
||||||
|
KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU,
|
||||||
|
KC_NO, KC_NO, KC_NO, KC_MUTE,
|
||||||
|
KC_NO, RESET, EEP_RST, KC_VOLD,
|
||||||
|
TG(5), KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers
|
||||||
|
),
|
||||||
|
|
||||||
|
//Layer 5 - Keyboard Lights, Programming and Special Functions
|
||||||
|
[5] = LAYOUT_ortho_4x4(
|
||||||
|
RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI,
|
||||||
|
RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD,
|
||||||
|
RGB_TOG, EEP_RST, RESET, KC_LSHIFT,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers
|
||||||
|
),
|
||||||
|
};
|
||||||
|
|
||||||
|
const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||||
|
{0,16,HSV_ORANGE}
|
||||||
|
);
|
||||||
|
const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||||
|
{0,16,HSV_GREEN}
|
||||||
|
);
|
||||||
|
const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||||
|
{0,16,HSV_RED}
|
||||||
|
);
|
||||||
|
const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||||
|
{0,16,HSV_BLUE}
|
||||||
|
);
|
||||||
|
const rgblight_segment_t PROGMEM my_layer4_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||||
|
{0,16,HSV_WHITE}
|
||||||
|
);
|
||||||
|
const rgblight_segment_t PROGMEM my_layer5_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||||
|
{0,16,HSV_TEAL}
|
||||||
|
);
|
||||||
|
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
|
||||||
|
my_layer0_layer,
|
||||||
|
my_layer1_layer,
|
||||||
|
my_layer2_layer,
|
||||||
|
my_layer3_layer,
|
||||||
|
my_layer4_layer,
|
||||||
|
my_layer5_layer
|
||||||
|
);
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void post_process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
// Allow for a preview of changes when modifying RGB
|
||||||
|
# if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS)
|
||||||
|
switch (keycode) {
|
||||||
|
case RGB_TOG ... VLK_TOG:
|
||||||
|
for (uint8_t i = 0; i < RGBLIGHT_MAX_LAYERS; i++) {
|
||||||
|
rgblight_set_layer_state(i, false);
|
||||||
|
}
|
||||||
|
rgb_preview_timer = timer_read32();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Set the appropriate layer color
|
||||||
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
|
rgblight_set_layer_state(1, layer_state_cmp(state, 1));
|
||||||
|
rgblight_set_layer_state(2, layer_state_cmp(state, 2));
|
||||||
|
rgblight_set_layer_state(3, layer_state_cmp(state, 3));
|
||||||
|
rgblight_set_layer_state(4, layer_state_cmp(state, 4));
|
||||||
|
rgblight_set_layer_state(5, layer_state_cmp(state, 5));
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
void keyboard_post_init_user(void) {
|
||||||
|
//Enable the LED layers
|
||||||
|
rgblight_layers = my_rgb_layers;
|
||||||
|
layer_state_set_user(layer_state);
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_scan_user(void) {
|
||||||
|
# if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS)
|
||||||
|
// Allow preview for
|
||||||
|
if (rgb_preview_timer && TIMER_DIFF_32(timer_read32(), rgb_preview_timer) > PREVIEW_TIMEOUT) {
|
||||||
|
rgb_preview_timer = 0;
|
||||||
|
default_layer_state_set_user(default_layer_state);
|
||||||
|
layer_state_set_user(layer_state);
|
||||||
|
led_update_user((led_t) host_keyboard_leds());
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
}
|
||||||
|
|
||||||
|
//EEPROM Reset Function
|
||||||
|
void eeconfig_init_user(void) {
|
||||||
|
rgblight_enable(); // Enable RGB by default
|
||||||
|
rgblight_sethsv_orange(); // Set it to orange by default
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
## AutoHotKey Companion ##
|
||||||
|
|
||||||
|
### Overview ###
|
||||||
|
AutoHotKey Companion Keymap for <a href="https://www.1upkeyboards.com/shop/keyboard-kits/macro-pads/super-16-macro-pad/">1upkeyboards Super16</a> is designed be a quick and easy way to get started with AutoHotKey and to provide a foundation for customizing your own macropad. I chose the Super16 because it provided an easy way (RGB) to identify what layer I was on with a quick glance or peripheral vision. The F13 to F24 keys were selected as they are rarely used so you won't run into conflicts with existing application shortcuts and AutoHotKey recognizes them without any issues.
|
||||||
|
|
||||||
|
Same functionality can be accomplished with other similar applications on the host system like Keyboard Maestro, AutoIt, etc.
|
||||||
|
|
||||||
|
* <a href="https://www.autohotkey.com">AutoHotKey</a>(Windows)
|
||||||
|
* <a href="https://www.autoitscript.com/site/autoit/">AutoIT</a> (Windows)
|
||||||
|
* <a href="https://www.keyboardmaestro.com/main/">Keyboard Maestro</a>(Mac)
|
||||||
|
* <a href="https://github.com/autokey/autokey">AutoKey</a>(Linux)
|
||||||
|
|
||||||
|
This keymap allows for a total of 48 Function/Macro keys that are accessible within 2 sequential key presses (or more when extended with your own code and additional layers)
|
||||||
|
|
||||||
|
### Alternate Implementations ###
|
||||||
|
I chose to use <a href="https://docs.qmk.fm/#/feature_layers?id=switching-and-toggling-layers">QMK OSL</a> (One Shot Layer) functionality to avoid having to hold a key while selecting the next key and to have my layers always go back to the default layer as the starting point. This also helps me avoid having to cognitively remember what layer I am on.
|
||||||
|
|
||||||
|
If persistent behavior is prefered, OSL can be swapped for TG which will toggle the layer on/off with a key press instead of clearing the layer once the Function key is pressed. This is useful if a layer contains several keys that need to be used in sequence. I also added a OSL timeout of 3 seconds, so that if the key is not pressed within 3 seconds the layer will go back to default. This can be adjusted in the config.h file by increasing 3000 to a desired value: `#define ONESHOT_TIMEOUT 3000`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Layers ###
|
||||||
|
|
||||||
|
While the first 5 layers are accessible with only 1 key press at most, the 5th (less frequently used) layer is accessed by first going to the 4th layer, which makes the TG(5) button available on the bottom left. Space for additional 2 more layer toggles is available on the 2 middle buttons on the bottom row. Please refer to the layer diagrams.
|
||||||
|
|
||||||
|
|
||||||
|
* Layer 0 (Base Layer) - the default layer and functions like sending the F13 to F24 keys along with the bottom row to activate another 4 layers.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Layer 1 (Alt Layer) - Equivalent to Alt+Fxx key being pressed
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Layer 2 (Shift Layer) - Equivalent to Shift+Fxx key being pressed
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Layer 3 (Control Layer) - Equivalent to Ctrl+Fxx key being pressed
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Layer 4 (Config Layer) - Layer for multimedia. You can replace the KC_TRNS on this layer in keymap.c to TG(x) to enable additional layers.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Layer 5 (RGB Control/QMK) - RGB control layer and Quantum functions (Reset, EEPROM Reset, )
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Host Configuration ###
|
||||||
|
|
||||||
|
Once the keymap has been flashed to the Super16, you can download the accompanying AutoHotKey file or create your own and have it start automatically either via a Windows Task or another way. Using AutoHotKey allows adjustment of functionality of the buttons without the need to change your map and reflash the macropad every time.
|
||||||
|
Starting the AHK file can be done either by:
|
||||||
|
* Creating a Windows Task
|
||||||
|
* Adding the AHK to the startup folder
|
||||||
|
* Launch manually
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
RGB_MATRIX_ENABLE = no
|
||||||
|
RGBLIGHT_ENABLE = yes
|
||||||
@@ -0,0 +1,130 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Aegis",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"width": 19.5,
|
||||||
|
"height": 6.75,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_aegis": {
|
||||||
|
"layout": [
|
||||||
|
{"x": 0, "y": 0},
|
||||||
|
{"x": 1, "y": 0},
|
||||||
|
{"x": 2, "y": 0},
|
||||||
|
{"x": 3, "y": 0},
|
||||||
|
|
||||||
|
{"x": 4.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": 18.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.5, "y": 1.5},
|
||||||
|
{"x": 5.5, "y": 1.5},
|
||||||
|
{"x": 6.5, "y": 1.5},
|
||||||
|
{"x": 7.5, "y": 1.5},
|
||||||
|
{"x": 8.5, "y": 1.5},
|
||||||
|
{"x": 9.5, "y": 1.5},
|
||||||
|
{"x": 10.5, "y": 1.5},
|
||||||
|
{"x": 11.5, "y": 1.5},
|
||||||
|
{"x": 12.5, "y": 1.5},
|
||||||
|
{"x": 13.5, "y": 1.5},
|
||||||
|
{"x": 14.5, "y": 1.5},
|
||||||
|
{"x": 15.5, "y": 1.5},
|
||||||
|
{"x": 16.5, "y": 1.5},
|
||||||
|
{"x": 17.5, "y": 1.5},
|
||||||
|
{"x": 18.5, "y": 1.5},
|
||||||
|
|
||||||
|
{"x": 0, "y": 2.5},
|
||||||
|
{"x": 1, "y": 2.5},
|
||||||
|
{"x": 2, "y": 2.5},
|
||||||
|
{"x": 3, "y": 2.5},
|
||||||
|
|
||||||
|
{"x": 4.5, "y": 2.5, "w": 1.5},
|
||||||
|
{"x": 6, "y": 2.5},
|
||||||
|
{"x": 7, "y": 2.5},
|
||||||
|
{"x": 8, "y": 2.5},
|
||||||
|
{"x": 9, "y": 2.5},
|
||||||
|
{"x": 10, "y": 2.5},
|
||||||
|
{"x": 11, "y": 2.5},
|
||||||
|
{"x": 12, "y": 2.5},
|
||||||
|
{"x": 13, "y": 2.5},
|
||||||
|
{"x": 14, "y": 2.5},
|
||||||
|
{"x": 15, "y": 2.5},
|
||||||
|
{"x": 16, "y": 2.5},
|
||||||
|
{"x": 17, "y": 2.5},
|
||||||
|
{"x": 18, "y": 2.5, "w": 1.5},
|
||||||
|
|
||||||
|
{"x": 0, "y": 3.5},
|
||||||
|
{"x": 1, "y": 3.5},
|
||||||
|
{"x": 2, "y": 3.5},
|
||||||
|
{"x": 3, "y": 3.5},
|
||||||
|
|
||||||
|
{"x": 4.5, "y": 3.5, "w": 1.75},
|
||||||
|
{"x": 6.25, "y": 3.5},
|
||||||
|
{"x": 7.25, "y": 3.5},
|
||||||
|
{"x": 8.25, "y": 3.5},
|
||||||
|
{"x": 9.25, "y": 3.5},
|
||||||
|
{"x": 10.25, "y": 3.5},
|
||||||
|
{"x": 11.25, "y": 3.5},
|
||||||
|
{"x": 12.25, "y": 3.5},
|
||||||
|
{"x": 13.25, "y": 3.5},
|
||||||
|
{"x": 14.25, "y": 3.5},
|
||||||
|
{"x": 15.25, "y": 3.5},
|
||||||
|
{"x": 16.25, "y": 3.5},
|
||||||
|
{"x": 17.25, "y": 3.5, "w": 2.25},
|
||||||
|
|
||||||
|
{"x": 0, "y": 4.5},
|
||||||
|
{"x": 1, "y": 4.5},
|
||||||
|
{"x": 2, "y": 4.5},
|
||||||
|
{"x": 3, "y": 4.5},
|
||||||
|
|
||||||
|
{"x": 4.25, "y": 4.75},
|
||||||
|
|
||||||
|
{"x": 5.5, "y": 4.5, "w": 1.25},
|
||||||
|
{"x": 6.75, "y": 4.5},
|
||||||
|
{"x": 7.75, "y": 4.5},
|
||||||
|
{"x": 8.75, "y": 4.5},
|
||||||
|
{"x": 9.75, "y": 4.5},
|
||||||
|
{"x": 10.75, "y": 4.5},
|
||||||
|
{"x": 11.75, "y": 4.5},
|
||||||
|
{"x": 12.75, "y": 4.5},
|
||||||
|
{"x": 13.75, "y": 4.5},
|
||||||
|
{"x": 14.75, "y": 4.5},
|
||||||
|
{"x": 15.75, "y": 4.5},
|
||||||
|
{"x": 16.75, "y": 4.5, "w": 1.75},
|
||||||
|
{"x": 18.5, "y": 4.5},
|
||||||
|
|
||||||
|
{"x": 0, "y": 5.5},
|
||||||
|
{"x": 1, "y": 5.5},
|
||||||
|
{"x": 2, "y": 5.5},
|
||||||
|
|
||||||
|
{"x": 3.25, "y": 5.75},
|
||||||
|
{"x": 4.25, "y": 5.75},
|
||||||
|
{"x": 5.25, "y": 5.75},
|
||||||
|
|
||||||
|
{"x": 6.5, "y": 5.5, "w": 1.25},
|
||||||
|
{"x": 7.75, "y": 5.5, "w": 1.25},
|
||||||
|
{"x": 9, "y": 5.5, "w": 6.25},
|
||||||
|
{"x": 15.25, "y": 5.5, "w": 1.5},
|
||||||
|
{"x": 16.75, "y": 5.5, "w": 1.25},
|
||||||
|
{"x": 18, "y": 5.5, "w": 1.5}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,110 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Ext65",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"width": 20.5,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_ext65": {
|
||||||
|
"layout": [
|
||||||
|
{"x": 0, "y": 0},
|
||||||
|
{"x": 1, "y": 0},
|
||||||
|
{"x": 2, "y": 0},
|
||||||
|
{"x": 3, "y": 0},
|
||||||
|
|
||||||
|
{"x": 4.5, "y": 0},
|
||||||
|
{"x": 5.5, "y": 0},
|
||||||
|
{"x": 6.5, "y": 0},
|
||||||
|
{"x": 7.5, "y": 0},
|
||||||
|
{"x": 8.5, "y": 0},
|
||||||
|
{"x": 9.5, "y": 0},
|
||||||
|
{"x": 10.5, "y": 0},
|
||||||
|
{"x": 11.5, "y": 0},
|
||||||
|
{"x": 12.5, "y": 0},
|
||||||
|
{"x": 13.5, "y": 0},
|
||||||
|
{"x": 14.5, "y": 0},
|
||||||
|
{"x": 15.5, "y": 0},
|
||||||
|
{"x": 16.5, "y": 0},
|
||||||
|
{"x": 17.5, "y": 0},
|
||||||
|
{"x": 18.5, "y": 0},
|
||||||
|
{"x": 19.5, "y": 0},
|
||||||
|
|
||||||
|
{"x": 0, "y": 1},
|
||||||
|
{"x": 1, "y": 1},
|
||||||
|
{"x": 2, "y": 1},
|
||||||
|
{"x": 3, "y": 1},
|
||||||
|
|
||||||
|
{"x": 4.5, "y": 1, "w": 1.5},
|
||||||
|
{"x": 6, "y": 1},
|
||||||
|
{"x": 7, "y": 1},
|
||||||
|
{"x": 8, "y": 1},
|
||||||
|
{"x": 9, "y": 1},
|
||||||
|
{"x": 10, "y": 1},
|
||||||
|
{"x": 11, "y": 1},
|
||||||
|
{"x": 12, "y": 1},
|
||||||
|
{"x": 13, "y": 1},
|
||||||
|
{"x": 14, "y": 1},
|
||||||
|
{"x": 15, "y": 1},
|
||||||
|
{"x": 16, "y": 1},
|
||||||
|
{"x": 17, "y": 1},
|
||||||
|
{"x": 18, "y": 1, "w": 1.5},
|
||||||
|
{"x": 19.5, "y": 1},
|
||||||
|
|
||||||
|
{"x": 0, "y": 2},
|
||||||
|
{"x": 1, "y": 2},
|
||||||
|
{"x": 2, "y": 2},
|
||||||
|
{"x": 3, "y": 2},
|
||||||
|
|
||||||
|
{"x": 4.5, "y": 2, "w": 1.75},
|
||||||
|
{"x": 6.25, "y": 2},
|
||||||
|
{"x": 7.25, "y": 2},
|
||||||
|
{"x": 8.25, "y": 2},
|
||||||
|
{"x": 9.25, "y": 2},
|
||||||
|
{"x": 10.25, "y": 2},
|
||||||
|
{"x": 11.25, "y": 2},
|
||||||
|
{"x": 12.25, "y": 2},
|
||||||
|
{"x": 13.25, "y": 2},
|
||||||
|
{"x": 14.25, "y": 2},
|
||||||
|
{"x": 15.25, "y": 2},
|
||||||
|
{"x": 16.25, "y": 2},
|
||||||
|
{"x": 17.25, "y": 2, "w": 2.25},
|
||||||
|
{"x": 19.5, "y": 2},
|
||||||
|
|
||||||
|
{"x": 0, "y": 3},
|
||||||
|
{"x": 1, "y": 3},
|
||||||
|
{"x": 2, "y": 3},
|
||||||
|
{"x": 3, "y": 3},
|
||||||
|
|
||||||
|
{"x": 4.5, "y": 3, "w": 2.25},
|
||||||
|
{"x": 6.75, "y": 3},
|
||||||
|
{"x": 7.75, "y": 3},
|
||||||
|
{"x": 8.75, "y": 3},
|
||||||
|
{"x": 9.75, "y": 3},
|
||||||
|
{"x": 10.75, "y": 3},
|
||||||
|
{"x": 11.75, "y": 3},
|
||||||
|
{"x": 12.75, "y": 3},
|
||||||
|
{"x": 13.75, "y": 3},
|
||||||
|
{"x": 14.75, "y": 3},
|
||||||
|
{"x": 15.75, "y": 3},
|
||||||
|
{"x": 16.75, "y": 3, "w": 1.75},
|
||||||
|
{"x": 18.5, "y": 3},
|
||||||
|
{"x": 19.5, "y": 3},
|
||||||
|
|
||||||
|
{"x": 0, "y": 4},
|
||||||
|
{"x": 1, "y": 4},
|
||||||
|
{"x": 2, "y": 4},
|
||||||
|
{"x": 3, "y": 4},
|
||||||
|
{"x": 4.5, "y": 4, "w": 1.5},
|
||||||
|
{"x": 6, "y": 4},
|
||||||
|
{"x": 7, "y": 4, "w": 1.5},
|
||||||
|
{"x": 8.5, "y": 4, "w": 6.25},
|
||||||
|
{"x": 14.75, "y": 4, "w": 1.25},
|
||||||
|
{"x": 16, "y": 4},
|
||||||
|
|
||||||
|
{"x": 17.5, "y": 4},
|
||||||
|
{"x": 18.5, "y": 4},
|
||||||
|
{"x": 19.5, "y": 4}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
/* Copyright 2019 Fate
|
||||||
|
*
|
||||||
|
* 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 "arisu.h"
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
/* Copyright 2019 Fate
|
||||||
|
*
|
||||||
|
* 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"
|
||||||
|
|
||||||
|
/* This 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 XXX KC_NO
|
||||||
|
#define LAYOUT( \
|
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k1E, \
|
||||||
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k2E, \
|
||||||
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k3E, \
|
||||||
|
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, \
|
||||||
|
k40, k42, k44, k45, k47, k49, k4C, k4D, k4E \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
|
||||||
|
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
|
||||||
|
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, XXX, k2E }, \
|
||||||
|
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E }, \
|
||||||
|
{ k40, XXX, k42, XXX, k44, k45, XXX, k47, XXX, k49, XXX, XXX, k4C, k4D, k4E } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,208 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2019 Fate
|
||||||
|
|
||||||
|
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 0xFA7E
|
||||||
|
#define PRODUCT_ID 0x0000
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER Fate
|
||||||
|
#define PRODUCT arisu
|
||||||
|
#define DESCRIPTION alice counterpart keyboard
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 15
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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 { D0, D1, D2, D3, D5 }
|
||||||
|
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B7, B5, B4, D7, D6, B3 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL*/
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
// #define BACKLIGHT_PIN B7
|
||||||
|
// #define BACKLIGHT_BREATHING
|
||||||
|
// #define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
|
// #define RGB_DI_PIN E2
|
||||||
|
// #ifdef RGB_DI_PIN
|
||||||
|
// #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 */
|
||||||
|
// /*== 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
|
||||||
|
// #endif
|
||||||
|
|
||||||
|
/* 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
|
||||||
|
|
||||||
|
/* number of backlight levels */
|
||||||
|
|
||||||
|
/* 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 userful 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
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Magic Key Options
|
||||||
|
*
|
||||||
|
* Magic keys are hotkey commands that allow control over firmware functions of
|
||||||
|
* the keyboard. They are best used in combination with the HID Listen program,
|
||||||
|
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||||
|
*
|
||||||
|
* The options below allow the magic key functionality to be changed. This is
|
||||||
|
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* key combination for magic key command */
|
||||||
|
/* defined by default; to change, uncomment and set to the combination you want */
|
||||||
|
// #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))
|
||||||
|
|
||||||
|
/* control how magic key switches layers */
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||||
|
|
||||||
|
/* override magic key keymap */
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||||
|
//#define MAGIC_KEY_HELP H
|
||||||
|
//#define MAGIC_KEY_HELP_ALT SLASH
|
||||||
|
//#define MAGIC_KEY_DEBUG D
|
||||||
|
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||||
|
//#define MAGIC_KEY_DEBUG_KBD K
|
||||||
|
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||||
|
//#define MAGIC_KEY_VERSION V
|
||||||
|
//#define MAGIC_KEY_STATUS S
|
||||||
|
//#define MAGIC_KEY_CONSOLE C
|
||||||
|
//#define MAGIC_KEY_LAYER0 0
|
||||||
|
//#define MAGIC_KEY_LAYER0_ALT GRAVE
|
||||||
|
//#define MAGIC_KEY_LAYER1 1
|
||||||
|
//#define MAGIC_KEY_LAYER2 2
|
||||||
|
//#define MAGIC_KEY_LAYER3 3
|
||||||
|
//#define MAGIC_KEY_LAYER4 4
|
||||||
|
//#define MAGIC_KEY_LAYER5 5
|
||||||
|
//#define MAGIC_KEY_LAYER6 6
|
||||||
|
//#define MAGIC_KEY_LAYER7 7
|
||||||
|
//#define MAGIC_KEY_LAYER8 8
|
||||||
|
//#define MAGIC_KEY_LAYER9 9
|
||||||
|
//#define MAGIC_KEY_BOOTLOADER B
|
||||||
|
//#define MAGIC_KEY_BOOTLOADER_ALT ESC
|
||||||
|
//#define MAGIC_KEY_LOCK CAPS
|
||||||
|
//#define MAGIC_KEY_EEPROM E
|
||||||
|
//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
|
||||||
|
//#define MAGIC_KEY_NKRO N
|
||||||
|
//#define MAGIC_KEY_SLEEP_LED Z
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Feature disable options
|
||||||
|
* These options are also useful to firmware size reduction.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* disable debug print */
|
||||||
|
//#define NO_DEBUG
|
||||||
|
|
||||||
|
/* disable print */
|
||||||
|
//#define NO_PRINT
|
||||||
|
|
||||||
|
/* disable action features */
|
||||||
|
//#define NO_ACTION_LAYER
|
||||||
|
//#define NO_ACTION_TAPPING
|
||||||
|
//#define NO_ACTION_ONESHOT
|
||||||
|
//#define NO_ACTION_MACRO
|
||||||
|
//#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MIDI options
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Prevent use of disabled MIDI features in the keymap */
|
||||||
|
//#define MIDI_ENABLE_STRICT 1
|
||||||
|
|
||||||
|
/* enable basic MIDI features:
|
||||||
|
- MIDI notes can be sent when in Music mode is on
|
||||||
|
*/
|
||||||
|
//#define MIDI_BASIC
|
||||||
|
|
||||||
|
/* enable advanced MIDI features:
|
||||||
|
- MIDI notes can be added to the keymap
|
||||||
|
- Octave shift and transpose
|
||||||
|
- Virtual sustain, portamento, and modulation wheel
|
||||||
|
- etc.
|
||||||
|
*/
|
||||||
|
//#define MIDI_ADVANCED
|
||||||
|
|
||||||
|
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||||
|
//#define MIDI_TONE_KEYCODE_OCTAVES 1
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
/* Copyright 2019 Fate
|
||||||
|
*
|
||||||
|
* 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_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_BSLS, KC_GRV, 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_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, MO(1),
|
||||||
|
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_LGUI, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT(
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# The default keymap for arisu
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
/* Copyright 2019 Fate
|
||||||
|
*
|
||||||
|
* 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 arisu_layers {
|
||||||
|
_QWERTY,
|
||||||
|
_FN,
|
||||||
|
_ADJUST
|
||||||
|
};
|
||||||
|
|
||||||
|
// Tap Dance Declarations
|
||||||
|
enum {
|
||||||
|
TD_LALT_LGUI = 0,
|
||||||
|
TD_RALT_RGUI
|
||||||
|
};
|
||||||
|
|
||||||
|
#define FN MO(_FN)
|
||||||
|
#define ADJUST MO(_ADJUST)
|
||||||
|
#define LALT_LG TD(TD_LALT_LGUI)
|
||||||
|
#define RALT_RG TD(TD_RALT_RGUI)
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_QWERTY] = LAYOUT(
|
||||||
|
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_GRV, 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, ADJUST,
|
||||||
|
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, LALT_LG, KC_SPC, FN, KC_SPC, RALT_RG, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
KC_CAPS, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, KC_DEL, _______,
|
||||||
|
_______, 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_APP, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[_ADJUST] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME,
|
||||||
|
KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, KC_END,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______,
|
||||||
|
_______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, KC_VOLU,
|
||||||
|
_______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
|
// Tap Dance Definitions
|
||||||
|
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||||
|
// Tap once for L-Alt, twice for L-GUI
|
||||||
|
[TD_LALT_LGUI] = ACTION_TAP_DANCE_DOUBLE(KC_LALT, KC_LGUI),
|
||||||
|
// Tap once for R-Alt, twice for R-GUI
|
||||||
|
[TD_RALT_RGUI] = ACTION_TAP_DANCE_DOUBLE(KC_RALT, KC_RGUI)
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# The keymap of arisu's creator
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
TAP_DANCE_ENABLE = yes
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
/* Copyright 2019 Fate
|
||||||
|
*
|
||||||
|
* 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 the keycodes used by our macros in process_record_user
|
||||||
|
|
||||||
|
#define FN MO(1)
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT( /* Base */
|
||||||
|
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_GRV, KC_BSPC, 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_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, FN,
|
||||||
|
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_LGUI, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT(
|
||||||
|
_______, 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_HOME,
|
||||||
|
_______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, KC_END,
|
||||||
|
_______, 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_BSLS, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
/* Copyright 2019 Fate
|
||||||
|
*
|
||||||
|
* 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_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_BSLS, KC_GRV, 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_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, MO(1),
|
||||||
|
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_LGUI, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT(
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[2] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[3] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
# arisu
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
A keyboard inspired by Lyn's EM7 and TGR Alice.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Fate](https://github.com/FateNozomi)
|
||||||
|
* Hardware Supported: Arisu
|
||||||
|
* Hardware Availability: [PCB](https://github.com/FateNozomi/arisu-pcb) + [Case](https://github.com/FateNozomi/arisu-case)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make arisu: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).
|
||||||
@@ -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 = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
MIDI_ENABLE = no # MIDI support
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||||
@@ -86,7 +86,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
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_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
|
||||||
KC_GRV, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
|
KC_GRV, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
|
||||||
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
|
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
|
||||||
KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_LALT, CTL_ENT, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT
|
KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_LALT, CTL_ENT, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_RCTL
|
||||||
),
|
),
|
||||||
|
|
||||||
[_DESTINY] = LAYOUT ( /* Dvorak with minor modifications for playing Destiny 2 and other FPS Looters */
|
[_DESTINY] = LAYOUT ( /* Dvorak with minor modifications for playing Destiny 2 and other FPS Looters */
|
||||||
@@ -94,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
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_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
|
||||||
KC_GRV, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
|
KC_GRV, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
|
||||||
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
|
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
|
||||||
KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT
|
KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_RCTL
|
||||||
),
|
),
|
||||||
|
|
||||||
[_LOWER] = LAYOUT (
|
[_LOWER] = LAYOUT (
|
||||||
|
|||||||
+447
-351
@@ -5,355 +5,451 @@
|
|||||||
"width": 15,
|
"width": 15,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT_ortho_5x14": {
|
"LAYOUT_ortho_5x14": {
|
||||||
"layout": [
|
"layout": [
|
||||||
{"label":"k00", "x":0, "y":0, "w":1.5},
|
{"x": 0, "y": 0, "w": 1.5},
|
||||||
{"label":"k01", "x":1.5, "y":0},
|
{"x": 1.5, "y": 0},
|
||||||
{"label":"k02", "x":2.5, "y":0},
|
{"x": 2.5, "y": 0},
|
||||||
{"label":"k03", "x":3.5, "y":0},
|
{"x": 3.5, "y": 0},
|
||||||
{"label":"k04", "x":4.5, "y":0},
|
{"x": 4.5, "y": 0},
|
||||||
{"label":"k05", "x":5.5, "y":0},
|
{"x": 5.5, "y": 0},
|
||||||
{"label":"k06", "x":6.5, "y":0},
|
{"x": 6.5, "y": 0},
|
||||||
{"label":"k07", "x":7.5, "y":0},
|
{"x": 7.5, "y": 0},
|
||||||
{"label":"k08", "x":8.5, "y":0},
|
{"x": 8.5, "y": 0},
|
||||||
{"label":"k09", "x":9.5, "y":0},
|
{"x": 9.5, "y": 0},
|
||||||
{"label":"k010", "x":10.5, "y":0},
|
{"x": 10.5, "y": 0},
|
||||||
{"label":"k011", "x":11.5, "y":0},
|
{"x": 11.5, "y": 0},
|
||||||
{"label":"k012", "x":12.5, "y":0},
|
{"x": 12.5, "y": 0},
|
||||||
{"label":"k013", "x":13.5, "y":0, "w":1.5},
|
{"x": 13.5, "y": 0, "w": 1.5},
|
||||||
{"label":"k10", "x":0, "y":1, "w":1.5},
|
|
||||||
{"label":"k11", "x":1.5, "y":1},
|
{"x": 0, "y": 1, "w": 1.5},
|
||||||
{"label":"k12", "x":2.5, "y":1},
|
{"x": 1.5, "y": 1},
|
||||||
{"label":"k13", "x":3.5, "y":1},
|
{"x": 2.5, "y": 1},
|
||||||
{"label":"k14", "x":4.5, "y":1},
|
{"x": 3.5, "y": 1},
|
||||||
{"label":"k15", "x":5.5, "y":1},
|
{"x": 4.5, "y": 1},
|
||||||
{"label":"k16", "x":6.5, "y":1},
|
{"x": 5.5, "y": 1},
|
||||||
{"label":"k17", "x":7.5, "y":1},
|
{"x": 6.5, "y": 1},
|
||||||
{"label":"k18", "x":8.5, "y":1},
|
{"x": 7.5, "y": 1},
|
||||||
{"label":"k19", "x":9.5, "y":1},
|
{"x": 8.5, "y": 1},
|
||||||
{"label":"k110", "x":10.5, "y":1},
|
{"x": 9.5, "y": 1},
|
||||||
{"label":"k111", "x":11.5, "y":1},
|
{"x": 10.5, "y": 1},
|
||||||
{"label":"k112", "x":12.5, "y":1},
|
{"x": 11.5, "y": 1},
|
||||||
{"label":"k113", "x":13.5, "y":1, "w":1.5},
|
{"x": 12.5, "y": 1},
|
||||||
{"label":"k20", "x":0, "y":2, "w":1.5},
|
{"x": 13.5, "y": 1, "w": 1.5},
|
||||||
{"label":"k21", "x":1.5, "y":2},
|
|
||||||
{"label":"k22", "x":2.5, "y":2},
|
{"x": 0, "y": 2, "w": 1.5},
|
||||||
{"label":"k23", "x":3.5, "y":2},
|
{"x": 1.5, "y": 2},
|
||||||
{"label":"k24", "x":4.5, "y":2},
|
{"x": 2.5, "y": 2},
|
||||||
{"label":"k25", "x":5.5, "y":2},
|
{"x": 3.5, "y": 2},
|
||||||
{"label":"k26", "x":6.5, "y":2},
|
{"x": 4.5, "y": 2},
|
||||||
{"label":"k27", "x":7.5, "y":2},
|
{"x": 5.5, "y": 2},
|
||||||
{"label":"k28", "x":8.5, "y":2},
|
{"x": 6.5, "y": 2},
|
||||||
{"label":"k29", "x":9.5, "y":2},
|
{"x": 7.5, "y": 2},
|
||||||
{"label":"k210", "x":10.5, "y":2},
|
{"x": 8.5, "y": 2},
|
||||||
{"label":"k211", "x":11.5, "y":2},
|
{"x": 9.5, "y": 2},
|
||||||
{"label":"k212", "x":12.5, "y":2},
|
{"x": 10.5, "y": 2},
|
||||||
{"label":"k213", "x":13.5, "y":2, "w":1.5},
|
{"x": 11.5, "y": 2},
|
||||||
{"label":"k30", "x":0, "y":3, "w":1.5},
|
{"x": 12.5, "y": 2},
|
||||||
{"label":"k31", "x":1.5, "y":3},
|
{"x": 13.5, "y": 2, "w": 1.5},
|
||||||
{"label":"k32", "x":2.5, "y":3},
|
|
||||||
{"label":"k33", "x":3.5, "y":3},
|
{"x": 0, "y": 3, "w": 1.5},
|
||||||
{"label":"k34", "x":4.5, "y":3},
|
{"x": 1.5, "y": 3},
|
||||||
{"label":"k35", "x":5.5, "y":3},
|
{"x": 2.5, "y": 3},
|
||||||
{"label":"k36", "x":6.5, "y":3},
|
{"x": 3.5, "y": 3},
|
||||||
{"label":"k37", "x":7.5, "y":3},
|
{"x": 4.5, "y": 3},
|
||||||
{"label":"k38", "x":8.5, "y":3},
|
{"x": 5.5, "y": 3},
|
||||||
{"label":"k39", "x":9.5, "y":3},
|
{"x": 6.5, "y": 3},
|
||||||
{"label":"k310", "x":10.5, "y":3},
|
{"x": 7.5, "y": 3},
|
||||||
{"label":"k311", "x":11.5, "y":3},
|
{"x": 8.5, "y": 3},
|
||||||
{"label":"k312", "x":12.5, "y":3},
|
{"x": 9.5, "y": 3},
|
||||||
{"label":"k313", "x":13.5, "y":3, "w":1.5},
|
{"x": 10.5, "y": 3},
|
||||||
{"label":"k40", "x":0, "y":4, "w":1.5},
|
{"x": 11.5, "y": 3},
|
||||||
{"label":"k41", "x":1.5, "y":4},
|
{"x": 12.5, "y": 3},
|
||||||
{"label":"k42", "x":2.5, "y":4},
|
{"x": 13.5, "y": 3, "w": 1.5},
|
||||||
{"label":"k43", "x":3.5, "y":4},
|
|
||||||
{"label":"k44", "x":4.5, "y":4},
|
{"x": 0, "y": 4, "w": 1.5},
|
||||||
{"label":"k45", "x":5.5, "y":4},
|
{"x": 1.5, "y": 4},
|
||||||
{"label":"k46", "x":6.5, "y":4},
|
{"x": 2.5, "y": 4},
|
||||||
{"label":"k47", "x":7.5, "y":4},
|
{"x": 3.5, "y": 4},
|
||||||
{"label":"k48", "x":8.5, "y":4},
|
{"x": 4.5, "y": 4},
|
||||||
{"label":"k49", "x":9.5, "y":4},
|
{"x": 5.5, "y": 4},
|
||||||
{"label":"k410", "x":10.5, "y":4},
|
{"x": 6.5, "y": 4},
|
||||||
{"label":"k411", "x":11.5, "y":4},
|
{"x": 7.5, "y": 4},
|
||||||
{"label":"k412", "x":12.5, "y":4},
|
{"x": 8.5, "y": 4},
|
||||||
{"label":"k413", "x":13.5, "y":4, "w":1.5}
|
{"x": 9.5, "y": 4},
|
||||||
]
|
{"x": 10.5, "y": 4},
|
||||||
},
|
{"x": 11.5, "y": 4},
|
||||||
"LAYOUT_ortho_hhkb": {
|
{"x": 12.5, "y": 4},
|
||||||
"layout": [
|
{"x": 13.5, "y": 4, "w": 1.5}
|
||||||
{"label":"k00", "x":0, "y":0, "w":1.5},
|
]
|
||||||
{"label":"k01", "x":1.5, "y":0},
|
},
|
||||||
{"label":"k02", "x":2.5, "y":0},
|
"LAYOUT_ortho_hhkb": {
|
||||||
{"label":"k03", "x":3.5, "y":0},
|
"layout": [
|
||||||
{"label":"k04", "x":4.5, "y":0},
|
{"x": 0, "y": 0, "w": 1.5},
|
||||||
{"label":"k05", "x":5.5, "y":0},
|
{"x": 1.5, "y": 0},
|
||||||
{"label":"k06", "x":6.5, "y":0},
|
{"x": 2.5, "y": 0},
|
||||||
{"label":"k07", "x":7.5, "y":0},
|
{"x": 3.5, "y": 0},
|
||||||
{"label":"k08", "x":8.5, "y":0},
|
{"x": 4.5, "y": 0},
|
||||||
{"label":"k09", "x":9.5, "y":0},
|
{"x": 5.5, "y": 0},
|
||||||
{"label":"k010", "x":10.5, "y":0},
|
{"x": 6.5, "y": 0},
|
||||||
{"label":"k011", "x":11.5, "y":0},
|
{"x": 7.5, "y": 0},
|
||||||
{"label":"k012", "x":12.5, "y":0},
|
{"x": 8.5, "y": 0},
|
||||||
{"label":"k013", "x":13.5, "y":0, "w":1.5},
|
{"x": 9.5, "y": 0},
|
||||||
{"label":"k10", "x":0, "y":1, "w":1.5},
|
{"x": 10.5, "y": 0},
|
||||||
{"label":"k11", "x":1.5, "y":1},
|
{"x": 11.5, "y": 0},
|
||||||
{"label":"k12", "x":2.5, "y":1},
|
{"x": 12.5, "y": 0},
|
||||||
{"label":"k13", "x":3.5, "y":1},
|
{"x": 13.5, "y": 0, "w": 1.5},
|
||||||
{"label":"k14", "x":4.5, "y":1},
|
|
||||||
{"label":"k15", "x":5.5, "y":1},
|
{"x": 0, "y": 1, "w": 1.5},
|
||||||
{"label":"k16", "x":6.5, "y":1},
|
{"x": 1.5, "y": 1},
|
||||||
{"label":"k17", "x":7.5, "y":1},
|
{"x": 2.5, "y": 1},
|
||||||
{"label":"k18", "x":8.5, "y":1},
|
{"x": 3.5, "y": 1},
|
||||||
{"label":"k19", "x":9.5, "y":1},
|
{"x": 4.5, "y": 1},
|
||||||
{"label":"k110", "x":10.5, "y":1},
|
{"x": 5.5, "y": 1},
|
||||||
{"label":"k111", "x":11.5, "y":1},
|
{"x": 6.5, "y": 1},
|
||||||
{"label":"k112", "x":12.5, "y":1},
|
{"x": 7.5, "y": 1},
|
||||||
{"label":"k113", "x":13.5, "y":1, "w":1.5},
|
{"x": 8.5, "y": 1},
|
||||||
{"label":"k20", "x":0, "y":2, "w":1.5},
|
{"x": 9.5, "y": 1},
|
||||||
{"label":"k21", "x":1.5, "y":2},
|
{"x": 10.5, "y": 1},
|
||||||
{"label":"k22", "x":2.5, "y":2},
|
{"x": 11.5, "y": 1},
|
||||||
{"label":"k23", "x":3.5, "y":2},
|
{"x": 12.5, "y": 1},
|
||||||
{"label":"k24", "x":4.5, "y":2},
|
{"x": 13.5, "y": 1, "w": 1.5},
|
||||||
{"label":"k25", "x":5.5, "y":2},
|
|
||||||
{"label":"k26", "x":6.5, "y":2},
|
{"x": 0, "y": 2, "w": 1.5},
|
||||||
{"label":"k27", "x":7.5, "y":2},
|
{"x": 1.5, "y": 2},
|
||||||
{"label":"k28", "x":8.5, "y":2},
|
{"x": 2.5, "y": 2},
|
||||||
{"label":"k29", "x":9.5, "y":2},
|
{"x": 3.5, "y": 2},
|
||||||
{"label":"k210", "x":10.5, "y":2},
|
{"x": 4.5, "y": 2},
|
||||||
{"label":"k211", "x":11.5, "y":2},
|
{"x": 5.5, "y": 2},
|
||||||
{"label":"k212", "x":12.5, "y":2},
|
{"x": 6.5, "y": 2},
|
||||||
{"label":"k213", "x":13.5, "y":2, "w":1.5},
|
{"x": 7.5, "y": 2},
|
||||||
{"label":"k30", "x":0, "y":3, "w":1.5},
|
{"x": 8.5, "y": 2},
|
||||||
{"label":"k31", "x":1.5, "y":3},
|
{"x": 9.5, "y": 2},
|
||||||
{"label":"k32", "x":2.5, "y":3},
|
{"x": 10.5, "y": 2},
|
||||||
{"label":"k33", "x":3.5, "y":3},
|
{"x": 11.5, "y": 2},
|
||||||
{"label":"k34", "x":4.5, "y":3},
|
{"x": 12.5, "y": 2},
|
||||||
{"label":"k35", "x":5.5, "y":3},
|
{"x": 13.5, "y": 2, "w": 1.5},
|
||||||
{"label":"k36", "x":6.5, "y":3},
|
|
||||||
{"label":"k37", "x":7.5, "y":3},
|
{"x": 0, "y": 3, "w": 1.5},
|
||||||
{"label":"k38", "x":8.5, "y":3},
|
{"x": 1.5, "y": 3},
|
||||||
{"label":"k39", "x":9.5, "y":3},
|
{"x": 2.5, "y": 3},
|
||||||
{"label":"k310", "x":10.5, "y":3},
|
{"x": 3.5, "y": 3},
|
||||||
{"label":"k311", "x":11.5, "y":3},
|
{"x": 4.5, "y": 3},
|
||||||
{"label":"k312", "x":12.5, "y":3},
|
{"x": 5.5, "y": 3},
|
||||||
{"label":"k313", "x":13.5, "y":3, "w":1.5},
|
{"x": 6.5, "y": 3},
|
||||||
{"label":"k41", "x":1.5, "y":4},
|
{"x": 7.5, "y": 3},
|
||||||
{"label":"k42", "x":2.5, "y":4},
|
{"x": 8.5, "y": 3},
|
||||||
{"label":"k43", "x":3.5, "y":4},
|
{"x": 9.5, "y": 3},
|
||||||
{"label":"k44", "x":4.5, "y":4},
|
{"x": 10.5, "y": 3},
|
||||||
{"label":"k45", "x":5.5, "y":4, "w":2},
|
{"x": 11.5, "y": 3},
|
||||||
{"label":"k47", "x":7.5, "y":4, "w":2},
|
{"x": 12.5, "y": 3},
|
||||||
{"label":"k49", "x":9.5, "y":4},
|
{"x": 13.5, "y": 3, "w": 1.5},
|
||||||
{"label":"k410", "x":10.5, "y":4},
|
|
||||||
{"label":"k411", "x":11.5, "y":4},
|
{"x": 1.5, "y": 4},
|
||||||
{"label":"k412", "x":12.5, "y":4}
|
{"x": 2.5, "y": 4},
|
||||||
]
|
{"x": 3.5, "y": 4},
|
||||||
},
|
{"x": 4.5, "y": 4},
|
||||||
"LAYOUT_ortho_7u": {
|
{"x": 5.5, "y": 4, "w": 2},
|
||||||
"layout": [
|
{"x": 7.5, "y": 4, "w": 2},
|
||||||
{"label":"k00", "x":0, "y":0, "w":1.5},
|
{"x": 9.5, "y": 4},
|
||||||
{"label":"k01", "x":1.5, "y":0},
|
{"x": 10.5, "y": 4},
|
||||||
{"label":"k02", "x":2.5, "y":0},
|
{"x": 11.5, "y": 4},
|
||||||
{"label":"k03", "x":3.5, "y":0},
|
{"x": 12.5, "y": 4}
|
||||||
{"label":"k04", "x":4.5, "y":0},
|
]
|
||||||
{"label":"k05", "x":5.5, "y":0},
|
},
|
||||||
{"label":"k06", "x":6.5, "y":0},
|
"LAYOUT_ortho_7u": {
|
||||||
{"label":"k07", "x":7.5, "y":0},
|
"layout": [
|
||||||
{"label":"k08", "x":8.5, "y":0},
|
{"x": 0, "y": 0, "w": 1.5},
|
||||||
{"label":"k09", "x":9.5, "y":0},
|
{"x": 1.5, "y": 0},
|
||||||
{"label":"k010", "x":10.5, "y":0},
|
{"x": 2.5, "y": 0},
|
||||||
{"label":"k011", "x":11.5, "y":0},
|
{"x": 3.5, "y": 0},
|
||||||
{"label":"k012", "x":12.5, "y":0},
|
{"x": 4.5, "y": 0},
|
||||||
{"label":"k013", "x":13.5, "y":0, "w":1.5},
|
{"x": 5.5, "y": 0},
|
||||||
{"label":"k10", "x":0, "y":1, "w":1.5},
|
{"x": 6.5, "y": 0},
|
||||||
{"label":"k11", "x":1.5, "y":1},
|
{"x": 7.5, "y": 0},
|
||||||
{"label":"k12", "x":2.5, "y":1},
|
{"x": 8.5, "y": 0},
|
||||||
{"label":"k13", "x":3.5, "y":1},
|
{"x": 9.5, "y": 0},
|
||||||
{"label":"k14", "x":4.5, "y":1},
|
{"x": 10.5, "y": 0},
|
||||||
{"label":"k15", "x":5.5, "y":1},
|
{"x": 11.5, "y": 0},
|
||||||
{"label":"k16", "x":6.5, "y":1},
|
{"x": 12.5, "y": 0},
|
||||||
{"label":"k17", "x":7.5, "y":1},
|
{"x": 13.5, "y": 0, "w": 1.5},
|
||||||
{"label":"k18", "x":8.5, "y":1},
|
|
||||||
{"label":"k19", "x":9.5, "y":1},
|
{"x": 0, "y": 1, "w": 1.5},
|
||||||
{"label":"k110", "x":10.5, "y":1},
|
{"x": 1.5, "y": 1},
|
||||||
{"label":"k111", "x":11.5, "y":1},
|
{"x": 2.5, "y": 1},
|
||||||
{"label":"k112", "x":12.5, "y":1},
|
{"x": 3.5, "y": 1},
|
||||||
{"label":"k113", "x":13.5, "y":1, "w":1.5},
|
{"x": 4.5, "y": 1},
|
||||||
{"label":"k20", "x":0, "y":2, "w":1.5},
|
{"x": 5.5, "y": 1},
|
||||||
{"label":"k21", "x":1.5, "y":2},
|
{"x": 6.5, "y": 1},
|
||||||
{"label":"k22", "x":2.5, "y":2},
|
{"x": 7.5, "y": 1},
|
||||||
{"label":"k23", "x":3.5, "y":2},
|
{"x": 8.5, "y": 1},
|
||||||
{"label":"k24", "x":4.5, "y":2},
|
{"x": 9.5, "y": 1},
|
||||||
{"label":"k25", "x":5.5, "y":2},
|
{"x": 10.5, "y": 1},
|
||||||
{"label":"k26", "x":6.5, "y":2},
|
{"x": 11.5, "y": 1},
|
||||||
{"label":"k27", "x":7.5, "y":2},
|
{"x": 12.5, "y": 1},
|
||||||
{"label":"k28", "x":8.5, "y":2},
|
{"x": 13.5, "y": 1, "w": 1.5},
|
||||||
{"label":"k29", "x":9.5, "y":2},
|
|
||||||
{"label":"k210", "x":10.5, "y":2},
|
{"x": 0, "y": 2, "w": 1.5},
|
||||||
{"label":"k211", "x":11.5, "y":2},
|
{"x": 1.5, "y": 2},
|
||||||
{"label":"k212", "x":12.5, "y":2},
|
{"x": 2.5, "y": 2},
|
||||||
{"label":"k213", "x":13.5, "y":2, "w":1.5},
|
{"x": 3.5, "y": 2},
|
||||||
{"label":"k30", "x":0, "y":3, "w":1.5},
|
{"x": 4.5, "y": 2},
|
||||||
{"label":"k31", "x":1.5, "y":3},
|
{"x": 5.5, "y": 2},
|
||||||
{"label":"k32", "x":2.5, "y":3},
|
{"x": 6.5, "y": 2},
|
||||||
{"label":"k33", "x":3.5, "y":3},
|
{"x": 7.5, "y": 2},
|
||||||
{"label":"k34", "x":4.5, "y":3},
|
{"x": 8.5, "y": 2},
|
||||||
{"label":"k35", "x":5.5, "y":3},
|
{"x": 9.5, "y": 2},
|
||||||
{"label":"k36", "x":6.5, "y":3},
|
{"x": 10.5, "y": 2},
|
||||||
{"label":"k37", "x":7.5, "y":3},
|
{"x": 11.5, "y": 2},
|
||||||
{"label":"k38", "x":8.5, "y":3},
|
{"x": 12.5, "y": 2},
|
||||||
{"label":"k39", "x":9.5, "y":3},
|
{"x": 13.5, "y": 2, "w": 1.5},
|
||||||
{"label":"k310", "x":10.5, "y":3},
|
|
||||||
{"label":"k311", "x":11.5, "y":3},
|
{"x": 0, "y": 3, "w": 1.5},
|
||||||
{"label":"k312", "x":12.5, "y":3},
|
{"x": 1.5, "y": 3},
|
||||||
{"label":"k313", "x":13.5, "y":3, "w":1.5},
|
{"x": 2.5, "y": 3},
|
||||||
{"label":"k41", "x":1.5, "y":4},
|
{"x": 3.5, "y": 3},
|
||||||
{"label":"k42", "x":2.5, "y":4, "w":1.5},
|
{"x": 4.5, "y": 3},
|
||||||
{"label":"k46", "x":4, "y":4, "w":7},
|
{"x": 5.5, "y": 3},
|
||||||
{"label":"k411", "x":11, "y":4, "w":1.5},
|
{"x": 6.5, "y": 3},
|
||||||
{"label":"k412", "x":12.5, "y":4}
|
{"x": 7.5, "y": 3},
|
||||||
]
|
{"x": 8.5, "y": 3},
|
||||||
},
|
{"x": 9.5, "y": 3},
|
||||||
"LAYOUT_2u_arrow": {
|
{"x": 10.5, "y": 3},
|
||||||
"layout": [
|
{"x": 11.5, "y": 3},
|
||||||
{"label":"k00", "x":0, "y":0, "w":1.5},
|
{"x": 12.5, "y": 3},
|
||||||
{"label":"k01", "x":1.5, "y":0},
|
{"x": 13.5, "y": 3, "w": 1.5},
|
||||||
{"label":"k02", "x":2.5, "y":0},
|
|
||||||
{"label":"k03", "x":3.5, "y":0},
|
{"x": 1.5, "y": 4},
|
||||||
{"label":"k04", "x":4.5, "y":0},
|
{"x": 2.5, "y": 4, "w": 1.5},
|
||||||
{"label":"k05", "x":5.5, "y":0},
|
{"x": 4, "y": 4, "w": 7},
|
||||||
{"label":"k06", "x":6.5, "y":0},
|
{"x": 11, "y": 4, "w": 1.5},
|
||||||
{"label":"k07", "x":7.5, "y":0},
|
{"x": 12.5, "y": 4}
|
||||||
{"label":"k08", "x":8.5, "y":0},
|
]
|
||||||
{"label":"k09", "x":9.5, "y":0},
|
},
|
||||||
{"label":"k010", "x":10.5, "y":0},
|
"LAYOUT_2u_arrow": {
|
||||||
{"label":"k011", "x":11.5, "y":0},
|
"layout": [
|
||||||
{"label":"k012", "x":12.5, "y":0},
|
{"x": 0, "y": 0, "w": 1.5},
|
||||||
{"label":"k013", "x":13.5, "y":0, "w":1.5},
|
{"x": 1.5, "y": 0},
|
||||||
{"label":"k10", "x":0, "y":1, "w":1.5},
|
{"x": 2.5, "y": 0},
|
||||||
{"label":"k11", "x":1.5, "y":1},
|
{"x": 3.5, "y": 0},
|
||||||
{"label":"k12", "x":2.5, "y":1},
|
{"x": 4.5, "y": 0},
|
||||||
{"label":"k13", "x":3.5, "y":1},
|
{"x": 5.5, "y": 0},
|
||||||
{"label":"k14", "x":4.5, "y":1},
|
{"x": 6.5, "y": 0},
|
||||||
{"label":"k15", "x":5.5, "y":1},
|
{"x": 7.5, "y": 0},
|
||||||
{"label":"k16", "x":6.5, "y":1},
|
{"x": 8.5, "y": 0},
|
||||||
{"label":"k17", "x":7.5, "y":1},
|
{"x": 9.5, "y": 0},
|
||||||
{"label":"k18", "x":8.5, "y":1},
|
{"x": 10.5, "y": 0},
|
||||||
{"label":"k19", "x":9.5, "y":1},
|
{"x": 11.5, "y": 0},
|
||||||
{"label":"k110", "x":10.5, "y":1},
|
{"x": 12.5, "y": 0},
|
||||||
{"label":"k111", "x":11.5, "y":1},
|
{"x": 13.5, "y": 0, "w": 1.5},
|
||||||
{"label":"k112", "x":12.5, "y":1},
|
|
||||||
{"label":"k113", "x":13.5, "y":1, "w":1.5},
|
{"x": 0, "y": 1, "w": 1.5},
|
||||||
{"label":"k20", "x":0, "y":2, "w":1.5},
|
{"x": 1.5, "y": 1},
|
||||||
{"label":"k21", "x":1.5, "y":2},
|
{"x": 2.5, "y": 1},
|
||||||
{"label":"k22", "x":2.5, "y":2},
|
{"x": 3.5, "y": 1},
|
||||||
{"label":"k23", "x":3.5, "y":2},
|
{"x": 4.5, "y": 1},
|
||||||
{"label":"k24", "x":4.5, "y":2},
|
{"x": 5.5, "y": 1},
|
||||||
{"label":"k25", "x":5.5, "y":2},
|
{"x": 6.5, "y": 1},
|
||||||
{"label":"k26", "x":6.5, "y":2},
|
{"x": 7.5, "y": 1},
|
||||||
{"label":"k27", "x":7.5, "y":2},
|
{"x": 8.5, "y": 1},
|
||||||
{"label":"k28", "x":8.5, "y":2},
|
{"x": 9.5, "y": 1},
|
||||||
{"label":"k29", "x":9.5, "y":2},
|
{"x": 10.5, "y": 1},
|
||||||
{"label":"k210", "x":10.5, "y":2},
|
{"x": 11.5, "y": 1},
|
||||||
{"label":"k211", "x":11.5, "y":2},
|
{"x": 12.5, "y": 1},
|
||||||
{"label":"k212", "x":12.5, "y":2, "w":1.5},
|
{"x": 13.5, "y": 1, "w": 1.5},
|
||||||
{"label":"k213", "x":14, "y":2},
|
|
||||||
{"label":"k30", "x":0, "y":3, "w":1.5},
|
{"x": 0, "y": 2, "w": 1.5},
|
||||||
{"label":"k31", "x":1.5, "y":3},
|
{"x": 1.5, "y": 2},
|
||||||
{"label":"k32", "x":2.5, "y":3},
|
{"x": 2.5, "y": 2},
|
||||||
{"label":"k33", "x":3.5, "y":3},
|
{"x": 3.5, "y": 2},
|
||||||
{"label":"k34", "x":4.5, "y":3},
|
{"x": 4.5, "y": 2},
|
||||||
{"label":"k35", "x":5.5, "y":3},
|
{"x": 5.5, "y": 2},
|
||||||
{"label":"k36", "x":6.5, "y":3},
|
{"x": 6.5, "y": 2},
|
||||||
{"label":"k37", "x":7.5, "y":3},
|
{"x": 7.5, "y": 2},
|
||||||
{"label":"k38", "x":8.5, "y":3},
|
{"x": 8.5, "y": 2},
|
||||||
{"label":"k39", "x":9.5, "y":3},
|
{"x": 9.5, "y": 2},
|
||||||
{"label":"k310", "x":10.5, "y":3},
|
{"x": 10.5, "y": 2},
|
||||||
{"label":"k311", "x":11.5, "y":3, "w":1.5},
|
{"x": 11.5, "y": 2},
|
||||||
{"label":"k312", "x":13, "y":3},
|
{"x": 12.5, "y": 2, "w": 1.5},
|
||||||
{"label":"k313", "x":14, "y":3},
|
{"x": 14, "y": 2},
|
||||||
{"label":"k40", "x":0, "y":4, "w":1.25},
|
|
||||||
{"label":"k41", "x":1.25, "y":4, "w":1.25},
|
{"x": 0, "y": 3, "w": 1.5},
|
||||||
{"label":"k42", "x":2.5, "y":4},
|
{"x": 1.5, "y": 3},
|
||||||
{"label":"k43", "x":3.5, "y":4},
|
{"x": 2.5, "y": 3},
|
||||||
{"label":"k44", "x":4.5, "y":4, "w":2},
|
{"x": 3.5, "y": 3},
|
||||||
{"label":"k46", "x":6.5, "y":4, "w":2},
|
{"x": 4.5, "y": 3},
|
||||||
{"label":"k48", "x":8.5, "y":4},
|
{"x": 5.5, "y": 3},
|
||||||
{"label":"k49", "x":9.5, "y":4, "w":1.25},
|
{"x": 6.5, "y": 3},
|
||||||
{"label":"k410", "x":10.75, "y":4, "w":1.25},
|
{"x": 7.5, "y": 3},
|
||||||
{"label":"k411", "x":12, "y":4},
|
{"x": 8.5, "y": 3},
|
||||||
{"label":"k412", "x":13, "y":4},
|
{"x": 9.5, "y": 3},
|
||||||
{"label":"k413", "x":14, "y":4}
|
{"x": 10.5, "y": 3},
|
||||||
]
|
{"x": 11.5, "y": 3, "w": 1.5},
|
||||||
},
|
{"x": 13, "y": 3},
|
||||||
"LAYOUT_625u_arrow": {
|
{"x": 14, "y": 3},
|
||||||
"layout": [
|
|
||||||
{"label":"k00", "x":0, "y":0, "w":1.5},
|
{"x": 0, "y": 4, "w": 1.25},
|
||||||
{"label":"k01", "x":1.5, "y":0},
|
{"x": 1.25, "y": 4, "w": 1.25},
|
||||||
{"label":"k02", "x":2.5, "y":0},
|
{"x": 2.5, "y": 4},
|
||||||
{"label":"k03", "x":3.5, "y":0},
|
{"x": 3.5, "y": 4},
|
||||||
{"label":"k04", "x":4.5, "y":0},
|
{"x": 4.5, "y": 4, "w": 2},
|
||||||
{"label":"k05", "x":5.5, "y":0},
|
{"x": 6.5, "y": 4, "w": 2},
|
||||||
{"label":"k06", "x":6.5, "y":0},
|
{"x": 8.5, "y": 4},
|
||||||
{"label":"k07", "x":7.5, "y":0},
|
{"x": 9.5, "y": 4, "w": 1.25},
|
||||||
{"label":"k08", "x":8.5, "y":0},
|
{"x": 10.75, "y": 4, "w": 1.25},
|
||||||
{"label":"k09", "x":9.5, "y":0},
|
{"x": 12, "y": 4},
|
||||||
{"label":"k010", "x":10.5, "y":0},
|
{"x": 13, "y": 4},
|
||||||
{"label":"k011", "x":11.5, "y":0},
|
{"x": 14, "y": 4}
|
||||||
{"label":"k012", "x":12.5, "y":0},
|
]
|
||||||
{"label":"k013", "x":13.5, "y":0, "w":1.5},
|
},
|
||||||
{"label":"k10", "x":0, "y":1, "w":1.5},
|
"LAYOUT_625u_arrow": {
|
||||||
{"label":"k11", "x":1.5, "y":1},
|
"layout": [
|
||||||
{"label":"k12", "x":2.5, "y":1},
|
{"x": 0, "y": 0, "w": 1.5},
|
||||||
{"label":"k13", "x":3.5, "y":1},
|
{"x": 1.5, "y": 0},
|
||||||
{"label":"k14", "x":4.5, "y":1},
|
{"x": 2.5, "y": 0},
|
||||||
{"label":"k15", "x":5.5, "y":1},
|
{"x": 3.5, "y": 0},
|
||||||
{"label":"k16", "x":6.5, "y":1},
|
{"x": 4.5, "y": 0},
|
||||||
{"label":"k17", "x":7.5, "y":1},
|
{"x": 5.5, "y": 0},
|
||||||
{"label":"k18", "x":8.5, "y":1},
|
{"x": 6.5, "y": 0},
|
||||||
{"label":"k19", "x":9.5, "y":1},
|
{"x": 7.5, "y": 0},
|
||||||
{"label":"k110", "x":10.5, "y":1},
|
{"x": 8.5, "y": 0},
|
||||||
{"label":"k111", "x":11.5, "y":1},
|
{"x": 9.5, "y": 0},
|
||||||
{"label":"k112", "x":12.5, "y":1},
|
{"x": 10.5, "y": 0},
|
||||||
{"label":"k113", "x":13.5, "y":1, "w":1.5},
|
{"x": 11.5, "y": 0},
|
||||||
{"label":"k20", "x":0, "y":2, "w":1.5},
|
{"x": 12.5, "y": 0},
|
||||||
{"label":"k21", "x":1.5, "y":2},
|
{"x": 13.5, "y": 0, "w": 1.5},
|
||||||
{"label":"k22", "x":2.5, "y":2},
|
|
||||||
{"label":"k23", "x":3.5, "y":2},
|
{"x": 0, "y": 1, "w": 1.5},
|
||||||
{"label":"k24", "x":4.5, "y":2},
|
{"x": 1.5, "y": 1},
|
||||||
{"label":"k25", "x":5.5, "y":2},
|
{"x": 2.5, "y": 1},
|
||||||
{"label":"k26", "x":6.5, "y":2},
|
{"x": 3.5, "y": 1},
|
||||||
{"label":"k27", "x":7.5, "y":2},
|
{"x": 4.5, "y": 1},
|
||||||
{"label":"k28", "x":8.5, "y":2},
|
{"x": 5.5, "y": 1},
|
||||||
{"label":"k29", "x":9.5, "y":2},
|
{"x": 6.5, "y": 1},
|
||||||
{"label":"k210", "x":10.5, "y":2},
|
{"x": 7.5, "y": 1},
|
||||||
{"label":"k211", "x":11.5, "y":2},
|
{"x": 8.5, "y": 1},
|
||||||
{"label":"k212", "x":12.5, "y":2, "w":1.5},
|
{"x": 9.5, "y": 1},
|
||||||
{"label":"k213", "x":14, "y":2},
|
{"x": 10.5, "y": 1},
|
||||||
{"label":"k30", "x":0, "y":3, "w":1.5},
|
{"x": 11.5, "y": 1},
|
||||||
{"label":"k31", "x":1.5, "y":3},
|
{"x": 12.5, "y": 1},
|
||||||
{"label":"k32", "x":2.5, "y":3},
|
{"x": 13.5, "y": 1, "w": 1.5},
|
||||||
{"label":"k33", "x":3.5, "y":3},
|
|
||||||
{"label":"k34", "x":4.5, "y":3},
|
{"x": 0, "y": 2, "w": 1.5},
|
||||||
{"label":"k35", "x":5.5, "y":3},
|
{"x": 1.5, "y": 2},
|
||||||
{"label":"k36", "x":6.5, "y":3},
|
{"x": 2.5, "y": 2},
|
||||||
{"label":"k37", "x":7.5, "y":3},
|
{"x": 3.5, "y": 2},
|
||||||
{"label":"k38", "x":8.5, "y":3},
|
{"x": 4.5, "y": 2},
|
||||||
{"label":"k39", "x":9.5, "y":3},
|
{"x": 5.5, "y": 2},
|
||||||
{"label":"k310", "x":10.5, "y":3},
|
{"x": 6.5, "y": 2},
|
||||||
{"label":"k311", "x":11.5, "y":3, "w":1.5},
|
{"x": 7.5, "y": 2},
|
||||||
{"label":"k312", "x":13, "y":3},
|
{"x": 8.5, "y": 2},
|
||||||
{"label":"k313", "x":14, "y":3},
|
{"x": 9.5, "y": 2},
|
||||||
{"label":"k40", "x":0, "y":4, "w":1.25},
|
{"x": 10.5, "y": 2},
|
||||||
{"label":"k41", "x":1.25, "y":4, "w":1.25},
|
{"x": 11.5, "y": 2},
|
||||||
{"label":"k42", "x":2.5, "y":4},
|
{"x": 12.5, "y": 2, "w": 1.5},
|
||||||
{"label":"k45", "x":3.5, "y":4, "w":6.25},
|
{"x": 14, "y": 2},
|
||||||
{"label":"k49", "x":9.75, "y":4},
|
|
||||||
{"label":"k410", "x":10.75, "y":4, "w":1.25},
|
{"x": 0, "y": 3, "w": 1.5},
|
||||||
{"label":"k411", "x":12, "y":4},
|
{"x": 1.5, "y": 3},
|
||||||
{"label":"k412", "x":13, "y":4},
|
{"x": 2.5, "y": 3},
|
||||||
{"label":"k413", "x":14, "y":4}
|
{"x": 3.5, "y": 3},
|
||||||
]
|
{"x": 4.5, "y": 3},
|
||||||
}
|
{"x": 5.5, "y": 3},
|
||||||
|
{"x": 6.5, "y": 3},
|
||||||
|
{"x": 7.5, "y": 3},
|
||||||
|
{"x": 8.5, "y": 3},
|
||||||
|
{"x": 9.5, "y": 3},
|
||||||
|
{"x": 10.5, "y": 3},
|
||||||
|
{"x": 11.5, "y": 3, "w": 1.5},
|
||||||
|
{"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},
|
||||||
|
{"x": 3.5, "y": 4, "w": 6.25},
|
||||||
|
{"x": 9.75, "y": 4},
|
||||||
|
{"x": 10.75, "y": 4, "w": 1.25},
|
||||||
|
{"x": 12, "y": 4},
|
||||||
|
{"x": 13, "y": 4},
|
||||||
|
{"x": 14, "y": 4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_ortho_2x2u": {
|
||||||
|
"layout": [
|
||||||
|
{"x": 0, "y": 0, "w": 1.5},
|
||||||
|
{"x": 1.5, "y": 0},
|
||||||
|
{"x": 2.5, "y": 0},
|
||||||
|
{"x": 3.5, "y": 0},
|
||||||
|
{"x": 4.5, "y": 0},
|
||||||
|
{"x": 5.5, "y": 0},
|
||||||
|
{"x": 6.5, "y": 0},
|
||||||
|
{"x": 7.5, "y": 0},
|
||||||
|
{"x": 8.5, "y": 0},
|
||||||
|
{"x": 9.5, "y": 0},
|
||||||
|
{"x": 10.5, "y": 0},
|
||||||
|
{"x": 11.5, "y": 0},
|
||||||
|
{"x": 12.5, "y": 0},
|
||||||
|
{"x": 13.5, "y": 0, "w": 1.5},
|
||||||
|
|
||||||
|
{"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.5},
|
||||||
|
{"x": 1.5, "y": 2},
|
||||||
|
{"x": 2.5, "y": 2},
|
||||||
|
{"x": 3.5, "y": 2},
|
||||||
|
{"x": 4.5, "y": 2},
|
||||||
|
{"x": 5.5, "y": 2},
|
||||||
|
{"x": 6.5, "y": 2},
|
||||||
|
{"x": 7.5, "y": 2},
|
||||||
|
{"x": 8.5, "y": 2},
|
||||||
|
{"x": 9.5, "y": 2},
|
||||||
|
{"x": 10.5, "y": 2},
|
||||||
|
{"x": 11.5, "y": 2},
|
||||||
|
{"x": 12.5, "y": 2},
|
||||||
|
{"x": 13.5, "y": 2, "w": 1.5},
|
||||||
|
|
||||||
|
{"x": 0, "y": 3, "w": 1.5},
|
||||||
|
{"x": 1.5, "y": 3},
|
||||||
|
{"x": 2.5, "y": 3},
|
||||||
|
{"x": 3.5, "y": 3},
|
||||||
|
{"x": 4.5, "y": 3},
|
||||||
|
{"x": 5.5, "y": 3},
|
||||||
|
{"x": 6.5, "y": 3},
|
||||||
|
{"x": 7.5, "y": 3},
|
||||||
|
{"x": 8.5, "y": 3},
|
||||||
|
{"x": 9.5, "y": 3},
|
||||||
|
{"x": 10.5, "y": 3},
|
||||||
|
{"x": 11.5, "y": 3},
|
||||||
|
{"x": 12.5, "y": 3},
|
||||||
|
{"x": 13.5, "y": 3, "w": 1.5},
|
||||||
|
|
||||||
|
{"x": 0, "y": 4, "w": 1.5},
|
||||||
|
{"x": 1.5, "y": 4},
|
||||||
|
{"x": 2.5, "y": 4},
|
||||||
|
{"x": 3.5, "y": 4},
|
||||||
|
{"x": 4.5, "y": 4},
|
||||||
|
{"x": 5.5, "y": 4, "w": 2},
|
||||||
|
{"x": 7.5, "y": 4, "w": 2},
|
||||||
|
{"x": 9.5, "y": 4},
|
||||||
|
{"x": 10.5, "y": 4},
|
||||||
|
{"x": 11.5, "y": 4},
|
||||||
|
{"x": 12.5, "y": 4},
|
||||||
|
{"x": 13.5, "y": 4, "w": 1.5}
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -26,21 +26,88 @@
|
|||||||
* The second converts the arguments into a two-dimensional array which
|
* The second converts the arguments into a two-dimensional array which
|
||||||
* represents the switch matrix.
|
* represents the switch matrix.
|
||||||
*/
|
*/
|
||||||
#define LAYOUT_100u( \
|
#define LAYOUT_1u( \
|
||||||
k00 \
|
k00 \
|
||||||
) \
|
) { \
|
||||||
{ \
|
|
||||||
{ k00 } \
|
{ k00 } \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define LAYOUT_125u LAYOUT_100u
|
#define LAYOUT_1u25( \
|
||||||
#define LAYOUT_150u LAYOUT_100u
|
k00 \
|
||||||
#define LAYOUT_175u LAYOUT_100u
|
) { \
|
||||||
#define LAYOUT_200u LAYOUT_100u
|
{ k00 } \
|
||||||
#define LAYOUT_225u LAYOUT_100u
|
}
|
||||||
#define LAYOUT_275u LAYOUT_100u
|
|
||||||
#define LAYOUT_300u LAYOUT_100u
|
#define LAYOUT_1u5( \
|
||||||
#define LAYOUT_600u LAYOUT_100u
|
k00 \
|
||||||
#define LAYOUT_625u LAYOUT_100u
|
) { \
|
||||||
#define LAYOUT_700u LAYOUT_100u
|
{ k00 } \
|
||||||
#define LAYOUT_iso LAYOUT_100u
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_1u75( \
|
||||||
|
k00 \
|
||||||
|
) { \
|
||||||
|
{ k00 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_2u( \
|
||||||
|
k00 \
|
||||||
|
) { \
|
||||||
|
{ k00 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_2u25( \
|
||||||
|
k00 \
|
||||||
|
) { \
|
||||||
|
{ k00 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_2u75( \
|
||||||
|
k00 \
|
||||||
|
) { \
|
||||||
|
{ k00 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_3u( \
|
||||||
|
k00 \
|
||||||
|
) { \
|
||||||
|
{ k00 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_6u( \
|
||||||
|
k00 \
|
||||||
|
) { \
|
||||||
|
{ k00 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_6u25( \
|
||||||
|
k00 \
|
||||||
|
) { \
|
||||||
|
{ k00 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_7u( \
|
||||||
|
k00 \
|
||||||
|
) { \
|
||||||
|
{ k00 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_isoenter( \
|
||||||
|
k00 \
|
||||||
|
) { \
|
||||||
|
{ k00 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
// Backward compatibility TODO: remove these
|
||||||
|
#define LAYOUT_100u LAYOUT_1u
|
||||||
|
#define LAYOUT_125u LAYOUT_1u25
|
||||||
|
#define LAYOUT_150u LAYOUT_1u5
|
||||||
|
#define LAYOUT_175u LAYOUT_1u75
|
||||||
|
#define LAYOUT_200u LAYOUT_2u
|
||||||
|
#define LAYOUT_225u LAYOUT_2u25
|
||||||
|
#define LAYOUT_275u LAYOUT_2u75
|
||||||
|
#define LAYOUT_300u LAYOUT_3u
|
||||||
|
#define LAYOUT_600u LAYOUT_6u
|
||||||
|
#define LAYOUT_625u LAYOUT_6u25
|
||||||
|
#define LAYOUT_700u LAYOUT_7u
|
||||||
|
#define LAYOUT_iso LAYOUT_isoenter
|
||||||
@@ -1,56 +1,69 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "fm2u",
|
"keyboard_name": "Botanical Keyboards FM2U",
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"width": 1,
|
"width": 1,
|
||||||
"height": 1,
|
"height": 1,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT_100u": {
|
"LAYOUT_1u": {
|
||||||
"layout": [{"x":0, "y":0}]
|
"layout": [
|
||||||
|
{"x": 0, "y": 0}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
"LAYOUT_1u25": {
|
||||||
"LAYOUT_125u": {
|
"layout": [
|
||||||
"layout": [{"x":0, "y":0, "w":1.25}]
|
{"x": 0, "y": 0, "w": 1.25}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
"LAYOUT_1u5": {
|
||||||
"LAYOUT_150u": {
|
"layout": [
|
||||||
"layout": [{"x":0, "y":0, "w":1.50}]
|
{"x": 0, "y": 0, "w": 1.50}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
"LAYOUT_1u75": {
|
||||||
"LAYOUT_175u": {
|
"layout": [
|
||||||
"layout": [{"x":0, "y":0, "w":1.75}]
|
{"x": 0, "y": 0, "w": 1.75}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
"LAYOUT_2u": {
|
||||||
"LAYOUT_200u": {
|
"layout": [
|
||||||
"layout": [{"x":0, "y":0, "w":2.00}]
|
{"x": 0, "y": 0, "w": 2}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
"LAYOUT_2u25": {
|
||||||
"LAYOUT_225u": {
|
"layout": [
|
||||||
"layout": [{"x":0, "y":0, "w":2.25}]
|
{"x": 0, "y": 0, "w": 2.25}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
"LAYOUT_2u75": {
|
||||||
"LAYOUT_275u": {
|
"layout": [
|
||||||
"layout": [{"x":0, "y":0, "w":2.75}]
|
{"x": 0, "y": 0, "w": 2.75}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
"LAYOUT_3u": {
|
||||||
"LAYOUT_300u": {
|
"layout": [
|
||||||
"layout": [{"x":0, "y":0, "w":3.00}]
|
{"x": 0, "y": 0, "w": 3}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
"LAYOUT_6u": {
|
||||||
"LAYOUT_600u": {
|
"layout": [
|
||||||
"layout": [{"x":0, "y":0, "w":6.00}]
|
{"x": 0, "y": 0, "w": 6}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
"LAYOUT_6u25": {
|
||||||
"LAYOUT_625u": {
|
"layout": [
|
||||||
"layout": [{"x":0, "y":0, "w":6.25}]
|
{"x": 0, "y": 0, "w": 6.25}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
"LAYOUT_7u": {
|
||||||
"LAYOUT_700u": {
|
"layout": [
|
||||||
"layout": [{"x":0, "y":0, "w":7.00}]
|
{"x": 0, "y": 0, "w": 7}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
"LAYOUT_isoenter": {
|
||||||
"LAYOUT_iso": {
|
"layout": [
|
||||||
"layout": [{"x":0.25, "y":0, "w":1.25, "h":2}]
|
{"x": 0.25, "y": 0, "w": 1.25, "h": 2}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -15,11 +15,9 @@
|
|||||||
*/
|
*/
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
/* Base */
|
/* Base */
|
||||||
[0] = LAYOUT_100u(
|
[0] = LAYOUT_2u(
|
||||||
KC_B
|
KC_B
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -18,20 +18,19 @@
|
|||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
/* Base */
|
/* Base */
|
||||||
[0] = LAYOUT_100u(
|
[0] = LAYOUT_2u(
|
||||||
KC_B
|
KC_B
|
||||||
),
|
),
|
||||||
|
|
||||||
[1] = LAYOUT_100u(
|
[1] = LAYOUT_2u(
|
||||||
KC_TRNS
|
KC_TRNS
|
||||||
),
|
),
|
||||||
|
|
||||||
[2] = LAYOUT_100u(
|
[2] = LAYOUT_2u(
|
||||||
KC_TRNS
|
KC_TRNS
|
||||||
),
|
),
|
||||||
|
|
||||||
[3] = LAYOUT_100u(
|
[3] = LAYOUT_2u(
|
||||||
KC_TRNS
|
KC_TRNS
|
||||||
),
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -2,6 +2,91 @@
|
|||||||
"keyboard_name": "Chimera65",
|
"keyboard_name": "Chimera65",
|
||||||
"url": "https://cannonkeys.com",
|
"url": "https://cannonkeys.com",
|
||||||
"maintainer": "awkannan",
|
"maintainer": "awkannan",
|
||||||
"width": 16,
|
"width": 16.5,
|
||||||
"height": 5
|
"height": 5.25,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_default": {
|
||||||
|
"layout": [
|
||||||
|
{"x": 0, "y": 0},
|
||||||
|
{"x": 1, "y": 0},
|
||||||
|
{"x": 2, "y": 0},
|
||||||
|
{"x": 3, "y": 0},
|
||||||
|
{"x": 4, "y": 0},
|
||||||
|
{"x": 5, "y": 0},
|
||||||
|
{"x": 6, "y": 0},
|
||||||
|
{"x": 7, "y": 0},
|
||||||
|
{"x": 8, "y": 0},
|
||||||
|
{"x": 9, "y": 0},
|
||||||
|
{"x": 10, "y": 0},
|
||||||
|
{"x": 11, "y": 0},
|
||||||
|
{"x": 12, "y": 0},
|
||||||
|
{"x": 13, "y": 0},
|
||||||
|
{"x": 14, "y": 0},
|
||||||
|
|
||||||
|
{"x": 0, "y": 1, "w": 1.5},
|
||||||
|
{"x": 1.5, "y": 1},
|
||||||
|
{"x": 2.5, "y": 1},
|
||||||
|
{"x": 3.5, "y": 1},
|
||||||
|
{"x": 4.5, "y": 1},
|
||||||
|
{"x": 5.5, "y": 1},
|
||||||
|
{"x": 6.5, "y": 1},
|
||||||
|
{"x": 7.5, "y": 1},
|
||||||
|
{"x": 8.5, "y": 1},
|
||||||
|
{"x": 9.5, "y": 1},
|
||||||
|
{"x": 10.5, "y": 1},
|
||||||
|
{"x": 11.5, "y": 1},
|
||||||
|
{"x": 12.5, "y": 1},
|
||||||
|
{"x": 13.5, "y": 1, "w": 1.5},
|
||||||
|
|
||||||
|
{"x": 15.5, "y": 1},
|
||||||
|
|
||||||
|
{"x": 0, "y": 2, "w": 1.75},
|
||||||
|
{"x": 1.75, "y": 2},
|
||||||
|
{"x": 2.75, "y": 2},
|
||||||
|
{"x": 3.75, "y": 2},
|
||||||
|
{"x": 4.75, "y": 2},
|
||||||
|
{"x": 5.75, "y": 2},
|
||||||
|
{"x": 6.75, "y": 2},
|
||||||
|
{"x": 7.75, "y": 2},
|
||||||
|
{"x": 8.75, "y": 2},
|
||||||
|
{"x": 9.75, "y": 2},
|
||||||
|
{"x": 10.75, "y": 2},
|
||||||
|
{"x": 11.75, "y": 2},
|
||||||
|
{"x": 12.75, "y": 2},
|
||||||
|
{"x": 13.75, "y": 2, "w": 1.25},
|
||||||
|
|
||||||
|
{"x": 15.5, "y": 2},
|
||||||
|
|
||||||
|
{"x": 0, "y": 3, "w": 1.25},
|
||||||
|
{"x": 1.25, "y": 3},
|
||||||
|
{"x": 2.25, "y": 3},
|
||||||
|
{"x": 3.25, "y": 3},
|
||||||
|
{"x": 4.25, "y": 3},
|
||||||
|
{"x": 5.25, "y": 3},
|
||||||
|
{"x": 6.25, "y": 3},
|
||||||
|
{"x": 7.25, "y": 3},
|
||||||
|
{"x": 8.25, "y": 3},
|
||||||
|
{"x": 9.25, "y": 3},
|
||||||
|
{"x": 10.25, "y": 3},
|
||||||
|
{"x": 11.25, "y": 3},
|
||||||
|
{"x": 12.25, "y": 3, "w": 1.75},
|
||||||
|
|
||||||
|
{"x": 14.25, "y": 3.25},
|
||||||
|
|
||||||
|
{"x": 15.5, "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.25, "y": 4.25},
|
||||||
|
{"x": 14.25, "y": 4.25},
|
||||||
|
{"x": 15.25, "y": 4.25}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -18,10 +18,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0xFEED
|
#define VENDOR_ID 0xCA04
|
||||||
#define PRODUCT_ID 0x6464
|
#define PRODUCT_ID 0x6060
|
||||||
#define DEVICE_VER 0x0001
|
#define DEVICE_VER 0x0001
|
||||||
#define MANUFACTURER QMK
|
#define MANUFACTURER CannonKeys
|
||||||
#define PRODUCT Practice 60
|
#define PRODUCT Practice 60
|
||||||
#define DESCRIPTION Practice 60
|
#define DESCRIPTION Practice 60
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_60_ansi(
|
||||||
|
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_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,
|
||||||
|
LT(1,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, MT(MOD_RSFT,KC_UP),
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT , KC_SPC, KC_RALT, LT(1,KC_LEFT), LT(2,KC_DOWN), MT(MOD_RCTL,KC_RGHT)
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT_60_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_DEL,
|
||||||
|
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_HOME, KC_END, KC_TRNS,
|
||||||
|
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS,
|
||||||
|
KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_INS, KC_DEL, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MENU, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
[2] = LAYOUT_60_ansi(
|
||||||
|
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,
|
||||||
|
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,
|
||||||
|
KC_TRNS, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_60_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, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -9,4 +9,11 @@ Make example for this keyboard (after setting up your build environment):
|
|||||||
|
|
||||||
make cannonkeys/practice60:default
|
make cannonkeys/practice60:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make cannonkeys/practice60: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).
|
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).
|
||||||
|
|
||||||
|
Build guide available at: https://docs.cannonkeys.com/bluepill-build/
|
||||||
|
Blue Pill flashing guide at: https://docs.cannonkeys.com/flashing/
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/* Copyright 2020 kakunpc
|
||||||
|
*
|
||||||
|
* 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 "choc_taro.h"
|
||||||
@@ -0,0 +1,342 @@
|
|||||||
|
/* Copyright 2020 kakunpc
|
||||||
|
*
|
||||||
|
* 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"
|
||||||
|
|
||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* LAYOUT_all
|
||||||
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||||
|
* │001│002│003│004│005│006│007│008│009│010│011│012│013│014│015│
|
||||||
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
|
||||||
|
* │101 │102│103│104│105│106│107│108│109│110│111│112│113│114 │
|
||||||
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
|
||||||
|
* │201 │202│203│204│205│206│207│208│209│210│211│212│213 │
|
||||||
|
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
|
||||||
|
* │301 │301│302│303│304│305│306│307│308│309│310│311│312 │313│
|
||||||
|
* ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┴───┤
|
||||||
|
* │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│
|
||||||
|
* └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘
|
||||||
|
*/
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \
|
||||||
|
k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \
|
||||||
|
k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \
|
||||||
|
k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \
|
||||||
|
k401, k402, k403, k404, k405, k406, k407, k408 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k009, k109, k209, k309, KC_NO } , \
|
||||||
|
{ k010, k110, k210, k310, KC_NO } , \
|
||||||
|
{ k011, k111, k211, k311, KC_NO } , \
|
||||||
|
{ k012, k112, k212, k312, KC_NO } , \
|
||||||
|
{ k013, k113, k213, k313, KC_NO } , \
|
||||||
|
{ k014, k114, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ k015, KC_NO, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ k001, k101, k201, k301, k401 } , \
|
||||||
|
{ k002, k102, k202, k302, k402 } , \
|
||||||
|
{ k003, k103, k203, k303, k403 } , \
|
||||||
|
{ k004, k104, k204, k304, k404 } , \
|
||||||
|
{ k005, k105, k205, k305, k405 } , \
|
||||||
|
{ k006, k106, k206, k306, k406 } , \
|
||||||
|
{ k007, k107, k207, k307, k407 } , \
|
||||||
|
{ k008, k108, k208, k308, k408 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LAYOUT_ansi
|
||||||
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||||
|
* │001│002│003│004│005│006│007│008│009│010│011│012│013│ 014 │
|
||||||
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||||
|
* │101 │102│103│104│105│106│107│108│109│110│111│112│113│114 │
|
||||||
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
|
||||||
|
* │201 │202│203│204│205│206│207│208│209│210│211│212│213 │
|
||||||
|
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
|
||||||
|
* │301 │301│302│303│304│305│306│307│308│309│310│311│ 312 │
|
||||||
|
* ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───────┤
|
||||||
|
* │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│
|
||||||
|
* └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘
|
||||||
|
*/
|
||||||
|
#define LAYOUT_ansi( \
|
||||||
|
k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \
|
||||||
|
k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \
|
||||||
|
k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \
|
||||||
|
k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \
|
||||||
|
k401, k402, k403, k404, k405, k406, k407, k408 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k009, k109, k209, k309, KC_NO } , \
|
||||||
|
{ k010, k110, k210, k310, KC_NO } , \
|
||||||
|
{ k011, k111, k211, k311, KC_NO } , \
|
||||||
|
{ k012, k112, k212, k312, KC_NO } , \
|
||||||
|
{ k013, k113, k213, KC_NO, KC_NO } , \
|
||||||
|
{ k014, k114, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ k001, k101, k201, k301, k401 } , \
|
||||||
|
{ k002, k102, k202, k302, k402 } , \
|
||||||
|
{ k003, k103, k203, k303, k403 } , \
|
||||||
|
{ k004, k104, k204, k304, k404 } , \
|
||||||
|
{ k005, k105, k205, k305, k405 } , \
|
||||||
|
{ k006, k106, k206, k306, k406 } , \
|
||||||
|
{ k007, k107, k207, k307, k407 } , \
|
||||||
|
{ k008, k108, k208, k308, k408 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LAYOUT_ansi_split_bs
|
||||||
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||||
|
* │001│002│003│004│005│006│007│008│009│010│011│012│013│014│015│
|
||||||
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
|
||||||
|
* │101 │102│103│104│105│106│107│108│109│110│111│112│113│114 │
|
||||||
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
|
||||||
|
* │201 │202│203│204│205│206│207│208│209│210│211│212│213 │
|
||||||
|
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
|
||||||
|
* │301 │301│302│303│304│305│306│307│308│309│310│311│ 312 │
|
||||||
|
* ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───────┤
|
||||||
|
* │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│
|
||||||
|
* └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘
|
||||||
|
*/
|
||||||
|
#define LAYOUT_ansi_split_bs( \
|
||||||
|
k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \
|
||||||
|
k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \
|
||||||
|
k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \
|
||||||
|
k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \
|
||||||
|
k401, k402, k403, k404, k405, k406, k407, k408 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k009, k109, k209, k309, KC_NO } , \
|
||||||
|
{ k010, k110, k210, k310, KC_NO } , \
|
||||||
|
{ k011, k111, k211, k311, KC_NO } , \
|
||||||
|
{ k012, k112, k212, k312, KC_NO } , \
|
||||||
|
{ k013, k113, k213, KC_NO, KC_NO } , \
|
||||||
|
{ k014, k114, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ k015, KC_NO, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ k001, k101, k201, k301, k401 } , \
|
||||||
|
{ k002, k102, k202, k302, k402 } , \
|
||||||
|
{ k003, k103, k203, k303, k403 } , \
|
||||||
|
{ k004, k104, k204, k304, k404 } , \
|
||||||
|
{ k005, k105, k205, k305, k405 } , \
|
||||||
|
{ k006, k106, k206, k306, k406 } , \
|
||||||
|
{ k007, k107, k207, k307, k407 } , \
|
||||||
|
{ k008, k108, k208, k308, k408 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* LAYOUT_ansi_split_rshift
|
||||||
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||||
|
* │001│002│003│004│005│006│007│008│009│010│011│012│013│ 014 │
|
||||||
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||||
|
* │101 │102│103│104│105│106│107│108│109│110│111│112│113│114 │
|
||||||
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
|
||||||
|
* │201 │202│203│204│205│206│207│208│209│210│211│212│213 │
|
||||||
|
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
|
||||||
|
* │301 │301│302│303│304│305│306│307│308│309│310│311│312 │313│
|
||||||
|
* ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┴───┤
|
||||||
|
* │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│
|
||||||
|
* └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘
|
||||||
|
*/
|
||||||
|
#define LAYOUT_ansi_split_rshift( \
|
||||||
|
k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \
|
||||||
|
k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \
|
||||||
|
k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \
|
||||||
|
k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \
|
||||||
|
k401, k402, k403, k404, k405, k406, k407, k408 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k009, k109, k209, k309, KC_NO } , \
|
||||||
|
{ k010, k110, k210, k310, KC_NO } , \
|
||||||
|
{ k011, k111, k211, k311, KC_NO } , \
|
||||||
|
{ k012, k112, k212, k312, KC_NO } , \
|
||||||
|
{ k013, k113, k213, k313, KC_NO } , \
|
||||||
|
{ k014, k114, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ k001, k101, k201, k301, k401 } , \
|
||||||
|
{ k002, k102, k202, k302, k402 } , \
|
||||||
|
{ k003, k103, k203, k303, k403 } , \
|
||||||
|
{ k004, k104, k204, k304, k404 } , \
|
||||||
|
{ k005, k105, k205, k305, k405 } , \
|
||||||
|
{ k006, k106, k206, k306, k406 } , \
|
||||||
|
{ k007, k107, k207, k307, k407 } , \
|
||||||
|
{ k008, k108, k208, k308, k408 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* LAYOUT_iso
|
||||||
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||||
|
* │001│002│003│004│005│006│007│008│009│010│011│012│013│ 014 │
|
||||||
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||||
|
* │101 │102│103│104│105│106│107│108│109│110│111│112│113│ │
|
||||||
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐114 │
|
||||||
|
* │201 │202│203│204│205│206│207│208│209│210│211│212│213│ │
|
||||||
|
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||||
|
* │301 │301│302│303│304│305│306│307│308│309│310│311│ 312 │
|
||||||
|
* ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───────┤
|
||||||
|
* │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│
|
||||||
|
* └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘
|
||||||
|
*/
|
||||||
|
#define LAYOUT_iso( \
|
||||||
|
k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \
|
||||||
|
k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \
|
||||||
|
k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \
|
||||||
|
k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \
|
||||||
|
k401, k402, k403, k404, k405, k406, k407, k408 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k009, k109, k209, k309, KC_NO } , \
|
||||||
|
{ k010, k110, k210, k310, KC_NO } , \
|
||||||
|
{ k011, k111, k211, k311, KC_NO } , \
|
||||||
|
{ k012, k112, k212, k312, KC_NO } , \
|
||||||
|
{ k013, k113, k213, KC_NO, KC_NO } , \
|
||||||
|
{ k014, k114, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ k001, k101, k201, k301, k401 } , \
|
||||||
|
{ k002, k102, k202, k302, k402 } , \
|
||||||
|
{ k003, k103, k203, k303, k403 } , \
|
||||||
|
{ k004, k104, k204, k304, k404 } , \
|
||||||
|
{ k005, k105, k205, k305, k405 } , \
|
||||||
|
{ k006, k106, k206, k306, k406 } , \
|
||||||
|
{ k007, k107, k207, k307, k407 } , \
|
||||||
|
{ k008, k108, k208, k308, k408 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LAYOUT_iso_split_rshift
|
||||||
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||||
|
* │001│002│003│004│005│006│007│008│009│010│011│012│013│ 014 │
|
||||||
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||||
|
* │101 │102│103│104│105│106│107│108│109│110│111│112│113│ │
|
||||||
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐114 │
|
||||||
|
* │201 │202│203│204│205│206│207│208│209│210│211│212│213│ │
|
||||||
|
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
|
||||||
|
* │301 │301│302│303│304│305│306│307│308│309│310│311│312 │313│
|
||||||
|
* ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┴───┤
|
||||||
|
* │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│
|
||||||
|
* └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘
|
||||||
|
*/
|
||||||
|
#define LAYOUT_iso_split_rshift( \
|
||||||
|
k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \
|
||||||
|
k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \
|
||||||
|
k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \
|
||||||
|
k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \
|
||||||
|
k401, k402, k403, k404, k405, k406, k407, k408 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k009, k109, k209, k309, KC_NO } , \
|
||||||
|
{ k010, k110, k210, k310, KC_NO } , \
|
||||||
|
{ k011, k111, k211, k311, KC_NO } , \
|
||||||
|
{ k012, k112, k212, k312, KC_NO } , \
|
||||||
|
{ k013, k113, k213, k313, KC_NO } , \
|
||||||
|
{ k014, k114, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ k001, k101, k201, k301, k401 } , \
|
||||||
|
{ k002, k102, k202, k302, k402 } , \
|
||||||
|
{ k003, k103, k203, k303, k403 } , \
|
||||||
|
{ k004, k104, k204, k304, k404 } , \
|
||||||
|
{ k005, k105, k205, k305, k405 } , \
|
||||||
|
{ k006, k106, k206, k306, k406 } , \
|
||||||
|
{ k007, k107, k207, k307, k407 } , \
|
||||||
|
{ k008, k108, k208, k308, k408 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LAYOUT_iso_split_bs
|
||||||
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||||
|
* │001│002│003│004│005│006│007│008│009│010│011│012│013│014│015│
|
||||||
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
|
||||||
|
* │101 │102│103│104│105│106│107│108│109│110│111│112│113│ │
|
||||||
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐114 │
|
||||||
|
* │201 │202│203│204│205│206│207│208│209│210│211│212│213│ │
|
||||||
|
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||||
|
* │301 │301│302│303│304│305│306│307│308│309│310│311│ 312 │
|
||||||
|
* ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───────┤
|
||||||
|
* │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│
|
||||||
|
* └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘
|
||||||
|
*/
|
||||||
|
#define LAYOUT_iso_split_bs( \
|
||||||
|
k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \
|
||||||
|
k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \
|
||||||
|
k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \
|
||||||
|
k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \
|
||||||
|
k401, k402, k403, k404, k405, k406, k407, k408 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k009, k109, k209, k309, KC_NO } , \
|
||||||
|
{ k010, k110, k210, k310, KC_NO } , \
|
||||||
|
{ k011, k111, k211, k311, KC_NO } , \
|
||||||
|
{ k012, k112, k212, k312, KC_NO } , \
|
||||||
|
{ k013, k113, k213, KC_NO, KC_NO } , \
|
||||||
|
{ k014, k114, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ k015, KC_NO, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ k001, k101, k201, k301, k401 } , \
|
||||||
|
{ k002, k102, k202, k302, k402 } , \
|
||||||
|
{ k003, k103, k203, k303, k403 } , \
|
||||||
|
{ k004, k104, k204, k304, k404 } , \
|
||||||
|
{ k005, k105, k205, k305, k405 } , \
|
||||||
|
{ k006, k106, k206, k306, k406 } , \
|
||||||
|
{ k007, k107, k207, k307, k407 } , \
|
||||||
|
{ k008, k108, k208, k308, k408 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LAYOUT_iso_split_bs_rshift
|
||||||
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||||
|
* │001│002│003│004│005│006│007│008│009│010│011│012│013│014│015│
|
||||||
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
|
||||||
|
* │101 │102│103│104│105│106│107│108│109│110│111│112│113│ │
|
||||||
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐114 │
|
||||||
|
* │201 │202│203│204│205│206│207│208│209│210│211│212│213│ │
|
||||||
|
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
|
||||||
|
* │301 │301│302│303│304│305│306│307│308│309│310│311│312 │313│
|
||||||
|
* ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┴───┤
|
||||||
|
* │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│
|
||||||
|
* └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘
|
||||||
|
*/
|
||||||
|
#define LAYOUT_iso_split_bs_rshift( \
|
||||||
|
k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \
|
||||||
|
k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \
|
||||||
|
k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \
|
||||||
|
k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \
|
||||||
|
k401, k402, k403, k404, k405, k406, k407, k408 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k009, k109, k209, k309, KC_NO } , \
|
||||||
|
{ k010, k110, k210, k310, KC_NO } , \
|
||||||
|
{ k011, k111, k211, k311, KC_NO } , \
|
||||||
|
{ k012, k112, k212, k312, KC_NO } , \
|
||||||
|
{ k013, k113, k213, k313, KC_NO } , \
|
||||||
|
{ k014, k114, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ k015, KC_NO, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
|
||||||
|
{ k001, k101, k201, k301, k401 } , \
|
||||||
|
{ k002, k102, k202, k302, k402 } , \
|
||||||
|
{ k003, k103, k203, k303, k403 } , \
|
||||||
|
{ k004, k104, k204, k304, k404 } , \
|
||||||
|
{ k005, k105, k205, k305, k405 } , \
|
||||||
|
{ k006, k106, k206, k306, k406 } , \
|
||||||
|
{ k007, k107, k207, k307, k407 } , \
|
||||||
|
{ k008, k108, k208, k308, k408 } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,219 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 kakunpc
|
||||||
|
|
||||||
|
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 0xDCED
|
||||||
|
#define PRODUCT_ID 0x71CC
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER kakunpc
|
||||||
|
#define PRODUCT choc_taro
|
||||||
|
#define DESCRIPTION A custom keyboard
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 16
|
||||||
|
#define MATRIX_COLS 5
|
||||||
|
/*
|
||||||
|
* 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 { F4, F5, F6, F7, B1, B3, B2, B6 }
|
||||||
|
#define MATRIX_COL_PINS { D4, C6, D7, E6, B4 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
|
||||||
|
*/
|
||||||
|
#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
|
||||||
|
|
||||||
|
// #define BACKLIGHT_PIN B7
|
||||||
|
// #define BACKLIGHT_BREATHING
|
||||||
|
// #define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
|
// #define RGB_DI_PIN E2
|
||||||
|
// #ifdef RGB_DI_PIN
|
||||||
|
// #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 */
|
||||||
|
// /*== 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
|
||||||
|
// #endif
|
||||||
|
|
||||||
|
/* 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 userful 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
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Magic Key Options
|
||||||
|
*
|
||||||
|
* Magic keys are hotkey commands that allow control over firmware functions of
|
||||||
|
* the keyboard. They are best used in combination with the HID Listen program,
|
||||||
|
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||||
|
*
|
||||||
|
* The options below allow the magic key functionality to be changed. This is
|
||||||
|
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* key combination for magic key command */
|
||||||
|
/* defined by default; to change, uncomment and set to the combination you want */
|
||||||
|
// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
|
||||||
|
|
||||||
|
/* control how magic key switches layers */
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||||
|
|
||||||
|
/* override magic key keymap */
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||||
|
//#define MAGIC_KEY_HELP H
|
||||||
|
//#define MAGIC_KEY_HELP_ALT SLASH
|
||||||
|
//#define MAGIC_KEY_DEBUG D
|
||||||
|
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||||
|
//#define MAGIC_KEY_DEBUG_KBD K
|
||||||
|
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||||
|
//#define MAGIC_KEY_VERSION V
|
||||||
|
//#define MAGIC_KEY_STATUS S
|
||||||
|
//#define MAGIC_KEY_CONSOLE C
|
||||||
|
//#define MAGIC_KEY_LAYER0 0
|
||||||
|
//#define MAGIC_KEY_LAYER0_ALT GRAVE
|
||||||
|
//#define MAGIC_KEY_LAYER1 1
|
||||||
|
//#define MAGIC_KEY_LAYER2 2
|
||||||
|
//#define MAGIC_KEY_LAYER3 3
|
||||||
|
//#define MAGIC_KEY_LAYER4 4
|
||||||
|
//#define MAGIC_KEY_LAYER5 5
|
||||||
|
//#define MAGIC_KEY_LAYER6 6
|
||||||
|
//#define MAGIC_KEY_LAYER7 7
|
||||||
|
//#define MAGIC_KEY_LAYER8 8
|
||||||
|
//#define MAGIC_KEY_LAYER9 9
|
||||||
|
//#define MAGIC_KEY_BOOTLOADER B
|
||||||
|
//#define MAGIC_KEY_BOOTLOADER_ALT ESC
|
||||||
|
//#define MAGIC_KEY_LOCK CAPS
|
||||||
|
//#define MAGIC_KEY_EEPROM E
|
||||||
|
//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
|
||||||
|
//#define MAGIC_KEY_NKRO N
|
||||||
|
//#define MAGIC_KEY_SLEEP_LED Z
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MIDI options
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Prevent use of disabled MIDI features in the keymap */
|
||||||
|
//#define MIDI_ENABLE_STRICT 1
|
||||||
|
|
||||||
|
/* enable basic MIDI features:
|
||||||
|
- MIDI notes can be sent when in Music mode is on
|
||||||
|
*/
|
||||||
|
//#define MIDI_BASIC
|
||||||
|
|
||||||
|
/* enable advanced MIDI features:
|
||||||
|
- MIDI notes can be added to the keymap
|
||||||
|
- Octave shift and transpose
|
||||||
|
- Virtual sustain, portamento, and modulation wheel
|
||||||
|
- etc.
|
||||||
|
*/
|
||||||
|
//#define MIDI_ADVANCED
|
||||||
|
|
||||||
|
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||||
|
//#define MIDI_TONE_KEYCODE_OCTAVES 1
|
||||||
|
|
||||||
|
/* Bootmagic Lite key configuration */
|
||||||
|
// #define BOOTMAGIC_LITE_ROW 0
|
||||||
|
// #define BOOTMAGIC_LITE_COLUMN 0
|
||||||
@@ -0,0 +1,558 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "choc_taro",
|
||||||
|
"url": "https://kakunpc.booth.pm/",
|
||||||
|
"maintainer": "kakunpc",
|
||||||
|
"width": 15,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0},
|
||||||
|
{"x":14, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1, "w":1.5},
|
||||||
|
{"x":1.5, "y":1},
|
||||||
|
{"x":2.5, "y":1},
|
||||||
|
{"x":3.5, "y":1},
|
||||||
|
{"x":4.5, "y":1},
|
||||||
|
{"x":5.5, "y":1},
|
||||||
|
{"x":6.5, "y":1},
|
||||||
|
{"x":7.5, "y":1},
|
||||||
|
{"x":8.5, "y":1},
|
||||||
|
{"x":9.5, "y":1},
|
||||||
|
{"x":10.5, "y":1},
|
||||||
|
{"x":11.5, "y":1},
|
||||||
|
{"x":12.5, "y":1},
|
||||||
|
{"x":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.25},
|
||||||
|
{"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":1.25, "y":4, "w":1.25},
|
||||||
|
{"x":2.5, "y":4, "w":1.25},
|
||||||
|
{"x":3.75, "y":4, "w":2.25},
|
||||||
|
{"x":6, "y":4, "w":1.25},
|
||||||
|
{"x":7.25, "y":4, "w":2.75},
|
||||||
|
{"x":10, "y":4, "w":1.25},
|
||||||
|
{"x":11.25, "y":4, "w":1.25},
|
||||||
|
{"x":12.5, "y":4, "w":1.25}]
|
||||||
|
},
|
||||||
|
"LAYOUT_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.25},
|
||||||
|
{"x":2.25, "y":3},
|
||||||
|
{"x":3.25, "y":3},
|
||||||
|
{"x":4.25, "y":3},
|
||||||
|
{"x":5.25, "y":3},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":7.25, "y":3},
|
||||||
|
{"x":8.25, "y":3},
|
||||||
|
{"x":9.25, "y":3},
|
||||||
|
{"x":10.25, "y":3},
|
||||||
|
{"x":11.25, "y":3},
|
||||||
|
{"x":12.25, "y":3, "w":2.75},
|
||||||
|
|
||||||
|
{"x":1.25, "y":4, "w":1.25},
|
||||||
|
{"x":2.5, "y":4, "w":1.25},
|
||||||
|
{"x":3.75, "y":4, "w":2.25},
|
||||||
|
{"x":6, "y":4, "w":1.25},
|
||||||
|
{"x":7.25, "y":4, "w":2.75},
|
||||||
|
{"x":10, "y":4, "w":1.25},
|
||||||
|
{"x":11.25, "y":4, "w":1.25},
|
||||||
|
{"x":12.5, "y":4, "w":1.25}]
|
||||||
|
},
|
||||||
|
"LAYOUT_ansi_split_bs": {
|
||||||
|
"layout": [{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0},
|
||||||
|
{"x":14, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1, "w":1.5},
|
||||||
|
{"x":1.5, "y":1},
|
||||||
|
{"x":2.5, "y":1},
|
||||||
|
{"x":3.5, "y":1},
|
||||||
|
{"x":4.5, "y":1},
|
||||||
|
{"x":5.5, "y":1},
|
||||||
|
{"x":6.5, "y":1},
|
||||||
|
{"x":7.5, "y":1},
|
||||||
|
{"x":8.5, "y":1},
|
||||||
|
{"x":9.5, "y":1},
|
||||||
|
{"x":10.5, "y":1},
|
||||||
|
{"x":11.5, "y":1},
|
||||||
|
{"x":12.5, "y":1},
|
||||||
|
{"x":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.25},
|
||||||
|
{"x":2.25, "y":3},
|
||||||
|
{"x":3.25, "y":3},
|
||||||
|
{"x":4.25, "y":3},
|
||||||
|
{"x":5.25, "y":3},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":7.25, "y":3},
|
||||||
|
{"x":8.25, "y":3},
|
||||||
|
{"x":9.25, "y":3},
|
||||||
|
{"x":10.25, "y":3},
|
||||||
|
{"x":11.25, "y":3},
|
||||||
|
{"x":12.25, "y":3, "w":2.75},
|
||||||
|
|
||||||
|
{"x":1.25, "y":4, "w":1.25},
|
||||||
|
{"x":2.5, "y":4, "w":1.25},
|
||||||
|
{"x":3.75, "y":4, "w":2.25},
|
||||||
|
{"x":6, "y":4, "w":1.25},
|
||||||
|
{"x":7.25, "y":4, "w":2.75},
|
||||||
|
{"x":10, "y":4, "w":1.25},
|
||||||
|
{"x":11.25, "y":4, "w":1.25},
|
||||||
|
{"x":12.5, "y":4, "w":1.25}]
|
||||||
|
},
|
||||||
|
"LAYOUT_ansi_split_rshift": {
|
||||||
|
"layout": [{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0, "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.25},
|
||||||
|
{"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":1.25, "y":4, "w":1.25},
|
||||||
|
{"x":2.5, "y":4, "w":1.25},
|
||||||
|
{"x":3.75, "y":4, "w":2.25},
|
||||||
|
{"x":6, "y":4, "w":1.25},
|
||||||
|
{"x":7.25, "y":4, "w":2.75},
|
||||||
|
{"x":10, "y":4, "w":1.25},
|
||||||
|
{"x":11.25, "y":4, "w":1.25},
|
||||||
|
{"x":12.5, "y":4, "w":1.25}]
|
||||||
|
},
|
||||||
|
"LAYOUT_iso": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0, "w":2},
|
||||||
|
|
||||||
|
{"x":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.75, "y":1, "w":1.25, "h":2},
|
||||||
|
|
||||||
|
{"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":0, "y":3, "w":2.25},
|
||||||
|
{"x":2.25, "y":3},
|
||||||
|
{"x":3.25, "y":3},
|
||||||
|
{"x":4.25, "y":3},
|
||||||
|
{"x":5.25, "y":3},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":7.25, "y":3},
|
||||||
|
{"x":8.25, "y":3},
|
||||||
|
{"x":9.25, "y":3},
|
||||||
|
{"x":10.25, "y":3},
|
||||||
|
{"x":11.25, "y":3},
|
||||||
|
{"x":12.25, "y":3, "w":2.75},
|
||||||
|
|
||||||
|
{"x":1.25, "y":4, "w":1.25},
|
||||||
|
{"x":2.5, "y":4, "w":1.25},
|
||||||
|
{"x":3.75, "y":4, "w":2.25},
|
||||||
|
{"x":6, "y":4, "w":1.25},
|
||||||
|
{"x":7.25, "y":4, "w":2.75},
|
||||||
|
{"x":10, "y":4, "w":1.25},
|
||||||
|
{"x":11.25, "y":4, "w":1.25},
|
||||||
|
{"x":12.5, "y":4, "w":1.25}]
|
||||||
|
},
|
||||||
|
"LAYOUT_iso_split_rshift": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0, "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.75, "y":1, "w":1.25, "h":2},
|
||||||
|
|
||||||
|
{"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":0, "y":3, "w":2.25},
|
||||||
|
{"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":1.25, "y":4, "w":1.25},
|
||||||
|
{"x":2.5, "y":4, "w":1.25},
|
||||||
|
{"x":3.75, "y":4, "w":2.25},
|
||||||
|
{"x":6, "y":4, "w":1.25},
|
||||||
|
{"x":7.25, "y":4, "w":2.75},
|
||||||
|
{"x":10, "y":4, "w":1.25},
|
||||||
|
{"x":11.25, "y":4, "w":1.25},
|
||||||
|
{"x":12.5, "y":4, "w":1.25}]
|
||||||
|
},
|
||||||
|
"LAYOUT_iso_split_bs": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0},
|
||||||
|
{"x":14, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1, "w":1.5},
|
||||||
|
{"x":1.5, "y":1},
|
||||||
|
{"x":2.5, "y":1},
|
||||||
|
{"x":3.5, "y":1},
|
||||||
|
{"x":4.5, "y":1},
|
||||||
|
{"x":5.5, "y":1},
|
||||||
|
{"x":6.5, "y":1},
|
||||||
|
{"x":7.5, "y":1},
|
||||||
|
{"x":8.5, "y":1},
|
||||||
|
{"x":9.5, "y":1},
|
||||||
|
{"x":10.5, "y":1},
|
||||||
|
{"x":11.5, "y":1},
|
||||||
|
{"x":12.5, "y":1},
|
||||||
|
{"x":13.75, "y":1, "w":1.25, "h":2},
|
||||||
|
|
||||||
|
{"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":0, "y":3, "w":2.25},
|
||||||
|
{"x":2.25, "y":3},
|
||||||
|
{"x":3.25, "y":3},
|
||||||
|
{"x":4.25, "y":3},
|
||||||
|
{"x":5.25, "y":3},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":7.25, "y":3},
|
||||||
|
{"x":8.25, "y":3},
|
||||||
|
{"x":9.25, "y":3},
|
||||||
|
{"x":10.25, "y":3},
|
||||||
|
{"x":11.25, "y":3},
|
||||||
|
{"x":12.25, "y":3, "w":2.75},
|
||||||
|
|
||||||
|
{"x":1.25, "y":4, "w":1.25},
|
||||||
|
{"x":2.5, "y":4, "w":1.25},
|
||||||
|
{"x":3.75, "y":4, "w":2.25},
|
||||||
|
{"x":6, "y":4, "w":1.25},
|
||||||
|
{"x":7.25, "y":4, "w":2.75},
|
||||||
|
{"x":10, "y":4, "w":1.25},
|
||||||
|
{"x":11.25, "y":4, "w":1.25},
|
||||||
|
{"x":12.5, "y":4, "w":1.25}]
|
||||||
|
},
|
||||||
|
"LAYOUT_iso_split_bs_rshift": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0},
|
||||||
|
{"x":14, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1, "w":1.5},
|
||||||
|
{"x":1.5, "y":1},
|
||||||
|
{"x":2.5, "y":1},
|
||||||
|
{"x":3.5, "y":1},
|
||||||
|
{"x":4.5, "y":1},
|
||||||
|
{"x":5.5, "y":1},
|
||||||
|
{"x":6.5, "y":1},
|
||||||
|
{"x":7.5, "y":1},
|
||||||
|
{"x":8.5, "y":1},
|
||||||
|
{"x":9.5, "y":1},
|
||||||
|
{"x":10.5, "y":1},
|
||||||
|
{"x":11.5, "y":1},
|
||||||
|
{"x":12.5, "y":1},
|
||||||
|
{"x":13.75, "y":1, "w":1.25, "h":2},
|
||||||
|
|
||||||
|
{"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":0, "y":3, "w":2.25},
|
||||||
|
{"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":1.25, "y":4, "w":1.25},
|
||||||
|
{"x":2.5, "y":4, "w":1.25},
|
||||||
|
{"x":3.75, "y":4, "w":2.25},
|
||||||
|
{"x":6, "y":4, "w":1.25},
|
||||||
|
{"x":7.25, "y":4, "w":2.75},
|
||||||
|
{"x":10, "y":4, "w":1.25},
|
||||||
|
{"x":11.25, "y":4, "w":1.25},
|
||||||
|
{"x":12.5, "y":4, "w":1.25}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
/* Copyright 2020 kakunpc
|
||||||
|
*
|
||||||
|
* 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( /* Base */
|
||||||
|
KC_ESC, 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_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_LCAP, 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_DEL,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# The default keymap for choc_taro
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
/* Copyright 2020 kakunpc
|
||||||
|
*
|
||||||
|
* 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( /* Base */
|
||||||
|
KC_ESC, 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_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_LCAP, 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_DEL,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
|
||||||
|
),
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[2] = LAYOUT_all(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[3] = LAYOUT_all(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# The default keymap for choc_taro
|
||||||
|
|
||||||
|
This is an experimental. Use at your own risk.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -0,0 +1,156 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2012-2018 Jun Wako, Jack Humbert, Yiancar
|
||||||
|
|
||||||
|
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 <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include "matrix.h"
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#if (MATRIX_COLS <= 8)
|
||||||
|
# define ROW_SHIFTER ((uint8_t)1)
|
||||||
|
#elif (MATRIX_COLS <= 16)
|
||||||
|
# define ROW_SHIFTER ((uint16_t)1)
|
||||||
|
#elif (MATRIX_COLS <= 32)
|
||||||
|
# define ROW_SHIFTER ((uint32_t)1)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
|
||||||
|
static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
|
||||||
|
|
||||||
|
static void select_row(uint8_t row) {
|
||||||
|
setPinOutput(row_pins[row]);
|
||||||
|
writePinLow(row_pins[row]);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void unselect_row(uint8_t row) {
|
||||||
|
setPinInputHigh(row_pins[row]);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void unselect_rows(void) {
|
||||||
|
for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
|
||||||
|
setPinInputHigh(row_pins[x]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void select_col(uint8_t col) {
|
||||||
|
setPinOutput(col_pins[col]);
|
||||||
|
writePinLow(col_pins[col]);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void unselect_col(uint8_t col) {
|
||||||
|
setPinInputHigh(col_pins[col]);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void unselect_cols(void) {
|
||||||
|
for (uint8_t x = 0; x < MATRIX_COLS; x++) {
|
||||||
|
setPinInputHigh(col_pins[x]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void init_pins(void) {
|
||||||
|
unselect_rows();
|
||||||
|
unselect_cols();
|
||||||
|
|
||||||
|
for (uint8_t x = 0; x < MATRIX_COLS; x++) {
|
||||||
|
setPinInputHigh(col_pins[x]);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
|
||||||
|
setPinInputHigh(row_pins[x]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) {
|
||||||
|
// Store last value of row prior to reading
|
||||||
|
matrix_row_t last_row_value = current_matrix[current_row];
|
||||||
|
|
||||||
|
// Clear data in matrix row
|
||||||
|
current_matrix[current_row] = 0;
|
||||||
|
|
||||||
|
// Select row and wait for row selecton to stabilize
|
||||||
|
select_row(current_row);
|
||||||
|
matrix_io_delay();
|
||||||
|
|
||||||
|
// For each col...
|
||||||
|
for(uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) {
|
||||||
|
|
||||||
|
// Select the col pin to read (active low)
|
||||||
|
uint8_t pin_state = readPin(col_pins[col_index]);
|
||||||
|
|
||||||
|
// Populate the matrix row with the state of the col pin
|
||||||
|
current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unselect row
|
||||||
|
unselect_row(current_row);
|
||||||
|
|
||||||
|
return (last_row_value != current_matrix[current_row]);
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) {
|
||||||
|
bool matrix_changed = false;
|
||||||
|
|
||||||
|
// Select col and wait for col selecton to stabilize
|
||||||
|
select_col(current_col);
|
||||||
|
matrix_io_delay();
|
||||||
|
|
||||||
|
// For each row...
|
||||||
|
for(uint8_t row_index = 0; row_index < MATRIX_ROWS / 2; row_index++) {
|
||||||
|
uint8_t tmp = row_index + MATRIX_ROWS / 2;
|
||||||
|
// Store last value of row prior to reading
|
||||||
|
matrix_row_t last_row_value = current_matrix[tmp];
|
||||||
|
|
||||||
|
// Check row pin state
|
||||||
|
if (readPin(row_pins[row_index]) == 0) {
|
||||||
|
// Pin LO, set col bit
|
||||||
|
current_matrix[tmp] |= (ROW_SHIFTER << current_col);
|
||||||
|
} else {
|
||||||
|
// Pin HI, clear col bit
|
||||||
|
current_matrix[tmp] &= ~(ROW_SHIFTER << current_col);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Determine if the matrix changed state
|
||||||
|
if ((last_row_value != current_matrix[tmp]) && !(matrix_changed)) {
|
||||||
|
matrix_changed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unselect col
|
||||||
|
unselect_col(current_col);
|
||||||
|
|
||||||
|
return matrix_changed;
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_init_custom(void) {
|
||||||
|
// initialize key pins
|
||||||
|
init_pins();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
|
||||||
|
bool changed = false;
|
||||||
|
|
||||||
|
// Set row, read cols
|
||||||
|
for (uint8_t current_row = 0; current_row < MATRIX_ROWS / 2; current_row++) {
|
||||||
|
changed |= read_cols_on_row(current_matrix, current_row);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set col, read rows
|
||||||
|
for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) {
|
||||||
|
changed |= read_rows_on_col(current_matrix, current_col);
|
||||||
|
}
|
||||||
|
|
||||||
|
return changed;
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# choc_taro
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
gh60 compatible choc keyboard
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [kakunpc](https://github.com/kakunpc)
|
||||||
|
* Hardware Supported: choc taro pcb
|
||||||
|
* Hardware Availability: booth([@kakunpc](https://kakunpc.booth.pm/))
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make choc_taro: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).
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
# Teensy halfkay
|
||||||
|
# Pro Micro caterina
|
||||||
|
# Atmel DFU atmel-dfu
|
||||||
|
# LUFA DFU lufa-dfu
|
||||||
|
# QMK DFU qmk-dfu
|
||||||
|
# ATmega32A bootloadHID
|
||||||
|
# ATmega328P USBasp
|
||||||
|
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 = yes # Console for debug
|
||||||
|
COMMAND_ENABLE = yes # 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
|
||||||
|
MIDI_ENABLE = no # MIDI support
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||||
|
|
||||||
|
CUSTOM_MATRIX = lite
|
||||||
|
SRC += matrix.c
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 AAClawson (AlisGraveNil)
|
||||||
|
|
||||||
|
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 0x7767
|
||||||
|
#define PRODUCT_ID 0x7E94
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER AlisGraveNil
|
||||||
|
#define PRODUCT The Coupe
|
||||||
|
#define DESCRIPTION A 61-key/60% QMK-powered custom keyboard
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 10
|
||||||
|
#define MATRIX_COLS 7
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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 { D7, D2, C6, B5, D4, B4, D0, D3, D1, E6 }
|
||||||
|
#define MATRIX_COL_PINS { F4, F5, F6, F7, B6, B3, B2 }
|
||||||
|
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
/* Copyright 2020 AAClawson (AlisGraveNil)
|
||||||
|
*
|
||||||
|
* 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 "coupe.h"
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
/* Copyright 2020 AAClawson (AlisGraveNil)
|
||||||
|
*
|
||||||
|
* 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_60_ansi( \
|
||||||
|
K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, \
|
||||||
|
K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, \
|
||||||
|
K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K56, \
|
||||||
|
K60, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K76, \
|
||||||
|
K80, K90, K81, K83, K85, K95, K86, K96 \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06 }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16 }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26 }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36 }, \
|
||||||
|
{ K40, K41, K42, K43, K44, K45, KC_NO }, \
|
||||||
|
{ K50, K51, K52, K53, K54, K55, K56 }, \
|
||||||
|
{ K60, K61, K62, K63, K64, K65, KC_NO }, \
|
||||||
|
{ KC_NO, K71, K72, K73, K74, K75, K76 }, \
|
||||||
|
{ K80, K81, KC_NO, K83, KC_NO, K85, K86 }, \
|
||||||
|
{ K90, KC_NO, KC_NO, KC_NO, KC_NO, K95, K96 }, \
|
||||||
|
}
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Coupe",
|
||||||
|
"url": "www.clawboards.xyz",
|
||||||
|
"maintainer": "AAClawson (AlisGraveNil)",
|
||||||
|
"width": 15,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_60_ansi": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"K00 (D7,F4)", "x":0, "y":0},
|
||||||
|
{"label":"K10 (D2,F4)", "x":1, "y":0},
|
||||||
|
{"label":"K01 (D7,F5)", "x":2, "y":0},
|
||||||
|
{"label":"K11 (D2,F5)", "x":3, "y":0},
|
||||||
|
{"label":"K02 (D7,F6)", "x":4, "y":0},
|
||||||
|
{"label":"K12 (D2,F6)", "x":5, "y":0},
|
||||||
|
{"label":"K03 (D7,F7)", "x":6, "y":0},
|
||||||
|
{"label":"K13 (D2,F7)", "x":7, "y":0},
|
||||||
|
{"label":"K04 (D7,B6)", "x":8, "y":0},
|
||||||
|
{"label":"K14 (D2,B6)", "x":9, "y":0},
|
||||||
|
{"label":"K05 (D7,B3)", "x":10, "y":0},
|
||||||
|
{"label":"K15 (D2,B3)", "x":11, "y":0},
|
||||||
|
{"label":"K06 (D7,B2)", "x":12, "y":0},
|
||||||
|
{"label":"K16 (D2,B2)", "x":13, "y":0, "w":2},
|
||||||
|
{"label":"K20 (C6,F4)", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"K30 (B5,F4)", "x":1.5, "y":1},
|
||||||
|
{"label":"K21 (C6,F5)", "x":2.5, "y":1},
|
||||||
|
{"label":"K31 (B5,F5)", "x":3.5, "y":1},
|
||||||
|
{"label":"K22 (C6,F6)", "x":4.5, "y":1},
|
||||||
|
{"label":"K32 (B5,F6)", "x":5.5, "y":1},
|
||||||
|
{"label":"K23 (C6,F7)", "x":6.5, "y":1},
|
||||||
|
{"label":"K33 (B5,F7)", "x":7.5, "y":1},
|
||||||
|
{"label":"K24 (C6,B6)", "x":8.5, "y":1},
|
||||||
|
{"label":"K34 (B5,B6)", "x":9.5, "y":1},
|
||||||
|
{"label":"K25 (C6,B3)", "x":10.5, "y":1},
|
||||||
|
{"label":"K35 (B5,B3)", "x":11.5, "y":1},
|
||||||
|
{"label":"K26 (C6,B2)", "x":12.5, "y":1},
|
||||||
|
{"label":"K36 (B5,B2)", "x":13.5, "y":1, "w":1.5},
|
||||||
|
{"label":"K40 (D4,F4)", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"K50 (B4,F4)", "x":1.75, "y":2},
|
||||||
|
{"label":"K41 (D4,F5)", "x":2.75, "y":2},
|
||||||
|
{"label":"K51 (B4,F5)", "x":3.75, "y":2},
|
||||||
|
{"label":"K42 (D4,F6)", "x":4.75, "y":2},
|
||||||
|
{"label":"K52 (B4,F6)", "x":5.75, "y":2},
|
||||||
|
{"label":"K43 (D4,F7)", "x":6.75, "y":2},
|
||||||
|
{"label":"K53 (B4,F7)", "x":7.75, "y":2},
|
||||||
|
{"label":"K44 (D4,B6)", "x":8.75, "y":2},
|
||||||
|
{"label":"K54 (B4,B6)", "x":9.75, "y":2},
|
||||||
|
{"label":"K45 (D4,B3)", "x":10.75, "y":2},
|
||||||
|
{"label":"K55 (B4,B3)", "x":11.75, "y":2},
|
||||||
|
{"label":"K56 (B4,B2)", "x":12.75, "y":2, "w":2.25},
|
||||||
|
{"label":"K60 (D0,F4)", "x":0, "y":3, "w":2.25},
|
||||||
|
{"label":"K61 (D0,F5)", "x":2.25, "y":3},
|
||||||
|
{"label":"K71 (D3,F5)", "x":3.25, "y":3},
|
||||||
|
{"label":"K62 (D0,F6)", "x":4.25, "y":3},
|
||||||
|
{"label":"K72 (D3,F6)", "x":5.25, "y":3},
|
||||||
|
{"label":"K63 (D0,F7)", "x":6.25, "y":3},
|
||||||
|
{"label":"K73 (D3,F7)", "x":7.25, "y":3},
|
||||||
|
{"label":"K64 (D0,B6)", "x":8.25, "y":3},
|
||||||
|
{"label":"K74 (D3,B6)", "x":9.25, "y":3},
|
||||||
|
{"label":"K65 (D0,B3)", "x":10.25, "y":3},
|
||||||
|
{"label":"K75 (D3,B3)", "x":11.25, "y":3},
|
||||||
|
{"label":"K76 (D3,B2)", "x":12.25, "y":3, "w":2.75},
|
||||||
|
{"label":"K80 (D1,F4)", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"K90 (E6,F4)", "x":1.25, "y":4, "w":1.25},
|
||||||
|
{"label":"K81 (D1,F5)", "x":2.5, "y":4, "w":1.25},
|
||||||
|
{"label":"K83 (D1,F7)", "x":3.75, "y":4, "w":6.25},
|
||||||
|
{"label":"K85 (D1,B3)", "x":10, "y":4, "w":1.25},
|
||||||
|
{"label":"K95 (E6,B3)", "x":11.25, "y":4, "w":1.25},
|
||||||
|
{"label":"K86 (D1,B2)", "x":12.5, "y":4, "w":1.25},
|
||||||
|
{"label":"K96 (E6,B2)", "x":13.75, "y":4, "w":1.25}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
/* Copyright 2020 AAClawson (AlisGraveNil)
|
||||||
|
*
|
||||||
|
* 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 FNM LT(1, KC_APP) // MO(1) when held, KC_APP when tapped
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/*
|
||||||
|
*-----------------------------------------------------------------------
|
||||||
|
*|ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | DEL|
|
||||||
|
*-----------------------------------------------------------------------
|
||||||
|
*|TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
||||||
|
*-----------------------------------------------------------------------
|
||||||
|
*|CAPS | A | S | D | F | G | H | J | K | L | ; | " | ENTER |
|
||||||
|
*-----------------------------------------------------------------------
|
||||||
|
*| SHIFT | Z | X | C | V | B | N | M | , | . | ? | SHIFT |
|
||||||
|
*-----------------------------------------------------------------------
|
||||||
|
*|CTRL|GUI |ALT | SPACE |ALT |GUI | FNM |CTRL|
|
||||||
|
*-----------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
[0] = LAYOUT_60_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_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_LSFT,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, FNM, KC_LCTL
|
||||||
|
),
|
||||||
|
|
||||||
|
/*
|
||||||
|
*-------------------------------------------------------------
|
||||||
|
*| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | DEL |
|
||||||
|
*-------------------------------------------------------------
|
||||||
|
*| | | ^ | | | | | | | | |PSC|SLK|PAUSE|
|
||||||
|
*-------------------------------------------------------------
|
||||||
|
*| | < | v | > | | |HOM|PGU| | | | | |
|
||||||
|
*-------------------------------------------------------------
|
||||||
|
*| | | | | | |END|PGD| | | |
|
||||||
|
*-------------------------------------------------------------
|
||||||
|
*|RST | | | | | | | |
|
||||||
|
*-------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
[1] = LAYOUT_60_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_UP, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______,
|
||||||
|
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, _______, _______, _______, _______,
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# Coupe
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
This is a 5x14 keyboard in a 60% layout.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [AAClawson](http://github.com/AlisGraveNil)
|
||||||
|
* Hardware Supported: The Coupe, Pro Micro, Elite-C
|
||||||
|
* Hardware Availability: www.clawboards.xyz
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make clawsome/coupe: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).
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# 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 = yes # 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
|
||||||
|
MIDI_ENABLE = no # MIDI support
|
||||||
|
UNICODE_ENABLE = no # Unicode
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
AUDIO_ENABLE = no # Audio output on port C6
|
||||||
|
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||||
|
|
||||||
|
LAYOUTS = 60_ansi
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 AAClawson (AlisGraveNil)
|
||||||
|
|
||||||
|
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 0x7767
|
||||||
|
#define PRODUCT_ID 0x8C78
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER AlisGraveNil
|
||||||
|
#define PRODUCT The Sedan
|
||||||
|
#define DESCRIPTION A QMK-powered 68% custom keyboard
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 15
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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, B1, B2, B3, B4 }
|
||||||
|
#define MATRIX_COL_PINS { B5, B6, B7, C0, C1, C2, C3, C4, C5, C6, C7, D0, D1, D2, D3 }
|
||||||
|
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "sedan",
|
||||||
|
"url": "www.clawboards.xyz",
|
||||||
|
"maintainer": "AAClawson (AlisGraveNil)",
|
||||||
|
"width": 16,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_65_ansi": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"K00 (B0,B5)", "x":0, "y":0},
|
||||||
|
{"label":"K01 (B0,B6)", "x":1, "y":0},
|
||||||
|
{"label":"K02 (B0,B7)", "x":2, "y":0},
|
||||||
|
{"label":"K03 (B0,C0)", "x":3, "y":0},
|
||||||
|
{"label":"K04 (B0,C1)", "x":4, "y":0},
|
||||||
|
{"label":"K05 (B0,C2)", "x":5, "y":0},
|
||||||
|
{"label":"K06 (B0,C3)", "x":6, "y":0},
|
||||||
|
{"label":"K07 (B0,C4)", "x":7, "y":0},
|
||||||
|
{"label":"K08 (B0,C5)", "x":8, "y":0},
|
||||||
|
{"label":"K09 (B0,C6)", "x":9, "y":0},
|
||||||
|
{"label":"K0A (B0,C7)", "x":10, "y":0},
|
||||||
|
{"label":"K0B (B0,D0)", "x":11, "y":0},
|
||||||
|
{"label":"K0C (B0,D1)", "x":12, "y":0},
|
||||||
|
{"label":"K0D (B0,D2)", "x":13, "y":0, "w":2},
|
||||||
|
{"label":"K0E (B0,D3)", "x":15, "y":0},
|
||||||
|
{"label":"K10 (B1,B5)", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"K11 (B1,B6)", "x":1.5, "y":1},
|
||||||
|
{"label":"K12 (B1,B7)", "x":2.5, "y":1},
|
||||||
|
{"label":"K13 (B1,C0)", "x":3.5, "y":1},
|
||||||
|
{"label":"K14 (B1,C1)", "x":4.5, "y":1},
|
||||||
|
{"label":"K15 (B1,C2)", "x":5.5, "y":1},
|
||||||
|
{"label":"K16 (B1,C3)", "x":6.5, "y":1},
|
||||||
|
{"label":"K17 (B1,C4)", "x":7.5, "y":1},
|
||||||
|
{"label":"K18 (B1,C5)", "x":8.5, "y":1},
|
||||||
|
{"label":"K19 (B1,C6)", "x":9.5, "y":1},
|
||||||
|
{"label":"K1A (B1,C7)", "x":10.5, "y":1},
|
||||||
|
{"label":"K1B (B1,D0)", "x":11.5, "y":1},
|
||||||
|
{"label":"K1C (B1,D1)", "x":12.5, "y":1},
|
||||||
|
{"label":"K1D (B1,D2)", "x":13.5, "y":1, "w":1.5},
|
||||||
|
{"label":"K1E (B1,D3)", "x":15, "y":1},
|
||||||
|
{"label":"K20 (B2,B5)", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"K21 (B2,B6)", "x":1.75, "y":2},
|
||||||
|
{"label":"K22 (B2,B7)", "x":2.75, "y":2},
|
||||||
|
{"label":"K23 (B2,C0)", "x":3.75, "y":2},
|
||||||
|
{"label":"K24 (B2,C1)", "x":4.75, "y":2},
|
||||||
|
{"label":"K25 (B2,C2)", "x":5.75, "y":2},
|
||||||
|
{"label":"K26 (B2,C3)", "x":6.75, "y":2},
|
||||||
|
{"label":"K27 (B2,C4)", "x":7.75, "y":2},
|
||||||
|
{"label":"K28 (B2,C5)", "x":8.75, "y":2},
|
||||||
|
{"label":"K29 (B2,C6)", "x":9.75, "y":2},
|
||||||
|
{"label":"K2A (B2,C7)", "x":10.75, "y":2},
|
||||||
|
{"label":"K2B (B2,D0)", "x":11.75, "y":2},
|
||||||
|
{"label":"K2D (B2,D2)", "x":12.75, "y":2, "w":2.25},
|
||||||
|
{"label":"K2E (B2,D3)", "x":15, "y":2},
|
||||||
|
{"label":"K30 (B3,B5)", "x":0, "y":3, "w":2.25},
|
||||||
|
{"label":"K31 (B3,B6)", "x":2.25, "y":3},
|
||||||
|
{"label":"K32 (B3,B7)", "x":3.25, "y":3},
|
||||||
|
{"label":"K33 (B3,C0)", "x":4.25, "y":3},
|
||||||
|
{"label":"K34 (B3,C1)", "x":5.25, "y":3},
|
||||||
|
{"label":"K35 (B3,C2)", "x":6.25, "y":3},
|
||||||
|
{"label":"K36 (B3,C3)", "x":7.25, "y":3},
|
||||||
|
{"label":"K37 (B3,C4)", "x":8.25, "y":3},
|
||||||
|
{"label":"K38 (B3,C5)", "x":9.25, "y":3},
|
||||||
|
{"label":"K39 (B3,C6)", "x":10.25, "y":3},
|
||||||
|
{"label":"K3A (B3,C7)", "x":11.25, "y":3},
|
||||||
|
{"label":"K3B (B3,D0)", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"K3D (B3,D2)", "x":14, "y":3},
|
||||||
|
{"label":"K3E (B3,D3)", "x":15, "y":3},
|
||||||
|
{"label":"K40 (B4,B5)", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"K41 (B4,B6)", "x":1.25, "y":4, "w":1.25},
|
||||||
|
{"label":"K42 (B4,B7)", "x":2.5, "y":4, "w":1.25},
|
||||||
|
{"label":"K45 (B4,C2)", "x":3.75, "y":4, "w":6.25},
|
||||||
|
{"label":"K49 (B4,C6)", "x":10, "y":4},
|
||||||
|
{"label":"K4A (B4,C7)", "x":11, "y":4},
|
||||||
|
{"label":"K4B (B4,D0)", "x":12, "y":4},
|
||||||
|
{"label":"K4C (B4,D1)", "x":13, "y":4},
|
||||||
|
{"label":"K4D (B4,D2)", "x":14, "y":4},
|
||||||
|
{"label":"K4E (B4,D3)", "x":15, "y":4}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
/* Copyright 2020 AAClawson (AlisGraveNil)
|
||||||
|
*
|
||||||
|
* 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] = {
|
||||||
|
/*
|
||||||
|
*---------------------------------------------------------------------------------
|
||||||
|
*|ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |BSPC |HOME|
|
||||||
|
*---------------------------------------------------------------------------------
|
||||||
|
*| TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |END |
|
||||||
|
*---------------------------------------------------------------------------------
|
||||||
|
*| CAPS | A | S | D | F | G | H | J | K | L | ; | " | ENTER |PGUP|
|
||||||
|
*---------------------------------------------------------------------------------
|
||||||
|
*| SHIFT | Z | X | C | V | B | N | M | , | . | ? | SHIFT | ^ |PGDN|
|
||||||
|
*---------------------------------------------------------------------------------
|
||||||
|
*|CTRL|GUI |ALT | SPACE |ALT | FN |CTRL| < | v | > |
|
||||||
|
*---------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
[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_HOME,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
/*
|
||||||
|
*---------------------------------------------------------------------------------
|
||||||
|
*| ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 |F10 |F11 |F12 |DEL | |
|
||||||
|
*---------------------------------------------------------------------------------
|
||||||
|
*| | | | | | | | | | | |PSCR|SLCK| PAUSE | |
|
||||||
|
*---------------------------------------------------------------------------------
|
||||||
|
*| | | | | | | | | | | | | | |
|
||||||
|
*---------------------------------------------------------------------------------
|
||||||
|
*| | | | | | | | | | | | | | |
|
||||||
|
*---------------------------------------------------------------------------------
|
||||||
|
*|RST | | | | | | | | | |
|
||||||
|
*---------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
[1] = LAYOUT_65_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_PSCR, KC_SLCK, KC_PAUS, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# Sedan
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
This is a 5x15 keyboard in a 68% layout.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [AAClawson](http://github.com/AlisGraveNil)
|
||||||
|
* Hardware Supported: The Sedan, Pro Micro, Elite-C
|
||||||
|
* Hardware Availability: www.clawboards.xyz
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make clawsome/sedan: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).
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# 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 = yes # 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
|
||||||
|
MIDI_ENABLE = no # MIDI support
|
||||||
|
UNICODE_ENABLE = no # Unicode
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
AUDIO_ENABLE = no # Audio output on port C6
|
||||||
|
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||||
|
|
||||||
|
LAYOUTS = 65_ansi
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
/* Copyright 2020 AAClawson (AlisGraveNil)
|
||||||
|
*
|
||||||
|
* 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 "sedan.h"
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
/* Copyright 2020 AAClawson (AlisGraveNil)
|
||||||
|
*
|
||||||
|
* 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_65_ansi( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
|
||||||
|
K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D, K4E \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E }, \
|
||||||
|
{ K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D, K4E }, \
|
||||||
|
}
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Siemens Tastatur",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"width": 20,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"x": 0, "y": 0, "w": 1.5},
|
||||||
|
{"x": 1.5, "y": 0},
|
||||||
|
{"x": 2.5, "y": 0},
|
||||||
|
{"x": 3.5, "y": 0},
|
||||||
|
{"x": 4.5, "y": 0},
|
||||||
|
{"x": 5.5, "y": 0},
|
||||||
|
{"x": 6.5, "y": 0},
|
||||||
|
{"x": 7.5, "y": 0},
|
||||||
|
{"x": 8.5, "y": 0},
|
||||||
|
{"x": 9.5, "y": 0},
|
||||||
|
{"x": 10.5, "y": 0},
|
||||||
|
{"x": 11.5, "y": 0},
|
||||||
|
{"x": 12.5, "y": 0},
|
||||||
|
{"x": 13.5, "y": 0, "h": 2},
|
||||||
|
|
||||||
|
{"x": 15, "y": 0},
|
||||||
|
{"x": 16, "y": 0},
|
||||||
|
{"x": 17, "y": 0},
|
||||||
|
{"x": 18, "y": 0},
|
||||||
|
{"x": 19, "y": 0},
|
||||||
|
|
||||||
|
{"x": 0, "y": 1},
|
||||||
|
{"x": 1, "y": 1},
|
||||||
|
{"x": 2, "y": 1},
|
||||||
|
{"x": 3, "y": 1},
|
||||||
|
{"x": 4, "y": 1},
|
||||||
|
{"x": 5, "y": 1},
|
||||||
|
{"x": 6, "y": 1},
|
||||||
|
{"x": 7, "y": 1},
|
||||||
|
{"x": 8, "y": 1},
|
||||||
|
{"x": 9, "y": 1},
|
||||||
|
{"x": 10, "y": 1},
|
||||||
|
{"x": 11, "y": 1},
|
||||||
|
{"x": 12, "y": 1, "w": 1.5},
|
||||||
|
|
||||||
|
{"x": 15, "y": 1},
|
||||||
|
{"x": 16, "y": 1},
|
||||||
|
{"x": 17, "y": 1},
|
||||||
|
{"x": 18, "y": 1},
|
||||||
|
{"x": 19, "y": 1},
|
||||||
|
|
||||||
|
{"x": 0, "y": 2, "w": 1.25},
|
||||||
|
{"x": 1.25, "y": 2},
|
||||||
|
{"x": 2.25, "y": 2},
|
||||||
|
{"x": 3.25, "y": 2},
|
||||||
|
{"x": 4.25, "y": 2},
|
||||||
|
{"x": 5.25, "y": 2},
|
||||||
|
{"x": 6.25, "y": 2},
|
||||||
|
{"x": 7.25, "y": 2},
|
||||||
|
{"x": 8.25, "y": 2},
|
||||||
|
{"x": 9.25, "y": 2},
|
||||||
|
{"x": 10.25, "y": 2},
|
||||||
|
{"x": 11.25, "y": 2},
|
||||||
|
{"x": 12.25, "y": 2, "w": 1.25},
|
||||||
|
{"x": 13.5, "y": 2, "h": 2},
|
||||||
|
|
||||||
|
{"x": 15, "y": 2},
|
||||||
|
{"x": 16, "y": 2},
|
||||||
|
{"x": 17, "y": 2},
|
||||||
|
{"x": 18, "y": 2},
|
||||||
|
{"x": 19, "y": 2},
|
||||||
|
|
||||||
|
{"x": 0, "y": 3, "w": 1.75},
|
||||||
|
{"x": 1.75, "y": 3},
|
||||||
|
{"x": 2.75, "y": 3},
|
||||||
|
{"x": 3.75, "y": 3},
|
||||||
|
{"x": 4.75, "y": 3},
|
||||||
|
{"x": 5.75, "y": 3},
|
||||||
|
{"x": 6.75, "y": 3},
|
||||||
|
{"x": 7.75, "y": 3},
|
||||||
|
{"x": 8.75, "y": 3},
|
||||||
|
{"x": 9.75, "y": 3},
|
||||||
|
{"x": 10.75, "y": 3},
|
||||||
|
|
||||||
|
{"x": 15, "y": 3},
|
||||||
|
{"x": 16, "y": 3},
|
||||||
|
{"x": 17, "y": 3},
|
||||||
|
{"x": 18, "y": 3},
|
||||||
|
{"x": 19, "y": 3},
|
||||||
|
|
||||||
|
{"x": 3.5, "y": 4, "w": 6.5}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -30,7 +30,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h, k0i, \
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h, k0i, \
|
||||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, k1f, k1g, k1h, k1i, \
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, k1f, k1g, k1h, k1i, \
|
||||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h, k2i, \
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h, k2i, \
|
||||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3e, k3f, k3g, k3h, k3i, \
|
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3e, k3f, k3g, k3h, k3i, \
|
||||||
k3b \
|
k3b \
|
||||||
) \
|
) \
|
||||||
{ \
|
{ \
|
||||||
|
|||||||
+1681
-23
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,3 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define GRAVE_ESC_GUI_OVERRIDE // Always send Escape if GUI is pressed
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
// layer 0
|
||||||
|
LAYOUT_directional(
|
||||||
|
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_DEL, 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_RSFT, KC_RSFT,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, LT(5,KC_SPC), LT(5,KC_SPC), LT(5,KC_SPC), LT(3,KC_LEFT), KC_DOWN, _______, KC_UP, KC_RIGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
// layer 1 toggle hardware caps layer
|
||||||
|
LAYOUT_directional(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
LT(4,KC_ENT), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
//layer 2 toggle space layer
|
||||||
|
LAYOUT_directional(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, KC_SPC, KC_SPC, KC_SPC, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
// layer 3 FN
|
||||||
|
LAYOUT_directional(
|
||||||
|
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, _______, RESET,
|
||||||
|
KC_TILD, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______,
|
||||||
|
TG(1), BL_TOGG, BL_STEP, BL_INC, BL_DEC, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, TG(2), TG(2), TG(2), _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
// layer 4 caps
|
||||||
|
LAYOUT_directional(
|
||||||
|
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_TILD, KC_DEL, KC_UP,LSFT(LCTL(KC_TAB)), LCTL(KC_TAB), _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_W), _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, KC_LPRN, KC_RPRN, KC_BSPC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, KC_BSPC, KC_BSPC, KC_BSPC, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
// layer 5 space
|
||||||
|
LAYOUT_directional(
|
||||||
|
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_TILD, KC_LCBR, KC_RCBR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_BSLS, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, KC_LPRN, KC_RPRN, KC_UNDS, KC_PLUS, KC_PIPE, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
};
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# DZ60
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
https://kbdfans.com/products/dz60-60-pcb
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
qmk compile -kb dz60 -km lint_kid
|
||||||
|
|
||||||
|
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).
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
// Qwerty
|
||||||
|
[0] = LAYOUT_60_ansi(
|
||||||
|
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_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_ESC, 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_LCTL, KC_LGUI, MO(1), KC_SPC, KC_ALGR, KC_RGUI, KC_LALT, KC_RCTL
|
||||||
|
),
|
||||||
|
|
||||||
|
// Special keys
|
||||||
|
[1] = LAYOUT_60_ansi(
|
||||||
|
KC_SLEP, KC_F1, KC_F2, KC_F3, KC_F3, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||||
|
KC_NO, RGB_MOD, RGB_RMOD, KC_NO, KC_NO, KC_NO, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_PGDOWN,KC_NO,
|
||||||
|
KC_CAPSLOCK, BL_TOGG, RGB_TOG, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MFFD,
|
||||||
|
KC_NO, BL_INC, BL_DEC, BL_BRTG, KC_NO, KC_NO, KC_UP, KC_NO, KC_HOME, KC_END, KC_NO, KC_PSCR,
|
||||||
|
KC_NO, KC_NO, KC_TRNS, KC_MPLY, KC_NO, KC_NO, KC_TRNS, KC_NO
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
BOOTMAGIC_ENABLE = lite
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2012 Jun Wako <[email protected]>
|
||||||
|
Copyright 2013 Oleg Kostyuk <[email protected]>
|
||||||
|
Edited like hell 2017+ by Reed Williams <[email protected]>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define MACOSX
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#ifndef DESCRIPTION
|
||||||
|
#define DESCRIPTION QMK keyboard firmware for Ergodox EZ
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define USB_MAX_POWER_CONSUMPTION 500
|
||||||
|
|
||||||
|
#define QMK_KEYS_PER_SCAN 4
|
||||||
|
/* Set 0 if debouncing isn't needed */
|
||||||
|
#undef DEBOUNCE
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
|
||||||
|
#define ONESHOT_TIMEOUT 900 // how long before oneshot times out
|
||||||
|
//#define ONESHOT_TAP_TOGGLE 2 // how many taps before oneshot toggle is triggered
|
||||||
|
|
||||||
|
#undef LOCKING_SUPPORT_ENABLE
|
||||||
|
#undef LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
#undef MOUSEKEY_DELAY
|
||||||
|
#define MOUSEKEY_DELAY 20
|
||||||
|
#undef MOUSEKEY_MAX_SPEED
|
||||||
|
#define MOUSEKEY_MAX_SPEED 6
|
||||||
|
#undef MOUSEKEY_TIME_TO_MAX
|
||||||
|
#define MOUSEKEY_TIME_TO_MAX 254
|
||||||
|
#undef MOUSEKEY_WHEEL_MAX_SPEED
|
||||||
|
#define MOUSEKEY_WHEEL_MAX_SPEED 10
|
||||||
|
#undef MOUSEKEY_WHEEL_TIME_TO_MAX
|
||||||
|
#define MOUSEKEY_WHEEL_TIME_TO_MAX 254
|
||||||
|
|
||||||
|
/* disable action features */
|
||||||
|
//#define NO_ACTION_LAYER
|
||||||
|
//#define NO_ACTION_TAPPING
|
||||||
|
//#define NO_ACTION_ONESHOT
|
||||||
|
//#define NO_ACTION_MACRO
|
||||||
|
//#define NO_ACTION_FUNCTION
|
||||||
|
//#define DEBUG_MATRIX_SCAN_RATE
|
||||||
@@ -0,0 +1,188 @@
|
|||||||
|
#include "rmw.h"
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[QWERTY] = LAYOUT_ergodox(
|
||||||
|
TD(FRBK2), KC_1, KC_2, KC_3, KC_4, KC_5, KC_F4,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TO(EDIT),
|
||||||
|
OSL(EDIT), KC_A, LT(NUMPAD,KC_S), KC_D, LT(FSYM,KC_F), KC_G,
|
||||||
|
LCTL(KC_LEFT), KC_Z, KC_X, KC_C, KC_V, SFT_T(KC_B), KC_TAB,
|
||||||
|
TD(CTLALL), OSL(ADJUST), TD(GUCTL), TD(SGCA), TD(AGC),
|
||||||
|
OS_CMD, OS_CTL ,
|
||||||
|
KC_ESCAPE,
|
||||||
|
KC_BSPACE, TD(SHENT), OSL(EDIT),
|
||||||
|
|
||||||
|
KC_F5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||||
|
TO(NUMPAD), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||||
|
KC_H, LT(JSYM,KC_J), KC_K, KC_L, LT(EDIT,KC_SCLN), KC_QUOTE,
|
||||||
|
CTL_T(KC_B), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), LCTL(KC_RIGHT),
|
||||||
|
TD(GCA), TD(CTLALL), KC_LBRC, KC_RBRC, KC_MS_BTN1,
|
||||||
|
OS_CALT, KC_TAB,
|
||||||
|
KC_DEL,
|
||||||
|
KC_CAPS, SFTENT, KC_SPC),
|
||||||
|
|
||||||
|
|
||||||
|
[MINIMAK4] = LAYOUT_ergodox(
|
||||||
|
TD(FRBK2), KC_1, KC_2, KC_3, KC_4, KC_5, KC_F4,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_D, KC_R, KC_K, TO(EDIT),
|
||||||
|
OSL(EDIT), KC_A, LT(NUMPAD,KC_S), KC_T, LT(FSYM,KC_F), KC_G,
|
||||||
|
OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, SFT_T(KC_B), KC_TAB,
|
||||||
|
TD(CTLALL), OSL(ADJUST), TD(GUCTL), TD(SGCA), TD(AGC),
|
||||||
|
OS_CMD, OS_CTL ,
|
||||||
|
KC_ESCAPE,
|
||||||
|
KC_BSPACE, TD(SHENT), OSL(EDIT),
|
||||||
|
KC_F5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||||
|
TO(NUMPAD), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||||
|
KC_H, LT(JSYM,KC_J), KC_E, KC_L, LT(EDIT,KC_SCLN), KC_QUOTE,
|
||||||
|
CTL_T(KC_B), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), KC_MS_BTN1,
|
||||||
|
TD(GCA), TD(CTLALL), LGUI(KC_GRV), KC_RBRC, KC_MS_BTN1,
|
||||||
|
OS_ALT, KC_TAB,
|
||||||
|
KC_DEL,
|
||||||
|
KC_CAPS, SFT_T(KC_ENT), KC_SPC),
|
||||||
|
|
||||||
|
[NUMPAD] = LAYOUT_ergodox(VRSN, KC_F11, KC_F12, KC_F1, KC_F2, KC_F3, _______,
|
||||||
|
_______, _______, KC_PGUP, KC_UP, KC_PGDOWN, _______, TO(QWERTY),
|
||||||
|
_______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______,
|
||||||
|
_______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_Y), _______,
|
||||||
|
_______, _______, _______, _______, _______,
|
||||||
|
_______, _______, KC_PSCREEN, _______, _______, TO(QWERTY),
|
||||||
|
|
||||||
|
_______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
|
||||||
|
TO(EDIT), _______, KC_7, KC_8, KC_9, KC_KP_MINUS, _______,
|
||||||
|
_______, KC_4, KC_5, KC_6, KC_KP_PLUS, _______,
|
||||||
|
_______, KC_COMM, KC_1, KC_2, KC_3, KC_KP_SLASH, _______,
|
||||||
|
KC_0, KC_DOT, KC_EQUAL, KC_KP_ASTERISK, _______,
|
||||||
|
_______, _______, KC_INSERT, TO(EDIT), _______, _______),
|
||||||
|
|
||||||
|
[EDIT] = LAYOUT_ergodox(_______, _______, KC_MS_WH_UP, KC_MS_BTN1, KC_MS_BTN2, _______, _______,
|
||||||
|
_______, LGUI(LALT(KC_ESCAPE)), KC_MS_WH_DOWN, LALT(S(KC_LEFT)), LALT(S(KC_RIGHT)), _______, TO(NUMPAD),
|
||||||
|
_______, _______, LGUI(KC_GRV), LALT(KC_LEFT), LALT(KC_RIGHT), _______,
|
||||||
|
LCTL(KC_RIGHT), LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_Y), _______,
|
||||||
|
_______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, TO(NUMPAD),
|
||||||
|
_______, _______, _______, S(KC_UP), _______, _______, KC_DELETE,
|
||||||
|
TO(QWERTY), LGUI(KC_T), KC_PGUP, KC_UP, KC_PGDOWN, KC_PSCREEN, _______,
|
||||||
|
LGUI(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LGUI(KC_RIGHT), _______,
|
||||||
|
_______, S(LGUI(KC_LEFT)), S(KC_LEFT), S(KC_DOWN), S(KC_RIGHT), S(LGUI(KC_RIGHT)), LCTL(KC_LEFT),
|
||||||
|
_______, _______, FORM_GET, FORM_PUT, _______,
|
||||||
|
_______, _______, _______, S(KC_F10), _______, _______),
|
||||||
|
|
||||||
|
[FSYM] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, KC_TILD, KC_EXLM, _______, _______,
|
||||||
|
LCTL(KC_RIGHT), _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, DEL_WRD, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, KC_CIRC, KC_AMPR , KC_ASTR, KC_GRV , _______, _______,
|
||||||
|
KC_EQUAL, KC_MINUS, KC_UNDS, KC_BSLS, KC_COLON, KC_DQT ,
|
||||||
|
_______, _______, KC_PLUS , KC_SLSH, KC_PIPE, _______ , _______,
|
||||||
|
_______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______),
|
||||||
|
|
||||||
|
[JSYM] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, KC_GRV, KC_AT , KC_LCBR, KC_RCBR, _______, _______,
|
||||||
|
_______, KC_HASH, KC_DLR , KC_LPRN, KC_RPRN, KC_LEFT,
|
||||||
|
_______, KC_PERC, KC_CIRC, KC_LBRACKET, KC_RBRACKET, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, KC_QUES, KC_SLSH, KC_COLON, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, LCTL(KC_LEFT),
|
||||||
|
_______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, LGUI(KC_DOWN), _______),
|
||||||
|
|
||||||
|
[MEDIA] = LAYOUT_ergodox(_______, _______, KC_MS_BTN4, _______, KC_MS_BTN5, _______, _______,
|
||||||
|
_______, KC_MS_WH_UP, KC_MS_WH_LEFT, KC_MS_UP, KC_MS_WH_RIGHT, _______, _______,
|
||||||
|
_______, KC_MS_WH_DOWN, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______,
|
||||||
|
_______, _______, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______,
|
||||||
|
_______, _______, _______, _______, KC_MS_BTN3,
|
||||||
|
_______, _______, _______, KC_MS_BTN1, KC_MS_BTN2, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, KC_AUDIO_VOL_DOWN, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, _______, _______,
|
||||||
|
KC_MEDIA_REWIND, KC_MEDIA_FAST_FORWARD, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, KC_MS_BTN1, KC_MEDIA_PLAY_PAUSE),
|
||||||
|
|
||||||
|
[ADJUST] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, TO(EDIT), TO(NUMPAD), TO(FSYM), TO(JSYM), TO(MEDIA),
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, TO(QWERTY), DF(MINIMAK4), DF(QWERTY), _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______),
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
switch (keycode) {
|
||||||
|
case VRSN:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case FORM_GET:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
tap_code(KC_BTN1);
|
||||||
|
tap_code16(G(KC_A));
|
||||||
|
tap_code16(G(KC_C));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case FORM_PUT:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
tap_code(KC_BTN1);
|
||||||
|
tap_code16(G(KC_A));
|
||||||
|
tap_code16(G(KC_V));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
|
switch (get_highest_layer(state)) {
|
||||||
|
case QWERTY:
|
||||||
|
ergodox_right_led_1_off();
|
||||||
|
ergodox_right_led_2_off();
|
||||||
|
ergodox_right_led_3_off();
|
||||||
|
break;
|
||||||
|
case NUMPAD:
|
||||||
|
ergodox_right_led_1_on();
|
||||||
|
ergodox_right_led_2_off();
|
||||||
|
ergodox_right_led_3_off();
|
||||||
|
break;
|
||||||
|
case EDIT:
|
||||||
|
ergodox_right_led_1_off();
|
||||||
|
ergodox_right_led_2_on();
|
||||||
|
ergodox_right_led_3_off();
|
||||||
|
break;
|
||||||
|
case FSYM:
|
||||||
|
ergodox_right_led_1_on();
|
||||||
|
ergodox_right_led_2_on();
|
||||||
|
ergodox_right_led_3_off();
|
||||||
|
break;
|
||||||
|
case JSYM:
|
||||||
|
ergodox_right_led_1_on();
|
||||||
|
ergodox_right_led_2_off();
|
||||||
|
ergodox_right_led_3_on();
|
||||||
|
break;
|
||||||
|
case MEDIA:
|
||||||
|
ergodox_right_led_1_off();
|
||||||
|
ergodox_right_led_2_on();
|
||||||
|
ergodox_right_led_3_on();
|
||||||
|
break;
|
||||||
|
case ADJUST:
|
||||||
|
ergodox_right_led_1_on();
|
||||||
|
ergodox_right_led_2_on();
|
||||||
|
ergodox_right_led_3_on();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
@@ -0,0 +1,159 @@
|
|||||||
|
#include "rmw.h"
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[QWERTY] = LAYOUT_ergodox( // LEFT HAND
|
||||||
|
TD(FRBK), KC_1, KC_2, KC_3, KC_4, KC_5, KC_F4,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TO(EDIT),
|
||||||
|
OSL(EDIT), KC_A, LT(NUMPAD,KC_S), KC_D, LT(FSYM,KC_F), KC_G,
|
||||||
|
OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, SFT_T(KC_B), KC_TAB,
|
||||||
|
TD(CTLAND), OSL(ADJUST), TD(SCAG), TD(TDGUI), TD(ACG),
|
||||||
|
OS_ALT, OS_CTL ,
|
||||||
|
KC_ESCAPE,
|
||||||
|
KC_BSPACE, TD(SHENT), OSL(EDIT),
|
||||||
|
|
||||||
|
// RIGHT HAND
|
||||||
|
KC_F5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||||
|
TO(NUMPAD), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||||
|
KC_H, LT(JSYM,KC_J), KC_K, KC_L, LT(EDIT,KC_SCLN), KC_QUOTE,
|
||||||
|
CTL_T(KC_B), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), TD(SHENT),
|
||||||
|
TD(CAG), TD(TDGUI), KC_LBRC, KC_RBRC, KC_MS_BTN1,
|
||||||
|
OS_ALT, KC_TAB,
|
||||||
|
KC_DEL,
|
||||||
|
KC_CAPS, SFT_T(KC_ENT), KC_SPC),
|
||||||
|
|
||||||
|
|
||||||
|
[NUMPAD] = LAYOUT_ergodox(VRSN, KC_F11, KC_F12, KC_F1, KC_F2, KC_F3, _______,
|
||||||
|
_______, _______, KC_PGUP, KC_UP, KC_PGDOWN, _______, TO(0),
|
||||||
|
_______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______,
|
||||||
|
_______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), LCTL(KC_Y), _______,
|
||||||
|
_______, _______, _______, _______, _______,
|
||||||
|
_______, _______, KC_PSCREEN, _______, _______, TO(0),
|
||||||
|
|
||||||
|
_______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
|
||||||
|
TO(EDIT), _______, KC_7, KC_8, KC_9, KC_KP_MINUS, _______,
|
||||||
|
_______, KC_4, KC_5, KC_6, KC_KP_PLUS, _______,
|
||||||
|
_______, KC_COMM, KC_1, KC_2, KC_3, KC_KP_SLASH, _______,
|
||||||
|
KC_0, KC_DOT, KC_EQUAL, KC_KP_ASTERISK, _______,
|
||||||
|
_______, _______, KC_INSERT, TO(EDIT), _______, _______),
|
||||||
|
|
||||||
|
[EDIT] = LAYOUT_ergodox(KC_ESCAPE, LALT(LCTL(KC_DELETE)), KC_MS_WH_UP, KC_MS_BTN1, KC_MS_BTN2, _______, _______,
|
||||||
|
_______, LCTL(S(KC_ESCAPE)), KC_MS_WH_DOWN, LCTL(S(KC_LEFT)), LCTL(S(KC_RIGHT)), _______, TO(NUMPAD),
|
||||||
|
_______, _______, KC_LEFT, LCTL(KC_LEFT), LCTL(KC_RIGHT), _______,
|
||||||
|
_______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), LCTL(KC_Y), _______,
|
||||||
|
_______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, TO(NUMPAD),
|
||||||
|
_______, _______, _______, S(KC_UP), _______, _______, KC_DELETE,
|
||||||
|
TO(0), LCTL(KC_T), KC_PGUP, KC_UP, KC_PGDOWN, KC_PSCREEN, _______,
|
||||||
|
KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, _______,
|
||||||
|
_______, S(KC_HOME), S(KC_LEFT), S(KC_DOWN), S(KC_RIGHT), S(KC_END), _______,
|
||||||
|
_______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, S(KC_F10), _______, _______),
|
||||||
|
|
||||||
|
[FSYM] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, KC_TILD, KC_EXLM, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, KC_CIRC, KC_AMPR , KC_ASTR, KC_GRV , _______, _______,
|
||||||
|
KC_EQUAL, KC_MINUS, KC_UNDS, KC_BSLS, KC_COLON, KC_DQT ,
|
||||||
|
_______, _______, KC_PLUS , KC_SLSH, KC_PIPE, _______ , _______,
|
||||||
|
_______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______),
|
||||||
|
|
||||||
|
[JSYM] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, KC_GRV, KC_AT , KC_LCBR, KC_RCBR, _______, _______,
|
||||||
|
_______, KC_HASH, KC_DLR , KC_LPRN, KC_RPRN, KC_LEFT,
|
||||||
|
_______, KC_PERC, KC_CIRC, KC_LBRACKET, KC_RBRACKET, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, KC_QUES, KC_SLSH, KC_COLON, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______),
|
||||||
|
|
||||||
|
[MEDIA] = LAYOUT_ergodox(_______, _______, KC_MS_BTN4, _______, KC_MS_BTN5, _______, _______,
|
||||||
|
_______, KC_MS_WH_UP, KC_MS_WH_LEFT, KC_MS_UP, KC_MS_WH_RIGHT, _______, _______,
|
||||||
|
_______, KC_MS_WH_DOWN, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______,
|
||||||
|
_______, _______, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______,
|
||||||
|
_______, _______, _______, _______, KC_MS_BTN3,
|
||||||
|
_______, _______, _______, KC_MS_BTN1, KC_MS_BTN2, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, KC_AUDIO_VOL_DOWN, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, _______, _______,
|
||||||
|
KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, KC_MS_BTN1, KC_MEDIA_PLAY_PAUSE),
|
||||||
|
|
||||||
|
[ADJUST] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, TO(EDIT), TO(NUMPAD), TO(FSYM), TO(JSYM), TO(MEDIA),
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, TO(QWERTY), _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______),
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
switch (keycode) {
|
||||||
|
// dynamically generate these.
|
||||||
|
case VRSN:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
|
switch (get_highest_layer(state)) {
|
||||||
|
case QWERTY:
|
||||||
|
ergodox_right_led_1_off();
|
||||||
|
ergodox_right_led_2_off();
|
||||||
|
ergodox_right_led_3_off();
|
||||||
|
break;
|
||||||
|
case NUMPAD:
|
||||||
|
ergodox_right_led_1_on();
|
||||||
|
ergodox_right_led_2_off();
|
||||||
|
ergodox_right_led_3_off();
|
||||||
|
break;
|
||||||
|
case EDIT:
|
||||||
|
ergodox_right_led_1_off();
|
||||||
|
ergodox_right_led_2_on();
|
||||||
|
ergodox_right_led_3_off();
|
||||||
|
break;
|
||||||
|
case FSYM:
|
||||||
|
ergodox_right_led_1_on();
|
||||||
|
ergodox_right_led_2_on();
|
||||||
|
ergodox_right_led_3_off();
|
||||||
|
break;
|
||||||
|
case JSYM:
|
||||||
|
ergodox_right_led_1_on();
|
||||||
|
ergodox_right_led_2_off();
|
||||||
|
ergodox_right_led_3_on();
|
||||||
|
break;
|
||||||
|
case MEDIA:
|
||||||
|
ergodox_right_led_1_off();
|
||||||
|
ergodox_right_led_2_on();
|
||||||
|
ergodox_right_led_3_on();
|
||||||
|
break;
|
||||||
|
case ADJUST:
|
||||||
|
ergodox_right_led_1_on();
|
||||||
|
ergodox_right_led_2_on();
|
||||||
|
ergodox_right_led_3_on();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
#include "ergodox_ez.h"
|
||||||
|
#include "version.h"
|
||||||
|
|
||||||
|
#define LONGPRESS_DELAY 180
|
||||||
|
#define LAYER_TOGGLE_DELAY 350
|
||||||
|
|
||||||
|
#ifdef MACOSX
|
||||||
|
#include "keymap-mac.c"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef WINDOWS
|
||||||
|
#include "keymap-win.c"
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# RMW Ergodox_EZ Layout
|
||||||
|
|
||||||
|
This is the keymap I use on the Ergodox_EZ I use for work. I write reports and code in a variety of languages on this board and the various layers provide plenty of flexibility for navigating, editing text, and writing code and prose.
|
||||||
|
|
||||||
|
I switched to a Mac in the past year, so my keymap now mostly gets used in the Mac mode; simply edit the keymap.c file to uncomment \#include keymap-win.c and comment out \#include keymap-mac.c to change back to the Windows version, but I haven't been updating that map as I've made changes moving forward on the Mac version.
|
||||||
|
|
||||||
|
## The theory of this keymap
|
||||||
|
|
||||||
|
The base layer is either QWERTY or MINIMAK4, as desired. Overlaid on that base layer are various layers triggered by one-shots, TOs, and LTs. Tapdances are used to cram lots of mods into few keys and provide freedom to hit combinations with either hand. Mods and layer things are one-shot (where reasonable) because I prefer that.
|
||||||
|
|
||||||
|
An EDIT layer provides text navigation, selection, and editing capabilities in home position. The EXCEL layer offers a numpad and various spreadsheet-useful navigations and operations. Holding S will put the numpad under your right hand in home position. Keys F and J offer various useful symbols (mostly) on the opposite hand when held, including \[\]\(\)\{\} under the left pointer and middle fingers on bottom, middle, and top rows respectively. The MEDIA layer provides media controls (obvs) and some mouse movement and nav, in case I don't feel like reaching for the trackball/trackpad/mouse.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
TAP_DANCE_ENABLE=yes
|
||||||
Executable
+69
@@ -0,0 +1,69 @@
|
|||||||
|
/* Copyright 2020 B. Fletcher (toraifu) <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter
|
||||||
|
*/
|
||||||
|
#define VENDOR_ID 0xBF00
|
||||||
|
#define PRODUCT_ID 0xBFFA
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER SheuBox
|
||||||
|
#define PRODUCT Fallacy
|
||||||
|
#define DESCRIPTION Aluminum Alice Clone
|
||||||
|
|
||||||
|
/* key matrix size
|
||||||
|
*/
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 15
|
||||||
|
|
||||||
|
/* key matrix pins
|
||||||
|
*/
|
||||||
|
#define MATRIX_ROW_PINS { B1, B2, B3, C6, C7 }
|
||||||
|
#define MATRIX_COL_PINS { E6, F0, F1, F4, F5, F6, F7, B6, B5, B4, D7, D6, D4, D5, D3 }
|
||||||
|
#define UNUSED_PINS { B0, B7 }
|
||||||
|
|
||||||
|
/* COL2ROW or ROW2COL
|
||||||
|
*/
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* IS31FL3731 driver address (for status LEDs)
|
||||||
|
* Using the default defines here, but using a custom implementation
|
||||||
|
*/
|
||||||
|
#define LED_DRIVER_ADDR_1 0b1110100
|
||||||
|
#define LED_DRIVER_COUNT 1
|
||||||
|
#define LED_DRIVER_LED_COUNT 3
|
||||||
|
|
||||||
|
/* Set 0 if debouncing isn't needed
|
||||||
|
*/
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* 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
|
||||||
|
|
||||||
|
/* prevent stuck modifiers
|
||||||
|
*/
|
||||||
|
#define PREVENT_STUCK_MODIFIERS
|
||||||
|
|
||||||
|
#define RGB_DI_PIN D2
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#define RGBLED_NUM 14
|
||||||
Executable
+40
@@ -0,0 +1,40 @@
|
|||||||
|
/* Copyright 2020 B. Fletcher (toraifu) <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "fallacy.h"
|
||||||
|
#include "indicators.h"
|
||||||
|
|
||||||
|
void matrix_init_kb(void) {
|
||||||
|
init_fallacy_leds();
|
||||||
|
matrix_init_user();
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_scan_kb(void) {
|
||||||
|
update_fallacy_leds();
|
||||||
|
matrix_scan_user();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* update LED driver with usb led_state
|
||||||
|
*/
|
||||||
|
bool led_update_kb(led_t led_state) {
|
||||||
|
bool res = led_update_user(led_state);
|
||||||
|
if(res) {
|
||||||
|
set_fallacy_led(2, led_state.caps_lock); /* caps */
|
||||||
|
set_fallacy_led(1, led_state.num_lock); /* num lock */
|
||||||
|
set_fallacy_led(0, led_state.scroll_lock); /* scroll lock */
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
Executable
+54
@@ -0,0 +1,54 @@
|
|||||||
|
/* Copyright 2020 B. Fletcher (toraifu) <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
/* All keys in matrix active:
|
||||||
|
* - Split Backspace
|
||||||
|
* - Split Right Shift
|
||||||
|
*/
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
K100, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
|
||||||
|
K200, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
|
||||||
|
K300, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \
|
||||||
|
K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \
|
||||||
|
K401, K403, K405, K406, K408, K410, K414 \
|
||||||
|
) { \
|
||||||
|
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
|
||||||
|
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
|
||||||
|
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214 }, \
|
||||||
|
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \
|
||||||
|
{ KC_NO, K401, KC_NO, K403, KC_NO, K405, K406, KC_NO, K408, KC_NO, K410, KC_NO, KC_NO, KC_NO, K414 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Disable position 013 and 314 for:
|
||||||
|
* - Full size Backspace
|
||||||
|
* - Full size Right Shift
|
||||||
|
*/
|
||||||
|
#define LAYOUT_default( \
|
||||||
|
K100, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \
|
||||||
|
K200, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
|
||||||
|
K300, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \
|
||||||
|
K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \
|
||||||
|
K401, K403, K405, K406, K408, K410, K414 \
|
||||||
|
) { \
|
||||||
|
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014 }, \
|
||||||
|
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
|
||||||
|
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214 }, \
|
||||||
|
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \
|
||||||
|
{ KC_NO, K401, KC_NO, K403, KC_NO, K405, K406, KC_NO, K408, KC_NO, K410, KC_NO, KC_NO, KC_NO, K414 } \
|
||||||
|
}
|
||||||
Executable
+61
@@ -0,0 +1,61 @@
|
|||||||
|
/* Copyright 2020 B. Fletcher (toraifu) <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "indicators.h"
|
||||||
|
#include "drivers/issi/is31fl3731-simple.h"
|
||||||
|
#include "i2c_master.h"
|
||||||
|
|
||||||
|
/* Set up IS31FL3731 for use in powering indicator LEDs. Absolutely overkill for this job but it was already in the design.
|
||||||
|
* init IS31FL3731 and i2c
|
||||||
|
*/
|
||||||
|
void init_fallacy_leds(void) {
|
||||||
|
i2c_init();
|
||||||
|
IS31FL3731_init(LED_DRIVER_ADDR_1);
|
||||||
|
|
||||||
|
for (int i = 0; i < LED_DRIVER_LED_COUNT; i++) {
|
||||||
|
IS31FL3731_set_led_control_register(i, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_1, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* update the buffer
|
||||||
|
*/
|
||||||
|
void update_fallacy_leds(void) {
|
||||||
|
IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_1, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* wrapper to actually set the LED PWM
|
||||||
|
*/
|
||||||
|
void set_fallacy_led(int index, bool state) {
|
||||||
|
if (state) {
|
||||||
|
IS31FL3731_set_value(index, 128);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
IS31FL3731_set_value(index, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* define LED matrix
|
||||||
|
*/
|
||||||
|
const is31_led g_is31_leds[LED_DRIVER_LED_COUNT] = {
|
||||||
|
{0, C1_1},
|
||||||
|
{0, C2_1},
|
||||||
|
{0, C3_1},
|
||||||
|
};
|
||||||
Executable
+23
@@ -0,0 +1,23 @@
|
|||||||
|
/* Copyright 2020 B. Fletcher (toraifu) <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
|
void init_fallacy_leds(void);
|
||||||
|
void update_fallacy_leds(void);
|
||||||
|
void set_fallacy_led(int index, bool state);
|
||||||
@@ -0,0 +1,147 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Fallacy",
|
||||||
|
"maintainer": "Toraifu",
|
||||||
|
"width": 18.75,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"Esc", "x":0.5, "y":0},
|
||||||
|
{"label":"~", "x":1.75, "y":0},
|
||||||
|
{"label":"!", "x":2.75, "y":0},
|
||||||
|
{"label":"@", "x":3.75, "y":0},
|
||||||
|
{"label":"#", "x":4.75, "y":0},
|
||||||
|
{"label":"$", "x":5.75, "y":0},
|
||||||
|
{"label":"%", "x":6.75, "y":0},
|
||||||
|
{"label":"^", "x":7.75, "y":0},
|
||||||
|
{"label":"&", "x":10, "y":0},
|
||||||
|
{"label":"*", "x":11, "y":0},
|
||||||
|
{"label":"(", "x":12, "y":0},
|
||||||
|
{"label":")", "x":13, "y":0},
|
||||||
|
{"label":"_", "x":14, "y":0},
|
||||||
|
{"label":"+", "x":15, "y":0},
|
||||||
|
{"label":"|", "x":16, "y":0},
|
||||||
|
{"label":"~", "x":17, "y":0},
|
||||||
|
{"label":"PgUp", "x":0.25, "y":1},
|
||||||
|
{"label":"Tab", "x":1.5, "y":1, "w":1.5},
|
||||||
|
{"label":"Q", "x":3, "y":1},
|
||||||
|
{"label":"W", "x":4, "y":1},
|
||||||
|
{"label":"E", "x":5, "y":1},
|
||||||
|
{"label":"R", "x":6, "y":1},
|
||||||
|
{"label":"T", "x":7, "y":1},
|
||||||
|
{"label":"Y", "x":9.75, "y":1},
|
||||||
|
{"label":"U", "x":10.75, "y":1},
|
||||||
|
{"label":"I", "x":11.75, "y":1},
|
||||||
|
{"label":"O", "x":12.75, "y":1},
|
||||||
|
{"label":"P", "x":13.75, "y":1},
|
||||||
|
{"label":"{", "x":14.75, "y":1},
|
||||||
|
{"label":"}", "x":15.75, "y":1},
|
||||||
|
{"label":"Backspace", "x":16.75, "y":1, "w":1.5},
|
||||||
|
{"label":"PgDn", "x":0, "y":2},
|
||||||
|
{"label":"Control", "x":1.25, "y":2, "w":1.75},
|
||||||
|
{"label":"A", "x":3, "y":2},
|
||||||
|
{"label":"S", "x":4, "y":2},
|
||||||
|
{"label":"D", "x":5, "y":2},
|
||||||
|
{"label":"F", "x":6, "y":2},
|
||||||
|
{"label":"G", "x":7, "y":2},
|
||||||
|
{"label":"H", "x":10.25, "y":2},
|
||||||
|
{"label":"J", "x":11.25, "y":2},
|
||||||
|
{"label":"K", "x":12.25, "y":2},
|
||||||
|
{"label":"L", "x":13.25, "y":2},
|
||||||
|
{"label":":", "x":14.25, "y":2},
|
||||||
|
{"label":"\"", "x":15.25, "y":2},
|
||||||
|
{"label":"Enter", "x":16.25, "y":2, "w":2.25},
|
||||||
|
{"label":"Shift", "x":1, "y":3, "w":2.25},
|
||||||
|
{"label":"Z", "x":3.25, "y":3},
|
||||||
|
{"label":"X", "x":4.25, "y":3},
|
||||||
|
{"label":"C", "x":5.25, "y":3},
|
||||||
|
{"label":"V", "x":6.25, "y":3},
|
||||||
|
{"label":"B", "x":7.25, "y":3},
|
||||||
|
{"label":"B", "x":10, "y":3},
|
||||||
|
{"label":"N", "x":11, "y":3},
|
||||||
|
{"label":"M", "x":12, "y":3},
|
||||||
|
{"label":"<", "x":13, "y":3},
|
||||||
|
{"label":">", "x":14, "y":3},
|
||||||
|
{"label":"?", "x":15, "y":3},
|
||||||
|
{"label":"Shift", "x":16, "y":3, "w":1.75},
|
||||||
|
{"label":"Fn1", "x":17.75, "y":3},
|
||||||
|
{"label":"Ctrl", "x":1, "y":4, "w":1.5},
|
||||||
|
{"label":"Alt", "x":4, "y":4, "w":1.5},
|
||||||
|
{"label":"LSpace", "x":5.5, "y":4, "w":2.25},
|
||||||
|
{"label":"Fn2", "x":7.75, "y":4},
|
||||||
|
{"label":"RSpace", "x":10, "y":4, "w":2.75},
|
||||||
|
{"label":"RAlt", "x":12.75, "y":4, "w":1.5},
|
||||||
|
{"label":"RCtl", "x":17, "y":4, "w":1.5}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_default": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"Esc", "x":0.5, "y":0},
|
||||||
|
{"label":"~", "x":1.75, "y":0},
|
||||||
|
{"label":"!", "x":2.75, "y":0},
|
||||||
|
{"label":"@", "x":3.75, "y":0},
|
||||||
|
{"label":"#", "x":4.75, "y":0},
|
||||||
|
{"label":"$", "x":5.75, "y":0},
|
||||||
|
{"label":"%", "x":6.75, "y":0},
|
||||||
|
{"label":"^", "x":7.75, "y":0},
|
||||||
|
{"label":"&", "x":10, "y":0},
|
||||||
|
{"label":"*", "x":11, "y":0},
|
||||||
|
{"label":"(", "x":12, "y":0},
|
||||||
|
{"label":")", "x":13, "y":0},
|
||||||
|
{"label":"_", "x":14, "y":0},
|
||||||
|
{"label":"+", "x":15, "y":0},
|
||||||
|
{"label":"Backspace", "x":16, "y":0, "w":2},
|
||||||
|
{"label":"PgUp", "x":0.25, "y":1},
|
||||||
|
{"label":"Tab", "x":1.5, "y":1, "w":1.5},
|
||||||
|
{"label":"Q", "x":3, "y":1},
|
||||||
|
{"label":"W", "x":4, "y":1},
|
||||||
|
{"label":"E", "x":5, "y":1},
|
||||||
|
{"label":"R", "x":6, "y":1},
|
||||||
|
{"label":"T", "x":7, "y":1},
|
||||||
|
{"label":"Y", "x":9.75, "y":1},
|
||||||
|
{"label":"U", "x":10.75, "y":1},
|
||||||
|
{"label":"I", "x":11.75, "y":1},
|
||||||
|
{"label":"O", "x":12.75, "y":1},
|
||||||
|
{"label":"P", "x":13.75, "y":1},
|
||||||
|
{"label":"{", "x":14.75, "y":1},
|
||||||
|
{"label":"}", "x":15.75, "y":1},
|
||||||
|
{"label":"Backspace", "x":16.75, "y":1, "w":1.5},
|
||||||
|
{"label":"PgDn", "x":0, "y":2},
|
||||||
|
{"label":"Control", "x":1.25, "y":2, "w":1.75},
|
||||||
|
{"label":"A", "x":3, "y":2},
|
||||||
|
{"label":"S", "x":4, "y":2},
|
||||||
|
{"label":"D", "x":5, "y":2},
|
||||||
|
{"label":"F", "x":6, "y":2},
|
||||||
|
{"label":"G", "x":7, "y":2},
|
||||||
|
{"label":"H", "x":10.25, "y":2},
|
||||||
|
{"label":"J", "x":11.25, "y":2},
|
||||||
|
{"label":"K", "x":12.25, "y":2},
|
||||||
|
{"label":"L", "x":13.25, "y":2},
|
||||||
|
{"label":":", "x":14.25, "y":2},
|
||||||
|
{"label":"\"", "x":15.25, "y":2},
|
||||||
|
{"label":"Enter", "x":16.25, "y":2, "w":2.25},
|
||||||
|
{"label":"Shift", "x":1, "y":3, "w":2.25},
|
||||||
|
{"label":"Z", "x":3.25, "y":3},
|
||||||
|
{"label":"X", "x":4.25, "y":3},
|
||||||
|
{"label":"C", "x":5.25, "y":3},
|
||||||
|
{"label":"V", "x":6.25, "y":3},
|
||||||
|
{"label":"B", "x":7.25, "y":3},
|
||||||
|
{"label":"B", "x":10, "y":3},
|
||||||
|
{"label":"N", "x":11, "y":3},
|
||||||
|
{"label":"M", "x":12, "y":3},
|
||||||
|
{"label":"<", "x":13, "y":3},
|
||||||
|
{"label":">", "x":14, "y":3},
|
||||||
|
{"label":"?", "x":15, "y":3},
|
||||||
|
{"label":"Shift", "x":16, "y":3, "w":1.75},
|
||||||
|
{"label":"Fn1", "x":17.75, "y":3},
|
||||||
|
{"label":"Ctrl", "x":1, "y":4, "w":1.5},
|
||||||
|
{"label":"Alt", "x":4, "y":4, "w":1.5},
|
||||||
|
{"label":"LSpace", "x":5.5, "y":4, "w":2.25},
|
||||||
|
{"label":"Fn2", "x":7.75, "y":4},
|
||||||
|
{"label":"RSpace", "x":10, "y":4, "w":2.75},
|
||||||
|
{"label":"RAlt", "x":12.75, "y":4, "w":1.5},
|
||||||
|
{"label":"RCtl", "x":17, "y":4, "w":1.5}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Executable
+34
@@ -0,0 +1,34 @@
|
|||||||
|
/* Copyright 2020 B. Fletcher (toraifu) <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[0] = LAYOUT_default(
|
||||||
|
KC_ESC, 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_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_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_RGUI, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||||
|
KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL),
|
||||||
|
|
||||||
|
[1] = LAYOUT_default(
|
||||||
|
KC_TRNS, RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
};
|
||||||
+33
@@ -0,0 +1,33 @@
|
|||||||
|
/* Copyright 2020 B. Fletcher (toraifu) <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[0] = LAYOUT_all(
|
||||||
|
KC_ESC, 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_BSLS, KC_BSPC,
|
||||||
|
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_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_RGUI, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||||
|
KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL),
|
||||||
|
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
KC_TRNS, RESET, 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_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
};
|
||||||
Executable
+47
@@ -0,0 +1,47 @@
|
|||||||
|
/* Copyright 2020 B. Fletcher (toraifu) <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[0] = LAYOUT_all(
|
||||||
|
KC_ESC, 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_BSLS, KC_BSPC,
|
||||||
|
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_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_RGUI, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||||
|
KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL),
|
||||||
|
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
KC_TRNS, RESET, 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_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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),
|
||||||
|
|
||||||
|
[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),
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# Fallacy
|
||||||
|

|
||||||
|
|
||||||
|
A PCB designed for the Fallacy custom keyboard, but fully compatible with the Alice and its clones.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [toraifu](https://github.com/toraifu)
|
||||||
|
* Hardware: [geekhack](https://geekhack.org/index.php?topic=103728.0)
|
||||||
|
* Other general info: [fallacy](https://github.com/toraifu/fallacy)
|
||||||
|
|
||||||
|
### Features:
|
||||||
|
* VIA support
|
||||||
|
* As minimal as possible design (no in-switch LEDs)
|
||||||
|
* Support for the use of fourteen WS2812B RGB-LEDs for keyboards for which underglow is desired.
|
||||||
|
* Misc features such as ESD protection, indicator LEDs, etc.
|
||||||
|
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make fallacy: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).
|
||||||
Executable
+29
@@ -0,0 +1,29 @@
|
|||||||
|
# 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 = yes # 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 = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
MIDI_ENABLE = no # MIDI support
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||||
|
|
||||||
|
# project specific files
|
||||||
|
SRC += indicators.c \
|
||||||
|
drivers/issi/is31fl3731-simple.c
|
||||||
|
QUANTUM_LIB_SRC += i2c_master.c
|
||||||
@@ -21,15 +21,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0xFEED
|
#define VENDOR_ID 0x4853 /* HS */
|
||||||
#define PRODUCT_ID 0x660C
|
#define PRODUCT_ID 0x660C
|
||||||
#define DEVICE_VER 0x0100
|
#define DEVICE_VER 0x0100
|
||||||
#define MANUFACTURER QMK
|
#define MANUFACTURER Hasu
|
||||||
#define PRODUCT Leopold FC660C with QMK
|
#define PRODUCT FC660C
|
||||||
#define DESCRIPTION Leopold FC660C with Hasu alternative controller using QMK
|
#define DESCRIPTION Leopold FC660C with Hasu alternative controller using QMK
|
||||||
|
|
||||||
/* key matrix size */
|
/* key matrix size */
|
||||||
#define MATRIX_ROWS 8
|
#define MATRIX_ROWS 5
|
||||||
#define MATRIX_COLS 16
|
#define MATRIX_COLS 16
|
||||||
|
|
||||||
//#define DIODE_DIRECTION
|
//#define DIODE_DIRECTION
|
||||||
|
|||||||
@@ -36,13 +36,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
{ KC_NO, K31, K32, K33, K34, K35, K36, K37, \
|
{ KC_NO, K31, K32, K33, K34, K35, K36, K37, \
|
||||||
K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO }, \
|
K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO }, \
|
||||||
{ K40, K41, K42, K43, K44, K45, K46, K47, \
|
{ K40, K41, K42, K43, K44, K45, K46, K47, \
|
||||||
K48, K49, K4A, K4B, KC_NO, KC_NO, K4E, KC_NO }, \
|
K48, K49, K4A, K4B, KC_NO, KC_NO, K4E, KC_NO } \
|
||||||
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
|
|
||||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
|
|
||||||
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
|
|
||||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
|
|
||||||
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
|
|
||||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \
|
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
KEYMAP(
|
KEYMAP(
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# The default keymap for the FC660C with Via enabled
|
||||||
|
|
||||||
|
Emulates original keymap.
|
||||||
|
|
||||||
|

|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_INS,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, KC_DEL,
|
||||||
|
KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT,
|
||||||
|
KC_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,KC_RCTL,MO(1), KC_LEFT,KC_DOWN,KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
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_PSCR,KC_SLCK,KC_PAUS,_______,_______,_______, _______,
|
||||||
|
_______,_______,_______,_______,_______,_______,_______,_______,KC_HOME,KC_PGUP,_______,_______, _______,
|
||||||
|
_______,_______,_______,_______,_______,_______,_______,_______,KC_END, KC_PGDN,_______,_______, _______,
|
||||||
|
_______,_______,_______, _______, _______,_______,_______, _______,_______,_______
|
||||||
|
),
|
||||||
|
[2] = LAYOUT(
|
||||||
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,
|
||||||
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,
|
||||||
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,
|
||||||
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,
|
||||||
|
_______,_______,_______, _______, _______,_______,_______, _______,_______,_______
|
||||||
|
),
|
||||||
|
[3] = LAYOUT(
|
||||||
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,
|
||||||
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,
|
||||||
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,
|
||||||
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,
|
||||||
|
_______,_______,_______, _______, _______,_______,_______, _______,_______,_______
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
|
LTO_ENABLE = yes
|
||||||
+553
-17
@@ -6,38 +6,574 @@
|
|||||||
"height": 5,
|
"height": 5,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT_all": {
|
"LAYOUT_all": {
|
||||||
"key_count":65,
|
"layout": [
|
||||||
"layout": [{"label":"~","x":0,"y":0},{"label":"!","x":1,"y":0},{"label":"@","x":2,"y":0},{"label":"#","x":3,"y":0},{"label":"$","x":4,"y":0},{"label":"%","x":5,"y":0},{"label":"^","x":6,"y":0},{"label":"&","x":7,"y":0},{"label":"*","x":8,"y":0},{"label":"(","x":9,"y":0},{"label":")","x":10,"y":0},{"label":"_","x":11,"y":0},{"label":"+","x":12,"y":0},{"label":"Backspace","x":13,"y":0},{"label":"Backspace Extra","x":14,"y":0},{"label":"Tab","x":0,"y":1,"w":1.5},{"label":"Q","x":1.5,"y":1},{"label":"W","x":2.5,"y":1},{"label":"E","x":3.5,"y":1},{"label":"R","x":4.5,"y":1},{"label":"T","x":5.5,"y":1},{"label":"Y","x":6.5,"y":1},{"label":"U","x":7.5,"y":1},{"label":"I","x":8.5,"y":1},{"label":"O","x":9.5,"y":1},{"label":"P","x":10.5,"y":1},{"label":"{","x":11.5,"y":1},{"label":"}","x":12.5,"y":1},{"label":"|","x":13.5,"y":1,"w":1.5},{"label":"Caps Lock","x":0,"y":2,"w":1.75},{"label":"A","x":1.75,"y":2},{"label":"S","x":2.75,"y":2},{"label":"D","x":3.75,"y":2},{"label":"F","x":4.75,"y":2},{"label":"G","x":5.75,"y":2},{"label":"H","x":6.75,"y":2},{"label":"J","x":7.75,"y":2},{"label":"K","x":8.75,"y":2},{"label":"L","x":9.75,"y":2},{"label":":","x":10.75,"y":2},{"label":"\"","x":11.75,"y":2},{"label":"ISO Hash","x":12.75,"y":2},{"label":"Enter","x":13.75,"y":2,"w":1.25},{"label":"Shift","x":0,"y":3,"w":1.25},{"label":"ISO Backslash","x":1.25,"y":3},{"label":"Z","x":2.25,"y":3},{"label":"X","x":3.25,"y":3},{"label":"C","x":4.25,"y":3},{"label":"V","x":5.25,"y":3},{"label":"B","x":6.25,"y":3},{"label":"N","x":7.25,"y":3},{"label":"M","x":8.25,"y":3},{"label":"<","x":9.25,"y":3},{"label":">","x":10.25,"y":3},{"label":"?","x":11.25,"y":3},{"label":"Shift","x":12.25,"y":3,"w":1.75},{"label":"HHKB Fn","x":14,"y":3},{"label":"Ctrl","x":0,"y":4,"w":1.25},{"label":"Win","x":1.25,"y":4,"w":1.25},{"label":"Alt","x":2.5,"y":4,"w":1.25},{"label":"Space","x":3.75,"y":4,"w":6.25},{"label":"Alt","x":10,"y":4,"w":1.25},{"label":"Win","x":11.25,"y":4,"w":1.25},{"label":"Menu","x":12.5,"y":4,"w":1.25},{"label":"Ctrl","x":13.75,"y":4,"w":1.25}]
|
{"x": 0, "y": 0},
|
||||||
},
|
{"x": 1, "y": 0},
|
||||||
|
{"x": 2, "y": 0},
|
||||||
|
{"x": 3, "y": 0},
|
||||||
|
{"x": 4, "y": 0},
|
||||||
|
{"x": 5, "y": 0},
|
||||||
|
{"x": 6, "y": 0},
|
||||||
|
{"x": 7, "y": 0},
|
||||||
|
{"x": 8, "y": 0},
|
||||||
|
{"x": 9, "y": 0},
|
||||||
|
{"x": 10, "y": 0},
|
||||||
|
{"x": 11, "y": 0},
|
||||||
|
{"x": 12, "y": 0},
|
||||||
|
{"x": 13, "y": 0},
|
||||||
|
{"x": 14, "y": 0},
|
||||||
|
|
||||||
|
{"x": 0, "y": 1, "w": 1.5},
|
||||||
|
{"x": 1.5, "y": 1},
|
||||||
|
{"x": 2.5, "y": 1},
|
||||||
|
{"x": 3.5, "y": 1},
|
||||||
|
{"x": 4.5, "y": 1},
|
||||||
|
{"x": 5.5, "y": 1},
|
||||||
|
{"x": 6.5, "y": 1},
|
||||||
|
{"x": 7.5, "y": 1},
|
||||||
|
{"x": 8.5, "y": 1},
|
||||||
|
{"x": 9.5, "y": 1},
|
||||||
|
{"x": 10.5, "y": 1},
|
||||||
|
{"x": 11.5, "y": 1},
|
||||||
|
{"x": 12.5, "y": 1},
|
||||||
|
{"x": 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, "w": 1.25},
|
||||||
|
{"x": 11.25, "y": 4, "w": 1.25},
|
||||||
|
{"x": 12.5, "y": 4, "w": 1.25},
|
||||||
|
{"x": 13.75, "y": 4, "w": 1.25}
|
||||||
|
]
|
||||||
|
},
|
||||||
"LAYOUT": {
|
"LAYOUT": {
|
||||||
"key_count":65,
|
"layout": [
|
||||||
"layout": [{"label":"~","x":0,"y":0},{"label":"!","x":1,"y":0},{"label":"@","x":2,"y":0},{"label":"#","x":3,"y":0},{"label":"$","x":4,"y":0},{"label":"%","x":5,"y":0},{"label":"^","x":6,"y":0},{"label":"&","x":7,"y":0},{"label":"*","x":8,"y":0},{"label":"(","x":9,"y":0},{"label":")","x":10,"y":0},{"label":"_","x":11,"y":0},{"label":"+","x":12,"y":0},{"label":"Backspace","x":13,"y":0},{"label":"Tab","x":0,"y":1,"w":1.5},{"label":"Q","x":1.5,"y":1},{"label":"W","x":2.5,"y":1},{"label":"E","x":3.5,"y":1},{"label":"R","x":4.5,"y":1},{"label":"T","x":5.5,"y":1},{"label":"Y","x":6.5,"y":1},{"label":"U","x":7.5,"y":1},{"label":"I","x":8.5,"y":1},{"label":"O","x":9.5,"y":1},{"label":"P","x":10.5,"y":1},{"label":"{","x":11.5,"y":1},{"label":"}","x":12.5,"y":1},{"label":"|","x":13.5,"y":1,"w":1.5},{"label":"Caps Lock","x":0,"y":2,"w":1.75},{"label":"A","x":1.75,"y":2},{"label":"S","x":2.75,"y":2},{"label":"D","x":3.75,"y":2},{"label":"F","x":4.75,"y":2},{"label":"G","x":5.75,"y":2},{"label":"H","x":6.75,"y":2},{"label":"J","x":7.75,"y":2},{"label":"K","x":8.75,"y":2},{"label":"L","x":9.75,"y":2},{"label":":","x":10.75,"y":2},{"label":"\"","x":11.75,"y":2},{"label":"ISO Hash","x":12.75,"y":2},{"label":"Enter","x":13.75,"y":2,"w":1.25},{"label":"Shift","x":0,"y":3,"w":1.25},{"label":"ISO Backslash","x":1.25,"y":3},{"label":"Z","x":2.25,"y":3},{"label":"X","x":3.25,"y":3},{"label":"C","x":4.25,"y":3},{"label":"V","x":5.25,"y":3},{"label":"B","x":6.25,"y":3},{"label":"N","x":7.25,"y":3},{"label":"M","x":8.25,"y":3},{"label":"<","x":9.25,"y":3},{"label":">","x":10.25,"y":3},{"label":"?","x":11.25,"y":3},{"label":"Shift","x":12.25,"y":3,"w":1.75},{"label":"HHKB Fn","x":14,"y":3},{"label":"Ctrl","x":0,"y":4,"w":1.25},{"label":"Win","x":1.25,"y":4,"w":1.25},{"label":"Alt","x":2.5,"y":4,"w":1.25},{"label":"Space","x":3.75,"y":4,"w":6.25},{"label":"Backspace Extra","x":14,"y":0},{"label":"Alt","x":10,"y":4,"w":1.25},{"label":"Win","x":11.25,"y":4,"w":1.25},{"label":"Menu","x":12.5,"y":4,"w":1.25},{"label":"Ctrl","x":13.75,"y":4,"w":1.25}]
|
{"x": 0, "y": 0},
|
||||||
|
{"x": 1, "y": 0},
|
||||||
|
{"x": 2, "y": 0},
|
||||||
|
{"x": 3, "y": 0},
|
||||||
|
{"x": 4, "y": 0},
|
||||||
|
{"x": 5, "y": 0},
|
||||||
|
{"x": 6, "y": 0},
|
||||||
|
{"x": 7, "y": 0},
|
||||||
|
{"x": 8, "y": 0},
|
||||||
|
{"x": 9, "y": 0},
|
||||||
|
{"x": 10, "y": 0},
|
||||||
|
{"x": 11, "y": 0},
|
||||||
|
{"x": 12, "y": 0},
|
||||||
|
{"x": 13, "y": 0},
|
||||||
|
|
||||||
|
{"x": 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": 14, "y": 0},
|
||||||
|
{"x": 10, "y": 4, "w": 1.25},
|
||||||
|
{"x": 11.25, "y": 4, "w": 1.25},
|
||||||
|
{"x": 12.5, "y": 4, "w": 1.25},
|
||||||
|
{"x": 13.75, "y": 4, "w": 1.25}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
"LAYOUT_60_ansi": {
|
"LAYOUT_60_ansi": {
|
||||||
"key_count":61,
|
"layout": [
|
||||||
"layout": [{"label":"~","x":0,"y":0},{"label":"!","x":1,"y":0},{"label":"@","x":2,"y":0},{"label":"#","x":3,"y":0},{"label":"$","x":4,"y":0},{"label":"%","x":5,"y":0},{"label":"^","x":6,"y":0},{"label":"&","x":7,"y":0},{"label":"*","x":8,"y":0},{"label":"(","x":9,"y":0},{"label":")","x":10,"y":0},{"label":"_","x":11,"y":0},{"label":"+","x":12,"y":0},{"label":"Backspace","x":13,"y":0,"w":2},{"label":"Tab","x":0,"y":1,"w":1.5},{"label":"Q","x":1.5,"y":1},{"label":"W","x":2.5,"y":1},{"label":"E","x":3.5,"y":1},{"label":"R","x":4.5,"y":1},{"label":"T","x":5.5,"y":1},{"label":"Y","x":6.5,"y":1},{"label":"U","x":7.5,"y":1},{"label":"I","x":8.5,"y":1},{"label":"O","x":9.5,"y":1},{"label":"P","x":10.5,"y":1},{"label":"{","x":11.5,"y":1},{"label":"}","x":12.5,"y":1},{"label":"|","x":13.5,"y":1,"w":1.5},{"label":"Caps Lock","x":0,"y":2,"w":1.75},{"label":"A","x":1.75,"y":2},{"label":"S","x":2.75,"y":2},{"label":"D","x":3.75,"y":2},{"label":"F","x":4.75,"y":2},{"label":"G","x":5.75,"y":2},{"label":"H","x":6.75,"y":2},{"label":"J","x":7.75,"y":2},{"label":"K","x":8.75,"y":2},{"label":"L","x":9.75,"y":2},{"label":":","x":10.75,"y":2},{"label":"\"","x":11.75,"y":2},{"label":"Enter","x":12.75,"y":2,"w":2.25},{"label":"Shift","x":0,"y":3,"w":2.25},{"label":"Z","x":2.25,"y":3},{"label":"X","x":3.25,"y":3},{"label":"C","x":4.25,"y":3},{"label":"V","x":5.25,"y":3},{"label":"B","x":6.25,"y":3},{"label":"N","x":7.25,"y":3},{"label":"M","x":8.25,"y":3},{"label":"<","x":9.25,"y":3},{"label":">","x":10.25,"y":3},{"label":"?","x":11.25,"y":3},{"label":"Shift","x":12.25,"y":3,"w":2.75},{"label":"Ctrl","x":0,"y":4,"w":1.25},{"label":"Win","x":1.25,"y":4,"w":1.25},{"label":"Alt","x":2.5,"y":4,"w":1.25},{"label":"Space","x":3.75,"y":4,"w":6.25},{"label":"Alt","x":10,"y":4,"w":1.25},{"label":"Win","x":11.25,"y":4,"w":1.25},{"label":"Menu","x":12.5,"y":4,"w":1.25},{"label":"Ctrl","x":13.75,"y":4,"w":1.25}]
|
{"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.25},
|
||||||
|
{"x": 2.25, "y": 3},
|
||||||
|
{"x": 3.25, "y": 3},
|
||||||
|
{"x": 4.25, "y": 3},
|
||||||
|
{"x": 5.25, "y": 3},
|
||||||
|
{"x": 6.25, "y": 3},
|
||||||
|
{"x": 7.25, "y": 3},
|
||||||
|
{"x": 8.25, "y": 3},
|
||||||
|
{"x": 9.25, "y": 3},
|
||||||
|
{"x": 10.25, "y": 3},
|
||||||
|
{"x": 11.25, "y": 3},
|
||||||
|
|
||||||
|
{"x": 12.25, "y": 3, "w": 2.75},
|
||||||
|
{"x": 0, "y": 4, "w": 1.25},
|
||||||
|
{"x": 1.25, "y": 4, "w": 1.25},
|
||||||
|
{"x": 2.5, "y": 4, "w": 1.25},
|
||||||
|
{"x": 3.75, "y": 4, "w": 6.25},
|
||||||
|
{"x": 10, "y": 4, "w": 1.25},
|
||||||
|
{"x": 11.25, "y": 4, "w": 1.25},
|
||||||
|
{"x": 12.5, "y": 4, "w": 1.25},
|
||||||
|
{"x": 13.75, "y": 4, "w": 1.25}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
"LAYOUT_60_iso": {
|
"LAYOUT_60_iso": {
|
||||||
"key_count": 62,
|
"layout": [
|
||||||
"layout": [{"label":"\u00ac", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Space", "x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
|
{"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": 0, "y": 2, "w": 1.75},
|
||||||
|
{"x": 1.75, "y": 2},
|
||||||
|
{"x": 2.75, "y": 2},
|
||||||
|
{"x": 3.75, "y": 2},
|
||||||
|
{"x": 4.75, "y": 2},
|
||||||
|
{"x": 5.75, "y": 2},
|
||||||
|
{"x": 6.75, "y": 2},
|
||||||
|
{"x": 7.75, "y": 2},
|
||||||
|
{"x": 8.75, "y": 2},
|
||||||
|
{"x": 9.75, "y": 2},
|
||||||
|
{"x": 10.75, "y": 2},
|
||||||
|
{"x": 11.75, "y": 2},
|
||||||
|
{"x": 12.75, "y": 2},
|
||||||
|
{"x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||||
|
|
||||||
|
{"x": 0, "y": 3, "w": 1.25},
|
||||||
|
{"x": 1.25, "y": 3},
|
||||||
|
{"x": 2.25, "y": 3},
|
||||||
|
{"x": 3.25, "y": 3},
|
||||||
|
{"x": 4.25, "y": 3},
|
||||||
|
{"x": 5.25, "y": 3},
|
||||||
|
{"x": 6.25, "y": 3},
|
||||||
|
{"x": 7.25, "y": 3},
|
||||||
|
{"x": 8.25, "y": 3},
|
||||||
|
{"x": 9.25, "y": 3},
|
||||||
|
{"x": 10.25, "y": 3},
|
||||||
|
{"x": 11.25, "y": 3},
|
||||||
|
{"x": 12.25, "y": 3, "w": 2.75},
|
||||||
|
|
||||||
|
{"x": 0, "y": 4, "w": 1.25},
|
||||||
|
{"x": 1.25, "y": 4, "w": 1.25},
|
||||||
|
{"x": 2.5, "y": 4, "w": 1.25},
|
||||||
|
{"x": 3.75, "y": 4, "w": 6.25},
|
||||||
|
{"x": 10, "y": 4, "w": 1.25},
|
||||||
|
{"x": 11.25, "y": 4, "w": 1.25},
|
||||||
|
{"x": 12.5, "y": 4, "w": 1.25},
|
||||||
|
{"x": 13.75, "y": 4, "w": 1.25}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
"LAYOUT_60_ansi_split_bs_rshift": {
|
"LAYOUT_60_ansi_split_bs_rshift": {
|
||||||
"key_count":63,
|
"layout": [
|
||||||
"layout": [{"label":"~","x":0,"y":0},{"label":"!","x":1,"y":0},{"label":"@","x":2,"y":0},{"label":"#","x":3,"y":0},{"label":"$","x":4,"y":0},{"label":"%","x":5,"y":0},{"label":"^","x":6,"y":0},{"label":"&","x":7,"y":0},{"label":"*","x":8,"y":0},{"label":"(","x":9,"y":0},{"label":")","x":10,"y":0},{"label":"_","x":11,"y":0},{"label":"+","x":12,"y":0},{"label":"Backspace","x":13,"y":0},{"label":"Backspace Extra","x":14,"y":0},{"label":"Tab","x":0,"y":1,"w":1.5},{"label":"Q","x":1.5,"y":1},{"label":"W","x":2.5,"y":1},{"label":"E","x":3.5,"y":1},{"label":"R","x":4.5,"y":1},{"label":"T","x":5.5,"y":1},{"label":"Y","x":6.5,"y":1},{"label":"U","x":7.5,"y":1},{"label":"I","x":8.5,"y":1},{"label":"O","x":9.5,"y":1},{"label":"P","x":10.5,"y":1},{"label":"{","x":11.5,"y":1},{"label":"}","x":12.5,"y":1},{"label":"|","x":13.5,"y":1,"w":1.5},{"label":"Caps Lock","x":0,"y":2,"w":1.75},{"label":"A","x":1.75,"y":2},{"label":"S","x":2.75,"y":2},{"label":"D","x":3.75,"y":2},{"label":"F","x":4.75,"y":2},{"label":"G","x":5.75,"y":2},{"label":"H","x":6.75,"y":2},{"label":"J","x":7.75,"y":2},{"label":"K","x":8.75,"y":2},{"label":"L","x":9.75,"y":2},{"label":":","x":10.75,"y":2},{"label":"\"","x":11.75,"y":2},{"label":"Enter","x":12.75,"y":2,"w":2.25},{"label":"Shift","x":0,"y":3,"w":2.25},{"label":"Z","x":2.25,"y":3},{"label":"X","x":3.25,"y":3},{"label":"C","x":4.25,"y":3},{"label":"V","x":5.25,"y":3},{"label":"B","x":6.25,"y":3},{"label":"N","x":7.25,"y":3},{"label":"M","x":8.25,"y":3},{"label":"<","x":9.25,"y":3},{"label":">","x":10.25,"y":3},{"label":"?","x":11.25,"y":3},{"label":"Shift","x":12.25,"y":3,"w":1.75},{"label":"HHKB Fn","x":14,"y":3},{"label":"Ctrl","x":0,"y":4,"w":1.5},{"label":"Win","x":1.5,"y":4},{"label":"Alt","x":2.5,"y":4,"w":1.5},{"label":"Space","x":4,"y":4,"w":6},{"label":"Alt","x":10,"y":4,"w":1.5},{"label":"Win","x":11.5,"y":4},{"label":"Menu","x":12.5,"y":4},{"label":"Ctrl","x":13.5,"y":4,"w":1.5}]
|
{"x": 0, "y": 0},
|
||||||
},
|
{"x": 1, "y": 0},
|
||||||
|
{"x": 2, "y": 0},
|
||||||
|
{"x": 3, "y": 0},
|
||||||
|
{"x": 4, "y": 0},
|
||||||
|
{"x": 5, "y": 0},
|
||||||
|
{"x": 6, "y": 0},
|
||||||
|
{"x": 7, "y": 0},
|
||||||
|
{"x": 8, "y": 0},
|
||||||
|
{"x": 9, "y": 0},
|
||||||
|
{"x": 10, "y": 0},
|
||||||
|
{"x": 11, "y": 0},
|
||||||
|
{"x": 12, "y": 0},
|
||||||
|
{"x": 13, "y": 0},
|
||||||
|
{"x": 14, "y": 0},
|
||||||
|
|
||||||
|
{"x": 0, "y": 1, "w": 1.5},
|
||||||
|
{"x": 1.5, "y": 1},
|
||||||
|
{"x": 2.5, "y": 1},
|
||||||
|
{"x": 3.5, "y": 1},
|
||||||
|
{"x": 4.5, "y": 1},
|
||||||
|
{"x": 5.5, "y": 1},
|
||||||
|
{"x": 6.5, "y": 1},
|
||||||
|
{"x": 7.5, "y": 1},
|
||||||
|
{"x": 8.5, "y": 1},
|
||||||
|
{"x": 9.5, "y": 1},
|
||||||
|
{"x": 10.5, "y": 1},
|
||||||
|
{"x": 11.5, "y": 1},
|
||||||
|
{"x": 12.5, "y": 1},
|
||||||
|
{"x": 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.25},
|
||||||
|
{"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.5},
|
||||||
|
{"x": 1.5, "y": 4},
|
||||||
|
{"x": 2.5, "y": 4, "w": 1.5},
|
||||||
|
{"x": 4, "y": 4, "w": 6},
|
||||||
|
{"x": 10, "y": 4, "w": 1.5},
|
||||||
|
{"x": 11.5, "y": 4},
|
||||||
|
{"x": 12.5, "y": 4},
|
||||||
|
{"x": 13.5, "y": 4, "w": 1.5}
|
||||||
|
]
|
||||||
|
},
|
||||||
"LAYOUT_60_ansi_split_rshift": {
|
"LAYOUT_60_ansi_split_rshift": {
|
||||||
"key_count": 62,
|
"layout": [
|
||||||
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"HHKB Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Space", "x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
|
{"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.25},
|
||||||
|
{"x": 2.25, "y": 3},
|
||||||
|
{"x": 3.25, "y": 3},
|
||||||
|
{"x": 4.25, "y": 3},
|
||||||
|
{"x": 5.25, "y": 3},
|
||||||
|
{"x": 6.25, "y": 3},
|
||||||
|
{"x": 7.25, "y": 3},
|
||||||
|
{"x": 8.25, "y": 3},
|
||||||
|
{"x": 9.25, "y": 3},
|
||||||
|
{"x": 10.25, "y": 3},
|
||||||
|
{"x": 11.25, "y": 3},
|
||||||
|
{"x": 12.25, "y": 3, "w": 1.75},
|
||||||
|
{"x": 14, "y": 3},
|
||||||
|
|
||||||
|
{"x": 0, "y": 4, "w": 1.25},
|
||||||
|
{"x": 1.25, "y": 4, "w": 1.25},
|
||||||
|
{"x": 2.5, "y": 4, "w": 1.25},
|
||||||
|
{"x": 3.75, "y": 4, "w": 6.25},
|
||||||
|
{"x": 10, "y": 4, "w": 1.25},
|
||||||
|
{"x": 11.25, "y": 4, "w": 1.25},
|
||||||
|
{"x": 12.5, "y": 4, "w": 1.25},
|
||||||
|
{"x": 13.75, "y": 4, "w": 1.25}
|
||||||
|
]
|
||||||
|
},
|
||||||
"LAYOUT_60_abnt2": {
|
"LAYOUT_60_abnt2": {
|
||||||
"key_count": 63,
|
"layout": [
|
||||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"\u00a8", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"`", "x":11.5, "y":1}, {"label":"{", "x":12.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":"\u00c7", "x":10.75, "y":2}, {"label":"^", "x":11.75, "y":2}, {"label":"}", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":":", "x":11.25, "y":3}, {"label":"?", "x":12.25, "y":3}, {"label":"Shift", "x":13.25, "y":3, "w":1.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
|
{"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": 0, "y": 2, "w": 1.75},
|
||||||
|
{"x": 1.75, "y": 2},
|
||||||
|
{"x": 2.75, "y": 2},
|
||||||
|
{"x": 3.75, "y": 2},
|
||||||
|
{"x": 4.75, "y": 2},
|
||||||
|
{"x": 5.75, "y": 2},
|
||||||
|
{"x": 6.75, "y": 2},
|
||||||
|
{"x": 7.75, "y": 2},
|
||||||
|
{"x": 8.75, "y": 2},
|
||||||
|
{"x": 9.75, "y": 2},
|
||||||
|
{"x": 10.75, "y": 2},
|
||||||
|
{"x": 11.75, "y": 2},
|
||||||
|
{"x": 12.75, "y": 2},
|
||||||
|
{"x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||||
|
|
||||||
|
{"x": 0, "y": 3, "w": 1.25},
|
||||||
|
{"x": 1.25, "y": 3},
|
||||||
|
{"x": 2.25, "y": 3},
|
||||||
|
{"x": 3.25, "y": 3},
|
||||||
|
{"x": 4.25, "y": 3},
|
||||||
|
{"x": 5.25, "y": 3},
|
||||||
|
{"x": 6.25, "y": 3},
|
||||||
|
{"x": 7.25, "y": 3},
|
||||||
|
{"x": 8.25, "y": 3},
|
||||||
|
{"x": 9.25, "y": 3},
|
||||||
|
{"x": 10.25, "y": 3},
|
||||||
|
{"x": 11.25, "y": 3},
|
||||||
|
{"x": 12.25, "y": 3},
|
||||||
|
{"x": 13.25, "y": 3, "w": 1.75},
|
||||||
|
|
||||||
|
{"x": 0, "y": 4, "w": 1.25},
|
||||||
|
{"x": 1.25, "y": 4, "w": 1.25},
|
||||||
|
{"x": 2.5, "y": 4, "w": 1.25},
|
||||||
|
{"x": 3.75, "y": 4, "w": 6.25},
|
||||||
|
{"x": 10, "y": 4, "w": 1.25},
|
||||||
|
{"x": 11.25, "y": 4, "w": 1.25},
|
||||||
|
{"x": 12.5, "y": 4, "w": 1.25},
|
||||||
|
{"x": 13.75, "y": 4, "w": 1.25}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_60_tsangan_hhkb": {
|
||||||
|
"layout": [
|
||||||
|
{"x": 0, "y": 0},
|
||||||
|
{"x": 1, "y": 0},
|
||||||
|
{"x": 2, "y": 0},
|
||||||
|
{"x": 3, "y": 0},
|
||||||
|
{"x": 4, "y": 0},
|
||||||
|
{"x": 5, "y": 0},
|
||||||
|
{"x": 6, "y": 0},
|
||||||
|
{"x": 7, "y": 0},
|
||||||
|
{"x": 8, "y": 0},
|
||||||
|
{"x": 9, "y": 0},
|
||||||
|
{"x": 10, "y": 0},
|
||||||
|
{"x": 11, "y": 0},
|
||||||
|
{"x": 12, "y": 0},
|
||||||
|
{"x": 13, "y": 0},
|
||||||
|
{"x": 14, "y": 0},
|
||||||
|
|
||||||
|
{"x": 0, "y": 1, "w": 1.5},
|
||||||
|
{"x": 1.5, "y": 1},
|
||||||
|
{"x": 2.5, "y": 1},
|
||||||
|
{"x": 3.5, "y": 1},
|
||||||
|
{"x": 4.5, "y": 1},
|
||||||
|
{"x": 5.5, "y": 1},
|
||||||
|
{"x": 6.5, "y": 1},
|
||||||
|
{"x": 7.5, "y": 1},
|
||||||
|
{"x": 8.5, "y": 1},
|
||||||
|
{"x": 9.5, "y": 1},
|
||||||
|
{"x": 10.5, "y": 1},
|
||||||
|
{"x": 11.5, "y": 1},
|
||||||
|
{"x": 12.5, "y": 1},
|
||||||
|
{"x": 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.25},
|
||||||
|
{"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.5},
|
||||||
|
{"x": 1.5, "y": 4},
|
||||||
|
{"x": 2.5, "y": 4, "w": 1.5},
|
||||||
|
{"x": 4, "y": 4, "w": 7},
|
||||||
|
{"x": 11, "y": 4, "w": 1.5},
|
||||||
|
{"x": 12.5, "y": 4},
|
||||||
|
{"x": 13.5, "y": 4, "w": 1.5}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,196 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 Gone Hacking Studio
|
||||||
|
|
||||||
|
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 0x0645
|
||||||
|
#define PRODUCT_ID 0x0001
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER Gone Hacking Studio
|
||||||
|
#define PRODUCT GHS.RAR
|
||||||
|
#define DESCRIPTION A 75% keyboard
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 12
|
||||||
|
#define MATRIX_COLS 8
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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, B7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2 }
|
||||||
|
#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, D1 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL*/
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
// #define BACKLIGHT_PIN B7
|
||||||
|
// #define BACKLIGHT_BREATHING
|
||||||
|
// #define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
|
#define RGB_DI_PIN D0
|
||||||
|
#ifdef RGB_DI_PIN
|
||||||
|
#define RGBLED_NUM 17
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* 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 userful 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
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Magic Key Options
|
||||||
|
*
|
||||||
|
* Magic keys are hotkey commands that allow control over firmware functions of
|
||||||
|
* the keyboard. They are best used in combination with the HID Listen program,
|
||||||
|
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||||
|
*
|
||||||
|
* The options below allow the magic key functionality to be changed. This is
|
||||||
|
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* key combination for magic key command */
|
||||||
|
/* defined by default; to change, uncomment and set to the combination you want */
|
||||||
|
// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
|
||||||
|
|
||||||
|
/* control how magic key switches layers */
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||||
|
|
||||||
|
/* override magic key keymap */
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||||
|
//#define MAGIC_KEY_HELP H
|
||||||
|
//#define MAGIC_KEY_HELP_ALT SLASH
|
||||||
|
//#define MAGIC_KEY_DEBUG D
|
||||||
|
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||||
|
//#define MAGIC_KEY_DEBUG_KBD K
|
||||||
|
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||||
|
//#define MAGIC_KEY_VERSION V
|
||||||
|
//#define MAGIC_KEY_STATUS S
|
||||||
|
//#define MAGIC_KEY_CONSOLE C
|
||||||
|
//#define MAGIC_KEY_LAYER0 0
|
||||||
|
//#define MAGIC_KEY_LAYER0_ALT GRAVE
|
||||||
|
//#define MAGIC_KEY_LAYER1 1
|
||||||
|
//#define MAGIC_KEY_LAYER2 2
|
||||||
|
//#define MAGIC_KEY_LAYER3 3
|
||||||
|
//#define MAGIC_KEY_LAYER4 4
|
||||||
|
//#define MAGIC_KEY_LAYER5 5
|
||||||
|
//#define MAGIC_KEY_LAYER6 6
|
||||||
|
//#define MAGIC_KEY_LAYER7 7
|
||||||
|
//#define MAGIC_KEY_LAYER8 8
|
||||||
|
//#define MAGIC_KEY_LAYER9 9
|
||||||
|
//#define MAGIC_KEY_BOOTLOADER B
|
||||||
|
//#define MAGIC_KEY_BOOTLOADER_ALT ESC
|
||||||
|
//#define MAGIC_KEY_LOCK CAPS
|
||||||
|
//#define MAGIC_KEY_EEPROM E
|
||||||
|
//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
|
||||||
|
//#define MAGIC_KEY_NKRO N
|
||||||
|
//#define MAGIC_KEY_SLEEP_LED Z
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MIDI options
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Prevent use of disabled MIDI features in the keymap */
|
||||||
|
//#define MIDI_ENABLE_STRICT 1
|
||||||
|
|
||||||
|
/* enable basic MIDI features:
|
||||||
|
- MIDI notes can be sent when in Music mode is on
|
||||||
|
*/
|
||||||
|
//#define MIDI_BASIC
|
||||||
|
|
||||||
|
/* enable advanced MIDI features:
|
||||||
|
- MIDI notes can be added to the keymap
|
||||||
|
- Octave shift and transpose
|
||||||
|
- Virtual sustain, portamento, and modulation wheel
|
||||||
|
- etc.
|
||||||
|
*/
|
||||||
|
//#define MIDI_ADVANCED
|
||||||
|
|
||||||
|
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||||
|
//#define MIDI_TONE_KEYCODE_OCTAVES 1
|
||||||
|
|
||||||
|
/* Bootmagic Lite key configuration */
|
||||||
|
// #define BOOTMAGIC_LITE_ROW 0
|
||||||
|
// #define BOOTMAGIC_LITE_COLUMN 0
|
||||||
@@ -0,0 +1,512 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "GHS.RAR",
|
||||||
|
"url": "https://gonehacking.studio/",
|
||||||
|
"maintainer": "Gone Hacking Studio",
|
||||||
|
"width": 16.5,
|
||||||
|
"height": 6.75,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_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": 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": 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": 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": 15.5, "y": 3.5},
|
||||||
|
|
||||||
|
{"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": 1.75},
|
||||||
|
|
||||||
|
{"x": 14.25, "y": 4.75},
|
||||||
|
|
||||||
|
{"x": 15.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.5},
|
||||||
|
{"x": 11.5, "y": 5.5, "w": 1.5},
|
||||||
|
|
||||||
|
{"x": 13.25, "y": 5.75},
|
||||||
|
{"x": 14.25, "y": 5.75},
|
||||||
|
{"x": 15.25, "y": 5.75}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_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": 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": 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": 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": 15.5, "y": 3.5},
|
||||||
|
|
||||||
|
{"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": 1.75},
|
||||||
|
|
||||||
|
{"x": 14.25, "y": 4.75},
|
||||||
|
|
||||||
|
{"x": 15.5, "y": 4.5},
|
||||||
|
|
||||||
|
{"x": 0, "y": 5.5, "w": 1.5},
|
||||||
|
{"x": 1.5, "y": 5.5, "w": 1.5},
|
||||||
|
{"x": 3, "y": 5.5, "w": 7},
|
||||||
|
{"x": 10, "y": 5.5, "w": 1.5},
|
||||||
|
{"x": 11.5, "y": 5.5, "w": 1.5},
|
||||||
|
|
||||||
|
{"x": 13.25, "y": 5.75},
|
||||||
|
{"x": 14.25, "y": 5.75},
|
||||||
|
{"x": 15.25, "y": 5.75}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_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": 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": 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": 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": 15.5, "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": 1.75},
|
||||||
|
|
||||||
|
{"x": 14.25, "y": 4.75},
|
||||||
|
|
||||||
|
{"x": 15.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.5},
|
||||||
|
{"x": 11.5, "y": 5.5, "w": 1.5},
|
||||||
|
|
||||||
|
{"x": 13.25, "y": 5.75},
|
||||||
|
{"x": 14.25, "y": 5.75},
|
||||||
|
{"x": 15.25, "y": 5.75}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_iso_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": 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": 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": 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": 15.5, "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": 1.75},
|
||||||
|
|
||||||
|
{"x": 14.25, "y": 4.75},
|
||||||
|
|
||||||
|
{"x": 15.5, "y": 4.5},
|
||||||
|
|
||||||
|
{"x": 0, "y": 5.5, "w": 1.5},
|
||||||
|
{"x": 1.5, "y": 5.5, "w": 1.5},
|
||||||
|
{"x": 3, "y": 5.5, "w": 7},
|
||||||
|
{"x": 10, "y": 5.5, "w": 1.5},
|
||||||
|
{"x": 11.5, "y": 5.5, "w": 1.5},
|
||||||
|
|
||||||
|
{"x": 13.25, "y": 5.75},
|
||||||
|
{"x": 14.25, "y": 5.75},
|
||||||
|
{"x": 15.25, "y": 5.75}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"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": 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": 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": 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": 15.5, "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": 1.75},
|
||||||
|
|
||||||
|
{"x": 14.25, "y": 4.75},
|
||||||
|
|
||||||
|
{"x": 15.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},
|
||||||
|
{"x": 11, "y": 5.5},
|
||||||
|
{"x": 12, "y": 5.5},
|
||||||
|
|
||||||
|
{"x": 13.25, "y": 5.75},
|
||||||
|
{"x": 14.25, "y": 5.75},
|
||||||
|
{"x": 15.25, "y": 5.75}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
/* Copyright 2020 Gone Hacking Studio
|
||||||
|
*
|
||||||
|
* 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] = {
|
||||||
|
/* Base */
|
||||||
|
[_BASE] = LAYOUT_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_DEL,
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[_FN] = LAYOUT_ansi(
|
||||||
|
RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SAI,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SAD,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAI, RGB_HUD,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_MOD, RGB_VAD, RGB_RMOD
|
||||||
|
)
|
||||||
|
};
|
||||||
Loaded 100 of 346 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user