Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a2e91ebec9 | ||
|
|
a40dbf94e8 | ||
|
|
1c0a7ad6c2 | ||
|
|
6b1db7da23 | ||
|
|
001a6c24ae | ||
|
|
b1fc3f35c6 | ||
|
|
e040028f1b | ||
|
|
d417b0cc7d | ||
|
|
b12b26946d | ||
|
|
918fb7f8da | ||
|
|
455f15528c | ||
|
|
00c6892b3f | ||
|
|
171f7c561b | ||
|
|
5b4187ad1b | ||
|
|
d5b01bd34b | ||
|
|
1650ba00f1 | ||
|
|
f9d47ebe2f | ||
|
|
05990c9bda |
No files matched your search
@@ -89,7 +89,7 @@ This is a C header file that is one of the first things included, and will persi
|
|||||||
* mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
|
* mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
|
||||||
* `#define LOCKING_RESYNC_ENABLE`
|
* `#define LOCKING_RESYNC_ENABLE`
|
||||||
* tries to keep switch state consistent with keyboard LED state
|
* tries to keep switch state consistent with keyboard LED state
|
||||||
* `#define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))`
|
* `#define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)`
|
||||||
* key combination that allows the use of magic commands (useful for debugging)
|
* key combination that allows the use of magic commands (useful for debugging)
|
||||||
* `#define USB_MAX_POWER_CONSUMPTION`
|
* `#define USB_MAX_POWER_CONSUMPTION`
|
||||||
* sets the maximum power (in mA) over USB for the device (default: 500)
|
* sets the maximum power (in mA) over USB for the device (default: 500)
|
||||||
|
|||||||
+4
-6
@@ -49,15 +49,13 @@ Pro Micro (Atmega32u4), make sure to include `CONFIG_USB_ACM=y`. Other devices m
|
|||||||
|
|
||||||
## Unknown Device for DFU Bootloader
|
## Unknown Device for DFU Bootloader
|
||||||
|
|
||||||
If you're using Windows to flash your keyboard, and you are running into issues, check the Device Manager. If you see an "Unknown Device" when the keyboard is in "bootloader mode", then you may have a driver issue.
|
Issues encountered when flashing keyboards on Windows are most often due to having the wrong drivers installed for the bootloader.
|
||||||
|
|
||||||
Re-running the installation script for MSYS2 may help (eg run `./util/qmk_install.sh` from MSYS2/WSL) or reinstalling the QMK Toolbox may fix the issue.
|
Re-running the installation script for MSYS2 may help (eg run `util/qmk_install.sh` from MSYS2/WSL) or reinstalling the QMK Toolbox may fix the issue. Alternatively, you can download and run the [`qmk_driver_installer`](https://github.com/qmk/qmk_driver_installer) package.
|
||||||
|
|
||||||
If that doesn't work, then you may need to grab the [Zadig Utility](https://zadig.akeo.ie/). Download this, find the device in question, and select the `WinUSB` option, and hit "Reinstall driver". Once you've done that, try flashing your board, again. If that doesn't work, try all of the options, until one works.
|
If that doesn't work, then you may need to grab the [Zadig Utility](https://zadig.akeo.ie/). Download this, and run it on the system. Then, you will need to reset your board into bootloader mode. After that, locate the device in question. If the device doesn't show up in the list (or nothing shows up in the list), you may need to enable the `List all devices` option in the `Options` menu.
|
||||||
|
|
||||||
?> There isn't a best option for which driver should be used here. Some options work better on some systems than others. libUSB and WinUSB seem to be the best options here.
|
From here, you will need to know what type of controller the board is using. You may see it listed in the Device Manager as `ATmega32U4` device (which is an AVR board), or an `STM32` device (Which is an ARM board). For AVR boards, use `libusb-win32` for the driver. For ARM boards, use the `WinUSB` driver. Once the correct driver type has been selected, click on the `Replace Driver` button, unplug your board, plug it back in, and reset it again.
|
||||||
|
|
||||||
If the bootloader doesn't show up in the list for devices, you may need to enable the "List all devices" option in the `Options` menu, and then find the bootloader in question.
|
|
||||||
|
|
||||||
|
|
||||||
## WINAVR is Obsolete
|
## WINAVR is Obsolete
|
||||||
|
|||||||
@@ -73,8 +73,10 @@ To change the behaviour of the backlighting, `#define` these in your `config.h`:
|
|||||||
|
|
||||||
## Backlight On State
|
## 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, *low*.
|
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 you must `#define BACKLIGHT_ON_STATE 1`, so that when the transistor is on, the pin is driven *high* 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.
|
||||||
|
|
||||||
## Multiple backlight pins
|
## Multiple backlight pins
|
||||||
|
|
||||||
|
|||||||
+33
-33
@@ -16,36 +16,36 @@ To use Command, hold down the key combination defined by the `IS_COMMAND()` macr
|
|||||||
|
|
||||||
If you would like to change the key assignments for Command, `#define` these in your `config.h` at either the keyboard or keymap level. All keycode assignments here must omit the `KC_` prefix.
|
If you would like to change the key assignments for Command, `#define` these in your `config.h` at either the keyboard or keymap level. All keycode assignments here must omit the `KC_` prefix.
|
||||||
|
|
||||||
|Define |Default |Description |
|
|Define |Default |Description |
|
||||||
|------------------------------------|---------------------------------------------------------------------------|------------------------------------------------|
|
|------------------------------------|--------------------------------|------------------------------------------------|
|
||||||
|`IS_COMMAND()` |<code>(get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))</code>|The key combination to activate Command |
|
|`IS_COMMAND()` |`(get_mods() == MOD_MASK_SHIFT)`|The key combination to activate Command |
|
||||||
|`MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS` |`true` |Set default layer with the Function row |
|
|`MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS` |`true` |Set default layer with the Function row |
|
||||||
|`MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS` |`true` |Set default layer with the number keys |
|
|`MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS` |`true` |Set default layer with the number keys |
|
||||||
|`MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM`|`false` |Set default layer with `MAGIC_KEY_LAYER0..9` |
|
|`MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM`|`false` |Set default layer with `MAGIC_KEY_LAYER0..9` |
|
||||||
|`MAGIC_KEY_DEBUG` |`D` |Toggle debugging over serial |
|
|`MAGIC_KEY_DEBUG` |`D` |Toggle debugging over serial |
|
||||||
|`MAGIC_KEY_DEBUG_MATRIX` |`X` |Toggle key matrix debugging |
|
|`MAGIC_KEY_DEBUG_MATRIX` |`X` |Toggle key matrix debugging |
|
||||||
|`MAGIC_KEY_DEBUG_KBD` |`K` |Toggle keyboard debugging |
|
|`MAGIC_KEY_DEBUG_KBD` |`K` |Toggle keyboard debugging |
|
||||||
|`MAGIC_KEY_DEBUG_MOUSE` |`M` |Toggle mouse debugging |
|
|`MAGIC_KEY_DEBUG_MOUSE` |`M` |Toggle mouse debugging |
|
||||||
|`MAGIC_KEY_CONSOLE` |`C` |Enable the Command console |
|
|`MAGIC_KEY_CONSOLE` |`C` |Enable the Command console |
|
||||||
|`MAGIC_KEY_VERSION` |`V` |Print the running QMK version to the console |
|
|`MAGIC_KEY_VERSION` |`V` |Print the running QMK version to the console |
|
||||||
|`MAGIC_KEY_STATUS` |`S` |Print the current keyboard status to the console|
|
|`MAGIC_KEY_STATUS` |`S` |Print the current keyboard status to the console|
|
||||||
|`MAGIC_KEY_HELP` |`H` |Print Command help to the console |
|
|`MAGIC_KEY_HELP` |`H` |Print Command help to the console |
|
||||||
|`MAGIC_KEY_HELP_ALT` |`SLASH` |Print Command help to the console (alternate) |
|
|`MAGIC_KEY_HELP_ALT` |`SLASH` |Print Command help to the console (alternate) |
|
||||||
|`MAGIC_KEY_LAYER0` |`0` |Make layer 0 the default layer |
|
|`MAGIC_KEY_LAYER0` |`0` |Make layer 0 the default layer |
|
||||||
|`MAGIC_KEY_LAYER0_ALT` |`GRAVE` |Make layer 0 the default layer (alternate) |
|
|`MAGIC_KEY_LAYER0_ALT` |`GRAVE` |Make layer 0 the default layer (alternate) |
|
||||||
|`MAGIC_KEY_LAYER1` |`1` |Make layer 1 the default layer |
|
|`MAGIC_KEY_LAYER1` |`1` |Make layer 1 the default layer |
|
||||||
|`MAGIC_KEY_LAYER2` |`2` |Make layer 2 the default layer |
|
|`MAGIC_KEY_LAYER2` |`2` |Make layer 2 the default layer |
|
||||||
|`MAGIC_KEY_LAYER3` |`3` |Make layer 3 the default layer |
|
|`MAGIC_KEY_LAYER3` |`3` |Make layer 3 the default layer |
|
||||||
|`MAGIC_KEY_LAYER4` |`4` |Make layer 4 the default layer |
|
|`MAGIC_KEY_LAYER4` |`4` |Make layer 4 the default layer |
|
||||||
|`MAGIC_KEY_LAYER5` |`5` |Make layer 5 the default layer |
|
|`MAGIC_KEY_LAYER5` |`5` |Make layer 5 the default layer |
|
||||||
|`MAGIC_KEY_LAYER6` |`6` |Make layer 6 the default layer |
|
|`MAGIC_KEY_LAYER6` |`6` |Make layer 6 the default layer |
|
||||||
|`MAGIC_KEY_LAYER7` |`7` |Make layer 7 the default layer |
|
|`MAGIC_KEY_LAYER7` |`7` |Make layer 7 the default layer |
|
||||||
|`MAGIC_KEY_LAYER8` |`8` |Make layer 8 the default layer |
|
|`MAGIC_KEY_LAYER8` |`8` |Make layer 8 the default layer |
|
||||||
|`MAGIC_KEY_LAYER9` |`9` |Make layer 9 the default layer |
|
|`MAGIC_KEY_LAYER9` |`9` |Make layer 9 the default layer |
|
||||||
|`MAGIC_KEY_BOOTLOADER` |`B` |Jump to bootloader |
|
|`MAGIC_KEY_BOOTLOADER` |`B` |Jump to bootloader |
|
||||||
|`MAGIC_KEY_BOOTLOADER_ALT` |`ESC` |Jump to bootloader (alternate) |
|
|`MAGIC_KEY_BOOTLOADER_ALT` |`ESC` |Jump to bootloader (alternate) |
|
||||||
|`MAGIC_KEY_LOCK` |`CAPS` |Lock the keyboard so nothing can be typed |
|
|`MAGIC_KEY_LOCK` |`CAPS` |Lock the keyboard so nothing can be typed |
|
||||||
|`MAGIC_KEY_EEPROM` |`E` |Print stored EEPROM config to the console |
|
|`MAGIC_KEY_EEPROM` |`E` |Print stored EEPROM config to the console |
|
||||||
|`MAGIC_KEY_EEPROM_CLEAR` |`BSPACE` |Clear the EEPROM |
|
|`MAGIC_KEY_EEPROM_CLEAR` |`BSPACE` |Clear the EEPROM |
|
||||||
|`MAGIC_KEY_NKRO` |`N` |Toggle N-Key Rollover (NKRO) |
|
|`MAGIC_KEY_NKRO` |`N` |Toggle N-Key Rollover (NKRO) |
|
||||||
|`MAGIC_KEY_SLEEP_LED` |`Z` |Toggle LED when computer is sleeping |
|
|`MAGIC_KEY_SLEEP_LED` |`Z` |Toggle LED when computer is sleeping |
|
||||||
+109
-100
@@ -1,103 +1,112 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "QMK80",
|
"keyboard_name": "x11",
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"width": 18.25,
|
"width": 18.25,
|
||||||
"height": 6.5,
|
"height": 6.5,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT": {
|
||||||
"key_count": 88,
|
"key_count": 88,
|
||||||
"layout": [
|
"layout": [
|
||||||
{"label":"K00", "x":0, "y":0},
|
{"label":"K00", "x":0, "y":0},
|
||||||
{"label":"K01", "x":2, "y":0},
|
{"label":"K01", "x":2, "y":0},
|
||||||
{"label":"K02", "x":3, "y":0},
|
{"label":"K02", "x":3, "y":0},
|
||||||
{"label":"K03", "x":4, "y":0},
|
{"label":"K03", "x":4, "y":0},
|
||||||
{"label":"K04", "x":5, "y":0},
|
{"label":"K04", "x":5, "y":0},
|
||||||
{"label":"K05", "x":6.5, "y":0},
|
{"label":"K05", "x":6.5, "y":0},
|
||||||
{"label":"K06", "x":7.5, "y":0},
|
{"label":"K06", "x":7.5, "y":0},
|
||||||
{"label":"K07", "x":8.5, "y":0},
|
{"label":"K07", "x":8.5, "y":0},
|
||||||
{"label":"K08", "x":9.5, "y":0},
|
{"label":"K08", "x":9.5, "y":0},
|
||||||
{"label":"K09", "x":11, "y":0},
|
{"label":"K09", "x":11, "y":0},
|
||||||
{"label":"K0A", "x":12, "y":0},
|
{"label":"K0A", "x":12, "y":0},
|
||||||
{"label":"K0B", "x":13, "y":0},
|
{"label":"K0B", "x":13, "y":0},
|
||||||
{"label":"K0C", "x":14, "y":0},
|
{"label":"K0C", "x":14, "y":0},
|
||||||
{"label":"K60", "x":15.25, "y":0},
|
|
||||||
{"label":"K61", "x":16.25, "y":0},
|
{"label":"K62", "x":15.25, "y":0},
|
||||||
{"label":"K62", "x":17.25, "y":0},
|
{"label":"K61", "x":16.25, "y":0},
|
||||||
{"label":"K10", "x":0, "y":1.5},
|
{"label":"K60", "x":17.25, "y":0},
|
||||||
{"label":"K11", "x":1, "y":1.5},
|
|
||||||
{"label":"K12", "x":2, "y":1.5},
|
{"label":"K10", "x":0, "y":1.5},
|
||||||
{"label":"K13", "x":3, "y":1.5},
|
{"label":"K11", "x":1, "y":1.5},
|
||||||
{"label":"K14", "x":4, "y":1.5},
|
{"label":"K12", "x":2, "y":1.5},
|
||||||
{"label":"K15", "x":5, "y":1.5},
|
{"label":"K13", "x":3, "y":1.5},
|
||||||
{"label":"K16", "x":6, "y":1.5},
|
{"label":"K14", "x":4, "y":1.5},
|
||||||
{"label":"K17", "x":7, "y":1.5},
|
{"label":"K15", "x":5, "y":1.5},
|
||||||
{"label":"K18", "x":8, "y":1.5},
|
{"label":"K16", "x":6, "y":1.5},
|
||||||
{"label":"K19", "x":9, "y":1.5},
|
{"label":"K17", "x":7, "y":1.5},
|
||||||
{"label":"K1A", "x":10, "y":1.5},
|
{"label":"K18", "x":8, "y":1.5},
|
||||||
{"label":"K1B", "x":11, "y":1.5},
|
{"label":"K19", "x":9, "y":1.5},
|
||||||
{"label":"K1C", "x":12, "y":1.5},
|
{"label":"K1A", "x":10, "y":1.5},
|
||||||
{"label":"K5A", "x":13, "y":1.5, "w":2},
|
{"label":"K1B", "x":11, "y":1.5},
|
||||||
{"label":"K63", "x":15.25, "y":1.5},
|
{"label":"K1C", "x":12, "y":1.5},
|
||||||
{"label":"K65", "x":16.25, "y":1.5},
|
{"label":"K5A", "x":13, "y":1.5, "w":2},
|
||||||
{"label":"K67", "x":17.25, "y":1.5},
|
|
||||||
{"label":"K20", "x":0, "y":2.5, "w":1.5},
|
{"label":"K63", "x":15.25, "y":1.5},
|
||||||
{"label":"K21", "x":1.5, "y":2.5},
|
{"label":"K65", "x":16.25, "y":1.5},
|
||||||
{"label":"K22", "x":2.5, "y":2.5},
|
{"label":"K67", "x":17.25, "y":1.5},
|
||||||
{"label":"K23", "x":3.5, "y":2.5},
|
|
||||||
{"label":"K24", "x":4.5, "y":2.5},
|
{"label":"K20", "x":0, "y":2.5, "w":1.5},
|
||||||
{"label":"K25", "x":5.5, "y":2.5},
|
{"label":"K21", "x":1.5, "y":2.5},
|
||||||
{"label":"K26", "x":6.5, "y":2.5},
|
{"label":"K22", "x":2.5, "y":2.5},
|
||||||
{"label":"K27", "x":7.5, "y":2.5},
|
{"label":"K23", "x":3.5, "y":2.5},
|
||||||
{"label":"K28", "x":8.5, "y":2.5},
|
{"label":"K24", "x":4.5, "y":2.5},
|
||||||
{"label":"K29", "x":9.5, "y":2.5},
|
{"label":"K25", "x":5.5, "y":2.5},
|
||||||
{"label":"K2A", "x":10.5, "y":2.5},
|
{"label":"K26", "x":6.5, "y":2.5},
|
||||||
{"label":"K2B", "x":11.5, "y":2.5},
|
{"label":"K27", "x":7.5, "y":2.5},
|
||||||
{"label":"K2C", "x":12.5, "y":2.5},
|
{"label":"K28", "x":8.5, "y":2.5},
|
||||||
{"label":"K4C", "x":13.5, "y":2.5, "w":1.5},
|
{"label":"K29", "x":9.5, "y":2.5},
|
||||||
{"label":"K64", "x":15.25, "y":2.5},
|
{"label":"K2A", "x":10.5, "y":2.5},
|
||||||
{"label":"K66", "x":16.25, "y":2.5},
|
{"label":"K2B", "x":11.5, "y":2.5},
|
||||||
{"label":"K68", "x":17.25, "y":2.5},
|
{"label":"K2C", "x":12.5, "y":2.5},
|
||||||
{"label":"K30", "x":0, "y":3.5, "w":1.75},
|
{"label":"K4C", "x":13.5, "y":2.5, "w":1.5},
|
||||||
{"label":"K31", "x":1.75, "y":3.5},
|
|
||||||
{"label":"K32", "x":2.75, "y":3.5},
|
{"label":"K64", "x":15.25, "y":2.5},
|
||||||
{"label":"K33", "x":3.75, "y":3.5},
|
{"label":"K66", "x":16.25, "y":2.5},
|
||||||
{"label":"K34", "x":4.75, "y":3.5},
|
{"label":"K68", "x":17.25, "y":2.5},
|
||||||
{"label":"K35", "x":5.75, "y":3.5},
|
|
||||||
{"label":"K36", "x":6.75, "y":3.5},
|
{"label":"K30", "x":0, "y":3.5, "w":1.75},
|
||||||
{"label":"K37", "x":7.75, "y":3.5},
|
{"label":"K31", "x":1.75, "y":3.5},
|
||||||
{"label":"K38", "x":8.75, "y":3.5},
|
{"label":"K32", "x":2.75, "y":3.5},
|
||||||
{"label":"K39", "x":9.75, "y":3.5},
|
{"label":"K33", "x":3.75, "y":3.5},
|
||||||
{"label":"K3A", "x":10.75, "y":3.5},
|
{"label":"K34", "x":4.75, "y":3.5},
|
||||||
{"label":"K3B", "x":11.75, "y":3.5},
|
{"label":"K35", "x":5.75, "y":3.5},
|
||||||
{"label":"K3C", "x":12.75, "y":3.5, "w":2.25},
|
{"label":"K36", "x":6.75, "y":3.5},
|
||||||
{"label":"K40", "x":0, "y":4.5, "w":2.25},
|
{"label":"K37", "x":7.75, "y":3.5},
|
||||||
{"label":"K41", "x":2.25, "y":4.5},
|
{"label":"K38", "x":8.75, "y":3.5},
|
||||||
{"label":"K42", "x":3.25, "y":4.5},
|
{"label":"K39", "x":9.75, "y":3.5},
|
||||||
{"label":"K43", "x":4.25, "y":4.5},
|
{"label":"K3A", "x":10.75, "y":3.5},
|
||||||
{"label":"K44", "x":5.25, "y":4.5},
|
{"label":"K3B", "x":11.75, "y":3.5},
|
||||||
{"label":"K45", "x":6.25, "y":4.5},
|
{"label":"K3C", "x":12.75, "y":3.5, "w":2.25},
|
||||||
{"label":"K46", "x":7.25, "y":4.5},
|
|
||||||
{"label":"K47", "x":8.25, "y":4.5},
|
{"label":"K40", "x":0, "y":4.5, "w":2.25},
|
||||||
{"label":"K48", "x":9.25, "y":4.5},
|
{"label":"K41", "x":2.25, "y":4.5},
|
||||||
{"label":"K49", "x":10.25, "y":4.5},
|
{"label":"K42", "x":3.25, "y":4.5},
|
||||||
{"label":"K4A", "x":11.25, "y":4.5},
|
{"label":"K43", "x":4.25, "y":4.5},
|
||||||
{"label":"K4B", "x":12.25, "y":4.5, "w":1.75},
|
{"label":"K44", "x":5.25, "y":4.5},
|
||||||
{"label":"K69", "x":14, "y":4.5},
|
{"label":"K45", "x":6.25, "y":4.5},
|
||||||
{"label":"K58", "x":16.25, "y":4.5},
|
{"label":"K46", "x":7.25, "y":4.5},
|
||||||
{"label":"K50", "x":0, "y":5.5, "w":1.25},
|
{"label":"K47", "x":8.25, "y":4.5},
|
||||||
{"label":"K51", "x":1.25, "y":5.5, "w":1.25},
|
{"label":"K48", "x":9.25, "y":4.5},
|
||||||
{"label":"K52", "x":2.5, "y":5.5, "w":1.25},
|
{"label":"K49", "x":10.25, "y":4.5},
|
||||||
{"label":"K53", "x":3.75, "y":5.5, "w":6.25},
|
{"label":"K4A", "x":11.25, "y":4.5},
|
||||||
{"label":"K54", "x":10, "y":5.5, "w":1.25},
|
{"label":"K4B", "x":12.25, "y":4.5, "w":1.75},
|
||||||
{"label":"K55", "x":11.25, "y":5.5, "w":1.25},
|
{"label":"K69", "x":14, "y":4.5},
|
||||||
{"label":"K56", "x":12.5, "y":5.5, "w":1.25},
|
|
||||||
{"label":"K57", "x":13.75, "y":5.5, "w":1.25},
|
{"label":"K58", "x":16.25, "y":4.5},
|
||||||
{"label":"K6A", "x":15.25, "y":5.5},
|
|
||||||
{"label":"K59", "x":16.25, "y":5.5},
|
{"label":"K50", "x":0, "y":5.5, "w":1.25},
|
||||||
{"label":"K6B", "x":17.25, "y":5.5}
|
{"label":"K51", "x":1.25, "y":5.5, "w":1.25},
|
||||||
]
|
{"label":"K52", "x":2.5, "y":5.5, "w":1.25},
|
||||||
}
|
{"label":"K53", "x":3.75, "y":5.5, "w":6.25},
|
||||||
|
{"label":"K54", "x":10, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K55", "x":11.25, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K56", "x":12.5, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K57", "x":13.75, "y":5.5, "w":1.25},
|
||||||
|
|
||||||
|
{"label":"K6A", "x":15.25, "y":5.5},
|
||||||
|
{"label":"K59", "x":16.25, "y":5.5},
|
||||||
|
{"label":"K6B", "x":17.25, "y":5.5}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
@@ -15,64 +15,23 @@
|
|||||||
*/
|
*/
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
// Defines the keycodes used by our macros in process_record_user
|
|
||||||
enum custom_keycodes {
|
|
||||||
QMKBEST = SAFE_RANGE,
|
|
||||||
QMKURL
|
|
||||||
};
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[0] = LAYOUT( \
|
[0] = LAYOUT(
|
||||||
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_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
|
||||||
KC_PSCR, KC_SLCK, KC_PAUS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, \
|
|
||||||
KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, \
|
|
||||||
KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, \
|
|
||||||
KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, \
|
|
||||||
KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, KC_LCTL, \
|
|
||||||
KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \
|
|
||||||
),
|
|
||||||
[1] = LAYOUT( \
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
|
||||||
KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, \
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_MPLY, KC_MSTP, RGB_TOG, RGB_MOD, \
|
|
||||||
RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, 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, RGB_VAI, KC_TRNS, \
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_VAD, RGB_SAD \
|
|
||||||
),
|
|
||||||
|
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
|
||||||
|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
BL_TOGG, BL_DEC, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_MPLY, KC_MSTP,
|
||||||
|
RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|
||||||
switch (keycode) {
|
|
||||||
case QMKBEST:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
// when keycode QMKBEST is pressed
|
|
||||||
SEND_STRING("QMK is the best thing ever!");
|
|
||||||
} else {
|
|
||||||
// when keycode QMKBEST is released
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case QMKURL:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
// when keycode QMKURL is pressed
|
|
||||||
SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
|
|
||||||
} else {
|
|
||||||
// when keycode QMKURL is released
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void matrix_init_user(void) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void matrix_scan_user(void) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void led_set_user(uint8_t usb_led) {
|
|
||||||
|
|
||||||
}
|
|
||||||
+30
-29
@@ -16,48 +16,49 @@
|
|||||||
#include "x11.h"
|
#include "x11.h"
|
||||||
|
|
||||||
void matrix_init_kb(void) {
|
void matrix_init_kb(void) {
|
||||||
// put your keyboard start-up code here
|
// put your keyboard start-up code here
|
||||||
// runs once when the firmware starts up
|
// runs once when the firmware starts up
|
||||||
setPinOutput(C6);
|
|
||||||
setPinOutput(E6);
|
setPinOutput(C6);
|
||||||
setPinOutput(C7);
|
setPinOutput(E6);
|
||||||
matrix_init_user();
|
setPinOutput(C7);
|
||||||
|
matrix_init_user();
|
||||||
}
|
}
|
||||||
|
|
||||||
void matrix_scan_kb(void) {
|
void matrix_scan_kb(void) {
|
||||||
// put your looping keyboard code here
|
// put your looping keyboard code here
|
||||||
// runs every cycle (a lot)
|
// runs every cycle (a lot)
|
||||||
|
|
||||||
matrix_scan_user();
|
matrix_scan_user();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||||
// put your per-action keyboard code here
|
// put your per-action keyboard code here
|
||||||
// runs for every action, just before processing by the firmware
|
// runs for every action, just before processing by the firmware
|
||||||
|
|
||||||
return process_record_user(keycode, record);
|
return process_record_user(keycode, record);
|
||||||
}
|
}
|
||||||
|
|
||||||
void led_set_kb(uint8_t usb_led) {
|
void led_set_kb(uint8_t usb_led) {
|
||||||
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
||||||
|
|
||||||
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
|
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
|
||||||
writePinLow(C6);
|
writePinLow(C6);
|
||||||
} else {
|
} else {
|
||||||
writePinHigh(C6);
|
writePinHigh(C6);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) {
|
if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) {
|
||||||
writePinLow(E6);
|
writePinLow(E6);
|
||||||
} else {
|
} else {
|
||||||
writePinHigh(E6);
|
writePinHigh(E6);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
|
if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
|
||||||
writePinLow(C7);
|
writePinLow(C7);
|
||||||
} else {
|
} else {
|
||||||
writePinHigh(C7);
|
writePinHigh(C7);
|
||||||
}
|
}
|
||||||
|
|
||||||
led_set_user(usb_led);
|
led_set_user(usb_led);
|
||||||
}
|
}
|
||||||
+13
-13
@@ -26,18 +26,18 @@
|
|||||||
* represents the switch matrix.
|
* represents the switch matrix.
|
||||||
*/
|
*/
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K60, K61, K62, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K62, K61, K60, \
|
||||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K5A, K63, K65, K67, \
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K5A, K63, K65, K67, \
|
||||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K4C, K64, K66, K68, \
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K4C, K64, K66, K68, \
|
||||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
|
||||||
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K69, K58, \
|
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K69, K58, \
|
||||||
K50, K51, K52, K53, K54, K55, K56, K57, K6A, K59, K6B \
|
K50, K51, K52, K53, K54, K55, K56, K57, K6A, K59, K6B \
|
||||||
) { \
|
) { \
|
||||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \
|
||||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C }, \
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C }, \
|
||||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C }, \
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C }, \
|
||||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C }, \
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C }, \
|
||||||
{ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C }, \
|
{ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C }, \
|
||||||
{ K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, KC_NO, KC_NO }, \
|
{ K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, KC_NO, KC_NO }, \
|
||||||
{ K60, K61, K62, K63, K64, K65, K66, K67, K68, K69, K6A, K6B, KC_NO }, \
|
{ K60, K61, K62, K63, K64, K65, K66, K67, K68, K69, K6A, K6B, KC_NO }, \
|
||||||
}
|
}
|
||||||
@@ -162,7 +162,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
|||||||
}
|
}
|
||||||
#endif //DYNAMIC_KEYMAP_ENABLE
|
#endif //DYNAMIC_KEYMAP_ENABLE
|
||||||
|
|
||||||
return true;
|
return process_record_user(keycode, record);;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,366 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "ErgoDash rev2",
|
"keyboard_name": "ErgoDash rev1.2",
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"width": 18,
|
"width": 19,
|
||||||
"height": 6.25,
|
"height": 8.375,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_4key": {
|
||||||
"key_count": 70,
|
"layout": [
|
||||||
"layout": [{"label":"L00", "x":0, "y":0.375}, {"label":"L01", "x":1, "y":0.375}, {"label":"L02", "x":2, "y":0.125}, {"label":"L03", "x":3, "y":0}, {"label":"L04", "x":4, "y":0.125}, {"label":"L05", "x":5, "y":0.25}, {"label":"L06", "x":6, "y":0.75}, {"label":"R00", "x":11, "y":0.75}, {"label":"R01", "x":12, "y":0.25}, {"label":"R02", "x":13, "y":0.125}, {"label":"R03", "x":14, "y":0}, {"label":"R04", "x":15, "y":0.125}, {"label":"R05", "x":16, "y":0.375}, {"label":"R06", "x":17, "y":0.375}, {"label":"L10", "x":0, "y":1.375}, {"label":"L11", "x":1, "y":1.375}, {"label":"L12", "x":2, "y":1.125}, {"label":"L13", "x":3, "y":1}, {"label":"L14", "x":4, "y":1.125}, {"label":"L15", "x":5, "y":1.25}, {"label":"L16", "x":6, "y":1.75}, {"label":"R10", "x":11, "y":1.75}, {"label":"R11", "x":12, "y":1.25}, {"label":"R12", "x":13, "y":1.125}, {"label":"R13", "x":14, "y":1}, {"label":"R14", "x":15, "y":1.125}, {"label":"R15", "x":16, "y":1.375}, {"label":"R16", "x":17, "y":1.375}, {"label":"L20", "x":0, "y":2.375}, {"label":"L21", "x":1, "y":2.375}, {"label":"L22", "x":2, "y":2.125}, {"label":"L23", "x":3, "y":2}, {"label":"L24", "x":4, "y":2.125}, {"label":"L25", "x":5, "y":2.25}, {"label":"L26", "x":6, "y":2.75}, {"label":"R20", "x":11, "y":2.75}, {"label":"R21", "x":12, "y":2.25}, {"label":"R22", "x":13, "y":2.125}, {"label":"R23", "x":14, "y":2}, {"label":"R24", "x":15, "y":2.125}, {"label":"R25", "x":16, "y":2.375}, {"label":"R26", "x":17, "y":2.375}, {"label":"L30", "x":0, "y":3.375}, {"label":"L31", "x":1, "y":3.375}, {"label":"L32", "x":2, "y":3.125}, {"label":"L33", "x":3, "y":3}, {"label":"L34", "x":4, "y":3.125}, {"label":"L35", "x":5, "y":3.25}, {"label":"L36", "x":6.5, "y":4.25}, {"label":"R30", "x":10.5, "y":4.25}, {"label":"R31", "x":12, "y":3.25}, {"label":"R32", "x":13, "y":3.125}, {"label":"R33", "x":14, "y":3}, {"label":"R34", "x":15, "y":3.125}, {"label":"R35", "x":16, "y":3.375}, {"label":"R36", "x":17, "y":3.375}, {"label":"L40", "x":0, "y":4.375}, {"label":"L41", "x":1, "y":4.375}, {"label":"L42", "x":2, "y":4.125}, {"label":"L43", "x":3, "y":4}, {"label":"L44", "x":5.5, "y":5.25}, {"label":"L45", "x":6.5, "y":5.25}, {"label":"L46", "x":7.5, "y":4.25, "h":2}, {"label":"R40", "x":9.5, "y":4.25, "h":2}, {"label":"R41", "x":10.5, "y":5.25}, {"label":"R42", "x":11.5, "y":5.25}, {"label":"R43", "x":14, "y":4}, {"label":"R44", "x":15, "y":4.125}, {"label":"R45", "x":16, "y":4.375}, {"label":"R46", "x":17, "y":4.375}]
|
{"y": 0.375, "x": 0.5, "label": "L00"},
|
||||||
|
{"y": 0.375, "x": 1.5, "label": "L01"},
|
||||||
|
{"y": 0.125, "x": 2.5, "label": "L02"},
|
||||||
|
{"y": 0, "x": 3.5, "label": "L03"},
|
||||||
|
{"y": 0.125, "x": 4.5, "label": "L04"},
|
||||||
|
{"y": 0.25, "x": 5.5, "label": "L05"},
|
||||||
|
{"y": 0.75, "x": 6.5, "label": "L06"},
|
||||||
|
{"y": 0.75, "x": 12, "label": "R00"},
|
||||||
|
{"y": 0.25, "x": 13, "label": "R01"},
|
||||||
|
{"y": 0.125, "x": 14, "label": "R02"},
|
||||||
|
{"y": 0, "x": 15, "label": "R03"},
|
||||||
|
{"y": 0.125, "x": 16, "label": "R04"},
|
||||||
|
{"y": 0.375, "x": 17, "label": "R05"},
|
||||||
|
{"y": 0.375, "x": 18, "label": "R06"},
|
||||||
|
{"y": 1.375, "x": 0.5, "label": "L10"},
|
||||||
|
{"y": 1.375, "x": 1.5, "label": "L11"},
|
||||||
|
{"y": 1.125, "x": 2.5, "label": "L12"},
|
||||||
|
{"y": 1, "x": 3.5, "label": "L13"},
|
||||||
|
{"y": 1.125, "x": 4.5, "label": "L14"},
|
||||||
|
{"y": 1.25, "x": 5.5, "label": "L15"},
|
||||||
|
{"y": 1.75, "x": 6.5, "label": "L16"},
|
||||||
|
{"y": 1.75, "x": 12, "label": "R10"},
|
||||||
|
{"y": 1.25, "x": 13, "label": "R11"},
|
||||||
|
{"y": 1.125, "x": 14, "label": "R12"},
|
||||||
|
{"y": 1, "x": 15, "label": "R13"},
|
||||||
|
{"y": 1.125, "x": 16, "label": "R14"},
|
||||||
|
{"y": 1.375, "x": 17, "label": "R15"},
|
||||||
|
{"y": 1.375, "x": 18, "label": "R16"},
|
||||||
|
{"y": 2.375, "x": 0.5, "label": "L20"},
|
||||||
|
{"y": 2.375, "x": 1.5, "label": "L21"},
|
||||||
|
{"y": 2.125, "x": 2.5, "label": "L22"},
|
||||||
|
{"y": 2, "x": 3.5, "label": "L23"},
|
||||||
|
{"y": 2.125, "x": 4.5, "label": "L24"},
|
||||||
|
{"y": 2.25, "x": 5.5, "label": "L25"},
|
||||||
|
{"y": 2.75, "x": 6.5, "label": "L26"},
|
||||||
|
{"y": 2.75, "x": 12, "label": "R20"},
|
||||||
|
{"y": 2.25, "x": 13, "label": "R21"},
|
||||||
|
{"y": 2.125, "x": 14, "label": "R22"},
|
||||||
|
{"y": 2, "x": 15, "label": "R23"},
|
||||||
|
{"y": 2.125, "x": 16, "label": "R24"},
|
||||||
|
{"y": 2.375, "x": 17, "label": "R25"},
|
||||||
|
{"y": 2.375, "x": 18, "label": "R26"},
|
||||||
|
{"y": 3.375, "x": 0.5, "label": "L30"},
|
||||||
|
{"y": 3.375, "x": 1.5, "label": "L31"},
|
||||||
|
{"y": 3.125, "x": 2.5, "label": "L32"},
|
||||||
|
{"y": 3, "x": 3.5, "label": "L33"},
|
||||||
|
{"y": 3.125, "x": 4.5, "label": "L34"},
|
||||||
|
{"y": 3.25, "x": 5.5, "label": "L35"},
|
||||||
|
{"y": 4, "x": 6.5, "label": "L36"},
|
||||||
|
{"y": 4, "x": 12, "label": "R30"},
|
||||||
|
{"y": 3.25, "x": 13, "label": "R31"},
|
||||||
|
{"y": 3.125, "x": 14, "label": "R32"},
|
||||||
|
{"y": 3, "x": 15, "label": "R33"},
|
||||||
|
{"y": 3.125, "x": 16, "label": "R34"},
|
||||||
|
{"y": 3.375, "x": 17, "label": "R35"},
|
||||||
|
{"y": 3.375, "x": 18, "label": "R36"},
|
||||||
|
{"y": 4.375, "x": 0.5, "label": "L40"},
|
||||||
|
{"y": 4.375, "x": 1.5, "label": "L41"},
|
||||||
|
{"y": 4.125, "x": 2.5, "label": "L42"},
|
||||||
|
{"y": 4, "x": 3.5, "label": "L43"},
|
||||||
|
{"y": 5, "x": 5.5, "label": "L44"},
|
||||||
|
{"y": 5, "x": 6.5, "label": "L45"},
|
||||||
|
{"h": 2, "y": 4, "x": 7.5, "label": "L46"},
|
||||||
|
{"h": 2, "y": 4, "x": 11, "label": "R40"},
|
||||||
|
{"y": 5, "x": 12, "label": "R41"},
|
||||||
|
{"y": 5, "x": 13, "label": "R42"},
|
||||||
|
{"y": 4, "x": 15, "label": "R43"},
|
||||||
|
{"y": 4.125, "x": 16, "label": "R44"},
|
||||||
|
{"y": 4.375, "x": 17, "label": "R45"},
|
||||||
|
{"y": 4.375, "x": 18, "label": "R46"}]
|
||||||
|
},
|
||||||
|
"LAYOUT_4key_2u_inner": {
|
||||||
|
"layout": [
|
||||||
|
{"y": 0.375, "x": 0.5, "label": "L00"},
|
||||||
|
{"y": 0.375, "x": 1.5, "label": "L01"},
|
||||||
|
{"y": 0.125, "x": 2.5, "label": "L02"},
|
||||||
|
{"y": 0, "x": 3.5, "label": "L03"},
|
||||||
|
{"y": 0.125, "x": 4.5, "label": "L04"},
|
||||||
|
{"y": 0.25, "x": 5.5, "label": "L05"},
|
||||||
|
{"y": 0.75, "x": 6.5, "label": "L06"},
|
||||||
|
{"y": 0.75, "x": 12, "label": "R00"},
|
||||||
|
{"y": 0.25, "x": 13, "label": "R01"},
|
||||||
|
{"y": 0.125, "x": 14, "label": "R02"},
|
||||||
|
{"y": 0, "x": 15, "label": "R03"},
|
||||||
|
{"y": 0.125, "x": 16, "label": "R04"},
|
||||||
|
{"y": 0.375, "x": 17, "label": "R05"},
|
||||||
|
{"y": 0.375, "x": 18, "label": "R06"},
|
||||||
|
{"y": 1.375, "x": 0.5, "label": "L10"},
|
||||||
|
{"y": 1.375, "x": 1.5, "label": "L11"},
|
||||||
|
{"y": 1.125, "x": 2.5, "label": "L12"},
|
||||||
|
{"y": 1, "x": 3.5, "label": "L13"},
|
||||||
|
{"y": 1.125, "x": 4.5, "label": "L14"},
|
||||||
|
{"y": 1.25, "x": 5.5, "label": "L15"},
|
||||||
|
{"y": 1.75, "x": 6.5, "label": "L16"},
|
||||||
|
{"y": 1.75, "x": 12, "label": "R10"},
|
||||||
|
{"y": 1.25, "x": 13, "label": "R11"},
|
||||||
|
{"y": 1.125, "x": 14, "label": "R12"},
|
||||||
|
{"y": 1, "x": 15, "label": "R13"},
|
||||||
|
{"y": 1.125, "x": 16, "label": "R14"},
|
||||||
|
{"y": 1.375, "x": 17, "label": "R15"},
|
||||||
|
{"y": 1.375, "x": 18, "label": "R16"},
|
||||||
|
{"y": 2.375, "x": 0.5, "label": "L20"},
|
||||||
|
{"y": 2.375, "x": 1.5, "label": "L21"},
|
||||||
|
{"y": 2.125, "x": 2.5, "label": "L22"},
|
||||||
|
{"y": 2, "x": 3.5, "label": "L23"},
|
||||||
|
{"y": 2.125, "x": 4.5, "label": "L24"},
|
||||||
|
{"y": 2.25, "x": 5.5, "label": "L25"},
|
||||||
|
{"y": 2.75, "x": 6.5, "label": "L26"},
|
||||||
|
{"y": 2.75, "x": 12, "label": "R20"},
|
||||||
|
{"y": 2.25, "x": 13, "label": "R21"},
|
||||||
|
{"y": 2.125, "x": 14, "label": "R22"},
|
||||||
|
{"y": 2, "x": 15, "label": "R23"},
|
||||||
|
{"y": 2.125, "x": 16, "label": "R24"},
|
||||||
|
{"y": 2.375, "x": 17, "label": "R25"},
|
||||||
|
{"y": 2.375, "x": 18, "label": "R26"},
|
||||||
|
{"y": 3.375, "x": 0.5, "label": "L30"},
|
||||||
|
{"y": 3.375, "x": 1.5, "label": "L31"},
|
||||||
|
{"y": 3.125, "x": 2.5, "label": "L32"},
|
||||||
|
{"y": 3, "x": 3.5, "label": "L33"},
|
||||||
|
{"y": 3.125, "x": 4.5, "label": "L34"},
|
||||||
|
{"y": 3.25, "x": 5.5, "label": "L35"},
|
||||||
|
{"y": 4, "x": 7.5, "label": "L36"},
|
||||||
|
{"y": 4, "x": 11, "label": "R30"},
|
||||||
|
{"y": 3.25, "x": 13, "label": "R31"},
|
||||||
|
{"y": 3.125, "x": 14, "label": "R32"},
|
||||||
|
{"y": 3, "x": 15, "label": "R33"},
|
||||||
|
{"y": 3.125, "x": 16, "label": "R34"},
|
||||||
|
{"y": 3.375, "x": 17, "label": "R35"},
|
||||||
|
{"y": 3.375, "x": 18, "label": "R36"},
|
||||||
|
{"y": 4.375, "x": 0.5, "label": "L40"},
|
||||||
|
{"y": 4.375, "x": 1.5, "label": "L41"},
|
||||||
|
{"y": 4.125, "x": 2.5, "label": "L42"},
|
||||||
|
{"y": 4, "x": 3.5, "label": "L43"},
|
||||||
|
{"y": 5, "x": 5.5, "label": "L44"},
|
||||||
|
{"h": 2, "y": 4, "x": 6.5, "label": "L45"},
|
||||||
|
{"y": 5, "x": 7.5, "label": "L46"},
|
||||||
|
{"y": 5, "x": 11, "label": "R40"},
|
||||||
|
{"h": 2, "y": 4, "x": 12, "label": "R41"},
|
||||||
|
{"y": 5, "x": 13, "label": "R42"},
|
||||||
|
{"y": 4, "x": 15, "label": "R43"},
|
||||||
|
{"y": 4.125, "x": 16, "label": "R44"},
|
||||||
|
{"y": 4.375, "x": 17, "label": "R45"},
|
||||||
|
{"y": 4.375, "x": 18, "label": "R46"}]
|
||||||
|
},
|
||||||
|
"LAYOUT_3key_2us": {
|
||||||
|
"layout": [
|
||||||
|
{"y": 0.375, "x": 0.5, "label": "L00"},
|
||||||
|
{"y": 0.375, "x": 1.5, "label": "L01"},
|
||||||
|
{"y": 0.125, "x": 2.5, "label": "L02"},
|
||||||
|
{"y": 0, "x": 3.5, "label": "L03"},
|
||||||
|
{"y": 0.125, "x": 4.5, "label": "L04"},
|
||||||
|
{"y": 0.25, "x": 5.5, "label": "L05"},
|
||||||
|
{"y": 0.75, "x": 6.5, "label": "L06"},
|
||||||
|
{"y": 0.75, "x": 12, "label": "R00"},
|
||||||
|
{"y": 0.25, "x": 13, "label": "R01"},
|
||||||
|
{"y": 0.125, "x": 14, "label": "R02"},
|
||||||
|
{"y": 0, "x": 15, "label": "R03"},
|
||||||
|
{"y": 0.125, "x": 16, "label": "R04"},
|
||||||
|
{"y": 0.375, "x": 17, "label": "R05"},
|
||||||
|
{"y": 0.375, "x": 18, "label": "R06"},
|
||||||
|
{"y": 1.375, "x": 0.5, "label": "L10"},
|
||||||
|
{"y": 1.375, "x": 1.5, "label": "L11"},
|
||||||
|
{"y": 1.125, "x": 2.5, "label": "L12"},
|
||||||
|
{"y": 1, "x": 3.5, "label": "L13"},
|
||||||
|
{"y": 1.125, "x": 4.5, "label": "L14"},
|
||||||
|
{"y": 1.25, "x": 5.5, "label": "L15"},
|
||||||
|
{"y": 1.75, "x": 6.5, "label": "L16"},
|
||||||
|
{"y": 1.75, "x": 12, "label": "R10"},
|
||||||
|
{"y": 1.25, "x": 13, "label": "R11"},
|
||||||
|
{"y": 1.125, "x": 14, "label": "R12"},
|
||||||
|
{"y": 1, "x": 15, "label": "R13"},
|
||||||
|
{"y": 1.125, "x": 16, "label": "R14"},
|
||||||
|
{"y": 1.375, "x": 17, "label": "R15"},
|
||||||
|
{"y": 1.375, "x": 18, "label": "R16"},
|
||||||
|
{"y": 2.375, "x": 0.5, "label": "L20"},
|
||||||
|
{"y": 2.375, "x": 1.5, "label": "L21"},
|
||||||
|
{"y": 2.125, "x": 2.5, "label": "L22"},
|
||||||
|
{"y": 2, "x": 3.5, "label": "L23"},
|
||||||
|
{"y": 2.125, "x": 4.5, "label": "L24"},
|
||||||
|
{"y": 2.25, "x": 5.5, "label": "L25"},
|
||||||
|
{"y": 2.75, "x": 6.5, "label": "L26"},
|
||||||
|
{"y": 2.75, "x": 12, "label": "R20"},
|
||||||
|
{"y": 2.25, "x": 13, "label": "R21"},
|
||||||
|
{"y": 2.125, "x": 14, "label": "R22"},
|
||||||
|
{"y": 2, "x": 15, "label": "R23"},
|
||||||
|
{"y": 2.125, "x": 16, "label": "R24"},
|
||||||
|
{"y": 2.375, "x": 17, "label": "R25"},
|
||||||
|
{"y": 2.375, "x": 18, "label": "R26"},
|
||||||
|
{"y": 3.375, "x": 0.5, "label": "L30"},
|
||||||
|
{"y": 3.375, "x": 1.5, "label": "L31"},
|
||||||
|
{"y": 3.125, "x": 2.5, "label": "L32"},
|
||||||
|
{"y": 3, "x": 3.5, "label": "L33"},
|
||||||
|
{"y": 3.125, "x": 4.5, "label": "L34"},
|
||||||
|
{"y": 3.25, "x": 5.5, "label": "L35"},
|
||||||
|
{"y": 3.25, "x": 13, "label": "R31"},
|
||||||
|
{"y": 3.125, "x": 14, "label": "R32"},
|
||||||
|
{"y": 3, "x": 15, "label": "R33"},
|
||||||
|
{"y": 3.125, "x": 16, "label": "R34"},
|
||||||
|
{"y": 3.375, "x": 17, "label": "R35"},
|
||||||
|
{"y": 3.375, "x": 18, "label": "R36"},
|
||||||
|
{"y": 4.375, "x": 0.5, "label": "L40"},
|
||||||
|
{"y": 4.375, "x": 1.5, "label": "L41"},
|
||||||
|
{"y": 4.125, "x": 2.5, "label": "L42"},
|
||||||
|
{"y": 4, "x": 3.5, "label": "L43"},
|
||||||
|
{"y": 5, "x": 5.5, "label": "L44"},
|
||||||
|
{"h": 2, "y": 4, "x": 6.5, "label": "L45"},
|
||||||
|
{"h": 2, "y": 4, "x": 7.5, "label": "L46"},
|
||||||
|
{"h": 2, "y": 4, "x": 11, "label": "R40"},
|
||||||
|
{"h": 2, "y": 4, "x": 12, "label": "R41"},
|
||||||
|
{"y": 5, "x": 13, "label": "R42"},
|
||||||
|
{"y": 4, "x": 15, "label": "R43"},
|
||||||
|
{"y": 4.125, "x": 16, "label": "R44"},
|
||||||
|
{"y": 4.375, "x": 17, "label": "R45"},
|
||||||
|
{"y": 4.375, "x": 18, "label": "R46"}]
|
||||||
|
},
|
||||||
|
"LAYOUT_3key_1us": {
|
||||||
|
"layout": [
|
||||||
|
{"y": 0.375, "x": 0.5, "label": "L00"},
|
||||||
|
{"y": 0.375, "x": 1.5, "label": "L01"},
|
||||||
|
{"y": 0.125, "x": 2.5, "label": "L02"},
|
||||||
|
{"y": 0, "x": 3.5, "label": "L03"},
|
||||||
|
{"y": 0.125, "x": 4.5, "label": "L04"},
|
||||||
|
{"y": 0.25, "x": 5.5, "label": "L05"},
|
||||||
|
{"y": 0.75, "x": 6.5, "label": "L06"},
|
||||||
|
{"y": 0.75, "x": 12, "label": "R00"},
|
||||||
|
{"y": 0.25, "x": 13, "label": "R01"},
|
||||||
|
{"y": 0.125, "x": 14, "label": "R02"},
|
||||||
|
{"y": 0, "x": 15, "label": "R03"},
|
||||||
|
{"y": 0.125, "x": 16, "label": "R04"},
|
||||||
|
{"y": 0.375, "x": 17, "label": "R05"},
|
||||||
|
{"y": 0.375, "x": 18, "label": "R06"},
|
||||||
|
{"y": 1.375, "x": 0.5, "label": "L10"},
|
||||||
|
{"y": 1.375, "x": 1.5, "label": "L11"},
|
||||||
|
{"y": 1.125, "x": 2.5, "label": "L12"},
|
||||||
|
{"y": 1, "x": 3.5, "label": "L13"},
|
||||||
|
{"y": 1.125, "x": 4.5, "label": "L14"},
|
||||||
|
{"y": 1.25, "x": 5.5, "label": "L15"},
|
||||||
|
{"y": 1.75, "x": 6.5, "label": "L16"},
|
||||||
|
{"y": 1.75, "x": 12, "label": "R10"},
|
||||||
|
{"y": 1.25, "x": 13, "label": "R11"},
|
||||||
|
{"y": 1.125, "x": 14, "label": "R12"},
|
||||||
|
{"y": 1, "x": 15, "label": "R13"},
|
||||||
|
{"y": 1.125, "x": 16, "label": "R14"},
|
||||||
|
{"y": 1.375, "x": 17, "label": "R15"},
|
||||||
|
{"y": 1.375, "x": 18, "label": "R16"},
|
||||||
|
{"y": 2.375, "x": 0.5, "label": "L20"},
|
||||||
|
{"y": 2.375, "x": 1.5, "label": "L21"},
|
||||||
|
{"y": 2.125, "x": 2.5, "label": "L22"},
|
||||||
|
{"y": 2, "x": 3.5, "label": "L23"},
|
||||||
|
{"y": 2.125, "x": 4.5, "label": "L24"},
|
||||||
|
{"y": 2.25, "x": 5.5, "label": "L25"},
|
||||||
|
{"y": 2.75, "x": 6.5, "label": "L26"},
|
||||||
|
{"y": 2.75, "x": 12, "label": "R20"},
|
||||||
|
{"y": 2.25, "x": 13, "label": "R21"},
|
||||||
|
{"y": 2.125, "x": 14, "label": "R22"},
|
||||||
|
{"y": 2, "x": 15, "label": "R23"},
|
||||||
|
{"y": 2.125, "x": 16, "label": "R24"},
|
||||||
|
{"y": 2.375, "x": 17, "label": "R25"},
|
||||||
|
{"y": 2.375, "x": 18, "label": "R26"},
|
||||||
|
{"y": 3.375, "x": 0.5, "label": "L30"},
|
||||||
|
{"y": 3.375, "x": 1.5, "label": "L31"},
|
||||||
|
{"y": 3.125, "x": 2.5, "label": "L32"},
|
||||||
|
{"y": 3, "x": 3.5, "label": "L33"},
|
||||||
|
{"y": 3.125, "x": 4.5, "label": "L34"},
|
||||||
|
{"y": 3.25, "x": 5.5, "label": "L35"},
|
||||||
|
{"y": 4, "x": 6.5, "label": "L36"},
|
||||||
|
{"y": 4, "x": 12, "label": "R30"},
|
||||||
|
{"y": 3.25, "x": 13, "label": "R31"},
|
||||||
|
{"y": 3.125, "x": 14, "label": "R32"},
|
||||||
|
{"y": 3, "x": 15, "label": "R33"},
|
||||||
|
{"y": 3.125, "x": 16, "label": "R34"},
|
||||||
|
{"y": 3.375, "x": 17, "label": "R35"},
|
||||||
|
{"y": 3.375, "x": 18, "label": "R36"},
|
||||||
|
{"y": 4.375, "x": 0.5, "label": "L40"},
|
||||||
|
{"y": 4.375, "x": 1.5, "label": "L41"},
|
||||||
|
{"y": 4.125, "x": 2.5, "label": "L42"},
|
||||||
|
{"y": 4, "x": 3.5, "label": "L43"},
|
||||||
|
{"y": 5, "x": 5.5, "label": "L44"},
|
||||||
|
{"y": 5, "x": 6.5, "label": "L45"},
|
||||||
|
{"y": 5, "x": 12, "label": "R41"},
|
||||||
|
{"y": 5, "x": 13, "label": "R42"},
|
||||||
|
{"y": 4, "x": 15, "label": "R43"},
|
||||||
|
{"y": 4.125, "x": 16, "label": "R44"},
|
||||||
|
{"y": 4.375, "x": 17, "label": "R45"},
|
||||||
|
{"y": 4.375, "x": 18, "label": "R46"}]
|
||||||
|
},
|
||||||
|
"LAYOUT_2key": {
|
||||||
|
"layout": [
|
||||||
|
{"y": 0.375, "x": 0.5, "label": "L00"},
|
||||||
|
{"y": 0.375, "x": 1.5, "label": "L01"},
|
||||||
|
{"y": 0.125, "x": 2.5, "label": "L02"},
|
||||||
|
{"y": 0, "x": 3.5, "label": "L03"},
|
||||||
|
{"y": 0.125, "x": 4.5, "label": "L04"},
|
||||||
|
{"y": 0.25, "x": 5.5, "label": "L05"},
|
||||||
|
{"y": 0.75, "x": 6.5, "label": "L06"},
|
||||||
|
{"y": 0.75, "x": 12, "label": "R00"},
|
||||||
|
{"y": 0.25, "x": 13, "label": "R01"},
|
||||||
|
{"y": 0.125, "x": 14, "label": "R02"},
|
||||||
|
{"y": 0, "x": 15, "label": "R03"},
|
||||||
|
{"y": 0.125, "x": 16, "label": "R04"},
|
||||||
|
{"y": 0.375, "x": 17, "label": "R05"},
|
||||||
|
{"y": 0.375, "x": 18, "label": "R06"},
|
||||||
|
{"y": 1.375, "x": 0.5, "label": "L10"},
|
||||||
|
{"y": 1.375, "x": 1.5, "label": "L11"},
|
||||||
|
{"y": 1.125, "x": 2.5, "label": "L12"},
|
||||||
|
{"y": 1, "x": 3.5, "label": "L13"},
|
||||||
|
{"y": 1.125, "x": 4.5, "label": "L14"},
|
||||||
|
{"y": 1.25, "x": 5.5, "label": "L15"},
|
||||||
|
{"y": 1.75, "x": 6.5, "label": "L16"},
|
||||||
|
{"y": 1.75, "x": 12, "label": "R10"},
|
||||||
|
{"y": 1.25, "x": 13, "label": "R11"},
|
||||||
|
{"y": 1.125, "x": 14, "label": "R12"},
|
||||||
|
{"y": 1, "x": 15, "label": "R13"},
|
||||||
|
{"y": 1.125, "x": 16, "label": "R14"},
|
||||||
|
{"y": 1.375, "x": 17, "label": "R15"},
|
||||||
|
{"y": 1.375, "x": 18, "label": "R16"},
|
||||||
|
{"y": 2.375, "x": 0.5, "label": "L20"},
|
||||||
|
{"y": 2.375, "x": 1.5, "label": "L21"},
|
||||||
|
{"y": 2.125, "x": 2.5, "label": "L22"},
|
||||||
|
{"y": 2, "x": 3.5, "label": "L23"},
|
||||||
|
{"y": 2.125, "x": 4.5, "label": "L24"},
|
||||||
|
{"y": 2.25, "x": 5.5, "label": "L25"},
|
||||||
|
{"y": 2.75, "x": 6.5, "label": "L26"},
|
||||||
|
{"y": 2.75, "x": 12, "label": "R20"},
|
||||||
|
{"y": 2.25, "x": 13, "label": "R21"},
|
||||||
|
{"y": 2.125, "x": 14, "label": "R22"},
|
||||||
|
{"y": 2, "x": 15, "label": "R23"},
|
||||||
|
{"y": 2.125, "x": 16, "label": "R24"},
|
||||||
|
{"y": 2.375, "x": 17, "label": "R25"},
|
||||||
|
{"y": 2.375, "x": 18, "label": "R26"},
|
||||||
|
{"y": 3.375, "x": 0.5, "label": "L30"},
|
||||||
|
{"y": 3.375, "x": 1.5, "label": "L31"},
|
||||||
|
{"y": 3.125, "x": 2.5, "label": "L32"},
|
||||||
|
{"y": 3, "x": 3.5, "label": "L33"},
|
||||||
|
{"y": 3.125, "x": 4.5, "label": "L34"},
|
||||||
|
{"y": 3.25, "x": 5.5, "label": "L35"},
|
||||||
|
{"y": 3.25, "x": 13, "label": "R31"},
|
||||||
|
{"y": 3.125, "x": 14, "label": "R32"},
|
||||||
|
{"y": 3, "x": 15, "label": "R33"},
|
||||||
|
{"y": 3.125, "x": 16, "label": "R34"},
|
||||||
|
{"y": 3.375, "x": 17, "label": "R35"},
|
||||||
|
{"y": 3.375, "x": 18, "label": "R36"},
|
||||||
|
{"y": 4.375, "x": 0.5, "label": "L40"},
|
||||||
|
{"y": 4.375, "x": 1.5, "label": "L41"},
|
||||||
|
{"y": 4.125, "x": 2.5, "label": "L42"},
|
||||||
|
{"y": 4, "x": 3.5, "label": "L43"},
|
||||||
|
{"y": 5, "x": 5.5, "label": "L44"},
|
||||||
|
{"h": 2, "y": 4, "x": 6.5, "label": "L45"},
|
||||||
|
{"h": 2, "y": 4, "x": 12, "label": "R41"},
|
||||||
|
{"y": 5, "x": 13, "label": "R42"},
|
||||||
|
{"y": 4, "x": 15, "label": "R43"},
|
||||||
|
{"y": 4.125, "x": 16, "label": "R44"},
|
||||||
|
{"y": 4.375, "x": 17, "label": "R45"},
|
||||||
|
{"y": 4.375, "x": 18, "label": "R46"}]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
+124
-39
@@ -10,8 +10,8 @@
|
|||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
#include <avr/io.h>
|
#include <avr/io.h>
|
||||||
#include <avr/interrupt.h>
|
#include <avr/interrupt.h>
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -20,47 +20,132 @@
|
|||||||
#ifndef FLIP_HALF
|
#ifndef FLIP_HALF
|
||||||
// Standard Keymap
|
// Standard Keymap
|
||||||
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
||||||
#define LAYOUT( \
|
#define LAYOUT_4key( \
|
||||||
L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
|
L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
|
||||||
L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
|
L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
|
||||||
L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
|
L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
|
||||||
L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \
|
L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \
|
||||||
L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \
|
L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \
|
||||||
) \
|
) \
|
||||||
{ \
|
{ \
|
||||||
{ L00, L01, L02, L03, L04, L05, L06 }, \
|
{ L00, L01, L02, L03, L04, L05, L06 }, \
|
||||||
{ L10, L11, L12, L13, L14, L15, L16 }, \
|
{ L10, L11, L12, L13, L14, L15, L16 }, \
|
||||||
{ L20, L21, L22, L23, L24, L25, L26 }, \
|
{ L20, L21, L22, L23, L24, L25, L26 }, \
|
||||||
{ L30, L31, L32, L33, L34, L35, L36 }, \
|
{ L30, L31, L32, L33, L34, L35, L36 }, \
|
||||||
{ L40, L41, L42, L43, L44, L45, L46 }, \
|
{ L40, L41, L42, L43, L44, L45, L46 }, \
|
||||||
{ R06, R05, R04, R03, R02, R01, R00 }, \
|
{ R06, R05, R04, R03, R02, R01, R00 }, \
|
||||||
{ R16, R15, R14, R13, R12, R11, R10 }, \
|
{ R16, R15, R14, R13, R12, R11, R10 }, \
|
||||||
{ R26, R25, R24, R23, R22, R21, R20 }, \
|
{ R26, R25, R24, R23, R22, R21, R20 }, \
|
||||||
{ R36, R35, R34, R33, R32, R31, R30 }, \
|
{ R36, R35, R34, R33, R32, R31, R30 }, \
|
||||||
{ R46, R45, R44, R43, R42, R41, R40 } \
|
{ R46, R45, R44, R43, R42, R41, R40 } \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Just defined for configurator support, the matrix is identical to LAYOUT_4key
|
||||||
|
#define LAYOUT_4key_2u_inner( \
|
||||||
|
L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
|
||||||
|
L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
|
||||||
|
L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
|
||||||
|
L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \
|
||||||
|
L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ L00, L01, L02, L03, L04, L05, L06 }, \
|
||||||
|
{ L10, L11, L12, L13, L14, L15, L16 }, \
|
||||||
|
{ L20, L21, L22, L23, L24, L25, L26 }, \
|
||||||
|
{ L30, L31, L32, L33, L34, L35, L36 }, \
|
||||||
|
{ L40, L41, L42, L43, L44, L45, L46 }, \
|
||||||
|
{ R06, R05, R04, R03, R02, R01, R00 }, \
|
||||||
|
{ R16, R15, R14, R13, R12, R11, R10 }, \
|
||||||
|
{ R26, R25, R24, R23, R22, R21, R20 }, \
|
||||||
|
{ R36, R35, R34, R33, R32, R31, R30 }, \
|
||||||
|
{ R46, R45, R44, R43, R42, R41, R40 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_3key_2us( \
|
||||||
|
L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
|
||||||
|
L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
|
||||||
|
L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
|
||||||
|
L30, L31, L32, L33, L34, L35, R31, R32, R33, R34, R35, R36, \
|
||||||
|
L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ L00, L01, L02, L03, L04, L05, L06 }, \
|
||||||
|
{ L10, L11, L12, L13, L14, L15, L16 }, \
|
||||||
|
{ L20, L21, L22, L23, L24, L25, L26 }, \
|
||||||
|
{ L30, L31, L32, L33, L34, L35, KC_NO }, \
|
||||||
|
{ L40, L41, L42, L43, L44, L45, L46 }, \
|
||||||
|
{ R06, R05, R04, R03, R02, R01, R00 }, \
|
||||||
|
{ R16, R15, R14, R13, R12, R11, R10 }, \
|
||||||
|
{ R26, R25, R24, R23, R22, R21, R20 }, \
|
||||||
|
{ R36, R35, R34, R33, R32, R31, KC_NO }, \
|
||||||
|
{ R46, R45, R44, R43, R42, R41, R40 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#define LAYOUT_3key_1us( \
|
||||||
|
L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
|
||||||
|
L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
|
||||||
|
L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
|
||||||
|
L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \
|
||||||
|
L40, L41, L42, L43, L44, L45, R41, R42, R43, R44, R45, R46 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ L00, L01, L02, L03, L04, L05, L06 }, \
|
||||||
|
{ L10, L11, L12, L13, L14, L15, L16 }, \
|
||||||
|
{ L20, L21, L22, L23, L24, L25, L26 }, \
|
||||||
|
{ L30, L31, L32, L33, L34, L35, L36 }, \
|
||||||
|
{ L40, L41, L42, L43, L44, L45, KC_NO }, \
|
||||||
|
{ R06, R05, R04, R03, R02, R01, R00 }, \
|
||||||
|
{ R16, R15, R14, R13, R12, R11, R10 }, \
|
||||||
|
{ R26, R25, R24, R23, R22, R21, R20 }, \
|
||||||
|
{ R36, R35, R34, R33, R32, R31, R30 }, \
|
||||||
|
{ R46, R45, R44, R43, R42, R41, KC_NO } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_2key( \
|
||||||
|
L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
|
||||||
|
L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
|
||||||
|
L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
|
||||||
|
L30, L31, L32, L33, L34, L35, R31, R32, R33, R34, R35, R36, \
|
||||||
|
L40, L41, L42, L43, L44, L45, R41, R42, R43, R44, R45, R46 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ L00, L01, L02, L03, L04, L05, L06 }, \
|
||||||
|
{ L10, L11, L12, L13, L14, L15, L16 }, \
|
||||||
|
{ L20, L21, L22, L23, L24, L25, L26 }, \
|
||||||
|
{ L30, L31, L32, L33, L34, L35, KC_NO }, \
|
||||||
|
{ L40, L41, L42, L43, L44, L45, KC_NO }, \
|
||||||
|
{ R06, R05, R04, R03, R02, R01, R00 }, \
|
||||||
|
{ R16, R15, R14, R13, R12, R11, R10 }, \
|
||||||
|
{ R26, R25, R24, R23, R22, R21, R20 }, \
|
||||||
|
{ R36, R35, R34, R33, R32, R31, KC_NO }, \
|
||||||
|
{ R46, R45, R44, R43, R42, R41, KC_NO } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT LAYOUT_4key
|
||||||
|
|
||||||
#else
|
#else
|
||||||
// Keymap with right side flipped
|
// Keymap with right side flipped
|
||||||
// (TRRS jack on both halves are to the right)
|
// (TRRS jack on both halves are to the right)
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
|
L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
|
||||||
L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
|
L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
|
||||||
L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
|
L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
|
||||||
L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \
|
L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \
|
||||||
L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \
|
L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \
|
||||||
) \
|
) \
|
||||||
{ \
|
{ \
|
||||||
{ L00, L01, L02, L03, L04, L05, L06 }, \
|
{ L00, L01, L02, L03, L04, L05, L06 }, \
|
||||||
{ L10, L11, L12, L13, L14, L15, L16 }, \
|
{ L10, L11, L12, L13, L14, L15, L16 }, \
|
||||||
{ L20, L21, L22, L23, L24, L25, L26 }, \
|
{ L20, L21, L22, L23, L24, L25, L26 }, \
|
||||||
{ L30, L31, L32, L33, L34, L35, L36 }, \
|
{ L30, L31, L32, L33, L34, L35, L36 }, \
|
||||||
{ L40, L41, L42, L43, L44, L45, L46 }, \
|
{ L40, L41, L42, L43, L44, L45, L46 }, \
|
||||||
{ R00, R01, R02, R03, R04, R05, R06 }, \
|
{ R00, R01, R02, R03, R04, R05, R06 }, \
|
||||||
{ R10, R11, R12, R13, R14, R15, R16 }, \
|
{ R10, R11, R12, R13, R14, R15, R16 }, \
|
||||||
{ R20, R21, R22, R23, R24, R25, R26 }, \
|
{ R20, R21, R22, R23, R24, R25, R26 }, \
|
||||||
{ R30, R31, R32, R33, R34, R35, R36 }, \
|
{ R30, R31, R32, R33, R34, R35, R36 }, \
|
||||||
{ R40, R41, R42, R43, R44, R45, R46 } \
|
{ R40, R41, R42, R43, R44, R45, R46 } \
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
/* Copyright 2019 joaofbmaia
|
||||||
|
*
|
||||||
|
* 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 "6macro.h"
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
/* Copyright 2019 joaofbmaia
|
||||||
|
*
|
||||||
|
* 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 LAYOUT( \
|
||||||
|
k00, k01, k02, \
|
||||||
|
k10, k11, k12 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k00, k01, k02 }, \
|
||||||
|
{ k10, k11, k12 }, \
|
||||||
|
}
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2019 joaofbmaia
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xFEED
|
||||||
|
#define PRODUCT_ID 0x0037
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER joaofbmaia
|
||||||
|
#define PRODUCT 6macro
|
||||||
|
#define DESCRIPTION 6macro
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 2
|
||||||
|
#define MATRIX_COLS 3
|
||||||
|
|
||||||
|
/* pinout - DON'T CHANGE */
|
||||||
|
#define MATRIX_ROW_PINS { B3, B4 }
|
||||||
|
#define MATRIX_COL_PINS { B0, B1, B2 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL*/
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define RGB_DI_PIN D2
|
||||||
|
#define RGBLED_NUM 10
|
||||||
|
#define RGBLIGHT_HUE_STEP 10
|
||||||
|
#define RGBLIGHT_SAT_STEP 17
|
||||||
|
#define RGBLIGHT_VAL_STEP 17
|
||||||
|
#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
|
||||||
|
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "6macro",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "joaofbmaia",
|
||||||
|
"width": 3,
|
||||||
|
"height": 2,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
/* Copyright 2019 joaofbmaia
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
/* Copyright 2019 joaofbmaia
|
||||||
|
*
|
||||||
|
* 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] = {
|
||||||
|
|
||||||
|
/* LAYER 0
|
||||||
|
* ,-----------------------.
|
||||||
|
* | F13 | F14 | F15/FN| Hold for FN
|
||||||
|
* |-------+-------+-------|
|
||||||
|
* | F16 | F17 | F18 |
|
||||||
|
* `-------+-------+-------'
|
||||||
|
*/
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_F13, KC_F14, LT(1, KC_F15), \
|
||||||
|
KC_F16, KC_F17, KC_F18 \
|
||||||
|
),
|
||||||
|
|
||||||
|
/* LAYER 1
|
||||||
|
* ,-----------------------.
|
||||||
|
* |RGB_TOG|RGBMOD+| |
|
||||||
|
* |-------+-------+-------|
|
||||||
|
* |RGBHUE+|RGBBRI+|Spec FN| Hold along with previous to access special funtions (RESET)
|
||||||
|
* `-------+-------+-------'
|
||||||
|
*/
|
||||||
|
[1] = LAYOUT(
|
||||||
|
RGB_TOG, RGB_MOD, KC_TRNS, \
|
||||||
|
RGB_HUI, RGB_VAI, MO(2) \
|
||||||
|
),
|
||||||
|
|
||||||
|
/* LAYER 2
|
||||||
|
* ,-----------------------.
|
||||||
|
* | RESET |RGBMOD-| |
|
||||||
|
* |-------+-------+-------|
|
||||||
|
* |RGBHUE-|RGBBRI-| |
|
||||||
|
* `-------+-------+-------'
|
||||||
|
*/
|
||||||
|
[2] = LAYOUT(
|
||||||
|
RESET, RGB_RMOD, KC_NO, \
|
||||||
|
RGB_HUD, RGB_VAD, KC_TRNS \
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
Layer 0:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Layer 1:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Layer 2:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
# Default 6macro Layout
|
||||||
|
|
||||||
|
This is the default layout. Layer 0 is mappped to function keys 13-18. Top right key switches to layer above when held. Upper layers are for RGB control.
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
/* Copyright 2019 joaofbmaia
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
/* Copyright 2019 joaofbmaia
|
||||||
|
*
|
||||||
|
* 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] = {
|
||||||
|
|
||||||
|
/* LAYER 0
|
||||||
|
* ,-----------------------.
|
||||||
|
* | ESC | ~ | SPC/FN| Hold for FN
|
||||||
|
* |-------+-------+-------|
|
||||||
|
* | C | Z | X |
|
||||||
|
* `-------+-------+-------'
|
||||||
|
*/
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_ESC, KC_GRAVE, LT(1, KC_SPC), \
|
||||||
|
KC_C, KC_Z, KC_X \
|
||||||
|
),
|
||||||
|
|
||||||
|
/* LAYER 1
|
||||||
|
* ,-----------------------.
|
||||||
|
* |RGB_TOG|RGBMOD+| |
|
||||||
|
* |-------+-------+-------|
|
||||||
|
* |RGBHUE+|RGBBRI+|Spec FN| Hold along with previous to access special funtions (RESET)
|
||||||
|
* `-------+-------+-------'
|
||||||
|
*/
|
||||||
|
[1] = LAYOUT(
|
||||||
|
RGB_TOG, RGB_MOD, KC_TRNS, \
|
||||||
|
RGB_HUI, RGB_VAI, MO(2) \
|
||||||
|
),
|
||||||
|
|
||||||
|
/* LAYER 2
|
||||||
|
* ,-----------------------.
|
||||||
|
* | RESET |RGBMOD-| |
|
||||||
|
* |-------+-------+-------|
|
||||||
|
* |RGBHUE-|RGBBRI-| |
|
||||||
|
* `-------+-------+-------'
|
||||||
|
*/
|
||||||
|
[2] = LAYOUT(
|
||||||
|
RESET, RGB_RMOD, KC_NO, \
|
||||||
|
RGB_HUD, RGB_VAD, KC_TRNS \
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
Layer 0:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Layer 1:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Layer 2:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
# OSU 6macro Layout
|
||||||
|
|
||||||
|
This layout is for the game OSU. Layer 0 is mappped as shown above. Top right key switches to layer above when held. Upper layers are for RGB control.
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# 6macro
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
This is a 6-key keyboard intended for macros or as a dedicated controller for games with few bindings.
|
||||||
|
|
||||||
|
Keyboard Maintainer: [joaofbmaia](https://github.com/joaofbmaia)
|
||||||
|
Hardware: https://github.com/joaofbmaia/6macro
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make handwired/6macro: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,81 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u2
|
||||||
|
|
||||||
|
# Processor frequency.
|
||||||
|
# This will define a symbol, F_CPU, in all source code files equal to the
|
||||||
|
# processor frequency in Hz. You can then use this symbol in your source code to
|
||||||
|
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
||||||
|
# automatically to create a 32-bit value in your source code.
|
||||||
|
#
|
||||||
|
# This will be an integer division of F_USB below, as it is sourced by
|
||||||
|
# F_USB after it has run through any CPU prescalers. Note that this value
|
||||||
|
# does not *change* the processor frequency - it should merely be updated to
|
||||||
|
# reflect the processor speed set externally so that the code can use accurate
|
||||||
|
# software delays.
|
||||||
|
F_CPU = 16000000
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# LUFA specific
|
||||||
|
#
|
||||||
|
# Target architecture (see library "Board Types" documentation).
|
||||||
|
ARCH = AVR8
|
||||||
|
|
||||||
|
# Input clock frequency.
|
||||||
|
# This will define a symbol, F_USB, in all source code files equal to the
|
||||||
|
# input clock frequency (before any prescaling is performed) in Hz. This value may
|
||||||
|
# differ from F_CPU if prescaling is used on the latter, and is required as the
|
||||||
|
# raw input clock is fed directly to the PLL sections of the AVR for high speed
|
||||||
|
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
|
||||||
|
# at the end, this will be done automatically to create a 32-bit value in your
|
||||||
|
# source code.
|
||||||
|
#
|
||||||
|
# If no clock division is performed on the input clock inside the AVR (via the
|
||||||
|
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
||||||
|
F_USB = $(F_CPU)
|
||||||
|
|
||||||
|
# Interrupt driven control endpoint task(+60)
|
||||||
|
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
||||||
|
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
# Teensy halfkay
|
||||||
|
# Pro Micro caterina
|
||||||
|
# Atmel DFU atmel-dfu
|
||||||
|
# LUFA DFU lufa-dfu
|
||||||
|
# QMK DFU qmk-dfu
|
||||||
|
# atmega32a bootloadHID
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
|
||||||
|
# If you don't know the bootloader type, then you can specify the
|
||||||
|
# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
# OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||||
|
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||||
|
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
|
||||||
|
#RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500)
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
|
||||||
|
UNICODE_ENABLE = yes # 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
|
||||||
|
HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
|
||||||
@@ -8,6 +8,6 @@ Hardware Availability: The Board Podcast Slack
|
|||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
make handwired/numbrero/numbrero:default
|
make handwired/numbrero: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).
|
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).
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
#ifndef CONFIG_H
|
#pragma once
|
||||||
#define CONFIG_H
|
|
||||||
|
|
||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
|
||||||
@@ -46,5 +45,3 @@
|
|||||||
#define RGBLIGHT_SAT_STEP 8
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
#define RGBLIGHT_VAL_STEP 8
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -7,6 +7,12 @@
|
|||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT": {
|
||||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Scroll Lock", "x":14, "y":0}, {"label":"Pause", "x":15, "y":0}, {"label":"Insert", "x":16, "y":0}, {"label":"Home", "x":17, "y":0}, {"label":"PgUp", "x":18, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Num Lock", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"+", "x":18, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"x":18, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Enter", "x":18, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Win", "x":11, "y":5}, {"x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}, {"x":18, "y":5}]
|
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Scroll Lock", "x":14, "y":0}, {"label":"Pause", "x":15, "y":0}, {"label":"Insert", "x":16, "y":0}, {"label":"Home", "x":17, "y":0}, {"label":"PgUp", "x":18, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Num Lock", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"+", "x":18, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"x":18, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Enter", "x":18, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Win", "x":11, "y":5}, {"x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}, {"x":18, "y":5}]
|
||||||
|
},
|
||||||
|
"LAYOUT_hotswap": {
|
||||||
|
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"Home", "x":13, "y":0}, {"label":"End", "x":14, "y":0}, {"label":"PgUp", "x":15, "y":0}, {"label":"PgDn", "x":16, "y":0}, {"label":"Media Play", "x":17, "y":0}, {"label":"Pause", "x":18, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Num Lock", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"+", "x":18, "y":2, "h":2}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"Up", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"GUI", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"label":"Space", "x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"Left", "x":13, "y":5}, {"label":"Down", "x":14, "y":5}, {"label":"Right", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}, {"label":"Enter", "x":18, "y":4, "h":2}]
|
||||||
|
},
|
||||||
|
"LAYOUT_std60_split_num0": {
|
||||||
|
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Home", "x":14, "y":0}, {"label":"End", "x":15, "y":0}, {"label":"PgUp", "x":16, "y":0}, {"label":"PgDn", "x":17, "y":0}, {"label":"Delete", "x":18, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Num Lock", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"+", "x":18, "y":2, "h":2}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":2.75}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"GUI", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"label":"Space", "x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Fn", "x":11.25, "y":5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5, "w":1.25}, {"label":"0", "x":15, "y":5}, {"label":"00", "x":16, "y":5}, {"label":".", "x":17, "y":5}, {"label":"Enter", "x":18, "y":4, "h":2}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// Defines the keycodes used by our macros in process_record_user
|
||||||
|
enum custom_keycodes {
|
||||||
|
KC_P00 = SAFE_RANGE
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[0] = LAYOUT_std60_split_num0(
|
||||||
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
|
||||||
|
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_P7, KC_P8, KC_P9,
|
||||||
|
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_P4, KC_P5, KC_P6, KC_PPLS,
|
||||||
|
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_P1, KC_P2, KC_P3,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_P0, KC_P00, KC_PDOT, KC_PENT
|
||||||
|
),
|
||||||
|
|
||||||
|
[0] = LAYOUT_std60_split_num0(
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, BL_DEC, BL_TOGG, BL_INC, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
switch (keycode) {
|
||||||
|
case KC_P00:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
SEND_STRING("00");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
# default_std60_split_num0
|
||||||
|
|
||||||
|
A modified default keymap for use with the LAYOUT_std60_split_num0 macro.
|
||||||
|
|
||||||
|
## Base Layer
|
||||||
|
|
||||||
|
```
|
||||||
|
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||||
|
│Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Prt│Hm │End│PUp│PDn│Del│
|
||||||
|
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤
|
||||||
|
│` ~│1 !│2 @│3 #│4 $│5 %│6 ^│7 &│8 *│9 (│0 )│- _│= +│ Bksp │NLk│ / │ * │ - │
|
||||||
|
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┼───┼───┼───┤
|
||||||
|
│ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │[ {│] }│ \ | │7 │8 │9 │ + │
|
||||||
|
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┤ │
|
||||||
|
│CapsLk│ A │ S │ D │ F │ G │ H │ J │ K │ L │; :│' "│ Enter │4 │5 │6 │ │
|
||||||
|
├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┼───┼───┼───┼───┤
|
||||||
|
│ Shift │ Z │ X │ C │ V │ B │ N │ M │, <│. >│/ ?│ Shift │1 │2 │3 │Ent│
|
||||||
|
├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┼───┼───┼───┤ │
|
||||||
|
│Ctrl│GUI │Alt │Space │Alt │Fn │Menu│Ctrl│0 │00 │ . │ │
|
||||||
|
└────┴────┴────┴────────────────────────┴────┴────┴────┴────┴───┴───┴───┴───┘
|
||||||
|
```
|
||||||
|
|
||||||
|
## Function Layer
|
||||||
|
|
||||||
|
```
|
||||||
|
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||||
|
│RST│ │ │ │ │ │ │ │ │ │ │ │ │Mut│VDn│VUp│ │ │ │
|
||||||
|
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤
|
||||||
|
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||||
|
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┼───┼───┼───┤
|
||||||
|
│ │RTg│ │RMd│RH+│RH-│RS+│RS-│RV+│RV-│ │ │ │ │ │ │ │ │
|
||||||
|
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┤ │
|
||||||
|
│BLTogg│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||||
|
├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┼───┼───┼───┼───┤
|
||||||
|
│ │ │ │BL-│BTg│BL+│ │ │ │ │ │ │ │ │ │ │
|
||||||
|
├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┼───┼───┼───┤ │
|
||||||
|
│ │ │ │ │ │ │ │ │ │ │ │ │
|
||||||
|
└────┴────┴────┴────────────────────────┴────┴────┴────┴────┴───┴───┴───┴───┘
|
||||||
|
```
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
#ifndef MELODY96_H
|
#pragma once
|
||||||
#define MELODY96_H
|
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
@@ -64,4 +63,39 @@
|
|||||||
{ K110, K111, K112, K113, K114, K115, K116, K117, K118 } \
|
{ K110, K111, K112, K113, K114, K115, K116, K117, K118 } \
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
/* LAYOUT_std60_split_num0
|
||||||
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||||
|
* │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Prt│Pau│Hm │End│PUp│PDn│
|
||||||
|
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤
|
||||||
|
* │` ~│1 !│2 @│3 #│4 $│5 %│6 ^│7 &│8 *│9 (│0 )│- _│= +│ Bksp │NLk│ / │ * │ - │
|
||||||
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┼───┼───┼───┤
|
||||||
|
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │[ {│] }│ \ | │7 │8 │9 │ + │
|
||||||
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┤ │
|
||||||
|
* │CapsLk│ A │ S │ D │ F │ G │ H │ J │ K │ L │; :│' "│ Enter │4 │5 │6 │ │
|
||||||
|
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┼───┼───┼───┼───┤
|
||||||
|
* │ Shift │ Z │ X │ C │ V │ B │ N │ M │, <│. >│/ ?│ Shift │1 │2 │3 │Ent│
|
||||||
|
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┼───┼───┼───┤ │
|
||||||
|
* │Ctrl│GUI │Alt │Space │Alt │GUI │Menu│Ctrl│0 │00 │ . │ │
|
||||||
|
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┴───┴───┴───┴───┘
|
||||||
|
*/
|
||||||
|
#define LAYOUT_std60_split_num0( \
|
||||||
|
K50, K51, K52, K53, K54, K55, K56, K57, K58, KB8, KB7, KB5, KB4, KB3, KB6, KB2, KB1, KB0, K63, \
|
||||||
|
K40, K41, K42, K43, K44, K45, K46, K47, K48, KA8, KA7, KA5, KA4, KA6, KA2, KA1, KA0, K64, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K98, K97, K95, K94, K84, K96, K92, K91, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K88, K87, K85, K93, K86, K82, K81, K80, \
|
||||||
|
K10, K12, K13, K14, K15, K16, K17, K18, K78, K77, K75, K74, K76, K72, K71, \
|
||||||
|
K00, K01, K02, K06, K08, K07, K04, K03, K66, K62, K61, K60 \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, KC_NO, K06, K07, K08 }, \
|
||||||
|
{ K10, KC_NO, K12, K13, K14, K15, K16, K17, K18 }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38 }, \
|
||||||
|
{ K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \
|
||||||
|
{ K50, K51, K52, K53, K54, K55, K56, K57, K58 }, \
|
||||||
|
{ K60, K61, K62, K63, K64, KC_NO, K66, KC_NO, KC_NO }, \
|
||||||
|
{ KC_NO, K71, K72, KC_NO, K74, K75, K76, K77, K78 }, \
|
||||||
|
{ K80, K81, K82, KC_NO, K84, K85, K86, K87, K88 }, \
|
||||||
|
{ KC_NO, K91, K92, K93, K94, K95, K96, K97, K98 }, \
|
||||||
|
{ KA0, KA1, KA2, KC_NO, KA4, KA5, KA6, KA7, KA8 }, \
|
||||||
|
{ KB0, KB1, KB2, KB3, KB4, KB5, KB6, KB7, KB8 } \
|
||||||
|
}
|
||||||
@@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment):
|
|||||||
|
|
||||||
make melody96:default
|
make melody96:default
|
||||||
|
|
||||||
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
|
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).
|
||||||
@@ -1,39 +1,5 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef AUDIO_ENABLE
|
#ifdef AUDIO_ENABLE
|
||||||
#define STARTUP_SONG SONG(PLANCK_SOUND)
|
#define STARTUP_SONG SONG(DVORAK_SOUND)
|
||||||
// #define STARTUP_SONG SONG(NO_SOUND)
|
|
||||||
|
|
||||||
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
|
|
||||||
SONG(COLEMAK_SOUND), \
|
|
||||||
SONG(DVORAK_SOUND) \
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
|
||||||
* 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 2
|
|
||||||
|
|
||||||
// Most tactile encoders have detents every 4 stages
|
|
||||||
#define ENCODER_RESOLUTION 4
|
|
||||||
|
|
||||||
@@ -1,19 +1,3 @@
|
|||||||
/* Copyright 2015-2017 Jack Humbert
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
#include "muse.h"
|
#include "muse.h"
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,79 @@
|
|||||||
|
/* Copyright 2018 Holten Campbell
|
||||||
|
*
|
||||||
|
* 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_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_DEL,
|
||||||
|
LT(2, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(2, KC_ENT),
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, LT(3, KC_B), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, LT(1, KC_SPC), LT(1, KC_SPC), KC_RALT, KC_RGUI, KC_RCTL
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT(
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_TRNS,
|
||||||
|
KC_TRNS, KC_MINS, KC_EQL, KC_SCLN, KC_QUOT, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_QUOT, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
[2] = LAYOUT(
|
||||||
|
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, KC_TRNS,
|
||||||
|
KC_TRNS, KC_UNDS, KC_PLUS, KC_COLN, KC_DQUO, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_DQUO, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
[3] = LAYOUT(
|
||||||
|
KC_TRNS, 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
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
|
void matrix_init_user(void) {
|
||||||
|
// set CapsLock LED to output and low
|
||||||
|
setPinOutput(B1);
|
||||||
|
writePinLow(B1);
|
||||||
|
// set NumLock LED to output and low
|
||||||
|
setPinOutput(B2);
|
||||||
|
writePinLow(B2);
|
||||||
|
// set ScrollLock LED to output and low
|
||||||
|
setPinOutput(B3);
|
||||||
|
writePinLow(B3);
|
||||||
|
}
|
||||||
|
|
||||||
|
//function for layer indicator LED
|
||||||
|
uint32_t layer_state_set_user(uint32_t state)
|
||||||
|
{
|
||||||
|
if (state & (1<<1)) {
|
||||||
|
writePinHigh(B1);
|
||||||
|
} else {
|
||||||
|
writePinLow(B1);
|
||||||
|
}
|
||||||
|
if (state & (1<<2)) {
|
||||||
|
writePinHigh(B2);
|
||||||
|
} else {
|
||||||
|
writePinLow(B2);
|
||||||
|
}
|
||||||
|
if (state & (1<<3)) {
|
||||||
|
writePinHigh(B3);
|
||||||
|
} else {
|
||||||
|
writePinLow(B3);
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
@@ -20,6 +20,8 @@ Flashing
|
|||||||
|
|
||||||
ps2avr(GB) boards use an atmega32a microcontroller and a different bootloader. It is not flashable using the regular QMK methods.
|
ps2avr(GB) boards use an atmega32a microcontroller and a different bootloader. It is not flashable using the regular QMK methods.
|
||||||
|
|
||||||
|
**Reset Key:** Hold down the key located at `K00`, commonly programmed as `Esc` while plugging in the keyboard.
|
||||||
|
|
||||||
Windows:
|
Windows:
|
||||||
1. Download [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash).
|
1. Download [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash).
|
||||||
2. Place your keyboard into reset.
|
2. Place your keyboard into reset.
|
||||||
@@ -41,9 +43,10 @@ macOS:
|
|||||||
brew install python3
|
brew install python3
|
||||||
pip3 install pyusb
|
pip3 install pyusb
|
||||||
brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb
|
brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb
|
||||||
|
```
|
||||||
|
|
||||||
4. Place your keyboard into reset.
|
4. Place your keyboard into reset.
|
||||||
5. Flash the board by typing `bootloadHID -r` followed by the path to your `.hex` file.
|
5. Flash the board by typing `bootloadHID -r` followed by the path to your `.hex` file.
|
||||||
|
|
||||||
|
|
||||||
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
|
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).
|
||||||
@@ -1,14 +1,19 @@
|
|||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
#include "unicode.c"
|
||||||
|
|
||||||
enum layers {
|
enum layers {
|
||||||
_QWERTY,
|
_QWERTY,
|
||||||
_LOWER,
|
_LOWER,
|
||||||
_RAISE,
|
_RAISE,
|
||||||
|
_UNI_LCK
|
||||||
};
|
};
|
||||||
|
|
||||||
#define LOWER MO(_LOWER)
|
#define LOWER MO(_LOWER)
|
||||||
#define RAISE MO(_RAISE)
|
#define RAISE MO(_RAISE)
|
||||||
|
#define UNI_LCK MO(_UNI_LCK)
|
||||||
#define TGLOWER TG(_LOWER)
|
#define TGLOWER TG(_LOWER)
|
||||||
|
#define TGRAISE TG(_RAISE)
|
||||||
|
#define SHRAISE LM(_RAISE, MOD_LSFT)
|
||||||
|
|
||||||
static bool is_ctl_pressed;
|
static bool is_ctl_pressed;
|
||||||
static bool is_esc_pressed;
|
static bool is_esc_pressed;
|
||||||
@@ -22,33 +27,45 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
KC_TAB, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN, KC_ENT,
|
KC_TAB, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN, KC_ENT,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M ,KC_COMM, KC_DOT, KC_UP, KC_SLSH,
|
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M ,KC_COMM, KC_DOT, KC_UP ,KC_SLSH,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
KC_LCTL,KC_LGUI,KC_LALT,TGLOWER, LOWER , KC_SPC, KC_SPC, RAISE ,KC_RALT,KC_LEFT,KC_DOWN,KC_RGHT
|
KC_LCTL,KC_LGUI,KC_LALT,UNI_LCK, LOWER , KC_SPC, KC_SPC, RAISE ,SHRAISE,KC_LEFT,KC_DOWN,KC_RGHT
|
||||||
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
||||||
),
|
),
|
||||||
|
|
||||||
[_LOWER] = LAYOUT_ortho_4x12 (
|
[_LOWER] = LAYOUT_ortho_4x12 (
|
||||||
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
|
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
|
||||||
KC_GRV, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,_______,
|
_______, KC_F1 , KC_F2 , KC_F3 , KC_F4 ,_______, KC_INS, KC_P7 , KC_P8 , KC_P9 ,KC_PMNS,_______,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
_______, KC_F1 , KC_F2 , KC_F3, KC_F4 ,_______,KC_LBRC,KC_RBRC,KC_BSLS,KC_QUOT,_______,_______,
|
_______, KC_F5 , KC_F6 , KC_F7 , KC_F8 ,KC_HOME,KC_PGUP, KC_P4 , KC_P5 , KC_P6 ,KC_PPLS,KC_PENT,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
_______, KC_F5 , KC_F6 , KC_F7 , KC_F8 ,_______,KC_MINS, KC_EQL,_______,_______,_______,_______,
|
_______, KC_F9 , KC_F10, KC_F11, KC_F12, KC_END,KC_PGDN, KC_P1 , KC_P2 , KC_P3 ,KC_PAST,KC_PSLS,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
|
_______,_______,_______,_______,_______,_______,_______,_______, KC_P0 ,KC_PDOT,KC_LPRN,KC_RPRN
|
||||||
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
||||||
),
|
),
|
||||||
|
|
||||||
[_RAISE] = LAYOUT_ortho_4x12 (
|
[_RAISE] = LAYOUT_ortho_4x12 (
|
||||||
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
|
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
|
||||||
KC_TILD,KC_EXLM, KC_AT ,KC_HASH, KC_DLR,KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN, 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_DEL,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
KC_CAPS, KC_F9 , KC_F10, KC_F11, KC_F12,_______,KC_LCBR,KC_RCBR,KC_PIPE,KC_DQUO,_______,_______,
|
KC_CAPS,_______,_______,_______,_______,_______,KC_LBRC,KC_RBRC,KC_BSLS,KC_QUOT,_______,_______,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
_______,_______,_______,_______,_______,_______,KC_UNDS,KC_PLUS,KC_HOME,KC_PGUP,KC_VOLU,_______,
|
_______,_______,_______,_______,_______,_______,KC_MINS, KC_EQL,_______,_______,KC_VOLU,_______,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
_______,_______,_______,_______,_______,_______,_______,_______, KC_END,KC_PGDN,KC_VOLD,KC_MUTE
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_VOLD,KC_MUTE
|
||||||
|
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
||||||
|
),
|
||||||
|
|
||||||
|
[_UNI_LCK] = LAYOUT_ortho_4x12 (
|
||||||
|
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
|
||||||
|
UN_ESC, UN_Q , UN_W , UN_E , UN_R , UN_T , UN_Y , UN_U , UN_I , UN_O , UN_P ,_______,
|
||||||
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
|
_______, UN_A , UN_S , UN_D , UN_F , UN_G , UN_H , UN_J , UN_K , UN_L ,UN_SCLN,_______,
|
||||||
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
|
_______, UN_Z , UN_X , UN_C , UN_V , UN_B , UN_N , UN_M ,UN_COMM, UN_DOT, UN_UP ,UN_SLSH,
|
||||||
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
|
UC_M_LN,UC_M_WI,UC_M_OS,_______,TGLOWER,_______,_______,TGRAISE,_______,UN_LEFT,UN_DOWN,UN_RGHT
|
||||||
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
||||||
),
|
),
|
||||||
|
|
||||||
@@ -65,6 +82,10 @@ uint32_t layer_state_set_user(uint32_t state) {
|
|||||||
writePinLow(JOTANCK_LED1);
|
writePinLow(JOTANCK_LED1);
|
||||||
writePinHigh(JOTANCK_LED2);
|
writePinHigh(JOTANCK_LED2);
|
||||||
break;
|
break;
|
||||||
|
case _UNI_LCK:
|
||||||
|
writePinHigh(JOTANCK_LED1);
|
||||||
|
writePinHigh(JOTANCK_LED2);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
writePinLow(JOTANCK_LED1);
|
writePinLow(JOTANCK_LED1);
|
||||||
writePinLow(JOTANCK_LED2);
|
writePinLow(JOTANCK_LED2);
|
||||||
@@ -74,6 +95,16 @@ uint32_t layer_state_set_user(uint32_t state) {
|
|||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void led_set_user(uint8_t usb_led) {
|
||||||
|
if (!(IS_LED_ON(usb_led, USB_LED_NUM_LOCK))) {
|
||||||
|
tap_code(KC_NUMLOCK);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void keyboard_post_init_user(void) {
|
||||||
|
set_unicode_input_mode(UC_LNX);
|
||||||
|
}
|
||||||
|
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
case KC_LCTL:
|
case KC_LCTL:
|
||||||
@@ -88,7 +119,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||||||
};
|
};
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void matrix_scan_user(void) {
|
void matrix_scan_user(void) {
|
||||||
if (is_ctl_pressed && is_esc_pressed && is_bspc_pressed) {
|
if (is_ctl_pressed && is_esc_pressed && is_bspc_pressed) {
|
||||||
reset_keyboard();
|
reset_keyboard();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Jotix ortho 4x12 keymap
|
# Jotix ortho 4x12 keymap
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Tested on:
|
Tested on:
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
UNICODEMAP_ENABLE = yes
|
||||||
@@ -0,0 +1,185 @@
|
|||||||
|
enum unicode_names {
|
||||||
|
A_ACUTE,
|
||||||
|
A_ACUTEC,
|
||||||
|
E_ACUTE,
|
||||||
|
E_ACUTEC,
|
||||||
|
I_ACUTE,
|
||||||
|
I_ACUTEC,
|
||||||
|
O_ACUTE,
|
||||||
|
O_ACUTEC,
|
||||||
|
U_ACUTE,
|
||||||
|
U_ACUTEC,
|
||||||
|
U_DIERESIS,
|
||||||
|
U_DIERESISC,
|
||||||
|
N_TILDE,
|
||||||
|
N_TILDEC,
|
||||||
|
OPEN_EXCML,
|
||||||
|
OPEN_QUEST,
|
||||||
|
EURO,
|
||||||
|
POUND,
|
||||||
|
LEFT_ARROW,
|
||||||
|
DOWN_ARROW,
|
||||||
|
UP_ARROW,
|
||||||
|
RIGHT_ARROW,
|
||||||
|
LEFT_DARROW,
|
||||||
|
DOWN_DARROW,
|
||||||
|
UP_DARROW,
|
||||||
|
RIGHT_DAROW,
|
||||||
|
LEFT_DQUOT,
|
||||||
|
RGHT_DQUOT,
|
||||||
|
DEGREE,
|
||||||
|
DEGREE_CELCIUS,
|
||||||
|
SUPER_1,
|
||||||
|
SUPER_2,
|
||||||
|
SUPER_3,
|
||||||
|
ONE_HALF,
|
||||||
|
PER_MILLE,
|
||||||
|
PER_THOUS,
|
||||||
|
PILCROW,
|
||||||
|
COPYRIGHT,
|
||||||
|
REGISTERED,
|
||||||
|
MICRO,
|
||||||
|
MIDDLE_DOT,
|
||||||
|
BOX_CORNER_1,
|
||||||
|
BOX_CORNER_2,
|
||||||
|
BOX_CORNER_3,
|
||||||
|
BOX_CORNER_4,
|
||||||
|
BOX_HORIZONTAL,
|
||||||
|
BOX_VERTICAL,
|
||||||
|
BOX_CROSS,
|
||||||
|
BOX_UNION_1,
|
||||||
|
BOX_UNION_2,
|
||||||
|
BOX_UNION_3,
|
||||||
|
BOX_UNION_4,
|
||||||
|
DBOX_CORNER_1,
|
||||||
|
DBOX_CORNER_2,
|
||||||
|
DBOX_CORNER_3,
|
||||||
|
DBOX_CORNER_4,
|
||||||
|
DBOX_HORIZONT,
|
||||||
|
DBOX_VERTICAL,
|
||||||
|
DBOX_CROSS,
|
||||||
|
DBOX_UNION_1,
|
||||||
|
DBOX_UNION_2,
|
||||||
|
DBOX_UNION_3,
|
||||||
|
DBOX_UNION_4,
|
||||||
|
LESS_EQUAL,
|
||||||
|
MORE_EQUAL,
|
||||||
|
DIVISION,
|
||||||
|
SQUARE_ROOT,
|
||||||
|
CUBE_ROOT,
|
||||||
|
SPADE_SUIT,
|
||||||
|
TREBOL_SUIT,
|
||||||
|
HEART_SUIT,
|
||||||
|
DIAMOND_SUIT,
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint32_t PROGMEM unicode_map[] = {
|
||||||
|
[A_ACUTE] = 0x00E1,
|
||||||
|
[A_ACUTEC] = 0x00C1,
|
||||||
|
[E_ACUTE] = 0x00E9,
|
||||||
|
[E_ACUTEC] = 0x00C9,
|
||||||
|
[I_ACUTE] = 0x00ED,
|
||||||
|
[I_ACUTEC] = 0x00CD,
|
||||||
|
[O_ACUTE] = 0x00F3,
|
||||||
|
[O_ACUTEC] = 0x00D3,
|
||||||
|
[U_ACUTE] = 0x00FA,
|
||||||
|
[U_ACUTEC] = 0x00DA,
|
||||||
|
[U_DIERESIS] = 0x00FC,
|
||||||
|
[U_DIERESISC] = 0x00DC,
|
||||||
|
[N_TILDE] = 0x00F1,
|
||||||
|
[N_TILDEC] = 0x00D1,
|
||||||
|
[OPEN_EXCML] = 0x00A1,
|
||||||
|
[OPEN_QUEST] = 0x00BF,
|
||||||
|
[EURO] = 0x20AC,
|
||||||
|
[POUND] = 0x00A3,
|
||||||
|
[LEFT_ARROW] = 0x2190,
|
||||||
|
[DOWN_ARROW] = 0x2193,
|
||||||
|
[UP_ARROW] = 0x2191,
|
||||||
|
[RIGHT_ARROW] = 0x2192,
|
||||||
|
[LEFT_DARROW] = 0x21E6,
|
||||||
|
[DOWN_DARROW] = 0x21D3,
|
||||||
|
[UP_DARROW] = 0x21D1,
|
||||||
|
[RIGHT_DAROW] = 0x21D2,
|
||||||
|
[LEFT_DQUOT] = 0x00AB,
|
||||||
|
[RGHT_DQUOT] = 0x00BB,
|
||||||
|
[DEGREE] = 0x00B0,
|
||||||
|
[DEGREE_CELCIUS]= 0x2103,
|
||||||
|
[SUPER_1] = 0x00B9,
|
||||||
|
[SUPER_2] = 0x00B2,
|
||||||
|
[SUPER_3] = 0x00B3,
|
||||||
|
[ONE_HALF] = 0x00BD,
|
||||||
|
[PER_MILLE] = 0x0609,
|
||||||
|
[PER_THOUS] = 0x060A,
|
||||||
|
[PILCROW] = 0x00B6,
|
||||||
|
[COPYRIGHT] = 0x00A9,
|
||||||
|
[REGISTERED] = 0x00AE,
|
||||||
|
[MICRO] = 0x00B5,
|
||||||
|
[MIDDLE_DOT] = 0x00B7,
|
||||||
|
[BOX_CORNER_1] = 0x250C,
|
||||||
|
[BOX_CORNER_2] = 0x2510,
|
||||||
|
[BOX_CORNER_3] = 0x2514,
|
||||||
|
[BOX_CORNER_4] = 0x2518,
|
||||||
|
[BOX_HORIZONTAL]= 0x2500,
|
||||||
|
[BOX_VERTICAL] = 0x2502,
|
||||||
|
[BOX_CROSS] = 0x253C,
|
||||||
|
[BOX_UNION_1] = 0x2524,
|
||||||
|
[BOX_UNION_2] = 0x252C,
|
||||||
|
[BOX_UNION_3] = 0x2534,
|
||||||
|
[BOX_UNION_4] = 0x251C,
|
||||||
|
[DBOX_CORNER_1] = 0x2554,
|
||||||
|
[DBOX_CORNER_2] = 0x2557,
|
||||||
|
[DBOX_CORNER_3] = 0x255A,
|
||||||
|
[DBOX_CORNER_4] = 0x255D,
|
||||||
|
[DBOX_HORIZONT] = 0x2550,
|
||||||
|
[DBOX_VERTICAL] = 0x2551,
|
||||||
|
[DBOX_CROSS] = 0x256C,
|
||||||
|
[DBOX_UNION_1] = 0x2563,
|
||||||
|
[DBOX_UNION_2] = 0x2566,
|
||||||
|
[DBOX_UNION_3] = 0x2569,
|
||||||
|
[DBOX_UNION_4] = 0x2560,
|
||||||
|
[LESS_EQUAL] = 0x2264,
|
||||||
|
[MORE_EQUAL] = 0x2265,
|
||||||
|
[DIVISION] = 0x00F7,
|
||||||
|
[SQUARE_ROOT] = 0x221A,
|
||||||
|
[CUBE_ROOT] = 0x221B,
|
||||||
|
[SPADE_SUIT] = 0x2660,
|
||||||
|
[TREBOL_SUIT] = 0x2663,
|
||||||
|
[HEART_SUIT] = 0x2664,
|
||||||
|
[DIAMOND_SUIT] = 0x2665
|
||||||
|
};
|
||||||
|
|
||||||
|
#define UN_ESC XP(DEGREE, DEGREE_CELCIUS)
|
||||||
|
#define UN_Q XP(OPEN_EXCML, SUPER_1)
|
||||||
|
#define UN_W XP(SUPER_2, SUPER_3)
|
||||||
|
#define UN_E XP(E_ACUTE, E_ACUTEC)
|
||||||
|
#define UN_R XP(EURO, ONE_HALF)
|
||||||
|
#define UN_T XP(PER_MILLE, PER_THOUS)
|
||||||
|
#define UN_Y XP(U_DIERESIS, U_DIERESISC)
|
||||||
|
#define UN_U XP(U_ACUTE, U_ACUTEC)
|
||||||
|
#define UN_I XP(I_ACUTE, I_ACUTEC)
|
||||||
|
#define UN_O XP(O_ACUTE, O_ACUTEC)
|
||||||
|
#define UN_P XP(POUND, PILCROW)
|
||||||
|
#define UN_A XP(A_ACUTE, A_ACUTEC)
|
||||||
|
#define UN_S XP(BOX_CORNER_1, DBOX_CORNER_1)
|
||||||
|
#define UN_D XP(BOX_CORNER_2, DBOX_CORNER_2)
|
||||||
|
#define UN_F XP(BOX_CORNER_3, DBOX_CORNER_3)
|
||||||
|
#define UN_G XP(BOX_CORNER_4, DBOX_CORNER_4)
|
||||||
|
#define UN_H XP(BOX_UNION_1, DBOX_UNION_1)
|
||||||
|
#define UN_J XP(BOX_UNION_2, DBOX_UNION_2)
|
||||||
|
#define UN_K XP(BOX_UNION_3, DBOX_UNION_3)
|
||||||
|
#define UN_L XP(BOX_UNION_4, DBOX_UNION_4)
|
||||||
|
#define UN_SCLN XP(BOX_HORIZONTAL, DBOX_HORIZONT)
|
||||||
|
#define UN_Z XP(BOX_VERTICAL, DBOX_VERTICAL)
|
||||||
|
#define UN_X XP(BOX_CROSS, DBOX_CROSS)
|
||||||
|
#define UN_C XP(COPYRIGHT, REGISTERED)
|
||||||
|
#define UN_V XP(SPADE_SUIT, TREBOL_SUIT)
|
||||||
|
#define UN_B XP(HEART_SUIT, DIAMOND_SUIT)
|
||||||
|
#define UN_N XP(N_TILDE, N_TILDEC)
|
||||||
|
#define UN_M XP(MICRO, MIDDLE_DOT)
|
||||||
|
#define UN_COMM XP(LESS_EQUAL, LEFT_DQUOT)
|
||||||
|
#define UN_DOT XP(MORE_EQUAL, RGHT_DQUOT)
|
||||||
|
#define UN_SLSH XP(OPEN_QUEST, DIVISION)
|
||||||
|
#define UN_LEFT XP(LEFT_ARROW, LEFT_DARROW)
|
||||||
|
#define UN_DOWN XP(DOWN_ARROW, DOWN_DARROW)
|
||||||
|
#define UN_UP XP(UP_ARROW, UP_DARROW)
|
||||||
|
#define UN_RGHT XP(RIGHT_ARROW, RIGHT_DAROW)
|
||||||
+11
-18
@@ -167,7 +167,6 @@ void eeconfig_update_rgblight(uint32_t val) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void eeconfig_update_rgblight_default(void) {
|
void eeconfig_update_rgblight_default(void) {
|
||||||
//dprintf("eeconfig_update_rgblight_default\n");
|
|
||||||
rgblight_config.enable = 1;
|
rgblight_config.enable = 1;
|
||||||
rgblight_config.mode = RGBLIGHT_MODE_STATIC_LIGHT;
|
rgblight_config.mode = RGBLIGHT_MODE_STATIC_LIGHT;
|
||||||
rgblight_config.hue = 0;
|
rgblight_config.hue = 0;
|
||||||
@@ -179,7 +178,7 @@ void eeconfig_update_rgblight_default(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void eeconfig_debug_rgblight(void) {
|
void eeconfig_debug_rgblight(void) {
|
||||||
dprintf("rgblight_config eprom\n");
|
dprintf("rgblight_config EEPROM:\n");
|
||||||
dprintf("rgblight_config.enable = %d\n", rgblight_config.enable);
|
dprintf("rgblight_config.enable = %d\n", rgblight_config.enable);
|
||||||
dprintf("rghlight_config.mode = %d\n", rgblight_config.mode);
|
dprintf("rghlight_config.mode = %d\n", rgblight_config.mode);
|
||||||
dprintf("rgblight_config.hue = %d\n", rgblight_config.hue);
|
dprintf("rgblight_config.hue = %d\n", rgblight_config.hue);
|
||||||
@@ -308,9 +307,9 @@ void rgblight_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom) {
|
|||||||
RGBLIGHT_SPLIT_SET_CHANGE_MODE;
|
RGBLIGHT_SPLIT_SET_CHANGE_MODE;
|
||||||
if (write_to_eeprom) {
|
if (write_to_eeprom) {
|
||||||
eeconfig_update_rgblight(rgblight_config.raw);
|
eeconfig_update_rgblight(rgblight_config.raw);
|
||||||
xprintf("rgblight mode [EEPROM]: %u\n", rgblight_config.mode);
|
dprintf("rgblight mode [EEPROM]: %u\n", rgblight_config.mode);
|
||||||
} else {
|
} else {
|
||||||
xprintf("rgblight mode [NOEEPROM]: %u\n", rgblight_config.mode);
|
dprintf("rgblight mode [NOEEPROM]: %u\n", rgblight_config.mode);
|
||||||
}
|
}
|
||||||
if( is_static_effect(rgblight_config.mode) ) {
|
if( is_static_effect(rgblight_config.mode) ) {
|
||||||
#ifdef RGBLIGHT_USE_TIMER
|
#ifdef RGBLIGHT_USE_TIMER
|
||||||
@@ -337,7 +336,7 @@ void rgblight_mode_noeeprom(uint8_t mode) {
|
|||||||
|
|
||||||
|
|
||||||
void rgblight_toggle(void) {
|
void rgblight_toggle(void) {
|
||||||
xprintf("rgblight toggle [EEPROM]: rgblight_config.enable = %u\n", !rgblight_config.enable);
|
dprintf("rgblight toggle [EEPROM]: rgblight_config.enable = %u\n", !rgblight_config.enable);
|
||||||
if (rgblight_config.enable) {
|
if (rgblight_config.enable) {
|
||||||
rgblight_disable();
|
rgblight_disable();
|
||||||
}
|
}
|
||||||
@@ -347,7 +346,7 @@ void rgblight_toggle(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void rgblight_toggle_noeeprom(void) {
|
void rgblight_toggle_noeeprom(void) {
|
||||||
xprintf("rgblight toggle [NOEEPROM]: rgblight_config.enable = %u\n", !rgblight_config.enable);
|
dprintf("rgblight toggle [NOEEPROM]: rgblight_config.enable = %u\n", !rgblight_config.enable);
|
||||||
if (rgblight_config.enable) {
|
if (rgblight_config.enable) {
|
||||||
rgblight_disable_noeeprom();
|
rgblight_disable_noeeprom();
|
||||||
}
|
}
|
||||||
@@ -360,20 +359,20 @@ void rgblight_enable(void) {
|
|||||||
rgblight_config.enable = 1;
|
rgblight_config.enable = 1;
|
||||||
// No need to update EEPROM here. rgblight_mode() will do that, actually
|
// No need to update EEPROM here. rgblight_mode() will do that, actually
|
||||||
//eeconfig_update_rgblight(rgblight_config.raw);
|
//eeconfig_update_rgblight(rgblight_config.raw);
|
||||||
xprintf("rgblight enable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
|
dprintf("rgblight enable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
|
||||||
rgblight_mode(rgblight_config.mode);
|
rgblight_mode(rgblight_config.mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void rgblight_enable_noeeprom(void) {
|
void rgblight_enable_noeeprom(void) {
|
||||||
rgblight_config.enable = 1;
|
rgblight_config.enable = 1;
|
||||||
xprintf("rgblight enable [NOEEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
|
dprintf("rgblight enable [NOEEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
|
||||||
rgblight_mode_noeeprom(rgblight_config.mode);
|
rgblight_mode_noeeprom(rgblight_config.mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void rgblight_disable(void) {
|
void rgblight_disable(void) {
|
||||||
rgblight_config.enable = 0;
|
rgblight_config.enable = 0;
|
||||||
eeconfig_update_rgblight(rgblight_config.raw);
|
eeconfig_update_rgblight(rgblight_config.raw);
|
||||||
xprintf("rgblight disable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
|
dprintf("rgblight disable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
|
||||||
#ifdef RGBLIGHT_USE_TIMER
|
#ifdef RGBLIGHT_USE_TIMER
|
||||||
rgblight_timer_disable();
|
rgblight_timer_disable();
|
||||||
#endif
|
#endif
|
||||||
@@ -384,7 +383,7 @@ void rgblight_disable(void) {
|
|||||||
|
|
||||||
void rgblight_disable_noeeprom(void) {
|
void rgblight_disable_noeeprom(void) {
|
||||||
rgblight_config.enable = 0;
|
rgblight_config.enable = 0;
|
||||||
xprintf("rgblight disable [noEEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
|
dprintf("rgblight disable [NOEEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
|
||||||
#ifdef RGBLIGHT_USE_TIMER
|
#ifdef RGBLIGHT_USE_TIMER
|
||||||
rgblight_timer_disable();
|
rgblight_timer_disable();
|
||||||
#endif
|
#endif
|
||||||
@@ -471,7 +470,6 @@ void rgblight_sethsv_noeeprom_old(uint8_t hue, uint8_t sat, uint8_t val) {
|
|||||||
if (rgblight_config.enable) {
|
if (rgblight_config.enable) {
|
||||||
LED_TYPE tmp_led;
|
LED_TYPE tmp_led;
|
||||||
sethsv(hue, sat, val, &tmp_led);
|
sethsv(hue, sat, val, &tmp_led);
|
||||||
// dprintf("rgblight set hue [MEMORY]: %u,%u,%u\n", inmem_config.hue, inmem_config.sat, inmem_config.val);
|
|
||||||
rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b);
|
rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -543,9 +541,9 @@ void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool w
|
|||||||
rgblight_config.val = val;
|
rgblight_config.val = val;
|
||||||
if (write_to_eeprom) {
|
if (write_to_eeprom) {
|
||||||
eeconfig_update_rgblight(rgblight_config.raw);
|
eeconfig_update_rgblight(rgblight_config.raw);
|
||||||
xprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val);
|
dprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val);
|
||||||
} else {
|
} else {
|
||||||
xprintf("rgblight set hsv [NOEEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val);
|
dprintf("rgblight set hsv [NOEEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -866,7 +864,6 @@ void rgblight_task(void) {
|
|||||||
uint16_t oldpos16;
|
uint16_t oldpos16;
|
||||||
if (tick_flag) {
|
if (tick_flag) {
|
||||||
tick_flag = false;
|
tick_flag = false;
|
||||||
//dprintf("rgblight animation tick\n");
|
|
||||||
if (timer_elapsed(report_last_timer) >= 30000) {
|
if (timer_elapsed(report_last_timer) >= 30000) {
|
||||||
report_last_timer = timer_read();
|
report_last_timer = timer_read();
|
||||||
dprintf("rgblight animation tick report to slave\n");
|
dprintf("rgblight animation tick report to slave\n");
|
||||||
@@ -874,15 +871,11 @@ void rgblight_task(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
oldpos16 = animation_status.pos16;
|
oldpos16 = animation_status.pos16;
|
||||||
//dprintf("call effect function\n");
|
|
||||||
#endif
|
#endif
|
||||||
animation_status.last_timer += interval_time;
|
animation_status.last_timer += interval_time;
|
||||||
effect_func(&animation_status);
|
effect_func(&animation_status);
|
||||||
#if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
|
#if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
|
||||||
//dprintf("pos16, oldpos16 = %d %d\n",
|
|
||||||
// animation_status.pos16,oldpos16);
|
|
||||||
if (animation_status.pos16 == 0 && oldpos16 != 0) {
|
if (animation_status.pos16 == 0 && oldpos16 != 0) {
|
||||||
//dprintf("flag on\n");
|
|
||||||
tick_flag = true;
|
tick_flag = true;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ bool is_keyboard_left(void) {
|
|||||||
return is_keyboard_master();
|
return is_keyboard_master();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__attribute__((weak))
|
||||||
bool is_keyboard_master(void)
|
bool is_keyboard_master(void)
|
||||||
{
|
{
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
/* key combination for magic key command */
|
/* key combination for magic key command */
|
||||||
/* defined by default; to change, uncomment and set to the combination you want */
|
/* 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)))
|
// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
|
||||||
|
|
||||||
/* control how magic key switches layers */
|
/* control how magic key switches layers */
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
/* key combination for magic key command */
|
/* key combination for magic key command */
|
||||||
/* defined by default; to change, uncomment and set to the combination you want */
|
/* 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)))
|
// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
|
||||||
|
|
||||||
/* Bootmagic Lite key configuration */
|
/* Bootmagic Lite key configuration */
|
||||||
// #define BOOTMAGIC_LITE_ROW 0
|
// #define BOOTMAGIC_LITE_ROW 0
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ bool command_proc(uint8_t code);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef IS_COMMAND
|
#ifndef IS_COMMAND
|
||||||
#define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))
|
#define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
#ifndef MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||||
|
|||||||
Reference in new issue
Block a user