Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a2b4178245 | ||
|
|
ef5b161bb5 | ||
|
|
23d68d0ba1 | ||
|
|
435a1202e7 | ||
|
|
3e8f272873 | ||
|
|
f8a915a2db | ||
|
|
ec26684491 | ||
|
|
ac46378ac6 | ||
|
|
bb4af7deee | ||
|
|
d8db4ab202 | ||
|
|
329b574831 | ||
|
|
20e5798e63 | ||
|
|
9aee5e6427 | ||
|
|
dfef321bdf | ||
|
|
b29799f887 | ||
|
|
0a00583462 | ||
|
|
a057f1ca9e | ||
|
|
62a8603122 | ||
|
|
6c20c6219c | ||
|
|
f0f1a363d2 |
No files matched your search
+58
-37
@@ -19,58 +19,79 @@ If you're having trouble flashing/erasing your board, and running into cryptic e
|
|||||||
Memory write error, use debug for more info.
|
Memory write error, use debug for more info.
|
||||||
commands.c:360: Error writing memory data. (err -4)
|
commands.c:360: Error writing memory data. (err -4)
|
||||||
|
|
||||||
You're likely going to need to ISP flash your board/device to get it working again. Luckily, this process is pretty straight-forward, provided you have any extra programmable keyboard, Arduino, or Teensy 2.0/Teensy 2.0++. There are also dedicated ISP flashers available for this, but most cost >$15, and it's assumed that if you are googling this error, this is the first you've heard about ISP flashing, and don't have one readily available (whereas you might have some other AVR board). __We'll be using a Teensy 2.0 with Windows 10 in this guide__ - if you are comfortable doing this on another system, please consider editing this guide and contributing those instructions!
|
You're likely going to need to ISP flash your board/device to get it working again. Luckily, this process is pretty straight-forward, provided you have any extra programmable keyboard, Pro Micro, or Teensy 2.0/Teensy 2.0++. There are also dedicated ISP flashers available for this, but most cost >$15, and it's assumed that if you are googling this error, this is the first you've heard about ISP flashing, and don't have one readily available (whereas you might have some other AVR board). __We'll be using a Teensy 2.0 or Pro Micro with Windows 10 in this guide__ - if you are comfortable doing this on another system, please consider editing this guide and contributing those instructions!
|
||||||
|
|
||||||
## Software Needed
|
## Software Needed
|
||||||
|
|
||||||
* [The Arduino IDE](https://www.arduino.cc/en/Main/Software)
|
* [Teensy Loader](https://www.pjrc.com/teensy/loader.html) (if using a Teensy)
|
||||||
* [Teensyduino](https://www.pjrc.com/teensy/td_download.html) (if you're using a Teensy)
|
* QMK Toolbox (flash as usual - be sure to select the correct MCU) or `avrdude` via [WinAVR](http://www.ladyada.net/learn/avr/setup-win.html) (for Teensy & Pro Micro)
|
||||||
* [WinAVR](http://www.ladyada.net/learn/avr/setup-win.html) (Windows)
|
|
||||||
|
|
||||||
## Wiring
|
## Wiring
|
||||||
|
|
||||||
This is pretty straight-forward - we'll be connecting like-things to like-things in the following manner:
|
This is pretty straight-forward - we'll be connecting like-things to like-things in the following manner:
|
||||||
|
|
||||||
Flasher B0 <-> Keyboard RESET
|
### Teensy 2.0
|
||||||
Flasher B1 <-> Keyboard B1 (SCLK)
|
|
||||||
Flasher B2 <-> Keyboard B2 (MOSI)
|
|
||||||
Flasher B3 <-> Keyboard B3 (MISO)
|
|
||||||
Flasher VCC <-> Keyboard VCC
|
|
||||||
Flasher GND <-> Keyboard GND
|
|
||||||
|
|
||||||
## The ISP Firmware
|
Teensy B0 <-> Keyboard RESET
|
||||||
|
Teensy B1 <-> Keyboard B1 (SCLK)
|
||||||
|
Teensy B2 <-> Keyboard B2 (MOSI)
|
||||||
|
Teensy B3 <-> Keyboard B3 (MISO)
|
||||||
|
Teensy VCC <-> Keyboard VCC
|
||||||
|
Teensy GND <-> Keyboard GND
|
||||||
|
|
||||||
|
### Pro Micro
|
||||||
|
|
||||||
|
Pro Micro 10 (B6) <-> Keyboard RESET
|
||||||
|
Pro Micro 15 (B1) <-> Keyboard B1 (SCLK)
|
||||||
|
Pro Micro 16 (B2) <-> Keyboard B2 (MOSI)
|
||||||
|
Pro Micro 14 (B3) <-> Keyboard B3 (MISO)
|
||||||
|
Pro Micro VCC <-> Keyboard VCC
|
||||||
|
Pro Micro GND <-> Keyboard GND
|
||||||
|
|
||||||
|
## The ISP Firmware (now pre-compiled)
|
||||||
|
|
||||||
|
The only difference between the .hex files below is which pin is connected to RESET. You can use them on other boards as well, as long as you're aware of the pins being used. If for some reason neither of these pins are available, [create an issue](https://github.com/qmk/qmk_firmware/issues/new), and we can generate one for you!
|
||||||
|
|
||||||
|
* Teensy 2.0: [`util/teensy_2.0_ISP_B0.hex`](https://github.com/qmk/qmk_firmware/blob/master/util/teensy_2.0_ISP_B0.hex) (`B0`)
|
||||||
|
* Pro Micro: [`util/pro_micro_ISP_B6_10.hex`](https://github.com/qmk/qmk_firmware/blob/master/util/pro_mico_ISP_B6_10.hex) (`B6/10`)
|
||||||
|
|
||||||
|
**Flash your Teenys/Pro Micro with one of these and continue - you won't need the file after flashing your ISP device.**
|
||||||
|
|
||||||
|
## Just the Bootloader File
|
||||||
|
|
||||||
|
If you just want to get things back to normal, you can flash only a bootloader from [`util/` folder](https://github.com/qmk/qmk_firmware/tree/master/util), and use your normal process to flash the firmware afterwards. Be sure to flash the correct bootloader for your chip:
|
||||||
|
|
||||||
|
* [`atmega32u4`](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega32u4_1_0_0.hex) - Most keyboards, Planck Rev 1-5, Preonic Rev 1-2
|
||||||
|
* [`at90usb1286`](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_at90usb128x_1_0_1.hex) - Planck Light Rev 1
|
||||||
|
|
||||||
|
If you're not sure what your board uses, look in the `rules.mk` file for the keyboard in QMK. The `MCU =` line will have the value you need. It may differ between different versions of the board.
|
||||||
|
|
||||||
|
### Advanced/Production Techniques
|
||||||
|
|
||||||
|
If you'd like to flash both the bootloader **and** the regular firmware at the same time, you need to combine the files.
|
||||||
|
|
||||||
|
1. Open the original firmware .hex file in a text editor
|
||||||
|
2. Remove the last line (which should be `:00000001FF` - this is an EOF message)
|
||||||
|
3. Copy the entire bootloader's contents onto a new line (with no empty lines between) and paste it at the end of the original file
|
||||||
|
4. Save it as a new file by naming it `<keyboard>_<keymap>_production.hex`
|
||||||
|
|
||||||
|
It's possible to use other bootloaders here in the same way, but __you need a bootloader__, otherwise you'll have to use ISP again to write new firmware to your keyboard.
|
||||||
|
|
||||||
|
## Flashing Your Bootloader/Production File
|
||||||
|
|
||||||
Make sure your keyboard is unplugged from any device, and plug in your Teensy.
|
Make sure your keyboard is unplugged from any device, and plug in your Teensy.
|
||||||
|
|
||||||
1. Run Arduino after you have everything installed
|
### QMK Toolbox
|
||||||
2. Select `Tools > Board * > Teensy 2.0`
|
|
||||||
3. Click `File > Examples > 11.ArduinoISP > ArduinoISP`
|
|
||||||
|
|
||||||
Then scroll down until you see something that looks like this block of code:
|
1. `AVRISP device connected` will show up in yellow
|
||||||
|
2. Select the correct bootloader/production .hex file with the `Open` dialog (spaces can't be in the path)
|
||||||
|
3. Be sure the correct `Microcontroller` option is selected
|
||||||
|
4. Hit `Flash`
|
||||||
|
5. Wait, as nothing will output for a while, especially with production files
|
||||||
|
|
||||||
// Configure which pins to use:
|
If the verification and fuse checks are ok, you're done! Your board may restart automatically, otherwise, unplug your Teensy and plug in your keyboard - you can leave your Teensy wired to your keyboard while testing things, but it's recommended that you desolder it/remove the wiring once you're sure everything works.
|
||||||
|
|
||||||
// The standard pin configuration.
|
### Command Line
|
||||||
#ifndef ARDUINO_HOODLOADER2
|
|
||||||
|
|
||||||
#define RESET 0 // Use 0 (B0) instead of 10
|
|
||||||
#define LED_HB 11 // Use 11 (LED on the Teensy 2.0)
|
|
||||||
#define LED_ERR 8 // This won't be used unless you have an LED hooked-up to 8 (D3)
|
|
||||||
#define LED_PMODE 7 // This won't be used unless you have an LED hooked-up to 7 (D2)
|
|
||||||
|
|
||||||
And make the changes in the last four lines. If you're using something besides the Teensy 2.0, you'll want to choose something else that makes sense for `LED_HB`. We define `RESET` as `0`/`B0` because that's what's close - if you want to use another pin for some reason, [you can use the pinouts to choose something else](https://www.pjrc.com/teensy/pinout.html).
|
|
||||||
|
|
||||||
Once you've made your changes, you can click the Upload button (right arrow), which will open up the Teensy flasher app - you'll need to press the reset button on the Teensy the first time, but after that, it's automatic (you shouldn't be flashing this more than once, though). Once flashed, the orange LED on the Teensy will flash on and off, indicating it's ready for some action.
|
|
||||||
|
|
||||||
## The `.hex` File
|
|
||||||
|
|
||||||
Before flashing your firmware, you're going to need to and do a little preparation. We'll be appending [this bootloader (also a .hex file)](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega32u4_1_0_0.hex) to the end of our firmware by opening the original .hex file in a text editor, and removing the last line, which should be `:00000001FF` (this is an EOF message). After that's been removed, copy the entire bootloader's contents and paste it at the end of the original file, and save it.
|
|
||||||
|
|
||||||
It's possible to use other bootloaders here in the same way, but __you need a bootloader__, otherwise you'll have to ISP to write new firmware to your keyboard.
|
|
||||||
|
|
||||||
## Flashing Your Firmware
|
|
||||||
|
|
||||||
Make sure your keyboard is unplugged from any device, and plug in your Teensy.
|
|
||||||
|
|
||||||
Open `cmd` and navigate to your where your modified .hex file is. We'll pretend this file is called `main.hex`, and that your Teensy 2.0 is on the `COM3` port - if you're unsure, you can open your Device Manager, and look for `Ports > USB Serial Device`. Use that COM port here. You can confirm it's the right port with:
|
Open `cmd` and navigate to your where your modified .hex file is. We'll pretend this file is called `main.hex`, and that your Teensy 2.0 is on the `COM3` port - if you're unsure, you can open your Device Manager, and look for `Ports > USB Serial Device`. Use that COM port here. You can confirm it's the right port with:
|
||||||
|
|
||||||
|
|||||||
+144
-131
@@ -8,40 +8,8 @@ This is a reference only. Each group of keys links to the page documenting their
|
|||||||
|
|
||||||
|Key |Aliases |Description |
|
|Key |Aliases |Description |
|
||||||
|-----------------------|--------------------|-----------------------------------------------|
|
|-----------------------|--------------------|-----------------------------------------------|
|
||||||
|`KC_1` | |`1` and `!` |
|
|`KC_NO` |`XXXXXXX` |Ignore this key (NOOP) |
|
||||||
|`KC_2` | |`2` and `@` |
|
|`KC_TRANSPARENT` |`KC_TRNS`, `_______`|Use the next lowest non-transparent key |
|
||||||
|`KC_3` | |`3` and `#` |
|
|
||||||
|`KC_4` | |`4` and `$` |
|
|
||||||
|`KC_5` | |`5` and `%` |
|
|
||||||
|`KC_6` | |`6` and `^` |
|
|
||||||
|`KC_7` | |`7` and `&` |
|
|
||||||
|`KC_8` | |`8` and `*` |
|
|
||||||
|`KC_9` | |`9` and `(` |
|
|
||||||
|`KC_0` | |`0` and `)` |
|
|
||||||
|`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_F13` | | |
|
|
||||||
|`KC_F14` | | |
|
|
||||||
|`KC_F15` | | |
|
|
||||||
|`KC_F16` | | |
|
|
||||||
|`KC_F17` | | |
|
|
||||||
|`KC_F18` | | |
|
|
||||||
|`KC_F19` | | |
|
|
||||||
|`KC_F20` | | |
|
|
||||||
|`KC_F21` | | |
|
|
||||||
|`KC_F22` | | |
|
|
||||||
|`KC_F23` | | |
|
|
||||||
|`KC_F24` | | |
|
|
||||||
|`KC_A` | |`a` and `A` |
|
|`KC_A` | |`a` and `A` |
|
||||||
|`KC_B` | |`b` and `B` |
|
|`KC_B` | |`b` and `B` |
|
||||||
|`KC_C` | |`c` and `C` |
|
|`KC_C` | |`c` and `C` |
|
||||||
@@ -68,6 +36,16 @@ This is a reference only. Each group of keys links to the page documenting their
|
|||||||
|`KC_X` | |`x` and `X` |
|
|`KC_X` | |`x` and `X` |
|
||||||
|`KC_Y` | |`y` and `Y` |
|
|`KC_Y` | |`y` and `Y` |
|
||||||
|`KC_Z` | |`z` and `Z` |
|
|`KC_Z` | |`z` and `Z` |
|
||||||
|
|`KC_1` | |`1` and `!` |
|
||||||
|
|`KC_2` | |`2` and `@` |
|
||||||
|
|`KC_3` | |`3` and `#` |
|
||||||
|
|`KC_4` | |`4` and `$` |
|
||||||
|
|`KC_5` | |`5` and `%` |
|
||||||
|
|`KC_6` | |`6` and `^` |
|
||||||
|
|`KC_7` | |`7` and `&` |
|
||||||
|
|`KC_8` | |`8` and `*` |
|
||||||
|
|`KC_9` | |`9` and `(` |
|
||||||
|
|`KC_0` | |`0` and `)` |
|
||||||
|`KC_ENTER` |`KC_ENT` |Return (Enter) |
|
|`KC_ENTER` |`KC_ENT` |Return (Enter) |
|
||||||
|`KC_ESCAPE` |`KC_ESC` |Escape |
|
|`KC_ESCAPE` |`KC_ESC` |Escape |
|
||||||
|`KC_BSPACE` |`KC_BSPC` |Delete (Backspace) |
|
|`KC_BSPACE` |`KC_BSPC` |Delete (Backspace) |
|
||||||
@@ -79,33 +57,28 @@ This is a reference only. Each group of keys links to the page documenting their
|
|||||||
|`KC_RBRACKET` |`KC_RBRC` |`]` and `}` |
|
|`KC_RBRACKET` |`KC_RBRC` |`]` and `}` |
|
||||||
|`KC_BSLASH` |`KC_BSLS` |`\` and <code>|</code> |
|
|`KC_BSLASH` |`KC_BSLS` |`\` and <code>|</code> |
|
||||||
|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` and `~` |
|
|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` and `~` |
|
||||||
|`KC_NONUS_BSLASH` |`KC_NUBS` |Non-US `\` and <code>|</code> |
|
|
||||||
|`KC_INT1` |`KC_RO` |JIS `\` and <code>|</code> |
|
|
||||||
|`KC_INT2` |`KC_KANA` |JIS Katakana/Hiragana |
|
|
||||||
|`KC_INT3` |`KC_JYEN` |JIS `¥` |
|
|
||||||
|`KC_SCOLON` |`KC_SCLN` |`;` and `:` |
|
|`KC_SCOLON` |`KC_SCLN` |`;` and `:` |
|
||||||
|`KC_QUOTE` |`KC_QUOT` |`'` and `"` |
|
|`KC_QUOTE` |`KC_QUOT` |`'` and `"` |
|
||||||
|`KC_GRAVE` |`KC_GRV` |<code>`</code> and `~` |
|
|`KC_GRAVE` |`KC_GRV`, `KC_ZKHK` |<code>`</code> and `~`, JIS Zenkaku/Hankaku|
|
||||||
|`KC_COMMA` |`KC_COMM` |`,` and `<` |
|
|`KC_COMMA` |`KC_COMM` |`,` and `<` |
|
||||||
|`KC_DOT` | |`.` and `>` |
|
|`KC_DOT` | |`.` and `>` |
|
||||||
|`KC_SLASH` |`KC_SLSH` |`/` and `?` |
|
|`KC_SLASH` |`KC_SLSH` |`/` and `?` |
|
||||||
|`KC_CAPSLOCK` |`KC_CAPS` |Caps Lock |
|
|`KC_CAPSLOCK` |`KC_CLCK`, `KC_CAPS`|Caps Lock |
|
||||||
|`KC_LCTRL` |`KC_LCTL` |Left Control |
|
|`KC_F1` | |F1 |
|
||||||
|`KC_LSHIFT` |`KC_LSFT` |Left Shift |
|
|`KC_F2` | |F2 |
|
||||||
|`KC_LALT` | |Left Alt |
|
|`KC_F3` | |F3 |
|
||||||
|`KC_LGUI` |`KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Meta key) |
|
|`KC_F4` | |F4 |
|
||||||
|`KC_RCTRL` |`KC_RCTL` |Right Control |
|
|`KC_F5` | |F5 |
|
||||||
|`KC_RSHIFT` |`KC_RSFT` |Right Shift |
|
|`KC_F6` | |F6 |
|
||||||
|`KC_RALT` | |Right Alt |
|
|`KC_F7` | |F7 |
|
||||||
|`KC_RGUI` |`KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Meta key) |
|
|`KC_F8` | |F8 |
|
||||||
|`KC_LOCKING_CAPS` |`KC_LCAP` |Locking Caps Lock |
|
|`KC_F9` | |F9 |
|
||||||
|`KC_LOCKING_NUM` |`KC_LNUM` |Locking Num Lock |
|
|`KC_F10` | |F10 |
|
||||||
|`KC_LOCKING_SCROLL` |`KC_LSCR` |Locking Scroll Lock |
|
|`KC_F11` | |F11 |
|
||||||
|`KC_INT4` |`KC_HENK` |JIS Henkan |
|
|`KC_F12` | |F12 |
|
||||||
|`KC_INT5` |`KC_MHEN` |JIS Muhenkan |
|
|
||||||
|`KC_PSCREEN` |`KC_PSCR` |Print Screen |
|
|`KC_PSCREEN` |`KC_PSCR` |Print Screen |
|
||||||
|`KC_SCROLLLOCK` |`KC_SLCK` |Scroll Lock |
|
|`KC_SCROLLLOCK` |`KC_SLCK` |Scroll Lock |
|
||||||
|`KC_PAUSE` |`KC_PAUS` |Pause |
|
|`KC_PAUSE` |`KC_PAUS`, `KC_BRK` |Pause |
|
||||||
|`KC_INSERT` |`KC_INS` |Insert |
|
|`KC_INSERT` |`KC_INS` |Insert |
|
||||||
|`KC_HOME` | |Home |
|
|`KC_HOME` | |Home |
|
||||||
|`KC_PGUP` | |Page Up |
|
|`KC_PGUP` | |Page Up |
|
||||||
@@ -116,58 +89,6 @@ This is a reference only. Each group of keys links to the page documenting their
|
|||||||
|`KC_LEFT` | |Left Arrow |
|
|`KC_LEFT` | |Left Arrow |
|
||||||
|`KC_DOWN` | |Down Arrow |
|
|`KC_DOWN` | |Down Arrow |
|
||||||
|`KC_UP` | |Up Arrow |
|
|`KC_UP` | |Up Arrow |
|
||||||
|`KC_APPLICATION` |`KC_APP` |Application (Windows Menu Key) |
|
|
||||||
|`KC_POWER` | |Deprecated by MS in favor of `KC_SYSTEM_POWER`.|
|
|
||||||
|`KC_EXECUTE` | |Execute |
|
|
||||||
|`KC_HELP` | |Help |
|
|
||||||
|`KC_MENU` | |Menu |
|
|
||||||
|`KC_SELECT` | |Select |
|
|
||||||
|`KC_AGAIN` | |Again |
|
|
||||||
|`KC_UNDO` | |Undo |
|
|
||||||
|`KC_CUT` | |Cut |
|
|
||||||
|`KC_COPY` | |Copy |
|
|
||||||
|`KC_PASTE` | |Paste |
|
|
||||||
|`KC_FIND` | |Find |
|
|
||||||
|`KC_ALT_ERASE` | |Alternate Erase |
|
|
||||||
|`KC_SYSREQ` | |SysReq/Attention |
|
|
||||||
|`KC_CANCEL` | |Cancel |
|
|
||||||
|`KC_CLEAR` | |Clear |
|
|
||||||
|`KC_PRIOR` | |Prior |
|
|
||||||
|`KC_RETURN` | |Return |
|
|
||||||
|`KC_SEPARATOR` | |Separator |
|
|
||||||
|`KC_OUT` | |Out |
|
|
||||||
|`KC_OPER` | |Oper |
|
|
||||||
|`KC_CLEAR_AGAIN` | |Clear/Again |
|
|
||||||
|`KC_CRSEL` | |CrSel/Props |
|
|
||||||
|`KC_EXSEL` | |ExSel |
|
|
||||||
|`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down. Recommended over `KC_POWER`.|
|
|
||||||
|`KC_SYSTEM_SLEEP` |`KC_SLEP` |System Sleep |
|
|
||||||
|`KC_SYSTEM_WAKE` |`KC_WAKE` |System Wake |
|
|
||||||
|`KC_MAIL` |`KC_MAIL` | |
|
|
||||||
|`KC_CALCULATOR` |`KC_CALC` | |
|
|
||||||
|`KC_MY_COMPUTER` |`KC_MYCM` | |
|
|
||||||
|`KC_WWW_SEARCH` |`KC_WSCH` | |
|
|
||||||
|`KC_WWW_HOME` |`KC_WHOM` | |
|
|
||||||
|`KC_WWW_BACK` |`KC_WBAK` | |
|
|
||||||
|`KC_WWW_FORWARD` |`KC_WFWD` | |
|
|
||||||
|`KC_WWW_STOP` |`KC_WSTP` | |
|
|
||||||
|`KC_WWW_REFRESH` |`KC_WREF` | |
|
|
||||||
|`KC_WWW_FAVORITES` |`KC_WFAV` | |
|
|
||||||
|`KC_STOP` | |Stop |
|
|
||||||
|`KC__MUTE` | |Mute (macOS) |
|
|
||||||
|`KC__VOLUP` | |Volume Up (macOS) |
|
|
||||||
|`KC__VOLDOWN` | |Volume Down (macOS) |
|
|
||||||
|`KC_AUDIO_MUTE` |`KC_MUTE` |Mute (Windows/macOS/Linux) |
|
|
||||||
|`KC_AUDIO_VOL_UP` |`KC_VOLU` |Volume Up (Windows/macOS/Linux) |
|
|
||||||
|`KC_AUDIO_VOL_DOWN` |`KC_VOLD` |Volume Down (Windows/macOS/Linux) |
|
|
||||||
|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT` |Next Track (Windows) |
|
|
||||||
|`KC_MEDIA_PREV_TRACK` |`KC_MPRV` |Previous Track (Windows) |
|
|
||||||
|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD` |Next Track (macOS) |
|
|
||||||
|`KC_MEDIA_REWIND` |`KC_MRWD` |Previous Track (macOS) |
|
|
||||||
|`KC_MEDIA_STOP` |`KC_MSTP` |Stop Track |
|
|
||||||
|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |Play/Pause Track |
|
|
||||||
|`KC_MEDIA_SELECT` |`KC_MSEL` | |
|
|
||||||
|`KC_MEDIA_EJECT` |`KC_EJCT` |Eject (macOS) |
|
|
||||||
|`KC_NUMLOCK` |`KC_NLCK` |Keypad Num Lock and Clear |
|
|`KC_NUMLOCK` |`KC_NLCK` |Keypad Num Lock and Clear |
|
||||||
|`KC_KP_SLASH` |`KC_PSLS` |Keypad `/` |
|
|`KC_KP_SLASH` |`KC_PSLS` |Keypad `/` |
|
||||||
|`KC_KP_ASTERISK` |`KC_PAST` |Keypad `*` |
|
|`KC_KP_ASTERISK` |`KC_PAST` |Keypad `*` |
|
||||||
@@ -185,11 +106,103 @@ This is a reference only. Each group of keys links to the page documenting their
|
|||||||
|`KC_KP_9` |`KC_P9` |Keypad `9` and Page Up |
|
|`KC_KP_9` |`KC_P9` |Keypad `9` and Page Up |
|
||||||
|`KC_KP_0` |`KC_P0` |Keypad `0` and Insert |
|
|`KC_KP_0` |`KC_P0` |Keypad `0` and Insert |
|
||||||
|`KC_KP_DOT` |`KC_PDOT` |Keypad `.` and Delete |
|
|`KC_KP_DOT` |`KC_PDOT` |Keypad `.` and Delete |
|
||||||
|
|`KC_NONUS_BSLASH` |`KC_NUBS` |Non-US `\` and <code>|</code> |
|
||||||
|
|`KC_APPLICATION` |`KC_APP` |Application (Windows Menu Key) |
|
||||||
|
|`KC_POWER` | |System Power (macOS) |
|
||||||
|`KC_KP_EQUAL` |`KC_PEQL` |Keypad `=` |
|
|`KC_KP_EQUAL` |`KC_PEQL` |Keypad `=` |
|
||||||
|
|`KC_F13` | |F13 |
|
||||||
|
|`KC_F14` | |F14 |
|
||||||
|
|`KC_F15` | |F15 |
|
||||||
|
|`KC_F16` | |F16 |
|
||||||
|
|`KC_F17` | |F17 |
|
||||||
|
|`KC_F18` | |F18 |
|
||||||
|
|`KC_F19` | |F19 |
|
||||||
|
|`KC_F20` | |F20 |
|
||||||
|
|`KC_F21` | |F21 |
|
||||||
|
|`KC_F22` | |F22 |
|
||||||
|
|`KC_F23` | |F23 |
|
||||||
|
|`KC_F24` | |F24 |
|
||||||
|
|`KC_EXECUTE` |`KC_EXEC` |Execute |
|
||||||
|
|`KC_HELP` | |Help |
|
||||||
|
|`KC_MENU` | |Menu |
|
||||||
|
|`KC_SELECT` |`KC_SLCT` |Select |
|
||||||
|
|`KC_STOP` | |Stop |
|
||||||
|
|`KC_AGAIN` |`KC_AGIN` |Again |
|
||||||
|
|`KC_UNDO` | |Undo |
|
||||||
|
|`KC_CUT` | |Cut |
|
||||||
|
|`KC_COPY` | |Copy |
|
||||||
|
|`KC_PASTE` |`KC_PSTE` |Paste |
|
||||||
|
|`KC_FIND` | |Find |
|
||||||
|
|`KC__MUTE` | |Mute (macOS) |
|
||||||
|
|`KC__VOLUP` | |Volume Up (macOS) |
|
||||||
|
|`KC__VOLDOWN` | |Volume Down (macOS) |
|
||||||
|
|`KC_LOCKING_CAPS` |`KC_LCAP` |Locking Caps Lock |
|
||||||
|
|`KC_LOCKING_NUM` |`KC_LNUM` |Locking Num Lock |
|
||||||
|
|`KC_LOCKING_SCROLL` |`KC_LSCR` |Locking Scroll Lock |
|
||||||
|`KC_KP_COMMA` |`KC_PCMM` |Keypad `,` |
|
|`KC_KP_COMMA` |`KC_PCMM` |Keypad `,` |
|
||||||
|`KC_KP_EQUAL_AS400` | |Keypad `=` on AS/400 keyboards |
|
|`KC_KP_EQUAL_AS400` | |Keypad `=` on AS/400 keyboards |
|
||||||
|`KC_NO` | |Ignore this key (NOOP) |
|
|`KC_INT1` |`KC_RO` |JIS `\` and <code>|</code> |
|
||||||
|`KC_TRANSPARENT` |`KC_TRNS` |Use the next lowest non-transparent key |
|
|`KC_INT2` |`KC_KANA` |JIS Katakana/Hiragana |
|
||||||
|
|`KC_INT3` |`KC_JYEN` |JIS `¥` |
|
||||||
|
|`KC_INT4` |`KC_HENK` |JIS Henkan |
|
||||||
|
|`KC_INT5` |`KC_MHEN` |JIS Muhenkan |
|
||||||
|
|`KC_INT6` | |JIS Numpad `,` |
|
||||||
|
|`KC_INT7` | |International 7 |
|
||||||
|
|`KC_INT8` | |International 8 |
|
||||||
|
|`KC_INT9` | |International 9 |
|
||||||
|
|`KC_LANG1` |`KC_HAEN` |Hangul/English |
|
||||||
|
|`KC_LANG2` |`KC_HANJ` |Hanja |
|
||||||
|
|`KC_LANG3` | |JIS Katakana |
|
||||||
|
|`KC_LANG4` | |JIS Hiragana |
|
||||||
|
|`KC_LANG5` | |JIS Zenkaku/Hankaku |
|
||||||
|
|`KC_LANG6` | |Language 6 |
|
||||||
|
|`KC_LANG7` | |Language 7 |
|
||||||
|
|`KC_LANG8` | |Language 8 |
|
||||||
|
|`KC_LANG9` | |Language 9 |
|
||||||
|
|`KC_ALT_ERASE` |`KC_ERAS` |Alternate Erase |
|
||||||
|
|`KC_SYSREQ` | |SysReq/Attention |
|
||||||
|
|`KC_CANCEL` | |Cancel |
|
||||||
|
|`KC_CLEAR` |`KC_CLR` |Clear |
|
||||||
|
|`KC_PRIOR` | |Prior |
|
||||||
|
|`KC_RETURN` | |Return |
|
||||||
|
|`KC_SEPARATOR` | |Separator |
|
||||||
|
|`KC_OUT` | |Out |
|
||||||
|
|`KC_OPER` | |Oper |
|
||||||
|
|`KC_CLEAR_AGAIN` | |Clear/Again |
|
||||||
|
|`KC_CRSEL` | |CrSel/Props |
|
||||||
|
|`KC_EXSEL` | |ExSel |
|
||||||
|
|`KC_LCTRL` |`KC_LCTL` |Left Control |
|
||||||
|
|`KC_LSHIFT` |`KC_LSFT` |Left Shift |
|
||||||
|
|`KC_LALT` | |Left Alt |
|
||||||
|
|`KC_LGUI` |`KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Meta key) |
|
||||||
|
|`KC_RCTRL` |`KC_RCTL` |Right Control |
|
||||||
|
|`KC_RSHIFT` |`KC_RSFT` |Right Shift |
|
||||||
|
|`KC_RALT` | |Right Alt |
|
||||||
|
|`KC_RGUI` |`KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Meta key) |
|
||||||
|
|`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down |
|
||||||
|
|`KC_SYSTEM_SLEEP` |`KC_SLEP` |System Sleep |
|
||||||
|
|`KC_SYSTEM_WAKE` |`KC_WAKE` |System Wake |
|
||||||
|
|`KC_AUDIO_MUTE` |`KC_MUTE` |Mute |
|
||||||
|
|`KC_AUDIO_VOL_UP` |`KC_VOLU` |Volume Up |
|
||||||
|
|`KC_AUDIO_VOL_DOWN` |`KC_VOLD` |Volume Down |
|
||||||
|
|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT` |Next Track (Windows) |
|
||||||
|
|`KC_MEDIA_PREV_TRACK` |`KC_MPRV` |Previous Track (Windows) |
|
||||||
|
|`KC_MEDIA_STOP` |`KC_MSTP` |Stop Track (Windows) |
|
||||||
|
|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |Play/Pause Track |
|
||||||
|
|`KC_MEDIA_SELECT` |`KC_MSEL` |Launch Media Player (Windows) |
|
||||||
|
|`KC_MEDIA_EJECT` |`KC_EJCT` |Eject (macOS) |
|
||||||
|
|`KC_MAIL` | |Launch Mail (Windows) |
|
||||||
|
|`KC_CALCULATOR` |`KC_CALC` |Launch Calculator (Windows) |
|
||||||
|
|`KC_MY_COMPUTER` |`KC_MYCM` |Launch My Computer (Windows) |
|
||||||
|
|`KC_WWW_SEARCH` |`KC_WSCH` |Browser Search (Windows) |
|
||||||
|
|`KC_WWW_HOME` |`KC_WHOM` |Browser Home (Windows) |
|
||||||
|
|`KC_WWW_BACK` |`KC_WBAK` |Browser Back (Windows) |
|
||||||
|
|`KC_WWW_FORWARD` |`KC_WFWD` |Browser Forward (Windows) |
|
||||||
|
|`KC_WWW_STOP` |`KC_WSTP` |Browser Stop (Windows) |
|
||||||
|
|`KC_WWW_REFRESH` |`KC_WREF` |Browser Refresh (Windows) |
|
||||||
|
|`KC_WWW_FAVORITES` |`KC_WFAV` |Browser Favorites (Windows) |
|
||||||
|
|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD` |Next Track (macOS) |
|
||||||
|
|`KC_MEDIA_REWIND` |`KC_MRWD` |Previous Track (macOS) |
|
||||||
|
|
||||||
## [Quantum Keycodes](quantum_keycodes.md#qmk-keycodes)
|
## [Quantum Keycodes](quantum_keycodes.md#qmk-keycodes)
|
||||||
|
|
||||||
@@ -391,29 +404,29 @@ This is a reference only. Each group of keys links to the page documenting their
|
|||||||
|
|
||||||
## [US ANSI Shifted Keys](keycodes_us_ansi_shifted.md)
|
## [US ANSI Shifted Keys](keycodes_us_ansi_shifted.md)
|
||||||
|
|
||||||
|Key |Aliases |Description |
|
|Key |Aliases |Description |
|
||||||
|------------------------|------------------|-------------------|
|
|------------------------|-------------------|-------------------|
|
||||||
|`KC_TILDE` |`KC_TILD` |`~` |
|
|`KC_TILDE` |`KC_TILD` |`~` |
|
||||||
|`KC_EXCLAIM` |`KC_EXLM` |`!` |
|
|`KC_EXCLAIM` |`KC_EXLM` |`!` |
|
||||||
|`KC_AT` | |`@` |
|
|`KC_AT` | |`@` |
|
||||||
|`KC_HASH` | |`#` |
|
|`KC_HASH` | |`#` |
|
||||||
|`KC_DOLLAR` |`KC_DLR` |`$` |
|
|`KC_DOLLAR` |`KC_DLR` |`$` |
|
||||||
|`KC_PERCENT` |`KC_PERC` |`%` |
|
|`KC_PERCENT` |`KC_PERC` |`%` |
|
||||||
|`KC_CIRCUMFLEX` |`KC_CIRC` |`^` |
|
|`KC_CIRCUMFLEX` |`KC_CIRC` |`^` |
|
||||||
|`KC_AMPERSAND` |`KC_AMPR` |`&` |
|
|`KC_AMPERSAND` |`KC_AMPR` |`&` |
|
||||||
|`KC_ASTERISK` |`KC_ASTR` |`*` |
|
|`KC_ASTERISK` |`KC_ASTR` |`*` |
|
||||||
|`KC_LEFT_PAREN` |`KC_LPRN` |`(` |
|
|`KC_LEFT_PAREN` |`KC_LPRN` |`(` |
|
||||||
|`KC_RIGHT_PAREN` |`KC_RPRN` |`)` |
|
|`KC_RIGHT_PAREN` |`KC_RPRN` |`)` |
|
||||||
|`KC_UNDERSCORE` |`KC_UNDS` |`_` |
|
|`KC_UNDERSCORE` |`KC_UNDS` |`_` |
|
||||||
|`KC_PLUS` | |`+` |
|
|`KC_PLUS` | |`+` |
|
||||||
|`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` |
|
|`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` |
|
||||||
|`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` |
|
|`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` |
|
||||||
|`KC_PIPE` | |<code>|</code>|
|
|`KC_PIPE` | |<code>|</code>|
|
||||||
|`KC_COLON` |`KC_COLN` |`:` |
|
|`KC_COLON` |`KC_COLN` |`:` |
|
||||||
|`KC_DOUBLE_QUOTE` |`KC_DQT`/`KC_DQUO`|`"` |
|
|`KC_DOUBLE_QUOTE` |`KC_DQUO`, `KC_DQT`|`"` |
|
||||||
|`KC_LEFT_ANGLE_BRACKET` |`KC_LT`/`KC_LABK` |`<` |
|
|`KC_LEFT_ANGLE_BRACKET` |`KC_LABK`, `KC_LT` |`<` |
|
||||||
|`KC_RIGHT_ANGLE_BRACKET`|`KC_GT`/`KC_RABK` |`>` |
|
|`KC_RIGHT_ANGLE_BRACKET`|`KC_RABK`, `KC_GT` |`>` |
|
||||||
|`KC_QUESTION` |`KC_QUES` |`?` |
|
|`KC_QUESTION` |`KC_QUES` |`?` |
|
||||||
|
|
||||||
## [Switching and Toggling Layers](feature_advanced_keycodes.md#switching-and-toggling-layers)
|
## [Switching and Toggling Layers](feature_advanced_keycodes.md#switching-and-toggling-layers)
|
||||||
|
|
||||||
|
|||||||
+160
-137
@@ -47,117 +47,145 @@ The basic set of keycodes are based on the [HID Keyboard/Keypad Usage Page (0x07
|
|||||||
|
|
||||||
|Key |Description|
|
|Key |Description|
|
||||||
|--------|-----------|
|
|--------|-----------|
|
||||||
|`KC_F1` | |
|
|`KC_F1` |F1 |
|
||||||
|`KC_F2` | |
|
|`KC_F2` |F2 |
|
||||||
|`KC_F3` | |
|
|`KC_F3` |F3 |
|
||||||
|`KC_F4` | |
|
|`KC_F4` |F4 |
|
||||||
|`KC_F5` | |
|
|`KC_F5` |F5 |
|
||||||
|`KC_F6` | |
|
|`KC_F6` |F6 |
|
||||||
|`KC_F7` | |
|
|`KC_F7` |F7 |
|
||||||
|`KC_F8` | |
|
|`KC_F8` |F8 |
|
||||||
|`KC_F9` | |
|
|`KC_F9` |F9 |
|
||||||
|`KC_F10`| |
|
|`KC_F10`|F10 |
|
||||||
|`KC_F11`| |
|
|`KC_F11`|F11 |
|
||||||
|`KC_F12`| |
|
|`KC_F12`|F12 |
|
||||||
|`KC_F13`| |
|
|`KC_F13`|F13 |
|
||||||
|`KC_F14`| |
|
|`KC_F14`|F14 |
|
||||||
|`KC_F15`| |
|
|`KC_F15`|F15 |
|
||||||
|`KC_F16`| |
|
|`KC_F16`|F16 |
|
||||||
|`KC_F17`| |
|
|`KC_F17`|F17 |
|
||||||
|`KC_F18`| |
|
|`KC_F18`|F18 |
|
||||||
|`KC_F19`| |
|
|`KC_F19`|F19 |
|
||||||
|`KC_F20`| |
|
|`KC_F20`|F20 |
|
||||||
|`KC_F21`| |
|
|`KC_F21`|F21 |
|
||||||
|`KC_F22`| |
|
|`KC_F22`|F22 |
|
||||||
|`KC_F23`| |
|
|`KC_F23`|F23 |
|
||||||
|`KC_F24`| |
|
|`KC_F24`|F24 |
|
||||||
|
|
||||||
## Punctuation
|
## Punctuation
|
||||||
|
|
||||||
|Key |Aliases |Description |
|
|Key |Aliases |Description |
|
||||||
|-----------------|---------|----------------------------------|
|
|-----------------|-------------------|-----------------------------------------------|
|
||||||
|`KC_ENTER` |`KC_ENT` |Return (Enter) |
|
|`KC_ENTER` |`KC_ENT` |Return (Enter) |
|
||||||
|`KC_ESCAPE` |`KC_ESC` |Escape |
|
|`KC_ESCAPE` |`KC_ESC` |Escape |
|
||||||
|`KC_BSPACE` |`KC_BSPC`|Delete (Backspace) |
|
|`KC_BSPACE` |`KC_BSPC` |Delete (Backspace) |
|
||||||
|`KC_TAB` | |Tab |
|
|`KC_TAB` | |Tab |
|
||||||
|`KC_SPACE` |`KC_SPC` |Spacebar |
|
|`KC_SPACE` |`KC_SPC` |Spacebar |
|
||||||
|`KC_MINUS` |`KC_MINS`|`-` and `_` |
|
|`KC_MINUS` |`KC_MINS` |`-` and `_` |
|
||||||
|`KC_EQUAL` |`KC_EQL` |`=` and `+` |
|
|`KC_EQUAL` |`KC_EQL` |`=` and `+` |
|
||||||
|`KC_LBRACKET` |`KC_LBRC`|`[` and `{` |
|
|`KC_LBRACKET` |`KC_LBRC` |`[` and `{` |
|
||||||
|`KC_RBRACKET` |`KC_RBRC`|`]` and `}` |
|
|`KC_RBRACKET` |`KC_RBRC` |`]` and `}` |
|
||||||
|`KC_BSLASH` |`KC_BSLS`|`\` and <code>|</code> |
|
|`KC_BSLASH` |`KC_BSLS` |`\` and <code>|</code> |
|
||||||
|`KC_NONUS_HASH` |`KC_NUHS`|Non-US `#` and `~` |
|
|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` and `~` |
|
||||||
|`KC_NONUS_BSLASH`|`KC_NUBS`|Non-US `\` and <code>|</code>|
|
|`KC_SCOLON` |`KC_SCLN` |`;` and `:` |
|
||||||
|`KC_INT1` |`KC_RO` |JIS `\` and <code>|</code> |
|
|`KC_QUOTE` |`KC_QUOT` |`'` and `"` |
|
||||||
|`KC_INT2` |`KC_KANA`|JIS Katakana/Hiragana |
|
|`KC_GRAVE` |`KC_GRV`, `KC_ZKHK`|<code>`</code> and `~`, JIS Zenkaku/Hankaku|
|
||||||
|`KC_INT3` |`KC_JYEN`|JIS `¥` |
|
|`KC_COMMA` |`KC_COMM` |`,` and `<` |
|
||||||
|`KC_SCOLON` |`KC_SCLN`|`;` and `:` |
|
|`KC_DOT` | |`.` and `>` |
|
||||||
|`KC_QUOTE` |`KC_QUOT`|`'` and `"` |
|
|`KC_SLASH` |`KC_SLSH` |`/` and `?` |
|
||||||
|`KC_GRAVE` |`KC_GRV` |<code>`</code> and `~` |
|
|`KC_NONUS_BSLASH`|`KC_NUBS` |Non-US `\` and <code>|</code> |
|
||||||
|`KC_COMMA` |`KC_COMM`|`,` and `<` |
|
|
||||||
|`KC_DOT` | |`.` and `>` |
|
## Lock Keys
|
||||||
|`KC_SLASH` |`KC_SLSH`|`/` and `?` |
|
|
||||||
|`KC_CAPSLOCK` |`KC_CAPS`|Caps Lock |
|
|Key |Aliases |Description |
|
||||||
|
|-------------------|--------------------|-------------------------|
|
||||||
|
|`KC_CAPSLOCK` |`KC_CLCK`, `KC_CAPS`|Caps Lock |
|
||||||
|
|`KC_SCROLLLOCK` |`KC_SLCK` |Scroll Lock |
|
||||||
|
|`KC_NUMLOCK` |`KC_NLCK` |Keypad Num Lock and Clear|
|
||||||
|
|`KC_LOCKING_CAPS` |`KC_LCAP` |Locking Caps Lock |
|
||||||
|
|`KC_LOCKING_NUM` |`KC_LNUM` |Locking Num Lock |
|
||||||
|
|`KC_LOCKING_SCROLL`|`KC_LSCR` |Locking Scroll Lock |
|
||||||
|
|
||||||
## Modifiers
|
## Modifiers
|
||||||
|
|
||||||
|Key |Aliases |Description |
|
|Key |Aliases |Description |
|
||||||
|-------------------|--------------------|------------------------------------|
|
|-----------|--------------------|------------------------------------|
|
||||||
|`KC_LCTRL` |`KC_LCTL` |Left Control |
|
|`KC_LCTRL` |`KC_LCTL` |Left Control |
|
||||||
|`KC_LSHIFT` |`KC_LSFT` |Left Shift |
|
|`KC_LSHIFT`|`KC_LSFT` |Left Shift |
|
||||||
|`KC_LALT` | |Left Alt |
|
|`KC_LALT` | |Left Alt |
|
||||||
|`KC_LGUI` |`KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Meta key) |
|
|`KC_LGUI` |`KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Meta key) |
|
||||||
|`KC_RCTRL` |`KC_RCTL` |Right Control |
|
|`KC_RCTRL` |`KC_RCTL` |Right Control |
|
||||||
|`KC_RSHIFT` |`KC_RSFT` |Right Shift |
|
|`KC_RSHIFT`|`KC_RSFT` |Right Shift |
|
||||||
|`KC_RALT` | |Right Alt |
|
|`KC_RALT` | |Right Alt |
|
||||||
|`KC_RGUI` |`KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Meta key)|
|
|`KC_RGUI` |`KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Meta key)|
|
||||||
|`KC_LOCKING_CAPS` |`KC_LCAP` |Locking Caps Lock |
|
|
||||||
|`KC_LOCKING_NUM` |`KC_LNUM` |Locking Num Lock |
|
## International
|
||||||
|`KC_LOCKING_SCROLL`|`KC_LSCR` |Locking Scroll Lock |
|
|
||||||
|`KC_INT4` |`KC_HENK` |JIS Henkan |
|
|Key |Aliases |Description |
|
||||||
|`KC_INT5` |`KC_MHEN` |JIS Muhenkan |
|
|----------|---------|-------------------------------|
|
||||||
|
|`KC_INT1` |`KC_RO` |JIS `\` and <code>|</code>|
|
||||||
|
|`KC_INT2` |`KC_KANA`|JIS Katakana/Hiragana |
|
||||||
|
|`KC_INT3` |`KC_JYEN`|JIS `¥` |
|
||||||
|
|`KC_INT4` |`KC_HENK`|JIS Henkan |
|
||||||
|
|`KC_INT5` |`KC_MHEN`|JIS Muhenkan |
|
||||||
|
|`KC_INT6` | |JIS Numpad `,` |
|
||||||
|
|`KC_INT7` | |International 7 |
|
||||||
|
|`KC_INT8` | |International 8 |
|
||||||
|
|`KC_INT9` | |International 9 |
|
||||||
|
|`KC_LANG1`|`KC_HAEN`|Hangul/English |
|
||||||
|
|`KC_LANG2`|`KC_HANJ`|Hanja |
|
||||||
|
|`KC_LANG3`| |JIS Katakana |
|
||||||
|
|`KC_LANG4`| |JIS Hiragana |
|
||||||
|
|`KC_LANG5`| |JIS Zenkaku/Hankaku |
|
||||||
|
|`KC_LANG6`| |Language 6 |
|
||||||
|
|`KC_LANG7`| |Language 7 |
|
||||||
|
|`KC_LANG8`| |Language 8 |
|
||||||
|
|`KC_LANG9`| |Language 9 |
|
||||||
|
|
||||||
## Commands
|
## Commands
|
||||||
|
|
||||||
|Key |Aliases |Description |
|
|Key |Aliases |Description |
|
||||||
|------------------|---------|------------------------------|
|
|------------------|-------------------|------------------------------|
|
||||||
|`KC_PSCREEN` |`KC_PSCR`|Print Screen |
|
|`KC_PSCREEN` |`KC_PSCR` |Print Screen |
|
||||||
|`KC_SCROLLLOCK` |`KC_SLCK`|Scroll Lock |
|
|`KC_PAUSE` |`KC_PAUS`, `KC_BRK`|Pause |
|
||||||
|`KC_PAUSE` |`KC_PAUS`|Pause |
|
|`KC_INSERT` |`KC_INS` |Insert |
|
||||||
|`KC_INSERT` |`KC_INS` |Insert |
|
|`KC_HOME` | |Home |
|
||||||
|`KC_HOME` | |Home |
|
|`KC_PGUP` | |Page Up |
|
||||||
|`KC_PGUP` | |Page Up |
|
|`KC_DELETE` |`KC_DEL` |Forward Delete |
|
||||||
|`KC_DELETE` |`KC_DEL` |Forward Delete |
|
|`KC_END` | |End |
|
||||||
|`KC_END` | |End |
|
|`KC_PGDOWN` |`KC_PGDN` |Page Down |
|
||||||
|`KC_PGDOWN` |`KC_PGDN`|Page Down |
|
|`KC_RIGHT` |`KC_RGHT` |Right Arrow |
|
||||||
|`KC_RIGHT` |`KC_RGHT`|Right Arrow |
|
|`KC_LEFT` | |Left Arrow |
|
||||||
|`KC_LEFT` | |Left Arrow |
|
|`KC_DOWN` | |Down Arrow |
|
||||||
|`KC_DOWN` | |Down Arrow |
|
|`KC_UP` | |Up Arrow |
|
||||||
|`KC_UP` | |Up Arrow |
|
|`KC_APPLICATION` |`KC_APP` |Application (Windows Menu Key)|
|
||||||
|`KC_APPLICATION` |`KC_APP` |Application (Windows Menu Key)|
|
|`KC_POWER` | |System Power (macOS/Linux) |
|
||||||
|`KC_POWER` | |Power |
|
|`KC_EXECUTE` |`KC_EXEC` |Execute |
|
||||||
|`KC_EXECUTE` | |Execute |
|
|`KC_HELP` | |Help |
|
||||||
|`KC_HELP` | |Help |
|
|`KC_MENU` | |Menu |
|
||||||
|`KC_MENU` | |Menu |
|
|`KC_SELECT` |`KC_SLCT` |Select |
|
||||||
|`KC_SELECT` | |Select |
|
|`KC_STOP` | |Stop |
|
||||||
|`KC_AGAIN` | |Again |
|
|`KC_AGAIN` |`KC_AGIN` |Again |
|
||||||
|`KC_UNDO` | |Undo |
|
|`KC_UNDO` | |Undo |
|
||||||
|`KC_CUT` | |Cut |
|
|`KC_CUT` | |Cut |
|
||||||
|`KC_COPY` | |Copy |
|
|`KC_COPY` | |Copy |
|
||||||
|`KC_PASTE` | |Paste |
|
|`KC_PASTE` |`KC_PSTE` |Paste |
|
||||||
|`KC_FIND` | |Find |
|
|`KC_FIND` | |Find |
|
||||||
|`KC_ALT_ERASE` | |Alternate Erase |
|
|`KC__MUTE` | |Mute (macOS) |
|
||||||
|`KC_SYSREQ` | |SysReq/Attention |
|
|`KC__VOLUP` | |Volume Up (macOS) |
|
||||||
|`KC_CANCEL` | |Cancel |
|
|`KC__VOLDOWN` | |Volume Down (macOS) |
|
||||||
|`KC_CLEAR` | |Clear |
|
|`KC_ALT_ERASE` |`KC_ERAS` |Alternate Erase |
|
||||||
|`KC_PRIOR` | |Prior |
|
|`KC_SYSREQ` | |SysReq/Attention |
|
||||||
|`KC_RETURN` | |Return |
|
|`KC_CANCEL` | |Cancel |
|
||||||
|`KC_SEPARATOR` | |Separator |
|
|`KC_CLEAR` |`KC_CLR` |Clear |
|
||||||
|`KC_OUT` | |Out |
|
|`KC_PRIOR` | |Prior |
|
||||||
|`KC_OPER` | |Oper |
|
|`KC_RETURN` | |Return |
|
||||||
|`KC_CLEAR_AGAIN` | |Clear/Again |
|
|`KC_SEPARATOR` | |Separator |
|
||||||
|`KC_CRSEL` | |CrSel/Props |
|
|`KC_OUT` | |Out |
|
||||||
|`KC_EXSEL` | |ExSel |
|
|`KC_OPER` | |Oper |
|
||||||
|
|`KC_CLEAR_AGAIN` | |Clear/Again |
|
||||||
|
|`KC_CRSEL` | |CrSel/Props |
|
||||||
|
|`KC_EXSEL` | |ExSel |
|
||||||
|
|
||||||
## Media Keys
|
## Media Keys
|
||||||
|
|
||||||
@@ -165,42 +193,37 @@ These keycodes are not part of the Keyboard/Keypad usage page. The `SYSTEM_` key
|
|||||||
|
|
||||||
Windows and macOS use different keycodes for "next track" and "previous track". Make sure you choose the keycode that corresponds to your OS.
|
Windows and macOS use different keycodes for "next track" and "previous track". Make sure you choose the keycode that corresponds to your OS.
|
||||||
|
|
||||||
|Key |Aliases |Description |
|
|Key |Aliases |Description |
|
||||||
|-----------------------|---------|---------------------------------|
|
|-----------------------|---------|-----------------------------|
|
||||||
|`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down |
|
|`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down |
|
||||||
|`KC_SYSTEM_SLEEP` |`KC_SLEP`|System Sleep |
|
|`KC_SYSTEM_SLEEP` |`KC_SLEP`|System Sleep |
|
||||||
|`KC_SYSTEM_WAKE` |`KC_WAKE`|System Wake |
|
|`KC_SYSTEM_WAKE` |`KC_WAKE`|System Wake |
|
||||||
|`KC_MAIL` |`KC_MAIL`| |
|
|`KC_AUDIO_MUTE` |`KC_MUTE`|Mute |
|
||||||
|`KC_CALCULATOR` |`KC_CALC`| |
|
|`KC_AUDIO_VOL_UP` |`KC_VOLU`|Volume Up |
|
||||||
|`KC_MY_COMPUTER` |`KC_MYCM`| |
|
|`KC_AUDIO_VOL_DOWN` |`KC_VOLD`|Volume Down |
|
||||||
|`KC_WWW_SEARCH` |`KC_WSCH`| |
|
|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT`|Next Track (Windows) |
|
||||||
|`KC_WWW_HOME` |`KC_WHOM`| |
|
|`KC_MEDIA_PREV_TRACK` |`KC_MPRV`|Previous Track (Windows) |
|
||||||
|`KC_WWW_BACK` |`KC_WBAK`| |
|
|`KC_MEDIA_STOP` |`KC_MSTP`|Stop Track (Windows) |
|
||||||
|`KC_WWW_FORWARD` |`KC_WFWD`| |
|
|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY`|Play/Pause Track |
|
||||||
|`KC_WWW_STOP` |`KC_WSTP`| |
|
|`KC_MEDIA_SELECT` |`KC_MSEL`|Launch Media Player (Windows)|
|
||||||
|`KC_WWW_REFRESH` |`KC_WREF`| |
|
|`KC_MEDIA_EJECT` |`KC_EJCT`|Eject (macOS) |
|
||||||
|`KC_STOP` | |Stop |
|
|`KC_MAIL` | |Launch Mail (Windows) |
|
||||||
|`KC_WWW_FAVORITES` |`KC_WFAV`| |
|
|`KC_CALCULATOR` |`KC_CALC`|Launch Calculator (Windows) |
|
||||||
|`KC__MUTE` | |Mute (macOS) |
|
|`KC_MY_COMPUTER` |`KC_MYCM`|Launch My Computer (Windows) |
|
||||||
|`KC__VOLUP` | |Volume Up (macOS) |
|
|`KC_WWW_SEARCH` |`KC_WSCH`|Browser Search (Windows) |
|
||||||
|`KC__VOLDOWN` | |Volume Down (macOS) |
|
|`KC_WWW_HOME` |`KC_WHOM`|Browser Home (Windows) |
|
||||||
|`KC_AUDIO_MUTE` |`KC_MUTE`|Mute (Windows/macOS/Linux) |
|
|`KC_WWW_BACK` |`KC_WBAK`|Browser Back (Windows) |
|
||||||
|`KC_AUDIO_VOL_UP` |`KC_VOLU`|Volume Up (Windows/macOS/Linux) |
|
|`KC_WWW_FORWARD` |`KC_WFWD`|Browser Forward (Windows) |
|
||||||
|`KC_AUDIO_VOL_DOWN` |`KC_VOLD`|Volume Down (Windows/macOS/Linux)|
|
|`KC_WWW_STOP` |`KC_WSTP`|Browser Stop (Windows) |
|
||||||
|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT`|Next Track (Windows) |
|
|`KC_WWW_REFRESH` |`KC_WREF`|Browser Refresh (Windows) |
|
||||||
|`KC_MEDIA_PREV_TRACK` |`KC_MPRV`|Previous Track (Windows) |
|
|`KC_WWW_FAVORITES` |`KC_WFAV`|Browser Favorites (Windows) |
|
||||||
|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD`|Next Track (macOS) |
|
|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD`|Next Track (macOS) |
|
||||||
|`KC_MEDIA_REWIND` |`KC_MRWD`|Previous Track (macOS) |
|
|`KC_MEDIA_REWIND` |`KC_MRWD`|Previous Track (macOS) |
|
||||||
|`KC_MEDIA_STOP` |`KC_MSTP`|Stop Track |
|
|
||||||
|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY`|Play/Pause Track |
|
|
||||||
|`KC_MEDIA_SELECT` |`KC_MSEL`| |
|
|
||||||
|`KC_MEDIA_EJECT` |`KC_EJCT`|Eject (macOS) |
|
|
||||||
|
|
||||||
## Number Pad
|
## Number Pad
|
||||||
|
|
||||||
|Key |Aliases |Description |
|
|Key |Aliases |Description |
|
||||||
|-------------------|---------|------------------------------|
|
|-------------------|---------|------------------------------|
|
||||||
|`KC_NUMLOCK` |`KC_NLCK`|Keypad Num Lock and Clear |
|
|
||||||
|`KC_KP_SLASH` |`KC_PSLS`|Keypad `/` |
|
|`KC_KP_SLASH` |`KC_PSLS`|Keypad `/` |
|
||||||
|`KC_KP_ASTERISK` |`KC_PAST`|Keypad `*` |
|
|`KC_KP_ASTERISK` |`KC_PAST`|Keypad `*` |
|
||||||
|`KC_KP_MINUS` |`KC_PMNS`|Keypad `-` |
|
|`KC_KP_MINUS` |`KC_PMNS`|Keypad `-` |
|
||||||
@@ -225,7 +248,7 @@ Windows and macOS use different keycodes for "next track" and "previous track".
|
|||||||
|
|
||||||
In addition to these, keycodes in the range of `0xA5-DF` are reserved for internal use by TMK.
|
In addition to these, keycodes in the range of `0xA5-DF` are reserved for internal use by TMK.
|
||||||
|
|
||||||
|Key |Aliases |Description |
|
|Key |Aliases |Description |
|
||||||
|----------------|---------|---------------------------------------|
|
|----------------|--------------------|---------------------------------------|
|
||||||
|`KC_NO` | |Ignore this key (NOOP) |
|
|`KC_NO` |`XXXXXXX` |Ignore this key (NOOP) |
|
||||||
|`KC_TRANSPARENT`|`KC_TRNS`|Use the next lowest non-transparent key|
|
|`KC_TRANSPARENT`|`KC_TRNS`, `_______`|Use the next lowest non-transparent key|
|
||||||
@@ -6,26 +6,26 @@ It's important to remember that all of these keycodes send a left shift - this m
|
|||||||
|
|
||||||
## US ANSI Shifted Keycodes
|
## US ANSI Shifted Keycodes
|
||||||
|
|
||||||
|Key |Aliases |Description |
|
|Key |Aliases |Description |
|
||||||
|------------------------|------------------|-------------------|
|
|------------------------|-------------------|-------------------|
|
||||||
|`KC_TILDE` |`KC_TILD` |`~` |
|
|`KC_TILDE` |`KC_TILD` |`~` |
|
||||||
|`KC_EXCLAIM` |`KC_EXLM` |`!` |
|
|`KC_EXCLAIM` |`KC_EXLM` |`!` |
|
||||||
|`KC_AT` | |`@` |
|
|`KC_AT` | |`@` |
|
||||||
|`KC_HASH` | |`#` |
|
|`KC_HASH` | |`#` |
|
||||||
|`KC_DOLLAR` |`KC_DLR` |`$` |
|
|`KC_DOLLAR` |`KC_DLR` |`$` |
|
||||||
|`KC_PERCENT` |`KC_PERC` |`%` |
|
|`KC_PERCENT` |`KC_PERC` |`%` |
|
||||||
|`KC_CIRCUMFLEX` |`KC_CIRC` |`^` |
|
|`KC_CIRCUMFLEX` |`KC_CIRC` |`^` |
|
||||||
|`KC_AMPERSAND` |`KC_AMPR` |`&` |
|
|`KC_AMPERSAND` |`KC_AMPR` |`&` |
|
||||||
|`KC_ASTERISK` |`KC_ASTR` |`*` |
|
|`KC_ASTERISK` |`KC_ASTR` |`*` |
|
||||||
|`KC_LEFT_PAREN` |`KC_LPRN` |`(` |
|
|`KC_LEFT_PAREN` |`KC_LPRN` |`(` |
|
||||||
|`KC_RIGHT_PAREN` |`KC_RPRN` |`)` |
|
|`KC_RIGHT_PAREN` |`KC_RPRN` |`)` |
|
||||||
|`KC_UNDERSCORE` |`KC_UNDS` |`_` |
|
|`KC_UNDERSCORE` |`KC_UNDS` |`_` |
|
||||||
|`KC_PLUS` | |`+` |
|
|`KC_PLUS` | |`+` |
|
||||||
|`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` |
|
|`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` |
|
||||||
|`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` |
|
|`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` |
|
||||||
|`KC_PIPE` | |<code>|</code>|
|
|`KC_PIPE` | |<code>|</code>|
|
||||||
|`KC_COLON` |`KC_COLN` |`:` |
|
|`KC_COLON` |`KC_COLN` |`:` |
|
||||||
|`KC_DOUBLE_QUOTE` |`KC_DQT`/`KC_DQUO`|`"` |
|
|`KC_DOUBLE_QUOTE` |`KC_DQUO`, `KC_DQT`|`"` |
|
||||||
|`KC_LEFT_ANGLE_BRACKET` |`KC_LT`/`KC_LABK` |`<` |
|
|`KC_LEFT_ANGLE_BRACKET` |`KC_LABK`, `KC_LT` |`<` |
|
||||||
|`KC_RIGHT_ANGLE_BRACKET`|`KC_GT`/`KC_RABK` |`>` |
|
|`KC_RIGHT_ANGLE_BRACKET`|`KC_RABK`, `KC_GT` |`>` |
|
||||||
|`KC_QUESTION` |`KC_QUES` |`?` |
|
|`KC_QUESTION` |`KC_QUES` |`?` |
|
||||||
@@ -4,7 +4,7 @@ Firmware for custom keyboard PCB with 60% key layout.
|
|||||||
|
|
||||||
Keyboard Maintainer: [rempired](https://github.com/rempired)
|
Keyboard Maintainer: [rempired](https://github.com/rempired)
|
||||||
Hardware Supported: 1upkeyboards 60% RGB
|
Hardware Supported: 1upkeyboards 60% RGB
|
||||||
Hardware Availability: [1upkeyboards](https://1upkeyboards.com/rgb-underglow-1up-pcb.html)
|
Hardware Availability: [1upkeyboards](https://www.1upkeyboards.com/shop/controllers/1up-rgb-underglow-pcb/)
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
|
||||||
|
#include "4x4.h"
|
||||||
|
|
||||||
|
void matrix_init_kb(void) {
|
||||||
|
// put your keyboard start-up code here
|
||||||
|
// runs once when the firmware starts up
|
||||||
|
|
||||||
|
matrix_init_user();
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_scan_kb(void) {
|
||||||
|
// put your looping keyboard code here
|
||||||
|
// runs every cycle (a lot)
|
||||||
|
|
||||||
|
matrix_scan_user();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
// put your per-action keyboard code here
|
||||||
|
// runs for every action, just before processing by the firmware
|
||||||
|
|
||||||
|
return process_record_user(keycode, record);
|
||||||
|
}
|
||||||
|
|
||||||
|
void led_set_kb(uint8_t usb_led) {
|
||||||
|
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
||||||
|
|
||||||
|
led_set_user(usb_led);
|
||||||
|
}
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
|
||||||
|
#ifndef FOURX4_H
|
||||||
|
#define FOURX4_H
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
#define ___ KC_NO
|
||||||
|
|
||||||
|
// This a shortcut to help you visually see your layout.
|
||||||
|
// The first section contains all of the arguments
|
||||||
|
// The second converts the arguments into a two-dimensional array
|
||||||
|
|
||||||
|
#define LAYOUT_ortho_4x4( \
|
||||||
|
K00, K01, K02, K03, \
|
||||||
|
K10, K11, K12, K13, \
|
||||||
|
K20, K21, K22, K23, \
|
||||||
|
K30, K31, K32, K33 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ K00, K01, K02, K03, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___}, \
|
||||||
|
{ K10, K11, K12, K13, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___}, \
|
||||||
|
{ K20, K21, K22, K23, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___}, \
|
||||||
|
{ K30, K31, K32, K33, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___} \
|
||||||
|
}
|
||||||
|
#define LAYOUT_ortho_4x8( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37\
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, ___, ___, ___, ___, ___, ___, ___, ___}, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, ___, ___, ___, ___, ___, ___, ___, ___}, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, ___, ___, ___, ___, ___, ___, ___, ___}, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K35, K37, ___, ___, ___, ___, ___, ___, ___, ___} \
|
||||||
|
}
|
||||||
|
#define LAYOUT_ortho_4x12( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, ___, ___, ___, ___}, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, ___, ___, ___, ___}, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, ___, ___, ___, ___}, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K35, K37, K38, K39, K3a, K3b, ___, ___, ___, ___} \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_ortho_4x16( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0d, K0e, K0f, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d, K1e, K1f, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2c, K2d, K2e, K2f, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, K3d, K3e, K3f \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0d, K0e, K0f }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d, K1e, K1f }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2c, K2d, K2e, K2f }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K35, K37, K38, K39, K3a, K3b, K3c, K3d, K3e, K3f } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,202 @@
|
|||||||
|
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xFEED
|
||||||
|
#define PRODUCT_ID 0x0A0C
|
||||||
|
#define DEVICE_VER 0x4444
|
||||||
|
#define MANUFACTURER di0ib
|
||||||
|
#define PRODUCT The 4x4 Keyboard
|
||||||
|
#define DESCRIPTION A modular compact keyboard
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 4
|
||||||
|
#define MATRIX_COLS 16
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define MATRIX_ROW_PINS { B2, D1, D0, D4 }
|
||||||
|
#define MATRIX_COL_PINS { C6, D7, E6, B4, B5, B6, B7, D6, F7, F6, F5, F4, F1, F0, B3, B1 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
// #define BACKLIGHT_PIN C7
|
||||||
|
// #define BACKLIGHT_BREATHING
|
||||||
|
// #define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCING_DELAY 5
|
||||||
|
|
||||||
|
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||||
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
|
/* number of backlight levels */
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
|
||||||
|
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
|
||||||
|
*/
|
||||||
|
// #define GRAVE_ESC_CTRL_OVERRIDE
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Force NKRO
|
||||||
|
*
|
||||||
|
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||||
|
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||||
|
* makefile for this to work.)
|
||||||
|
*
|
||||||
|
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||||
|
* until the next keyboard reset.
|
||||||
|
*
|
||||||
|
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||||
|
* fully operational during normal computer usage.
|
||||||
|
*
|
||||||
|
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||||
|
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||||
|
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||||
|
* power-up.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//#define FORCE_NKRO
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Magic Key Options
|
||||||
|
*
|
||||||
|
* Magic keys are hotkey commands that allow control over firmware functions of
|
||||||
|
* the keyboard. They are best used in combination with the HID Listen program,
|
||||||
|
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||||
|
*
|
||||||
|
* The options below allow the magic key functionality to be changed. This is
|
||||||
|
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* key combination for magic key command */
|
||||||
|
#define IS_COMMAND() ( \
|
||||||
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||||
|
)
|
||||||
|
|
||||||
|
/* control how magic key switches layers */
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||||
|
|
||||||
|
/* override magic key keymap */
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||||
|
//#define MAGIC_KEY_HELP1 H
|
||||||
|
//#define MAGIC_KEY_HELP2 SLASH
|
||||||
|
//#define MAGIC_KEY_DEBUG D
|
||||||
|
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||||
|
//#define MAGIC_KEY_DEBUG_KBD K
|
||||||
|
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||||
|
//#define MAGIC_KEY_VERSION V
|
||||||
|
//#define MAGIC_KEY_STATUS S
|
||||||
|
//#define MAGIC_KEY_CONSOLE C
|
||||||
|
//#define MAGIC_KEY_LAYER0_ALT1 ESC
|
||||||
|
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
|
||||||
|
//#define MAGIC_KEY_LAYER0 0
|
||||||
|
//#define MAGIC_KEY_LAYER1 1
|
||||||
|
//#define MAGIC_KEY_LAYER2 2
|
||||||
|
//#define MAGIC_KEY_LAYER3 3
|
||||||
|
//#define MAGIC_KEY_LAYER4 4
|
||||||
|
//#define MAGIC_KEY_LAYER5 5
|
||||||
|
//#define MAGIC_KEY_LAYER6 6
|
||||||
|
//#define MAGIC_KEY_LAYER7 7
|
||||||
|
//#define MAGIC_KEY_LAYER8 8
|
||||||
|
//#define MAGIC_KEY_LAYER9 9
|
||||||
|
//#define MAGIC_KEY_BOOTLOADER PAUSE
|
||||||
|
//#define MAGIC_KEY_LOCK CAPS
|
||||||
|
//#define MAGIC_KEY_EEPROM E
|
||||||
|
//#define MAGIC_KEY_NKRO N
|
||||||
|
//#define MAGIC_KEY_SLEEP_LED Z
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Feature disable options
|
||||||
|
* These options are also useful to firmware size reduction.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* disable debug print */
|
||||||
|
//#define NO_DEBUG
|
||||||
|
|
||||||
|
/* disable print */
|
||||||
|
//#define NO_PRINT
|
||||||
|
|
||||||
|
/* disable action features */
|
||||||
|
//#define NO_ACTION_LAYER
|
||||||
|
//#define NO_ACTION_TAPPING
|
||||||
|
//#define NO_ACTION_ONESHOT
|
||||||
|
//#define NO_ACTION_MACRO
|
||||||
|
//#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MIDI options
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Prevent use of disabled MIDI features in the keymap */
|
||||||
|
//#define MIDI_ENABLE_STRICT 1
|
||||||
|
|
||||||
|
/* enable basic MIDI features:
|
||||||
|
- MIDI notes can be sent when in Music mode is on
|
||||||
|
*/
|
||||||
|
//#define MIDI_BASIC
|
||||||
|
|
||||||
|
/* enable advanced MIDI features:
|
||||||
|
- MIDI notes can be added to the keymap
|
||||||
|
- Octave shift and transpose
|
||||||
|
- Virtual sustain, portamento, and modulation wheel
|
||||||
|
- etc.
|
||||||
|
*/
|
||||||
|
//#define MIDI_ADVANCED
|
||||||
|
|
||||||
|
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||||
|
//#define MIDI_TONE_KEYCODE_OCTAVES 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
* HD44780 LCD Display Configuration
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
#define LCD_LINES 2 //< number of visible lines of the display
|
||||||
|
#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
|
||||||
|
|
||||||
|
#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
|
||||||
|
|
||||||
|
#if LCD_IO_MODE
|
||||||
|
#define LCD_PORT PORTB //< port for the LCD lines
|
||||||
|
#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
|
||||||
|
#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
|
||||||
|
#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
|
||||||
|
#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
|
||||||
|
#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
|
||||||
|
#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
|
||||||
|
#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
|
||||||
|
#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
|
||||||
|
#define LCD_RS_PORT LCD_PORT //< port for RS line
|
||||||
|
#define LCD_RS_PIN 3 //< pin for RS line
|
||||||
|
#define LCD_RW_PORT LCD_PORT //< port for RW line
|
||||||
|
#define LCD_RW_PIN 2 //< pin for RW line
|
||||||
|
#define LCD_E_PORT LCD_PORT //< port for Enable line
|
||||||
|
#define LCD_E_PIN 1 //< pin for Enable line
|
||||||
|
#endif
|
||||||
|
*/
|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
// place overrides here
|
||||||
@@ -0,0 +1,124 @@
|
|||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
#define PAD 0
|
||||||
|
#define _QW 1
|
||||||
|
#define NUM 2
|
||||||
|
#define DIR 3
|
||||||
|
|
||||||
|
// Readability keycodes
|
||||||
|
#define _______ KC_TRNS
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
/* Single 4x4 board only
|
||||||
|
* .-----------------------------------.
|
||||||
|
* | 7 | 8 | 9 | / |
|
||||||
|
* |--------+--------+--------+--------|
|
||||||
|
* | 4 | 5 | 6 | * |
|
||||||
|
* |--------+--------+--------+--------|
|
||||||
|
* | 1 | 2 | 3 | - |
|
||||||
|
* |--------+--------+--------+--------|
|
||||||
|
* | 0 | QWERTY | . | + |
|
||||||
|
* '-----------------------------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
[PAD] = LAYOUT_ortho_4x4(
|
||||||
|
KC_KP_7, KC_KP_8, KC_KP_9, KC_PSLS,
|
||||||
|
KC_KP_4, KC_KP_5, KC_KP_6, KC_PAST,
|
||||||
|
KC_KP_1, KC_KP_2, KC_KP_3, KC_PMNS,
|
||||||
|
KC_KP_0, DF(_QW), KC_KP_DOT, KC_PPLS
|
||||||
|
),
|
||||||
|
|
||||||
|
/* QWERTY
|
||||||
|
* .-----------------------------------------------------------------------------------------------------------------------------------------------.
|
||||||
|
* | ESC | Q | W | E | R | T | Y | U | I | O | P | BACKSP | 7 | 8 | 9 | / |
|
||||||
|
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
* | TAB | A | S | D | F | G | H | J | K | L | ; | ' | 4 | 5 | 6 | * |
|
||||||
|
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
* | SHIFT | Z | X | C | V | B | N | M | , | . | / | ENT/SFT| 1 | 2 | 3 | - |
|
||||||
|
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
* | LCTRL | LGUI | ALT | ALT | NUM | SHIFT | SPACE | DIR | RGUI | RALT | DEL | CTRL | 0 | 0 | . | + |
|
||||||
|
* '-----------------------------------------------------------------------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
[_QW] = LAYOUT_ortho_4x16(
|
||||||
|
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_KP_7, KC_KP_8, KC_KP_9, KC_PSLS,
|
||||||
|
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_KP_4, KC_KP_5, KC_KP_6, KC_PAST,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), KC_KP_1, KC_KP_2, KC_KP_3, KC_PMNS,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, MO(NUM), KC_LSFT, KC_SPC, MO(DIR), KC_RGUI, KC_RALT, KC_DEL, KC_RCTL, KC_KP_0, KC_KP_0, KC_KP_DOT, KC_PPLS
|
||||||
|
),
|
||||||
|
|
||||||
|
/* NUMBERS
|
||||||
|
* .-----------------------------------------------------------------------------------------------------------------------------------------------.
|
||||||
|
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | NUMLOCK| / | * | - | |
|
||||||
|
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | | + | |
|
||||||
|
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
* | | F11 | F12 | | | | ENTER | SHIFT | RGUI | ./ALT | BKSC | | | | ENTER | |
|
||||||
|
* | | | | | | | | | | |CTRLhold| | | | | |
|
||||||
|
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |
|
||||||
|
* | | | | | | | ENTER | SHIFT | | | | | | | | |
|
||||||
|
* '-----------------------------------------------------------------------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
[NUM] = LAYOUT_ortho_4x16(
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, _______,
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_PPLS, _______,
|
||||||
|
_______, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT, KC_RSFT, KC_RGUI, ALT_T(KC_DOT), CTL_T(KC_BSPC), _______, _______, _______, KC_PENT, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, KC_ENT, KC_RSFT, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
/* DIRECTIONS
|
||||||
|
* .-----------------------------------------------------------------------------------------------------------------------------------------------.
|
||||||
|
* | RESET | TAB | up | | INS | CTRL | SHIFT | PgUp | Home | - | = | DEL | | | | |
|
||||||
|
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
* | CAPSLK | left | down | right | PrScr | SHIFT | CTRL | PgDn | End | [ | ] | \ | | | | |
|
||||||
|
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
* | | P-Brk | | | | | | | RGUI | ALT | | | | | | |
|
||||||
|
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
* | KEYPAD | | | | | | | | | | | | | | | |
|
||||||
|
* '-----------------------------------------------------------------------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
[DIR] = LAYOUT_ortho_4x16(
|
||||||
|
RESET, KC_TAB, KC_UP, _______, KC_INS, KC_LCTL, KC_LSFT, KC_PGUP, KC_HOME, KC_MINS, KC_EQL, KC_DEL, _______, _______, _______, _______,
|
||||||
|
KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PSCR, KC_LSFT, KC_LCTL, KC_PGDN, KC_END, KC_LBRC, KC_RBRC, KC_BSLS, _______, _______, _______, _______,
|
||||||
|
_______, KC_PAUS, _______, _______, _______, _______, _______, _______, KC_RGUI, KC_RALT, _______, _______, _______, _______, _______, _______,
|
||||||
|
DF(PAD), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const uint16_t PROGMEM fn_actions[] = {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
||||||
|
keyevent_t event = record->event;
|
||||||
|
(void)event;
|
||||||
|
|
||||||
|
switch (id) {
|
||||||
|
|
||||||
|
}
|
||||||
|
return MACRO_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void matrix_init_user(void) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_scan_user(void) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void led_set_user(uint8_t usb_led) {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# 4x4
|
||||||
|
|
||||||
|

|
||||||
|
===
|
||||||
|
|
||||||
|
**Modular keypad/keyboard**
|
||||||
|
The basic unit is a 4x4 matrix with 16 keys. Up to 4 of these can be connected to each other side by side.
|
||||||
|
4x4, 4x8, 4x12 and 4x16 are possible.
|
||||||
|
There are pads for header pins on each side that complete the circuits from board to board. These can be permanently connected with solder bridges or temporarily with pin headers and shunt jumpers.
|
||||||
|
**_All configurations are powered by a SINGLE Arduino Micro or clone (NOT a Pro Micro)._**
|
||||||
|
|
||||||
|
* [The original TMK firmware](https://github.com/di0ib/tmk_keyboard/tree/master/keyboard/4x4)
|
||||||
|
|
||||||
|
Keyboard Maintainer: QMK Community
|
||||||
|
Hardware Supported: 4x4 PCB
|
||||||
|
Hardware Availability: [4x4x4x4x4 project on 40% Keyboards](http://www.40percent.club/2018/01/4x4x4x4x4.html)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make 4x4:default
|
||||||
|
|
||||||
|
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
|
||||||
|
First pass at adding support for the 4x4 keyboard. Compiles but completely untested. Intended to kick-start development.
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
# MCU name
|
||||||
|
#MCU = at90usb1286
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||||
|
|
||||||
|
# Bootloader
|
||||||
|
# This definition is optional, and if your keyboard supports multiple bootloaders of
|
||||||
|
# different sizes, comment this out, and the correct address will be loaded
|
||||||
|
# automatically (+60). See bootloader.mk for all options.
|
||||||
|
BOOTLOADER = caterina
|
||||||
|
|
||||||
|
# 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 = yes # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
|
||||||
|
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
|
||||||
|
UNICODE_ENABLE = no # Unicode
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
AUDIO_ENABLE = no # Audio output on port C6
|
||||||
|
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||||
|
HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
|
||||||
|
|
||||||
|
LAYOUT = ortho_4x4 ortho_4x8 ortho_4x12 ortho_4x16
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
M0110(A) keyboard converter
|
||||||
|
======================================
|
||||||
|
This is a port of the original M0110 converter from TMK to QMK. The original converter was designed to work with **ATmega32U2** and **ATmega32U4** based microcontrollers to convert Apple M0110/M0110A keyboards and M0120 numpads to USB. This port has been tested to be compatible with the [**Adafruit Feather 32U4 BLE**](https://learn.adafruit.com/adafruit-feather-32u4-bluefruit-le).
|
||||||
|
|
||||||
|
|
||||||
|
### Enabling Bluetooth for the Adafruit Feather 32U4 BLE
|
||||||
|
----------------------------------------------------
|
||||||
|
Simply add `BLUETOOTH = AdafruitBLE` to your `rules.mk` file. This enables code specifically for the Adafruit Feather 32U4 BLE. If enabled, the device will use the `PRODUCT` and `DESCRIPTION` values from `config.h` for the device name displayed by the Feather on host devices. You can simply change these values to change the device name.
|
||||||
|
|
||||||
|
|
||||||
|
### Pins
|
||||||
|
----
|
||||||
|
This port utilizes the same pins that the TMK converter used. `PD1` is used for `CLOCK` and `PD0` is used for the `DATA` from the keyboard. These pins can be changed in `config.h`.
|
||||||
|
|
||||||
|
|
||||||
|
### Other important hardware notes from the original TMK converter Readme:
|
||||||
|
>### Hardware
|
||||||
|
>--------
|
||||||
|
>You can buy preassembled [TMK converter] or make yourown with AVR dev board like PJRC [Teensy].
|
||||||
|
>
|
||||||
|
>Port of the MCU `PD1` is assigned to `CLOCK` line and `PD0` to `DATA` by default, you can change pin configuration with editing `config.h`.
|
||||||
|
>
|
||||||
|
>[](http://i.imgur.com/yEp2eRi.jpg)
|
||||||
|
>
|
||||||
|
>#### 4P4C phone handset cable
|
||||||
|
>Note that original cable used with Mac is **straight** while phone handset cable is **crossover**.
|
||||||
|
>
|
||||||
|
><http://en.wikipedia.org/wiki/Modular_connector#4P4C>
|
||||||
|
>
|
||||||
|
>[Teensy]: http://www.pjrc.com/teensy/
|
||||||
|
>[TMK converter]: https://geekhack.org/index.php?topic=72052.0
|
||||||
|
>
|
||||||
|
>
|
||||||
|
>#### Socket Pinout
|
||||||
|
>- <http://pinouts.ru/Inputs/MacKeyboard_pinout.shtml>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
>#### Pull-up Resistor
|
||||||
|
>You may need pull-up resistors on signal lines(`CLOCK`, `DATA`) in particular when you have long or coiled cable. **1k-10k Ohm** will be OK >for this purpose. In that case the converter may not read signal from keyboard correctly without pull-up resistors.
|
||||||
|
>
|
||||||
|
|
||||||
|
[**View the original TMK converter Readme**](https://github.com/tmk/tmk_keyboard/tree/master/converter/m0110_usb)\
|
||||||
|
[**View the original TMK converter Repository**](https://github.com/tmk/tmk_keyboard/tree/master/converter/m0110_usb)
|
||||||
|
|
||||||
|
|
||||||
|
### QMK Port Changelog
|
||||||
|
---------
|
||||||
|
- 2018/08/01 - Original Release
|
||||||
|
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2011,2012 Jun Wako <[email protected]>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Ported to QMK by Techsock <[email protected]>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define VENDOR_ID 0xFEED
|
||||||
|
#define PRODUCT_ID 0x0110
|
||||||
|
#define DEVICE_VER 0x0101
|
||||||
|
#define MANUFACTURER Apple
|
||||||
|
#define PRODUCT M0110(A)
|
||||||
|
#define DESCRIPTION Converts M0110(A) to USB and/or BT
|
||||||
|
|
||||||
|
/* matrix size */
|
||||||
|
#define MATRIX_ROWS 14
|
||||||
|
#define MATRIX_COLS 8
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
/* magic key */
|
||||||
|
#define IS_COMMAND() ( \
|
||||||
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LALT) | MOD_BIT(KC_LGUI)) || \
|
||||||
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LALT) | MOD_BIT(KC_LCTL)) \
|
||||||
|
)
|
||||||
|
|
||||||
|
/* boot magic key */
|
||||||
|
#define BOOTMAGIC_KEY_SALT KC_M
|
||||||
|
|
||||||
|
/* ports */
|
||||||
|
#define M0110_CLOCK_PORT PORTD
|
||||||
|
#define M0110_CLOCK_PIN PIND
|
||||||
|
#define M0110_CLOCK_DDR DDRD
|
||||||
|
#define M0110_CLOCK_BIT 1
|
||||||
|
#define M0110_DATA_PORT PORTD
|
||||||
|
#define M0110_DATA_PIN PIND
|
||||||
|
#define M0110_DATA_DDR DDRD
|
||||||
|
#define M0110_DATA_BIT 0
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2011,2012,2015 Jun Wako <[email protected]>
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Ported to QMK by Techsock <[email protected]>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
/* Default:
|
||||||
|
* M0110 M0120
|
||||||
|
* ,---------------------------------------------------------. ,---------------.
|
||||||
|
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Nlk| =| /| *|
|
||||||
|
* |---------------------------------------------------------| |---------------|
|
||||||
|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | 7| 8| 9| -|
|
||||||
|
* |---------------------------------------------------------| |---------------|
|
||||||
|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return| | 4| 5| 6| +|
|
||||||
|
* |---------------------------------------------------------| |---------------|
|
||||||
|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | 1| 2| 3| |
|
||||||
|
* `---------------------------------------------------------' |-----------|Ent|
|
||||||
|
* |Opt|Mac | Space |Fn |Opt| | 0| .| |
|
||||||
|
* `-----------------------------------------------' `---------------'
|
||||||
|
* M0110A
|
||||||
|
* ,---------------------------------------------------------. ,---------------.
|
||||||
|
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Nlk| =| /| *|
|
||||||
|
* |---------------------------------------------------------| |---------------|
|
||||||
|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | 7| 8| 9| -|
|
||||||
|
* |-----------------------------------------------------' | |---------------|
|
||||||
|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return| | 4| 5| 6| +|
|
||||||
|
* |---------------------------------------------------------| |---------------|
|
||||||
|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shft|Up | | 1| 2| 3| |
|
||||||
|
* |---------------------------------------------------------| |-----------|Ent|
|
||||||
|
* |Opt |Mac | Space | \|Lft|Rgt|Dn | | 0| .| |
|
||||||
|
* `---------------------------------------------------------' `---------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
[0] = LAYOUT_ansi(
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_EQL, KC_PSLS, KC_PAST, \
|
||||||
|
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_P7, KC_P8, KC_P9, KC_PMNS, \
|
||||||
|
KC_LCAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_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_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \
|
||||||
|
KC_LALT, KC_LGUI, KC_SPC, MO(1), LT(1, KC_BSLASH), KC_LEFT, KC_RGHT, KC_DOWN, KC_P0, KC_PDOT),
|
||||||
|
|
||||||
|
|
||||||
|
/* Cursor Layer:
|
||||||
|
* M0110 M0120
|
||||||
|
* ,---------------------------------------------------------. ,---------------.
|
||||||
|
* |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delet| |Nlk| =| /| *|
|
||||||
|
* |---------------------------------------------------------| |---------------|
|
||||||
|
* |Tab |Hom| Up|PgU|Rst| | | |Psc|Slk|Pau|Up |INS| | | 7| 8| 9| -|
|
||||||
|
* |---------------------------------------------------------| |---------------|
|
||||||
|
* |Ctrl |Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Return| | 4| 5| 6| +|
|
||||||
|
* |---------------------------------------------------------| |---------------|
|
||||||
|
* |Shift |End| |PgD| | | | |End|PgD|Dow|Shift | | 1| 2| 3| |
|
||||||
|
* `---------------------------------------------------------' |-----------|Ent|
|
||||||
|
* |Opt|Mac | Space |Fn |Opt| | 0| .| |
|
||||||
|
* `-----------------------------------------------' `---------------'
|
||||||
|
* M0110A
|
||||||
|
* ,---------------------------------------------------------. ,---------------.
|
||||||
|
* |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delet| |Nlk| =| /| *|
|
||||||
|
* |---------------------------------------------------------| |---------------|
|
||||||
|
* |Tab |Hom| Up|PgU| | | | |Psc|Slk|Pau|Up |INS| | | 7| 8| 9| -|
|
||||||
|
* |-----------------------------------------------------' | |---------------|
|
||||||
|
* |Caps |Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Return| | 4| 5| 6| +|
|
||||||
|
* |---------------------------------------------------------| |---------------|
|
||||||
|
* |Ctrl |End| |PgD| | | | |End|PgD|Dow|Shft|PgU| | 1| 2| 3| |
|
||||||
|
* |---------------------------------------------------------| |-----------|Ent|
|
||||||
|
* |Opt |Mac | Space | \|Hom|End|PgD| | 0| .| |
|
||||||
|
* `---------------------------------------------------------' `---------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
[1] = LAYOUT_ansi(
|
||||||
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_NLCK, KC_EQL, KC_PSLS, KC_PAST, \
|
||||||
|
KC_TAB, KC_HOME, KC_UP, KC_PGUP, RESET, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_INS, KC_P7, KC_P8, KC_P9, KC_PMNS, \
|
||||||
|
KC_LCAP, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, \
|
||||||
|
KC_LCTL, KC_END, KC_NO, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_PGDN, KC_DOWN, KC_PGUP, KC_P1, KC_P2, KC_P3, KC_PENT, \
|
||||||
|
KC_LALT, KC_LGUI, KC_SPC, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_PGDN, KC_P0, KC_PDOT),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
#include "m0110_usb.h"
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include "quantum.h"
|
||||||
@@ -0,0 +1,131 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2011,2012,2014,2015 Jun Wako <[email protected]>
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Ported to QMK by Techsock <[email protected]>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef M0110_USB_H
|
||||||
|
#define M0110_USB_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
/* Common layout for M0110 and M0110A
|
||||||
|
* This keymap works with both keyboards. As you can see, the M0110A is
|
||||||
|
* a superset of M0110 keyboard, only one exception is 'Enter'(34) of M0110
|
||||||
|
* does not exist on the M0110A.
|
||||||
|
*
|
||||||
|
* ,---------------------------------------------------------. ,---------------.
|
||||||
|
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Clr| =| /| *|
|
||||||
|
* |---------------------------------------------------------| |---------------|
|
||||||
|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | 7| 8| 9| -|
|
||||||
|
* |-----------------------------------------------------' | |---------------|
|
||||||
|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return| | 4| 5| 6| +|
|
||||||
|
* |---------------------------------------------------------| |---------------|
|
||||||
|
* |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shft|Up | | 1| 2| 3| |
|
||||||
|
* |---------------------------------------------------------| |-----------|Ent|
|
||||||
|
* |Opt |Mac | Space |Ent| \|Lft|Rgt|Dn | | 0| .| |
|
||||||
|
* `---------------------------------------------------------' `---------------'
|
||||||
|
*
|
||||||
|
* M0110A scan codes
|
||||||
|
* ,---------------------------------------------------------. ,---------------.
|
||||||
|
* | 32| 12| 13| 14| 15| 17| 16| 1A| 1C| 19| 1D| 1B| 18| 33| | 47| 68| 6D| 62|
|
||||||
|
* |---------------------------------------------------------| |---------------|
|
||||||
|
* | 30| 0C| 0D| 0E| 0F| 11| 10| 20| 22| 1F| 23| 21| 1E| | | 59| 5B| 5C| 4E|
|
||||||
|
* |-----------------------------------------------------' | |---------------|
|
||||||
|
* | 39| 00| 01| 02| 03| 05| 04| 26| 28| 25| 29| 27| 24| | 56| 57| 58| 66|
|
||||||
|
* |---------------------------------------------------------| |---------------|
|
||||||
|
* | 38| 06| 07| 08| 09| 0B| 2D| 2E| 2B| 2F| 2C| 38| 4D| | 53| 54| 55| |
|
||||||
|
* `---------------------------------------------------------' |-----------| 4C|
|
||||||
|
* | 3A| 37| 31 | 2A| 46| 42| 48| | 52| 41| |
|
||||||
|
* `---------------------------------------------------------' `---------------'
|
||||||
|
*
|
||||||
|
* M0110 + M0120 scan codes
|
||||||
|
* ,---------------------------------------------------------. ,---------------.
|
||||||
|
* | 32| 12| 13| 14| 15| 17| 16| 1A| 1C| 19| 1D| 1B| 18| 33| | 47| 68| 6D| 62|
|
||||||
|
* |---------------------------------------------------------| |---------------|
|
||||||
|
* | 30| 0C| 0D| 0E| 0F| 11| 10| 20| 22| 1F| 23| 21| 1E| 2A| | 59| 5B| 5C| 4E|
|
||||||
|
* |---------------------------------------------------------| |---------------|
|
||||||
|
* | 39| 00| 01| 02| 03| 05| 04| 26| 28| 25| 29| 27| 24| | 56| 57| 58| 66|
|
||||||
|
* |---------------------------------------------------------| |---------------|
|
||||||
|
* | 38| 06| 07| 08| 09| 0B| 2D| 2E| 2B| 2F| 2C| 38| | 53| 54| 55| |
|
||||||
|
* `---------------------------------------------------------' |-----------| 4C|
|
||||||
|
* | 3A| 37| 31 | 34| 3A| | 52| 41| |
|
||||||
|
* `------------------------------------------------' `---------------'
|
||||||
|
* Two right and left keys of 38 and 3A are identical, you cannot discriminate those two.
|
||||||
|
*/
|
||||||
|
#define LAYOUT_ansi( \
|
||||||
|
K32,K12,K13,K14,K15,K17,K16,K1A,K1C,K19,K1D,K1B,K18,K33, K47,K68,K6D,K62, \
|
||||||
|
K30,K0C,K0D,K0E,K0F,K11,K10,K20,K22,K1F,K23,K21,K1E, K59,K5B,K5C,K4E, \
|
||||||
|
K39,K00,K01,K02,K03,K05,K04,K26,K28,K25,K29,K27, K24, K56,K57,K58,K66, \
|
||||||
|
K38,K06,K07,K08,K09,K0B,K2D,K2E,K2B,K2F,K2C, K4D, K53,K54,K55,K4C, \
|
||||||
|
K3A,K37, K31, K34,K2A,K46,K42,K48, K52, K41 \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07 }, \
|
||||||
|
{ K08, K09, KC_NO, K0B, K0C, K0D, K0E, K0F }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17 }, \
|
||||||
|
{ K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27 }, \
|
||||||
|
{ K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
|
||||||
|
{ K30, K31, K32, K33, K34, KC_NO, KC_NO, K37 }, \
|
||||||
|
{ K38, K39, K3A, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ KC_NO, K41, K42, KC_NO, KC_NO, KC_NO, K46, K47 }, \
|
||||||
|
{ K48, KC_NO, KC_NO, KC_NO, K4C, K4D, K4E, KC_NO }, \
|
||||||
|
{ KC_NO, KC_NO, K52, K53, K54, K55, K56, K57 }, \
|
||||||
|
{ K58, K59, KC_NO, K5B, K5C, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ KC_NO, KC_NO, K62, KC_NO, KC_NO, KC_NO, K66, KC_NO }, \
|
||||||
|
{ K68, KC_NO, KC_NO, KC_NO, KC_NO, K6D, KC_NO, KC_NO }, \
|
||||||
|
}
|
||||||
|
|
||||||
|
/* International keyboard layout for M0110 + M0120
|
||||||
|
* https://en.wikipedia.org/wiki/File:Apple_Macintosh_Plus_Keyboard.jpg
|
||||||
|
* Probably International keyboard layout of M0110A doesn't exist.
|
||||||
|
*
|
||||||
|
* M0110 + M0120 scan codes
|
||||||
|
* ,---------------------------------------------------------. ,---------------.
|
||||||
|
* | 32| 12| 13| 14| 15| 17| 16| 1A| 1C| 19| 1D| 1B| 18| 33| | 47| 68| 6D| 62|
|
||||||
|
* |---------------------------------------------------------| |---------------|
|
||||||
|
* | 30| 0C| 0D| 0E| 0F| 11| 10| 20| 22| 1F| 23| 21| 1E| 2A| | 59| 5B| 5C| 4E|
|
||||||
|
* |------------------------------------------------------, | |---------------|
|
||||||
|
* | 39| 00| 01| 02| 03| 05| 04| 26| 28| 25| 29| 27| 24| | | 56| 57| 58| 66|
|
||||||
|
* |---------------------------------------------------------| |---------------|
|
||||||
|
* | 38| 06| 07| 08| 09| 0B| 2D| 2E| 2B| 2F| 2C| 0A| 38| | 53| 54| 55| |
|
||||||
|
* `---------------------------------------------------------' |-----------| 4C|
|
||||||
|
* | 3A| 37| 34 | 31| 3A| | 52| 41| |
|
||||||
|
* `------------------------------------------------' `---------------'
|
||||||
|
* Two right and left keys of 38 and 3A are identical, you cannot discriminate those two.
|
||||||
|
*/
|
||||||
|
#define LAYOUT_iso( \
|
||||||
|
K32,K12,K13,K14,K15,K17,K16,K1A,K1C,K19,K1D,K1B,K18,K33, K47,K68,K6D,K62, \
|
||||||
|
K30,K0C,K0D,K0E,K0F,K11,K10,K20,K22,K1F,K23,K21,K1E,K2A, K59,K5B,K5C,K4E, \
|
||||||
|
K39,K00,K01,K02,K03,K05,K04,K26,K28,K25,K29,K27,K24, K56,K57,K58,K66, \
|
||||||
|
K38,K06,K07,K08,K09,K0B,K2D,K2E,K2B,K2F,K2C,K0A, K53,K54,K55,K4C, \
|
||||||
|
K3A,K37, K34, K31, K52, K41 \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07 }, \
|
||||||
|
{ K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17 }, \
|
||||||
|
{ K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27 }, \
|
||||||
|
{ K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
|
||||||
|
{ K30, K31, K32, K33, K34, KC_NO, KC_NO, K37 }, \
|
||||||
|
{ K38, K39, K3A, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ KC_NO, K41, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K47 }, \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, KC_NO, K4C, KC_NO, K4E, KC_NO }, \
|
||||||
|
{ KC_NO, KC_NO, K52, K53, K54, K55, K56, K57 }, \
|
||||||
|
{ K58, K59, KC_NO, K5B, K5C, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ KC_NO, KC_NO, K62, KC_NO, KC_NO, KC_NO, K66, KC_NO }, \
|
||||||
|
{ K68, KC_NO, KC_NO, KC_NO, KC_NO, K6D, KC_NO, KC_NO }, \
|
||||||
|
}
|
||||||
@@ -0,0 +1,121 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2011,2012 Jun Wako <[email protected]>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Ported to QMK by Techsock <[email protected]>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <util/delay.h>
|
||||||
|
#include "print.h"
|
||||||
|
#include "util.h"
|
||||||
|
#include "debug.h"
|
||||||
|
#include "host.h"
|
||||||
|
#include "m0110.h"
|
||||||
|
#include "matrix.h"
|
||||||
|
#include "report.h"
|
||||||
|
#include "timer.h"
|
||||||
|
|
||||||
|
|
||||||
|
#define CAPS 0x39
|
||||||
|
#define CAPS_BREAK (CAPS | 0x80)
|
||||||
|
#define ROW(key) ((key)>>3&0x0F)
|
||||||
|
#define COL(key) ((key)&0x07)
|
||||||
|
|
||||||
|
|
||||||
|
static bool is_modified = false;
|
||||||
|
|
||||||
|
// matrix state buffer(1:on, 0:off)
|
||||||
|
static uint8_t *matrix;
|
||||||
|
static uint8_t _matrix0[MATRIX_ROWS];
|
||||||
|
|
||||||
|
static void register_key(uint8_t key);
|
||||||
|
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
void matrix_init_kb(void) {
|
||||||
|
matrix_init_user();
|
||||||
|
}
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
void matrix_scan_kb(void) {
|
||||||
|
matrix_scan_user();
|
||||||
|
}
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
void matrix_init_user(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
void matrix_scan_user(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_init(void)
|
||||||
|
{
|
||||||
|
m0110_init();
|
||||||
|
// initialize matrix state: all keys off
|
||||||
|
for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix0[i] = 0x00;
|
||||||
|
matrix = _matrix0;
|
||||||
|
|
||||||
|
matrix_init_quantum();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t matrix_scan(void)
|
||||||
|
{
|
||||||
|
uint8_t key;
|
||||||
|
|
||||||
|
is_modified = false;
|
||||||
|
key = m0110_recv_key();
|
||||||
|
|
||||||
|
if (key == M0110_NULL) {
|
||||||
|
return 0;
|
||||||
|
} else if (key == M0110_ERROR) {
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
is_modified = true;
|
||||||
|
register_key(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (debug_enable) {
|
||||||
|
print("["); phex(key); print("]\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
matrix_scan_quantum();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_print(void){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
uint8_t matrix_get_row(uint8_t row)
|
||||||
|
{
|
||||||
|
return matrix[row];
|
||||||
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
static void register_key(uint8_t key)
|
||||||
|
{
|
||||||
|
if (key&0x80) {
|
||||||
|
matrix[ROW(key)] &= ~(1<<COL(key));
|
||||||
|
} else {
|
||||||
|
matrix[ROW(key)] |= (1<<COL(key));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
# MCU name
|
||||||
|
# atmega32u4 Teensy2.0
|
||||||
|
# atemga32u4 TMK Converter rev.1
|
||||||
|
# atemga32u2 TMK Converter rev.2
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# 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
|
||||||
|
F_CPU = 8000000
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# This definition is optional, and if your keyboard supports multiple bootloaders of
|
||||||
|
# different sizes, comment this out, and the correct address will be loaded
|
||||||
|
# automatically (+60). See bootloader.mk for all options.
|
||||||
|
BOOTLOADER = caterina
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096 for TMK Converter rev.1/rev.2
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# comment out to disable the options.
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||||
|
CONSOLE_ENABLE = yes # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover - not yet supported in LUFA
|
||||||
|
EXTRAKEY_ENABLE = yes
|
||||||
|
USB_HID_ENABLE = yes
|
||||||
|
BACKLIGHT_ENABLE = no
|
||||||
|
#BLUETOOTH = AdafruitBLE # For Adafruit Feather 32U4 BLE support, uncomment this line
|
||||||
|
|
||||||
|
CUSTOM_MATRIX = yes
|
||||||
|
SRC = matrix.c \
|
||||||
|
m0110.c
|
||||||
@@ -49,6 +49,20 @@
|
|||||||
{ KC_NO, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, KC_NO, KC_NO } \
|
{ KC_NO, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, KC_NO, KC_NO } \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_60_hhkb( \
|
||||||
|
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
|
||||||
|
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
|
||||||
|
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
|
||||||
|
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \
|
||||||
|
K401, K403, K406, K411, K413 \
|
||||||
|
) { \
|
||||||
|
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
|
||||||
|
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
|
||||||
|
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \
|
||||||
|
{ K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \
|
||||||
|
{ KC_NO, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, KC_NO, K411, KC_NO, K413, KC_NO } \
|
||||||
|
}
|
||||||
|
|
||||||
#define LAYOUT_2_shifts( \
|
#define LAYOUT_2_shifts( \
|
||||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
|
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
|
||||||
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
|
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
|
||||||
|
|||||||
@@ -37,6 +37,10 @@
|
|||||||
"key_count": 62,
|
"key_count": 62,
|
||||||
"layout": [{"label":"¬", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"£", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
|
"layout": [{"label":"¬", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"£", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
|
||||||
},
|
},
|
||||||
|
"LAYOUT_60_hhkb": {
|
||||||
|
"key_count": 60,
|
||||||
|
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, {"label":"2", "x":2, "y":0}, {"label":"3", "x":3, "y":0}, {"label":"4", "x":4, "y":0}, {"label":"5", "x":5, "y":0}, {"label":"6", "x":6, "y":0}, {"label":"7", "x":7, "y":0}, {"label":"8", "x":8, "y":0}, {"label":"9", "x":9, "y":0}, {"label":"0", "x":10, "y":0}, {"label":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"label":"\\", "x":13, "y":0}, {"label":"`", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"[", "x":11.5, "y":1}, {"label":"]", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":";", "x":10.75, "y":2}, {"label":"'", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":",", "x":9.25, "y":3}, {"label":".", "x":10.25, "y":3}, {"label":"/", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Os", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Os", "x":12.5, "y":4}]
|
||||||
|
},
|
||||||
"LAYOUT_directional_625_space": {
|
"LAYOUT_directional_625_space": {
|
||||||
"key_count": 65,
|
"key_count": 65,
|
||||||
"layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3, "w":2}, {"label":"K301", "x":2, "y":3}, {"label":"K302", "x":3, "y":3}, {"label":"K303", "x":4, "y":3}, {"label":"K304", "x":5, "y":3}, {"label":"K305", "x":6, "y":3}, {"label":"K306", "x":7, "y":3}, {"label":"K307", "x":8, "y":3}, {"label":"K308", "x":9, "y":3}, {"label":"K309", "x":10, "y":3}, {"label":"K310", "x":11, "y":3}, {"label":"K312", "x":12, "y":3}, {"label":"K313", "x":13, "y":3}, {"label":"K314", "x":14, "y":3}, {"label":"K400", "x":0, "y":4, "w":1.25}, {"label":"K401", "x":1.25, "y":4, "w":1.25}, {"label":"K403", "x":2.5, "y":4, "w":1.25}, {"label":"K406", "x":3.75, "y":4, "w":6.25}, {"label":"K410", "x":10, "y":4}, {"label":"K411", "x":11, "y":4}, {"label":"K412", "x":12, "y":4}, {"label":"K413", "x":13, "y":4}, {"label":"K414", "x":14, "y":4}]
|
"layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3, "w":2}, {"label":"K301", "x":2, "y":3}, {"label":"K302", "x":3, "y":3}, {"label":"K303", "x":4, "y":3}, {"label":"K304", "x":5, "y":3}, {"label":"K305", "x":6, "y":3}, {"label":"K306", "x":7, "y":3}, {"label":"K307", "x":8, "y":3}, {"label":"K308", "x":9, "y":3}, {"label":"K309", "x":10, "y":3}, {"label":"K310", "x":11, "y":3}, {"label":"K312", "x":12, "y":3}, {"label":"K313", "x":13, "y":3}, {"label":"K314", "x":14, "y":3}, {"label":"K400", "x":0, "y":4, "w":1.25}, {"label":"K401", "x":1.25, "y":4, "w":1.25}, {"label":"K403", "x":2.5, "y":4, "w":1.25}, {"label":"K406", "x":3.75, "y":4, "w":6.25}, {"label":"K410", "x":10, "y":4}, {"label":"K411", "x":11, "y":4}, {"label":"K412", "x":12, "y":4}, {"label":"K413", "x":13, "y":4}, {"label":"K414", "x":14, "y":4}]
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
/* ,-----------------------------------------------------------------------------------------.
|
/* ,-----------------------------------------------------------------------------------------.
|
||||||
* | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Del |
|
* | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Del |
|
||||||
* |-----------------------------------------------------------------------------------------+
|
* |-----------------------------------------------------------------------------------------+
|
||||||
* | | | | | | | | | UP | | | | | Reset |
|
* | | | | | | | | | UP | | | | | |
|
||||||
* |-----------------------------------------------------------------------------------------+
|
* |-----------------------------------------------------------------------------------------+
|
||||||
* | | | | | | | | Left| Down|Right| | | |
|
* | | | | | | | | Left| Down|Right| | | |
|
||||||
* |-----------------------------------------------------------------------------------------+
|
* |-----------------------------------------------------------------------------------------+
|
||||||
@@ -44,15 +44,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
*/
|
*/
|
||||||
[_FL] = LAYOUT(
|
[_FL] = LAYOUT(
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ______, KC_DEL,
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ______, KC_DEL,
|
||||||
______, ______, ______, ______, ______, ______, ______, ______, KC_UP, ______, ______, ______, ______, RESET,
|
______, ______, ______, ______, ______, ______, ______, ______, KC_UP, ______, ______, ______, ______, ______,
|
||||||
______, ______, ______, ______, ______, ______, ______, KC_LEFT, KC_DOWN, KC_RIGHT, ______, ______, ______,
|
______, ______, ______, ______, ______, ______, ______, KC_LEFT, KC_DOWN, KC_RIGHT, ______, ______, ______,
|
||||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
|
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
|
||||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______),
|
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______),
|
||||||
|
|
||||||
/* ,-----------------------------------------------------------------------------------------.
|
/* ,-----------------------------------------------------------------------------------------.
|
||||||
* | | BR- | BR+ | F3 | F4 | | |PREV |PLAY |NEXT |MUTE | V- | V+ | Eject |
|
* |Eject| BR- | BR+ | F3 | F4 | | |PREV |PLAY |NEXT |MUTE | V- | V+ | |
|
||||||
* |-----------------------------------------------------------------------------------------+
|
* |-----------------------------------------------------------------------------------------+
|
||||||
* | | | | | | | | | | | | | | |
|
* | | | | | | | | | | | | | | Reset |
|
||||||
* |-----------------------------------------------------------------------------------------+
|
* |-----------------------------------------------------------------------------------------+
|
||||||
* | | | | | | | | | | | | | |
|
* | | | | | | | | | | | | | |
|
||||||
* |-----------------------------------------------------------------------------------------+
|
* |-----------------------------------------------------------------------------------------+
|
||||||
@@ -62,8 +62,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* `-----------------------------------------------------------------------------------------'
|
* `-----------------------------------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[_ML] = LAYOUT(
|
[_ML] = LAYOUT(
|
||||||
______, BR_DOWN, BR_UP, ______, ______, KC_F5, KC_F6, KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, ______, KC_MEDIA_EJECT,
|
KC_MEDIA_EJECT, BR_DOWN, BR_UP, ______, ______, KC_F5, KC_F6, KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, ______, ______,
|
||||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
|
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, RESET,
|
||||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
|
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
|
||||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
|
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
|
||||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______),
|
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______),
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ My build used the following components:
|
|||||||
,-----------------------------------------------------------------------------------------.
|
,-----------------------------------------------------------------------------------------.
|
||||||
| ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Del |
|
| ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Del |
|
||||||
|-----------------------------------------------------------------------------------------+
|
|-----------------------------------------------------------------------------------------+
|
||||||
| | | | | | | | | UP | | | | | Reset |
|
| | | | | | | | | UP | | | | | |
|
||||||
|-----------------------------------------------------------------------------------------+
|
|-----------------------------------------------------------------------------------------+
|
||||||
| | | | | | | | Left| Down|Right| | | |
|
| | | | | | | | Left| Down|Right| | | |
|
||||||
|-----------------------------------------------------------------------------------------+
|
|-----------------------------------------------------------------------------------------+
|
||||||
@@ -55,7 +55,7 @@ The function layer is activated by the `Caps-Lock` (`Hyper`) key to access `F` k
|
|||||||
,-----------------------------------------------------------------------------------------.
|
,-----------------------------------------------------------------------------------------.
|
||||||
| | BR- | BR+ | F3 | F4 | | |PREV |PLAY |NEXT |MUTE | V- | V+ | Eject |
|
| | BR- | BR+ | F3 | F4 | | |PREV |PLAY |NEXT |MUTE | V- | V+ | Eject |
|
||||||
|-----------------------------------------------------------------------------------------+
|
|-----------------------------------------------------------------------------------------+
|
||||||
| | | | | | | | | | | | | | |
|
| | | | | | | | | | | | | | Reset |
|
||||||
|-----------------------------------------------------------------------------------------+
|
|-----------------------------------------------------------------------------------------+
|
||||||
| | | | | | | | | | | | | |
|
| | | | | | | | | | | | | |
|
||||||
|-----------------------------------------------------------------------------------------+
|
|-----------------------------------------------------------------------------------------+
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
BACKLIGHT_ENABLE = no
|
||||||
|
RGBLIGHT_ENABLE = no
|
||||||
@@ -55,4 +55,4 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
|||||||
AUDIO_ENABLE = no
|
AUDIO_ENABLE = no
|
||||||
RGBLIGHT_ENABLE = yes
|
RGBLIGHT_ENABLE = yes
|
||||||
|
|
||||||
LAYOUTS = 60_ansi 60_iso
|
LAYOUTS = 60_ansi 60_iso 60_hhkb
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
"width": 18.25,
|
"width": 18.25,
|
||||||
"height": 6.5,
|
"height": 6.5,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_all": {
|
||||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"x":13, "y":1.5}, {"x":14, "y":1.5}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"x":12.75, "y":3.5}, {"label":"Enter", "x":13.75, "y":3.5, "w":1.25}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"x":14, "y":4.5}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}]
|
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"x":13, "y":1.5}, {"x":14, "y":1.5}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"x":12.75, "y":3.5}, {"label":"Enter", "x":13.75, "y":3.5, "w":1.25}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"x":14, "y":4.5}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,4 +39,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
// ./tmk_core
|
// ./tmk_core
|
||||||
// ......
|
// ......
|
||||||
|
|
||||||
|
#ifdef USE_Link_Time_Optimization
|
||||||
|
// LTO has issues with macros (action_get_macro) and "functions" (fn_actions),
|
||||||
|
// so just disable them
|
||||||
|
#define NO_ACTION_MACRO
|
||||||
|
#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
|
#define DISABLE_LEADER
|
||||||
|
#endif // USE_Link_Time_Optimization
|
||||||
|
|
||||||
#endif /* CONFIG_H */
|
#endif /* CONFIG_H */
|
||||||
@@ -35,6 +35,7 @@ LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
|
|||||||
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
|
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
|
||||||
LED_ANIMATIONS = yes # LED animations
|
LED_ANIMATIONS = yes # LED animations
|
||||||
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
|
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
|
||||||
|
Link_Time_Optimization = no # if firmware size over limit, try this option
|
||||||
|
|
||||||
#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
|
#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
|
||||||
#### Do not enable these with audio at the same time.
|
#### Do not enable these with audio at the same time.
|
||||||
@@ -102,6 +103,19 @@ ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
|
|||||||
OPT_DEFS += -DLOCAL_GLCDFONT
|
OPT_DEFS += -DLOCAL_GLCDFONT
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(strip $(AUDIO_ENABLE)),yes)
|
||||||
|
ifeq ($(strip $(RGBLIGHT_ENABLE)),yes)
|
||||||
|
Link_Time_Optimization = yes
|
||||||
|
endif
|
||||||
|
ifeq ($(strip $(OLED_ENABLE)),yes)
|
||||||
|
Link_Time_Optimization = yes
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(strip $(Link_Time_Optimization)),yes)
|
||||||
|
EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
|
||||||
|
endif
|
||||||
|
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
|
|||||||
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
|
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
|
||||||
LED_ANIMATIONS = yes # LED animations
|
LED_ANIMATIONS = yes # LED animations
|
||||||
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
|
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
|
||||||
|
Link_Time_Optimization = no # if firmware size over limit, try this option
|
||||||
|
|
||||||
#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
|
#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
|
||||||
#### Do not enable these with audio at the same time.
|
#### Do not enable these with audio at the same time.
|
||||||
@@ -110,6 +111,10 @@ ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
|
|||||||
OPT_DEFS += -DLOCAL_GLCDFONT
|
OPT_DEFS += -DLOCAL_GLCDFONT
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(strip $(Link_Time_Optimization)),yes)
|
||||||
|
EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
|
||||||
|
endif
|
||||||
|
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
|
|||||||
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
|
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
|
||||||
LED_ANIMATIONS = yes # LED animations
|
LED_ANIMATIONS = yes # LED animations
|
||||||
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
|
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
|
||||||
|
Link_Time_Optimization = no # if firmware size over limit, try this option
|
||||||
|
|
||||||
#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
|
#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
|
||||||
#### Do not enable these with audio at the same time.
|
#### Do not enable these with audio at the same time.
|
||||||
@@ -113,6 +114,10 @@ ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
|
|||||||
OPT_DEFS += -DLOCAL_GLCDFONT
|
OPT_DEFS += -DLOCAL_GLCDFONT
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(strip $(Link_Time_Optimization)),yes)
|
||||||
|
EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
|
||||||
|
endif
|
||||||
|
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
|
|||||||
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
|
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
|
||||||
LED_ANIMATIONS = yes # LED animations
|
LED_ANIMATIONS = yes # LED animations
|
||||||
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
|
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
|
||||||
|
Link_Time_Optimization = no # if firmware size over limit, try this option
|
||||||
|
|
||||||
#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
|
#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
|
||||||
#### Do not enable these with audio at the same time.
|
#### Do not enable these with audio at the same time.
|
||||||
@@ -110,6 +111,10 @@ ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
|
|||||||
OPT_DEFS += -DLOCAL_GLCDFONT
|
OPT_DEFS += -DLOCAL_GLCDFONT
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(strip $(Link_Time_Optimization)),yes)
|
||||||
|
EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
|
||||||
|
endif
|
||||||
|
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,20 @@
|
|||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
#include "keymap_jp.h"
|
||||||
#include "bootloader.h"
|
#include "bootloader.h"
|
||||||
#ifdef PROTOCOL_LUFA
|
#ifdef PROTOCOL_LUFA
|
||||||
#include "lufa.h"
|
#include "lufa.h"
|
||||||
#include "split_util.h"
|
#include "split_util.h"
|
||||||
#endif
|
#endif
|
||||||
#ifdef AUDIO_ENABLE
|
|
||||||
#include "audio.h"
|
|
||||||
#endif
|
|
||||||
#ifdef SSD1306OLED
|
#ifdef SSD1306OLED
|
||||||
#include "ssd1306.h"
|
#include "ssd1306.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// * If you want to recognize that you pressed the Adjust key with the Lower / Raise key you can enable this comment out. However, the binary size may be over. *
|
||||||
|
// #define ADJUST_MACRO_ENABLE
|
||||||
|
|
||||||
|
// * If you want to use the Kana key you can enable this comment out. However, the binary size may be over. *
|
||||||
|
// #define KANA_ENABLE
|
||||||
|
|
||||||
extern keymap_config_t keymap_config;
|
extern keymap_config_t keymap_config;
|
||||||
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
#ifdef RGBLIGHT_ENABLE
|
||||||
@@ -35,33 +39,26 @@ enum layer_number {
|
|||||||
};
|
};
|
||||||
|
|
||||||
enum custom_keycodes {
|
enum custom_keycodes {
|
||||||
BASE = SAFE_RANGE,
|
RGBRST = SAFE_RANGE,
|
||||||
BAS_E,
|
|
||||||
LOWER,
|
|
||||||
LOW_E,
|
|
||||||
RAISE,
|
|
||||||
RAI_E,
|
|
||||||
ADJUST,
|
|
||||||
EISU,
|
|
||||||
#ifdef KANA_ENABLE
|
#ifdef KANA_ENABLE
|
||||||
|
EISU,
|
||||||
KANA,
|
KANA,
|
||||||
#endif
|
#endif
|
||||||
RGBRST
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// JIS key aliases
|
|
||||||
#define JP_CFTD KC_EQL // ^ and ~ Circumflex (Hat) and Tilde
|
|
||||||
#define JP_ATBQ KC_LBRC // @ and ` Atmark and Back-quote
|
|
||||||
#define JP_CLAS KC_QUOT // : and * Colon and Asterisk
|
|
||||||
#define JP_BSVL KC_JYEN // \ and | Back slash and and Vertical-line)
|
|
||||||
#define JP_LBRC KC_RBRC // [ and { Left-bracket
|
|
||||||
#define JP_RBRC KC_BSLS // ] and } Right-bracket
|
|
||||||
#define JP_BSUS KC_RO // \ and _ Back slash and Under-score
|
|
||||||
|
|
||||||
// Fillers to make layering more clear
|
// Fillers to make layering more clear
|
||||||
#define _______ KC_TRNS
|
#define _______ KC_TRNS
|
||||||
#define XXXXXXX KC_NO
|
#define XXXXXXX KC_NO
|
||||||
|
|
||||||
|
// Layer Mode aliases
|
||||||
|
#define DL_BAS DF(_BASE)
|
||||||
|
#define DL_BASE DF(_BAS_E)
|
||||||
|
#define ML_LOW MO(_LOWER)
|
||||||
|
#define ML_LOWE MO(_LOW_E)
|
||||||
|
#define ML_RAI MO(_RAISE)
|
||||||
|
#define ML_RAIE MO(_RAI_E)
|
||||||
|
#define ML_ADJ MO(_ADJUST)
|
||||||
|
|
||||||
#if HELIX_ROWS == 5
|
#if HELIX_ROWS == 5
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
/* Qwerty JIS Normal
|
/* Qwerty JIS Normal
|
||||||
@@ -79,10 +76,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
*/
|
*/
|
||||||
[_BASE] = LAYOUT( \
|
[_BASE] = LAYOUT( \
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, \
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, \
|
||||||
EISU, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_ATBQ, \
|
JP_ZHTG, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, \
|
||||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, JP_CLAS, \
|
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, JP_COLN, \
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, \
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, \
|
||||||
KC_LCTL, KC_LALT, KC_LGUI, ADJUST, LOWER, KC_SPC, KC_BSPC, KC_SPC, KC_SPC, RAISE, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT \
|
KC_LCTL, KC_LALT, KC_LGUI, ML_ADJ, ML_LOW, KC_SPC, KC_BSPC, KC_SPC, KC_SPC, ML_RAI, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT \
|
||||||
),
|
),
|
||||||
|
|
||||||
/* Qwerty JIS Exchange L and R
|
/* Qwerty JIS Exchange L and R
|
||||||
@@ -100,10 +97,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
*/
|
*/
|
||||||
[_BAS_E] = LAYOUT( \
|
[_BAS_E] = LAYOUT( \
|
||||||
KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, \
|
KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, \
|
||||||
KC_Y, KC_U, KC_I, KC_O, KC_P, JP_ATBQ, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, \
|
KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, \
|
||||||
KC_H, KC_J, KC_K, KC_L, KC_SCLN, JP_CLAS, XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, \
|
KC_H, KC_J, KC_K, KC_L, KC_SCLN, JP_COLN, XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, \
|
||||||
KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_ENT, EISU, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, \
|
KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_ENT, JP_ZHTG, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, \
|
||||||
KC_SPC, RAI_E, JP_RBRC, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, ADJUST, KC_LCTL, KC_LALT, KC_LGUI, JP_LBRC, LOW_E, KC_BSPC \
|
KC_SPC, ML_RAIE, JP_RBRC, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, ML_ADJ, KC_LCTL, KC_LALT, KC_LGUI, JP_LBRC, ML_LOWE, KC_BSPC \
|
||||||
),
|
),
|
||||||
|
|
||||||
/* Lower JIS Normal
|
/* Lower JIS Normal
|
||||||
@@ -120,10 +117,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* `-------------------------------------------------------------------------------------------------'
|
* `-------------------------------------------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[_LOWER] = LAYOUT( \
|
[_LOWER] = LAYOUT( \
|
||||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, JP_CFTD, JP_BSVL, \
|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, JP_CIRC, JP_YEN, \
|
||||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, JP_ATBQ, JP_LBRC, \
|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, JP_AT, JP_LBRC, \
|
||||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCLN, JP_CLAS, JP_RBRC, \
|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCLN, JP_COLN, JP_RBRC, \
|
||||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, JP_BSUS, \
|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, JP_BSLS, \
|
||||||
_______, _______, _______, _______, XXXXXXX, XXXXXXX, KC_DEL, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
|
_______, _______, _______, _______, XXXXXXX, XXXXXXX, KC_DEL, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
|
||||||
),
|
),
|
||||||
|
|
||||||
@@ -141,10 +138,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* `-------------------------------------------------------------------------------------------------'
|
* `-------------------------------------------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[_LOW_E] = LAYOUT( \
|
[_LOW_E] = LAYOUT( \
|
||||||
_______, XXXXXXX, XXXXXXX, KC_MINS, JP_CFTD, JP_BSVL, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
_______, XXXXXXX, XXXXXXX, KC_MINS, JP_CIRC, JP_YEN, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, JP_ATBQ, JP_LBRC, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
_______, XXXXXXX, XXXXXXX, XXXXXXX, JP_AT, JP_LBRC, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||||
_______, XXXXXXX, XXXXXXX, KC_SCLN, JP_CLAS, JP_RBRC, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
_______, XXXXXXX, XXXXXXX, KC_SCLN, JP_COLN, JP_RBRC, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||||
_______, KC_COMM, KC_DOT, KC_SLSH, JP_BSUS, KC_PGUP, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
_______, KC_COMM, KC_DOT, KC_SLSH, JP_BSLS, KC_PGUP, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||||
_______, _______, XXXXXXX, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, XXXXXXX, _______, KC_DEL \
|
_______, _______, XXXXXXX, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, XXXXXXX, _______, KC_DEL \
|
||||||
),
|
),
|
||||||
|
|
||||||
@@ -152,20 +149,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* ,-----------------------------------------. ,-----------------------------------------.
|
* ,-----------------------------------------. ,-----------------------------------------.
|
||||||
* | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
|
* | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
|
||||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
* | | | | | | | | F12 | | | | Home |PageUp|
|
* | | | | | | | | |MsWhL |MsWhU | Home |PageUp| F12 |
|
||||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
* | | | | | | | | | | | | End |PageDn|
|
* | | | | | | | | |MsWhR |MsWhD | End |PageDn| |
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
* | |MsBtn1|MsBtn2| | | | | | | | | | MsUp | |
|
* | | | | | | | | | | |MsBtn1|MsBtn2| MsUp | |
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
* | | | | | | | | | | | |MsLeft|MsDown|MsRght|
|
* | | | | | | | | | | | |MsLeft|MsDown|MsRght|
|
||||||
* `-------------------------------------------------------------------------------------------------'
|
* `-------------------------------------------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[_RAISE] = LAYOUT( \
|
[_RAISE] = LAYOUT( \
|
||||||
_______, KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \
|
_______, KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \
|
||||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F12 , XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGUP, \
|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_U, KC_HOME, KC_PGUP, KC_F12, \
|
||||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_END, KC_PGDN, \
|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_R, KC_WH_D, KC_END, KC_PGDN, XXXXXXX, \
|
||||||
_______, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_U, XXXXXXX, \
|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, KC_MS_U, XXXXXXX, \
|
||||||
_______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R \
|
_______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R \
|
||||||
),
|
),
|
||||||
|
|
||||||
@@ -173,26 +170,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* ,-----------------------------------------. ,-----------------------------------------.
|
* ,-----------------------------------------. ,-----------------------------------------.
|
||||||
* | F6 | F7 | F8 | F9 | F10 | F11 | | | F1 | F2 | F3 | F4 | F5 |
|
* | F6 | F7 | F8 | F9 | F10 | F11 | | | F1 | F2 | F3 | F4 | F5 |
|
||||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
* | F12 | | | | | | | | | | | | |
|
* | | | |MsWhL |MsWhU | F12 | | | | | | | |
|
||||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
* | | | | | | | | | | | | | |
|
* | | | |MsWhR |MsWhD | | | | | | | | |
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
* | | | | | | MsUp | | | |MsBtn1|MsBtn2| | | |
|
* | | | |MsBtn1|MsBtn2| MsUp | | | | | | | | |
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
* | | | | |MsLeft|MsDown|MsRght| | | | | | | |
|
* | | | | |MsLeft|MsDown|MsRght| | | | | | | |
|
||||||
* `-------------------------------------------------------------------------------------------------'
|
* `-------------------------------------------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[_RAI_E] = LAYOUT( \
|
[_RAI_E] = LAYOUT( \
|
||||||
KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, \
|
KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, \
|
||||||
KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_U, KC_F12, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_R, KC_WH_D, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, _______, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, \
|
XXXXXXX, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, KC_MS_U, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||||
_______, _______, XXXXXXX, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, XXXXXXX, _______, XXXXXXX \
|
_______, _______, XXXXXXX, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, XXXXXXX, _______, XXXXXXX \
|
||||||
),
|
),
|
||||||
|
|
||||||
/* Adjust (Lower + Raise) Common map for Normal and Exchange
|
/* Adjust (Lower + Raise) Common map for Normal and Exchange
|
||||||
* ,-----------------------------------------. ,-----------------------------------------.
|
* ,-----------------------------------------. ,-----------------------------------------.
|
||||||
* | | Reset|RGBRST|Aud on|Audoff| | | | Reset|RGBRST|Aud on|Audoff| |
|
* | | Reset|RGBRST| | | | | | Reset|RGBRST| | | |
|
||||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
* | |ModNrm|ModExc| Mac | Win | | | |ModNrm|ModExc| Mac | Win | |
|
* | |ModNrm|ModExc| Mac | Win | | | |ModNrm|ModExc| Mac | Win | |
|
||||||
* |------+------+------+------+------+------| |------+------+------+------+------|------+
|
* |------+------+------+------+------+------| |------+------+------+------+------|------+
|
||||||
@@ -204,8 +201,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* `-------------------------------------------------------------------------------------------------'
|
* `-------------------------------------------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[_ADJUST] = LAYOUT( \
|
[_ADJUST] = LAYOUT( \
|
||||||
XXXXXXX, RESET, RGBRST, AU_ON, AU_OFF, XXXXXXX, XXXXXXX, RESET, RGBRST, AU_ON, AU_OFF, XXXXXXX, \
|
XXXXXXX, RESET, RGBRST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, RGBRST, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||||
XXXXXXX, BASE, BAS_E, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, BASE, BAS_E, AG_NORM, AG_SWAP, XXXXXXX, \
|
XXXXXXX, DL_BAS, DL_BASE, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, DL_BAS, DL_BASE, AG_NORM, AG_SWAP, XXXXXXX, \
|
||||||
XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, \
|
XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, \
|
||||||
XXXXXXX, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, \
|
XXXXXXX, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, \
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
|
||||||
@@ -249,37 +246,6 @@ inline void set_keylog(uint16_t keycode, keyrecord_t *record)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef AUDIO_ENABLE
|
|
||||||
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
|
|
||||||
float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
|
|
||||||
|
|
||||||
void startup_user()
|
|
||||||
{
|
|
||||||
_delay_ms(20); // gets rid of tick
|
|
||||||
}
|
|
||||||
|
|
||||||
void shutdown_user()
|
|
||||||
{
|
|
||||||
_delay_ms(150);
|
|
||||||
stop_all_notes();
|
|
||||||
}
|
|
||||||
|
|
||||||
void music_on_user(void)
|
|
||||||
{
|
|
||||||
music_scale_user();
|
|
||||||
}
|
|
||||||
|
|
||||||
void music_scale_user(void)
|
|
||||||
{
|
|
||||||
PLAY_SONG(music_scale);
|
|
||||||
}
|
|
||||||
|
|
||||||
#else
|
|
||||||
float tone_qwerty;
|
|
||||||
float music_scale;
|
|
||||||
#define PLAY_SONG(tone)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// define variables for reactive RGB
|
// define variables for reactive RGB
|
||||||
int RGB_current_mode;
|
int RGB_current_mode;
|
||||||
#ifdef ADJUST_MACRO_ENABLE
|
#ifdef ADJUST_MACRO_ENABLE
|
||||||
@@ -303,35 +269,6 @@ void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
|
|||||||
#define RGBLIGHT(mode)
|
#define RGBLIGHT(mode)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
inline void persistent_default_layer_set(uint16_t default_layer) {
|
|
||||||
eeconfig_update_default_layer(default_layer);
|
|
||||||
default_layer_set(default_layer);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool TOG_STATUS = false;
|
|
||||||
|
|
||||||
void toggle_lower_raise_layer(bool pressed, uint16_t dist_layer, uint16_t lower_layer, uint16_t raise_layer) {
|
|
||||||
if (pressed) {
|
|
||||||
//not sure how to have keyboard check mode and set it to a variable, so my work around
|
|
||||||
//uses another variable that would be set to true after the first time a reactive key is pressed.
|
|
||||||
if (!TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false
|
|
||||||
TOG_STATUS = !TOG_STATUS;
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
|
||||||
rgblight_mode((dist_layer == _LOWER || dist_layer == _LOW_E) ? 16 : 15);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
layer_on(dist_layer);
|
|
||||||
ADJUST_MACRO(lower_layer, raise_layer, _ADJUST);
|
|
||||||
} else {
|
|
||||||
RGBLIGHT(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change
|
|
||||||
TOG_STATUS = false;
|
|
||||||
layer_off(dist_layer);
|
|
||||||
ADJUST_MACRO(lower_layer, raise_layer, _ADJUST);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
#ifdef SSD1306OLED
|
#ifdef SSD1306OLED
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
@@ -340,82 +277,49 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
case BASE:
|
#ifdef RGBLIGHT_ENABLE
|
||||||
if (record->event.pressed) {
|
//led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released
|
||||||
PLAY_SONG(tone_qwerty);
|
case RGB_MOD:
|
||||||
persistent_default_layer_set(1UL<<_BASE);
|
if (record->event.pressed) {
|
||||||
}
|
rgblight_mode(RGB_current_mode);
|
||||||
break;
|
rgblight_step();
|
||||||
case BAS_E:
|
RGB_current_mode = rgblight_config.mode;
|
||||||
if (record->event.pressed) {
|
}
|
||||||
PLAY_SONG(tone_qwerty);
|
break;
|
||||||
persistent_default_layer_set(1UL<<_BAS_E);
|
#endif
|
||||||
}
|
#ifdef KANA_ENABLE
|
||||||
break;
|
case EISU:
|
||||||
case LOWER:
|
|
||||||
toggle_lower_raise_layer(record->event.pressed, _LOWER, _LOWER, _RAISE);
|
|
||||||
break;
|
|
||||||
case LOW_E:
|
|
||||||
toggle_lower_raise_layer(record->event.pressed, _LOW_E, _LOW_E, _RAI_E);
|
|
||||||
break;
|
|
||||||
case RAISE:
|
|
||||||
toggle_lower_raise_layer(record->event.pressed, _RAISE, _LOWER, _RAISE);
|
|
||||||
break;
|
|
||||||
case RAI_E:
|
|
||||||
toggle_lower_raise_layer(record->event.pressed, _RAI_E, _LOW_E, _RAI_E);
|
|
||||||
break;
|
|
||||||
case ADJUST:
|
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
RGBLIGHT(14);
|
if (keymap_config.swap_lalt_lgui==false) {
|
||||||
layer_on(_ADJUST);
|
register_code(KC_LANG2);
|
||||||
|
} else {
|
||||||
|
SEND_STRING(SS_LALT("`"));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
RGBLIGHT(RGB_current_mode);
|
unregister_code(KC_LANG2);
|
||||||
layer_off(_ADJUST);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
//led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released
|
case KANA:
|
||||||
case RGB_MOD:
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
rgblight_mode(RGB_current_mode);
|
if(keymap_config.swap_lalt_lgui==false){
|
||||||
rgblight_step();
|
register_code(KC_LANG1);
|
||||||
RGB_current_mode = rgblight_config.mode;
|
}else{
|
||||||
}
|
SEND_STRING(SS_LALT("`"));
|
||||||
#endif
|
}
|
||||||
break;
|
|
||||||
case EISU:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
if (keymap_config.swap_lalt_lgui==false) {
|
|
||||||
register_code(KC_LANG2);
|
|
||||||
} else {
|
} else {
|
||||||
SEND_STRING(SS_LALT("`"));
|
unregister_code(KC_LANG1);
|
||||||
}
|
}
|
||||||
} else {
|
break;
|
||||||
unregister_code(KC_LANG2);
|
#endif
|
||||||
}
|
#ifdef RGBLIGHT_ENABLE
|
||||||
break;
|
case RGBRST:
|
||||||
#ifdef KANA_ENABLE
|
if (record->event.pressed) {
|
||||||
case KANA:
|
eeconfig_update_rgblight_default();
|
||||||
if (record->event.pressed) {
|
rgblight_enable();
|
||||||
if(keymap_config.swap_lalt_lgui==false){
|
RGB_current_mode = rgblight_config.mode;
|
||||||
register_code(KC_LANG1);
|
}
|
||||||
}else{
|
break;
|
||||||
SEND_STRING(SS_LALT("`"));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
unregister_code(KC_LANG1);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
#endif
|
#endif
|
||||||
case RGBRST:
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
|
||||||
if (record->event.pressed) {
|
|
||||||
eeconfig_update_rgblight_default();
|
|
||||||
rgblight_enable();
|
|
||||||
RGB_current_mode = rgblight_config.mode;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -424,15 +328,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void matrix_init_user(void) {
|
void matrix_init_user(void) {
|
||||||
#ifdef AUDIO_ENABLE
|
|
||||||
startup_user();
|
|
||||||
#endif
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
#ifdef RGBLIGHT_ENABLE
|
||||||
RGB_current_mode = rgblight_config.mode;
|
RGB_current_mode = rgblight_config.mode;
|
||||||
#endif
|
#endif
|
||||||
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
|
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
|
||||||
#ifdef SSD1306OLED
|
#ifdef SSD1306OLED
|
||||||
iota_gfx_init(!has_usb()); // turns on the display
|
iota_gfx_init(!has_usb()); // turns on the display
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -474,6 +375,7 @@ inline void render_logo(struct CharacterMatrix *matrix) {
|
|||||||
const char mac_win_logo[][2][3]={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}};
|
const char mac_win_logo[][2][3]={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}};
|
||||||
inline void render_status(struct CharacterMatrix *matrix) {
|
inline void render_status(struct CharacterMatrix *matrix) {
|
||||||
|
|
||||||
|
char buf[20];
|
||||||
// Render to mode icon
|
// Render to mode icon
|
||||||
if(keymap_config.swap_lalt_lgui==false){
|
if(keymap_config.swap_lalt_lgui==false){
|
||||||
matrix_write(matrix, mac_win_logo[0][0]);
|
matrix_write(matrix, mac_win_logo[0][0]);
|
||||||
@@ -485,8 +387,12 @@ inline void render_status(struct CharacterMatrix *matrix) {
|
|||||||
matrix_write(matrix, mac_win_logo[1][1]);
|
matrix_write(matrix, mac_win_logo[1][1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
snprintf(buf, sizeof(buf), " LED mode:%d", (short)RGB_current_mode);
|
||||||
|
matrix_write(matrix, buf);
|
||||||
|
#endif
|
||||||
|
|
||||||
// Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below
|
// Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below
|
||||||
char buf[20];
|
|
||||||
matrix_write_P(matrix, PSTR("\nLayer: "));
|
matrix_write_P(matrix, PSTR("\nLayer: "));
|
||||||
switch (layer_state) {
|
switch (layer_state) {
|
||||||
case L_BASE:
|
case L_BASE:
|
||||||
@@ -520,11 +426,11 @@ inline void render_status(struct CharacterMatrix *matrix) {
|
|||||||
void iota_gfx_task_user(void) {
|
void iota_gfx_task_user(void) {
|
||||||
struct CharacterMatrix matrix;
|
struct CharacterMatrix matrix;
|
||||||
|
|
||||||
#if DEBUG_TO_SCREEN
|
#if DEBUG_TO_SCREEN
|
||||||
if (debug_enable) {
|
if (debug_enable) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
matrix_clear(&matrix);
|
matrix_clear(&matrix);
|
||||||
if (is_master) {
|
if (is_master) {
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
|
|||||||
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
|
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
|
||||||
LED_ANIMATIONS = yes # LED animations
|
LED_ANIMATIONS = yes # LED animations
|
||||||
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
|
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
|
||||||
|
Link_Time_Optimization = no # if firmware size over limit, try this option
|
||||||
|
|
||||||
#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
|
#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
|
||||||
#### Do not enable these with audio at the same time.
|
#### Do not enable these with audio at the same time.
|
||||||
@@ -110,6 +111,10 @@ ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
|
|||||||
OPT_DEFS += -DLOCAL_GLCDFONT
|
OPT_DEFS += -DLOCAL_GLCDFONT
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(strip $(Link_Time_Optimization)),yes)
|
||||||
|
EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
|
||||||
|
endif
|
||||||
|
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ LED_BACK_ENABLE = yes # LED backlight (Enable WS2812 RGB underlight.)
|
|||||||
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
|
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
|
||||||
LED_ANIMATIONS = yes # LED animations
|
LED_ANIMATIONS = yes # LED animations
|
||||||
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
|
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
|
||||||
|
Link_Time_Optimization = no # if firmware size over limit, try this option
|
||||||
|
|
||||||
#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
|
#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
|
||||||
#### Do not enable these with audio at the same time.
|
#### Do not enable these with audio at the same time.
|
||||||
@@ -110,6 +111,10 @@ ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
|
|||||||
OPT_DEFS += -DLOCAL_GLCDFONT
|
OPT_DEFS += -DLOCAL_GLCDFONT
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(strip $(Link_Time_Optimization)),yes)
|
||||||
|
EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
|
||||||
|
endif
|
||||||
|
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ LED_BACK_ENABLE = yes # LED backlight (Enable WS2812 RGB underlight.)
|
|||||||
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
|
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
|
||||||
LED_ANIMATIONS = yes # LED animations
|
LED_ANIMATIONS = yes # LED animations
|
||||||
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
|
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
|
||||||
|
Link_Time_Optimization = no # if firmware size over limit, try this option
|
||||||
|
|
||||||
#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
|
#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
|
||||||
#### Do not enable these with audio at the same time.
|
#### Do not enable these with audio at the same time.
|
||||||
@@ -110,6 +111,10 @@ ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
|
|||||||
OPT_DEFS += -DLOCAL_GLCDFONT
|
OPT_DEFS += -DLOCAL_GLCDFONT
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(strip $(Link_Time_Optimization)),yes)
|
||||||
|
EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
|
||||||
|
endif
|
||||||
|
|
||||||
SRC += led_test_init.c
|
SRC += led_test_init.c
|
||||||
|
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
|||||||
@@ -15,10 +15,7 @@ You should have received a copy of the GNU General Public License
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CONFIG_USER_H
|
#pragma once
|
||||||
#define CONFIG_USER_H
|
|
||||||
|
|
||||||
#include "config_common.h"
|
|
||||||
|
|
||||||
/* Use I2C or Serial, not both */
|
/* Use I2C or Serial, not both */
|
||||||
|
|
||||||
@@ -37,5 +34,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define RGBLIGHT_HUE_STEP 8
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
#define RGBLIGHT_SAT_STEP 8
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
#define RGBLIGHT_VAL_STEP 8
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,6 +1,4 @@
|
|||||||
#include "iris.h"
|
#include QMK_KEYBOARD_H
|
||||||
#include "action_layer.h"
|
|
||||||
#include "eeconfig.h"
|
|
||||||
|
|
||||||
extern keymap_config_t keymap_config;
|
extern keymap_config_t keymap_config;
|
||||||
|
|
||||||
@@ -16,93 +14,70 @@ enum custom_keycodes {
|
|||||||
ADJUST,
|
ADJUST,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define KC_ KC_TRNS
|
|
||||||
#define _______ KC_TRNS
|
|
||||||
|
|
||||||
#define KC_LOWR LOWER
|
|
||||||
#define KC_RASE RAISE
|
|
||||||
#define KC_RST RESET
|
|
||||||
#define KC_BL_S BL_STEP
|
|
||||||
#define KC_DBUG DEBUG
|
|
||||||
#define KC_RTOG RGB_TOG
|
|
||||||
#define KC_RMOD RGB_MOD
|
|
||||||
#define KC_RHUI RGB_HUI
|
|
||||||
#define KC_RHUD RGB_HUD
|
|
||||||
#define KC_RSAI RGB_SAI
|
|
||||||
#define KC_RSAD RGB_SAD
|
|
||||||
#define KC_RVAI RGB_VAI
|
|
||||||
#define KC_RVAD RGB_VAD
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
[_QWERTY] = LAYOUT_kc(
|
[_QWERTY] = LAYOUT(
|
||||||
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
TAB , Q , W , E , R , T , Y , U , I , O , P ,DEL ,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
|
||||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
LSFT, A , S , D , F , G , H , J , K , L ,SCLN,QUOT,
|
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||||
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
LCTL, Z , X , C , V , B ,HOME, END , N , M ,COMM,DOT ,SLSH,RSFT,
|
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_HOME, KC_END, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||||
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
|
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||||
LGUI,LOWR,ENT , SPC ,RASE,LALT
|
KC_LGUI, LOWER, KC_ENT, KC_SPC, RAISE, KC_LALT
|
||||||
// `----+----+----' `----+----+----'
|
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||||
),
|
),
|
||||||
|
|
||||||
[_LOWER] = LAYOUT_kc(
|
[_LOWER] = LAYOUT(
|
||||||
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,BSPC,
|
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
RST , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , ,
|
RESET, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
|
||||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
DEL , ,LEFT,RGHT, UP ,LBRC, RBRC, P4 , P5 , P6 ,PLUS,PIPE,
|
KC_DEL, _______, KC_LEFT, KC_RGHT, KC_UP, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_PLUS, KC_PIPE,
|
||||||
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
BL_S, , , ,DOWN,LCBR,LPRN, RPRN,RCBR, P1 , P2 , P3 ,MINS, ,
|
BL_STEP, _______, _______, _______, KC_DOWN, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_P1, KC_P2, KC_P3, KC_MINS, _______,
|
||||||
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
|
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||||
, ,DEL , DEL , , P0
|
_______, _______, KC_DEL, KC_DEL, _______, KC_P0
|
||||||
// `----+----+----' `----+----+----'
|
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||||
),
|
),
|
||||||
|
|
||||||
[_RAISE] = LAYOUT_kc(
|
[_RAISE] = LAYOUT(
|
||||||
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,
|
KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, ,
|
RGB_TOG, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
|
||||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
,MPRV,MNXT,VOLU,PGUP,UNDS, EQL ,HOME, , , ,BSLS,
|
RGB_MOD, KC_MPRV, KC_MNXT, KC_VOLU, KC_PGUP, KC_UNDS, KC_EQL, KC_HOME, RGB_HUI, RGB_SAI, RGB_VAI, KC_BSLS,
|
||||||
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
MUTE,MSTP,MPLY,VOLD,PGDN,MINS, , ,PLUS,END , , , , ,
|
KC_MUTE, KC_MSTP, KC_MPLY, KC_VOLD, KC_PGDN, KC_MINS, KC_LPRN, _______, KC_PLUS, KC_END, RGB_HUD, RGB_SAD, RGB_VAD, _______,
|
||||||
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
|
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||||
, , , , ,
|
_______, _______, _______, _______, _______, _______
|
||||||
// `----+----+----' `----+----+----'
|
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||||
),
|
),
|
||||||
|
|
||||||
[_ADJUST] = LAYOUT_kc(
|
[_ADJUST] = LAYOUT(
|
||||||
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
, , , , , , , , , , , ,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
RTOG,RMOD,RHUI,RSAI,RVAI, , , , , , , ,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
,DBUG,RHUD,RSAD,RVAD, , , , , , , ,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
BL_S,RST , , , , , , , , , , , , ,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
|
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||||
, , , , ,
|
_______, _______, _______, _______, _______, _______
|
||||||
// `----+----+----' `----+----+----'
|
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||||
)
|
)
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void persistent_default_layer_set(uint16_t default_layer) {
|
|
||||||
eeconfig_update_default_layer(default_layer);
|
|
||||||
default_layer_set(default_layer);
|
|
||||||
}
|
|
||||||
|
|
||||||
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 QWERTY:
|
case QWERTY:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
persistent_default_layer_set(1UL<<_QWERTY);
|
set_single_persistent_default_layer(_QWERTY);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -1,6 +1,2 @@
|
|||||||
RGBLIGHT_ENABLE = yes
|
RGBLIGHT_ENABLE = yes
|
||||||
BACKLIGHT_ENABLE = yes
|
BACKLIGHT_ENABLE = yes
|
||||||
|
|
||||||
ifndef QUANTUM_DIR
|
|
||||||
include ../../../../Makefile
|
|
||||||
endif
|
|
||||||
@@ -299,58 +299,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
// getting the LEDs working...
|
|
||||||
void led_set_user(uint8_t usb_led) {
|
|
||||||
|
|
||||||
DDRF |= (1<<0); // Keypad LED
|
|
||||||
if (usb_led & (1<<USB_LED_COMPOSE)) {
|
|
||||||
PORTF |= (1<<0);
|
|
||||||
} else {
|
|
||||||
PORTF &= ~(1<<0);
|
|
||||||
}
|
|
||||||
|
|
||||||
DDRF |= (1<<1); // ScrLock LED
|
|
||||||
if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
|
|
||||||
PORTF |= (1<<1);
|
|
||||||
} else {
|
|
||||||
PORTF &= ~(1<<1);
|
|
||||||
}
|
|
||||||
|
|
||||||
DDRF |= (1<<2); // NumLock LED
|
|
||||||
if (usb_led & (1<<USB_LED_NUM_LOCK)) {
|
|
||||||
PORTF |= (1<<2);
|
|
||||||
} else {
|
|
||||||
PORTF &= ~(1<<2);
|
|
||||||
}
|
|
||||||
|
|
||||||
DDRF |= (1<<3); // CapsLock LED
|
|
||||||
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
|
|
||||||
PORTF |= (1<<3);
|
|
||||||
} else {
|
|
||||||
PORTF &= ~(1<<3);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Runs just one time when the keyboard initializes.
|
// Runs just one time when the keyboard initializes.
|
||||||
void matrix_init_user(void) {
|
void matrix_init_user(void) {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void led_set_user(uint8_t usb_led) {
|
|
||||||
if (usb_led & (1<<USB_LED_NUM_LOCK)) {
|
|
||||||
PORTF |= (1<<2);
|
|
||||||
} else {
|
|
||||||
PORTF &= ~(1<<2);
|
|
||||||
}
|
|
||||||
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
|
|
||||||
PORTF |= (1<<3);
|
|
||||||
} else {
|
|
||||||
PORTF &= ~(1<<3);
|
|
||||||
}
|
|
||||||
if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
|
|
||||||
PORTF |= (1<<1);
|
|
||||||
} else {
|
|
||||||
PORTF &= ~(1<<1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -10,9 +10,11 @@ The QWERTY layout shown here is based entirely on the Kinesis Advantage layout.
|
|||||||
|
|
||||||
I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck layouts.
|
I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck layouts.
|
||||||
|
|
||||||
|
As of August 4 2018, I've got the LEDs working ... mostly. Caps Lock and Num Lock LEDs work for me. The Scroll Lock LED does work on my keyboard, but I can't get it to work when I use the Scroll Lock key on my keyboard. I also have no idea how to get the Num Pad LED working when I switch to the Numpad layer.
|
||||||
|
|
||||||
## Still to do:
|
## Still to do:
|
||||||
|
|
||||||
* Implement the CapsLock, NumLock, and ScrLck LEDs on the off-chance that I decide to actually solder some to the keyboard.
|
* Figure out how to make the Numpad and ScrLck LEDs work properly.
|
||||||
|
|
||||||
### Function Keys on All Layers (keypad toggles):
|
### Function Keys on All Layers (keypad toggles):
|
||||||
,-----------------------------------------------------------------.
|
,-----------------------------------------------------------------.
|
||||||
|
|||||||
@@ -27,65 +27,35 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void led_init_ports() {
|
void led_init_ports() {
|
||||||
// * Set our LED pins as output
|
// * Set our LED pins as output
|
||||||
DDRF |= (1<<0); // Keypad LED
|
DDRF |= (1<<0); // Keypad LED
|
||||||
DDRF |= (1<<1); // ScrLock LED
|
DDRF |= (1<<1); // ScrLock LED
|
||||||
DDRF |= (1<<2); // NumLock LED
|
DDRF |= (1<<2); // NumLock LED
|
||||||
DDRF |= (1<<3); // CapsLock LED
|
DDRF |= (1<<3); // CapsLock LED
|
||||||
}
|
}
|
||||||
|
|
||||||
void led_set_kb(uint8_t usb_led) {
|
void led_set_kb(uint8_t usb_led) {
|
||||||
DDRF |= (1<<0); // Keypad LED
|
if (usb_led & (1<<USB_LED_COMPOSE)) {
|
||||||
if (usb_led & (1<<USB_LED_COMPOSE)) {
|
PORTF &= ~(1<<0);
|
||||||
PORTF |= (1<<0);
|
} else {
|
||||||
} else {
|
PORTF |= (1<<0);
|
||||||
PORTF &= ~(1<<0);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
DDRF |= (1<<1); // ScrLock LED
|
if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
|
||||||
if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
|
PORTF &= ~(1<<1);
|
||||||
PORTF |= (1<<1);
|
} else {
|
||||||
} else {
|
PORTF |= (1<<1);
|
||||||
PORTF &= ~(1<<1);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
DDRF |= (1<<2); // NumLock LED
|
|
||||||
if (usb_led & (1<<USB_LED_NUM_LOCK)) {
|
|
||||||
PORTF |= (1<<2);
|
|
||||||
} else {
|
|
||||||
PORTF &= ~(1<<2);
|
|
||||||
}
|
|
||||||
|
|
||||||
DDRF |= (1<<3); // CapsLock LED
|
|
||||||
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
|
|
||||||
PORTF |= (1<<3);
|
|
||||||
} else {
|
|
||||||
PORTF &= ~(1<<3);
|
|
||||||
}
|
|
||||||
|
|
||||||
led_set_user(usb_led);
|
|
||||||
|
|
||||||
inline void kinesis_keypad_led_on(void) { DDRF |= (1<<0); PORTF |= (1<<0); }
|
|
||||||
inline void kinesis_scroll_led_on(void) { DDRF |= (1<<1); PORTF |= (1<<1); }
|
|
||||||
inline void kinesis_num_led_on(void) { DDRF |= (1<<2); PORTF |= (1<<2); }
|
|
||||||
inline void kinesis_caps_led_on(void) { DDRF |= (1<<3); PORTF |= (1<<3); }
|
|
||||||
|
|
||||||
inline void kinesis_keypad_led_off(void) { DDRF &= ~(1<<0); PORTF &= ~(1<<0); }
|
|
||||||
inline void kinesis_scroll_led_off(void) { DDRF &= ~(1<<1); PORTF &= ~(1<<1); }
|
|
||||||
inline void kinesis_num_led_off(void) { DDRF &= ~(1<<2); PORTF &= ~(1<<2); }
|
|
||||||
inline void kinesis_caps_led_off(void) { DDRF &= ~(1<<3); PORTF &= ~(1<<3); }
|
|
||||||
|
|
||||||
|
if (usb_led & (1<<USB_LED_NUM_LOCK)) {
|
||||||
|
PORTF &= ~(1<<2);
|
||||||
|
} else {
|
||||||
|
PORTF |= (1<<2);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
|
||||||
|
PORTF &= ~(1<<3);
|
||||||
|
} else {
|
||||||
|
PORTF |= (1<<3);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This is the old code that has the port information in it.
|
|
||||||
inline void kinesis_keypad_led_on(void) { DDRF |= (1<<0); PORTF |= (1<<0); }
|
|
||||||
inline void kinesis_scroll_led_on(void) { DDRF |= (1<<1); PORTF |= (1<<1); }
|
|
||||||
inline void kinesis_num_led_on(void) { DDRF |= (1<<2); PORTF |= (1<<2); }
|
|
||||||
inline void kinesis_caps_led_on(void) { DDRF |= (1<<3); PORTF |= (1<<3); }
|
|
||||||
|
|
||||||
inline void kinesis_keypad_led_off(void) { DDRF &= ~(1<<0); PORTF &= ~(1<<0); }
|
|
||||||
inline void kinesis_scroll_led_off(void) { DDRF &= ~(1<<1); PORTF &= ~(1<<1); }
|
|
||||||
inline void kinesis_num_led_off(void) { DDRF &= ~(1<<2); PORTF &= ~(1<<2); }
|
|
||||||
inline void kinesis_caps_led_off(void) { DDRF &= ~(1<<3); PORTF &= ~(1<<3); }
|
|
||||||
*/
|
|
||||||
@@ -159,10 +159,12 @@ void matrix_scan_kb(void)
|
|||||||
void suspend_power_down_kb(void)
|
void suspend_power_down_kb(void)
|
||||||
{
|
{
|
||||||
rgb_matrix_set_suspend_state(true);
|
rgb_matrix_set_suspend_state(true);
|
||||||
|
suspend_power_down_user();
|
||||||
}
|
}
|
||||||
|
|
||||||
void suspend_wakeup_init_kb(void)
|
void suspend_wakeup_init_kb(void)
|
||||||
{
|
{
|
||||||
rgb_matrix_set_suspend_state(false);
|
rgb_matrix_set_suspend_state(false);
|
||||||
|
suspend_wakeup_init_user();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -104,7 +104,7 @@ If this is the first time you're flashing the boards, you have to flash EEPROM
|
|||||||
2. Run `ls /dev | grep tty` Note down which ports you see
|
2. Run `ls /dev | grep tty` Note down which ports you see
|
||||||
2. Plug the keyboard in, if it's new, it should enter bootloader, if it's not new, see **Entering bootloader** on how to enter bootloader mode
|
2. Plug the keyboard in, if it's new, it should enter bootloader, if it's not new, see **Entering bootloader** on how to enter bootloader mode
|
||||||
4. Right after entering bootloader, run `ls /dev | grep tty` again. There should be a new tty, this is the bootloader TTY, note it down. If nothing shows see **Entering bootloader** on how to enter bootloader mode
|
4. Right after entering bootloader, run `ls /dev | grep tty` again. There should be a new tty, this is the bootloader TTY, note it down. If nothing shows see **Entering bootloader** on how to enter bootloader mode
|
||||||
6. For the left hand side, run `avrdude -c avr109 -p m32u4 -P /dev/ttyS1 -U eeprom:w:"./keyboards/lets_split_vitamins/eeprom-lefthand.eep":a`
|
6. For the left hand side, run `avrdude -c avr109 -p m32u4 -P /dev/ttyS1 -U eeprom:w:"./quantum/split_common/eeprom-lefthand.eep":a`
|
||||||
Replace ***/dev/ttyS1*** with the port you noted down earlier. If you're on windows using msys2, replace ***/dev/ttyS1*** with COM2, note that the number is one higher than the tty number.
|
Replace ***/dev/ttyS1*** with the port you noted down earlier. If you're on windows using msys2, replace ***/dev/ttyS1*** with COM2, note that the number is one higher than the tty number.
|
||||||
Do the same For the right hand, but change the file to ***eeprom-righthand.eep***
|
Do the same For the right hand, but change the file to ***eeprom-righthand.eep***
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define FORCE_NKRO
|
||||||
|
|
||||||
|
#define TAPPING_TOGGLE 2
|
||||||
|
#define TAPPING_TERM 200
|
||||||
|
#define PERMISSIVE_HOLD
|
||||||
|
|
||||||
|
#define MOUSEKEY_DELAY 50
|
||||||
|
#define MOUSEKEY_INTERVAL 15
|
||||||
|
#define MOUSEKEY_MAX_SPEED 4
|
||||||
|
#define MOUSEKEY_TIME_TO_MAX 50
|
||||||
|
#define MOUSEKEY_WHEEL_MAX_SPEED 1
|
||||||
|
#define MOUSEKEY_WHEEL_TIME_TO_MAX 50
|
||||||
@@ -0,0 +1,142 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
#define FN_CAPS LT(L_FN, KC_CAPS)
|
||||||
|
#define FN_CTRL TD(TD_FN_CTRL)
|
||||||
|
#define RL_ALT TD(TD_RL_ALT) // Unused
|
||||||
|
|
||||||
|
#define TOP LCTL(KC_HOME)
|
||||||
|
#define BOTTOM LCTL(KC_END)
|
||||||
|
|
||||||
|
#define UC_LPRN UC(0x0028)
|
||||||
|
#define UC_RPRN UC(0x0029)
|
||||||
|
#define UC_EQLS UC(0x003D)
|
||||||
|
#define UC_MULS UC(0x00D7)
|
||||||
|
#define UC_DIVS UC(0x00F7)
|
||||||
|
#define UC_MINS UC(0x2212)
|
||||||
|
|
||||||
|
void matrix_init_user(void)
|
||||||
|
{
|
||||||
|
set_unicode_input_mode(UC_WIN);
|
||||||
|
}
|
||||||
|
|
||||||
|
enum layers {
|
||||||
|
L_BASE,
|
||||||
|
L_FN,
|
||||||
|
L_NUMPAD,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum custom_keycodes {
|
||||||
|
CLEAR = SAFE_RANGE,
|
||||||
|
NUMPAD,
|
||||||
|
};
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record)
|
||||||
|
{
|
||||||
|
if (!record->event.pressed) { return true; }
|
||||||
|
|
||||||
|
switch (keycode) {
|
||||||
|
case CLEAR:
|
||||||
|
SEND_STRING(SS_LCTRL("a") SS_TAP(X_DELETE));
|
||||||
|
return false;
|
||||||
|
|
||||||
|
case NUMPAD:
|
||||||
|
layer_invert(L_NUMPAD);
|
||||||
|
bool num_lock = host_keyboard_leds() & 1<<USB_LED_NUM_LOCK;
|
||||||
|
if (num_lock != (bool)IS_LAYER_ON(L_NUMPAD)) {
|
||||||
|
register_code(KC_NLCK); // Force Num Lock to match layer state.
|
||||||
|
unregister_code(KC_NLCK);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
enum tap_dance {
|
||||||
|
TD_FN_CTRL,
|
||||||
|
TD_RL_ALT, // Unused
|
||||||
|
};
|
||||||
|
|
||||||
|
void td_fn_ctrl_finished(qk_tap_dance_state_t *state, void *user_data)
|
||||||
|
{
|
||||||
|
// Single tap → Fn, double tap → RCtrl, triple tap → Fn+RCtrl etc.
|
||||||
|
if (state->count & 1) { layer_on(L_FN); }
|
||||||
|
if (state->count & 2) { register_code(KC_RCTL); }
|
||||||
|
}
|
||||||
|
|
||||||
|
void td_fn_ctrl_reset(qk_tap_dance_state_t *state, void *user_data)
|
||||||
|
{
|
||||||
|
if (state->count & 1) { layer_off(L_FN); }
|
||||||
|
if (state->count & 2) { unregister_code(KC_RCTL); }
|
||||||
|
}
|
||||||
|
|
||||||
|
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||||
|
[TD_FN_CTRL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_fn_ctrl_finished, td_fn_ctrl_reset),
|
||||||
|
[TD_RL_ALT] = ACTION_TAP_DANCE_DOUBLE(KC_RALT, KC_LALT), // Unused
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/* Base layer
|
||||||
|
* ,---------------------------------------------------------------.
|
||||||
|
* |Esc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |PSc|
|
||||||
|
* |---------------------------------------------------------------|
|
||||||
|
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] |Bspc |Del|
|
||||||
|
* |---------------------------------------------------------------|
|
||||||
|
* |FnCaps| A | S | D | F | G | H | J | K | L | ; | ' | Enter |PgU|
|
||||||
|
* |---------------------------------------------------------------|
|
||||||
|
* | LShift | Z | X | C | V | B | N | M | , | . | / |RShift| ↑ |PgD|
|
||||||
|
* |---------------------------------------------------------------|
|
||||||
|
* |LCtl|LGui|LAlt| Space |RAlt|FnCt| | ← | ↓ | → |
|
||||||
|
* `---------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[L_BASE] = LAYOUT_truefox( \
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS,KC_GRV, KC_PSCR, \
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSPC, KC_DEL, \
|
||||||
|
FN_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, KC_PGUP, \
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP, KC_PGDN, \
|
||||||
|
KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,FN_CTRL, KC_LEFT,KC_DOWN,KC_RGHT \
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Function layer
|
||||||
|
* ,---------------------------------------------------------------.
|
||||||
|
* | |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Num|Scr|Pau|
|
||||||
|
* |---------------------------------------------------------------|
|
||||||
|
* | M4 |M2 |M↑ |M1 |M3 |M5 | | | |Stp|Ply|Prv|Nxt|Clear|Ins|
|
||||||
|
* |---------------------------------------------------------------|
|
||||||
|
* | |M← |M↓ |M→ |MW↑| | | | | | | | |Top|
|
||||||
|
* |---------------------------------------------------------------|
|
||||||
|
* | |MA0|MA2|MW←|MW→| | | |Vo-|Vo+|Mut| |PgU|Btm|
|
||||||
|
* |---------------------------------------------------------------|
|
||||||
|
* | | | | MW↓ |App | | |Hom|PgD|End|
|
||||||
|
* `---------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[L_FN] = LAYOUT_truefox( \
|
||||||
|
_______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, NUMPAD, KC_SLCK,KC_PAUS, \
|
||||||
|
KC_BTN4,KC_BTN2,KC_MS_U,KC_BTN1,KC_BTN3,KC_BTN5,_______,_______,_______,KC_MSTP,KC_MPLY,KC_MPRV,KC_MNXT,CLEAR, KC_INS, \
|
||||||
|
_______,KC_MS_L,KC_MS_D,KC_MS_R,KC_WH_U,_______,_______,_______,_______,_______,_______,_______, _______, TOP, \
|
||||||
|
_______, KC_ACL0,KC_ACL2,KC_WH_L,KC_WH_R,_______,_______,_______,KC_VOLD,KC_VOLU,KC_MUTE,_______, KC_PGUP,BOTTOM, \
|
||||||
|
_______,_______,_______, KC_WH_D, KC_APP, _______, KC_HOME,KC_PGDN,KC_END \
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Numpad layer
|
||||||
|
* ,---------------------------------------------------------------.
|
||||||
|
* |Num| | | | | | |P7 |P8 |P9 |P- | − | = |Num| | |
|
||||||
|
* |---------------------------------------------------------------|
|
||||||
|
* | | | | | | | |P4 |P5 |P6 |P+ | ( | ) | | |
|
||||||
|
* |---------------------------------------------------------------|
|
||||||
|
* | | | | | | | |P1 |P2 |P3 |P* | × | PEnter | |
|
||||||
|
* |---------------------------------------------------------------|
|
||||||
|
* | | | | | | |P0 |P0 |P, |P. |P/ | ÷ | | |
|
||||||
|
* |---------------------------------------------------------------|
|
||||||
|
* | | | | | | | | | | |
|
||||||
|
* `---------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[L_NUMPAD] = LAYOUT_truefox( \
|
||||||
|
NUMPAD, _______,_______,_______,_______,_______,_______,KC_P7, KC_P8, KC_P9, KC_PMNS,UC_MINS,UC_EQLS,NUMPAD, _______,_______, \
|
||||||
|
_______,_______,_______,_______,_______,_______,_______,KC_P4, KC_P5, KC_P6, KC_PPLS,UC_LPRN,UC_RPRN,_______, _______, \
|
||||||
|
_______,_______,_______,_______,_______,_______,_______,KC_P1, KC_P2, KC_P3, KC_PAST,UC_MULS, KC_PENT, _______, \
|
||||||
|
_______, _______,_______,_______,_______,_______,KC_P0, KC_P0, KC_PCMM,KC_PDOT,KC_PSLS,UC_DIVS, _______,_______, \
|
||||||
|
_______,_______,_______, _______, _______,_______, _______,_______,_______ \
|
||||||
|
),
|
||||||
|
};
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
BOOTMAGIC_ENABLE = no
|
||||||
|
CONSOLE_ENABLE = yes
|
||||||
|
TAP_DANCE_ENABLE = yes
|
||||||
|
UNICODE_ENABLE = yes
|
||||||
@@ -20,20 +20,29 @@
|
|||||||
|
|
||||||
// Layer shorthand
|
// Layer shorthand
|
||||||
#define _CM 0 // Colemak
|
#define _CM 0 // Colemak
|
||||||
#define _NB 1 // Numbers
|
#define _DV 1 // Dvorak
|
||||||
#define _SYL 2 // Symbols left
|
#define _QW 2 // QWERTY
|
||||||
#define _SYR 3 // Symbols right
|
#define _NB 3 // Numbers
|
||||||
#define _NAV 4 // Navigation
|
#define _SY 4 // Symbols
|
||||||
|
#define _NAV 5 // Navigation
|
||||||
|
|
||||||
// Layer buttons
|
// Layer buttons
|
||||||
#define _Z_SFT SFT_T(UK_Z)
|
#define _Z_SFT SFT_T(UK_Z)
|
||||||
|
#define _SCLSH SFT_T(UK_SCLN)
|
||||||
#define _SLSH SFT_T(UK_SLSH)
|
#define _SLSH SFT_T(UK_SLSH)
|
||||||
#define _X_NB LT(_NB, UK_X)
|
#define _X_NB LT(_NB, UK_X)
|
||||||
|
#define _Q_NB LT(_NB, UK_Q)
|
||||||
#define _DOT_NB LT(_NB, UK_DOT)
|
#define _DOT_NB LT(_NB, UK_DOT)
|
||||||
#define _C_SY LT(_SYL, UK_C)
|
#define _V_NB LT(_NB, UK_V)
|
||||||
#define _COM_SY LT(_SYR, UK_COMM)
|
#define _C_SY LT(_SY, UK_C)
|
||||||
|
#define _J_SY LT(_SY, UK_J)
|
||||||
|
#define _W_SY LT(_SY, UK_W)
|
||||||
|
#define _COM_SY LT(_SY, UK_COMM)
|
||||||
|
#define _AST_SY LT(_SY, UK_PAST)
|
||||||
#define _B_NAV LT(_NAV, UK_B)
|
#define _B_NAV LT(_NAV, UK_B)
|
||||||
|
#define _X_NAV LT(_NAV, UK_X)
|
||||||
#define _K_NAV LT(_NAV, UK_K)
|
#define _K_NAV LT(_NAV, UK_K)
|
||||||
|
#define _N_NAV LT(_NAV, UK_N)
|
||||||
#define _F1_NB LT(_NB, UK_F1)
|
#define _F1_NB LT(_NB, UK_F1)
|
||||||
#define _3_NB LT(_NB, UK_3)
|
#define _3_NB LT(_NB, UK_3)
|
||||||
|
|
||||||
@@ -45,98 +54,142 @@
|
|||||||
#define _A_LEFT LALT(UK_LEFT)
|
#define _A_LEFT LALT(UK_LEFT)
|
||||||
#define _A_RGHT LALT(UK_RGHT)
|
#define _A_RGHT LALT(UK_RGHT)
|
||||||
|
|
||||||
|
enum custom_keycodes {
|
||||||
|
L_NEXT = SAFE_RANGE,
|
||||||
|
L_SB
|
||||||
|
};
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/* Colemak _CM
|
/* Colemak _CM
|
||||||
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||||
* | | | | | | | | | | | | | | | |
|
* | | | | | | | | | | | | | | L_NEXT | L_SB |
|
||||||
* |--------------------------------------------------------------------------------------------------------------------------------------|
|
* |--------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
* | | Q | W | F | P | G | | | | J | L | U | Y | ; | |
|
* | Q | W | F | P | G | | | | | | J | L | U | Y | ; |
|
||||||
* |--------------------------------------------------------------------------------------------------------------------------------------|
|
* |--------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
* | | A | R | S | T | D | | | | H | N | E | I | O | ENT |
|
* | A | R | S | T | D | | | | | | H | N | E | I | O |
|
||||||
* |--------------------------------------------------------------------------------------------------------------------------------------|
|
* |--------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
* | | Z | X | C | V | B | | | | K | M | , | . | / | |
|
* | Z | X | C | V | B | | | | | | K | M | , | . | / |
|
||||||
* | | SHIFT | NUMBER | SYMBOL | | NAV | | | | NAV | | SYMBOL | FUNC | SHIFT | |
|
* | SHIFT | NUMBER | SYMBOL | | NAV | | | | | | NAV | | SYMBOL | FUNC | SHIFT |
|
||||||
* |--------------------------------------------------------------------------------------------------------------------------------------|
|
|
||||||
* | LSHIFT | LCTRL | LALT | LGUI | TERM | SPACE | LCTRL | DEL | LALT | BACKSP | RGUI | RGUI | RALT | RCTRL | RSHIFT |
|
|
||||||
* |--------------------------------------------------------------------------------------------------------------------------------------|
|
* |--------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
* | LSHIFT | LCTRL | LALT | LGUI | SPACE | ENT | | | | DEL | BKSPC | RGUI | RALT | RCTRL | RSHIFT |
|
||||||
|
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||||
*/
|
*/
|
||||||
[_CM] = {
|
[_CM] = {
|
||||||
|
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, L_NEXT, L_SB },
|
||||||
|
{ UK_Q, UK_W, UK_F, UK_P, UK_G, _______, _______, _______, _______, _______, UK_J, UK_L, UK_U, UK_Y, UK_SCLN },
|
||||||
|
{ UK_A, UK_R, UK_S, UK_T, UK_D, _______, _______, _______, _______, _______, UK_H, UK_N, UK_E, UK_I, UK_O },
|
||||||
|
{ _Z_SFT, _X_NB, _C_SY, UK_V, _B_NAV, _______, _______, _______, _______, _______, _K_NAV, UK_M, _COM_SY, _DOT_NB, _SLSH },
|
||||||
|
{ UK_LSFT, UK_LCTL, UK_LALT, UK_LGUI, UK_SPC, UK_ENT, _______, _______, _______, UK_DEL, UK_BSPC, UK_RGUI, UK_RALT, UK_RCTL, UK_RSFT }
|
||||||
|
},
|
||||||
|
|
||||||
|
/* DVORAK _DV
|
||||||
|
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||||
|
* | | | | | | | | | | | | | | | |
|
||||||
|
* |--------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
* | ' | , | . | P | Y | | | | | | F | G | C | R | L |
|
||||||
|
* |--------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
* | A | O | E | U | I | | | | | | D | H | T | N | S |
|
||||||
|
* |--------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
* | ; | Q | J | K | X | | | | | | B | M | W | V | Z |
|
||||||
|
* | SHIFT | NUMBER | SYMBOL | | NAV | | | | | | NAV | | SYMBOL | FUNC | SHIFT |
|
||||||
|
* |--------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
* | | | | | | | | | | | | | | | |
|
||||||
|
* |--------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
*/
|
||||||
|
[_DV] = {
|
||||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
||||||
{ _______, UK_Q, UK_W, UK_F, UK_P, UK_G, _______, _______, _______, UK_J, UK_L, UK_U, UK_Y, UK_SCLN, _______ },
|
{ UK_QUOT, UK_COMM, UK_DOT, UK_P, UK_Y, _______, _______, _______, _______, _______, UK_F, UK_G, UK_C, UK_R, UK_L },
|
||||||
{ _______, UK_A, UK_R, UK_S, UK_T, UK_D, _______, _______, _______, UK_H, UK_N, UK_E, UK_I, UK_O, UK_ENT },
|
{ UK_A, UK_O, UK_E, UK_U, UK_I, _______, _______, _______, _______, _______, UK_D, UK_H, UK_T, UK_N, UK_S },
|
||||||
{ _______, _Z_SFT, _X_NB, _C_SY, UK_V, _B_NAV, _______, _______, _______, _K_NAV, UK_M, _COM_SY, _DOT_NB, _SLSH, _______ },
|
{ _SCLSH, _Q_NB, _J_SY, UK_K, _X_NAV, _______, _______, _______, _______, _______, _B_NAV, UK_M, _W_SY, _V_NB, _Z_SFT },
|
||||||
{ UK_LSFT, UK_LCTL, UK_LALT, UK_LGUI, _TERM, UK_SPC, UK_LCTL, UK_DEL , UK_LALT, UK_BSPC, UK_RGUI, UK_RGUI, UK_RALT, UK_RCTL, UK_RSFT },
|
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
|
||||||
|
},
|
||||||
|
|
||||||
|
/* QWERTY _QW
|
||||||
|
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||||
|
* | | | | | | | | | | | | | | | |
|
||||||
|
* |--------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
* | Q | W | E | R | T | | | | | | Y | U | I | O | P |
|
||||||
|
* |--------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
* | A | S | D | F | G | | | | | | H | J | K | L | ; |
|
||||||
|
* |--------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
* | Z | X | C | V | B | | | | | | N | M | , | . | / |
|
||||||
|
* | SHIFT | NUMBER | SYMBOL | | NAV | | | | | | NAV | | SYMBOL | FUNC | SHIFT |
|
||||||
|
* |--------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
* | | | | | | | | | | | | | | | |
|
||||||
|
* |--------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
* | LSHIFT | LCTRL | LALT | LGUI | SPACE | ENT | | | | DEL | BKSPC | RGUI | RALT | RCTRL | RSHIFT |
|
||||||
|
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||||
|
*/
|
||||||
|
[_QW] = {
|
||||||
|
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
||||||
|
{ UK_Q, UK_W, UK_E, UK_R, UK_T, _______, _______, _______, _______, _______, UK_Y, UK_U, UK_I, UK_O, UK_P },
|
||||||
|
{ UK_A, UK_S, UK_D, UK_F, UK_G, _______, _______, _______, _______, _______, UK_H, UK_J, UK_K, UK_L, UK_SCLN },
|
||||||
|
{ _Z_SFT, _X_NB, _C_SY, UK_V, _B_NAV, _______, _______, _______, _______, _______, _N_NAV, UK_M, _COM_SY, _DOT_NB, _SLSH },
|
||||||
|
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
|
||||||
},
|
},
|
||||||
|
|
||||||
/* Numbers _NB
|
/* Numbers _NB
|
||||||
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||||
* | | | | | | | | | | | | | | | |
|
* | | | | | | | | | | | | | | | |
|
||||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
|
* |-----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
|
||||||
* | | | F7 | F8 | F9 | F10 | | | | | 7 | 8 | 9 | | |
|
* | | F7 | F8 | F9 | F10 | | | | | | | 7 | 8 | 9 | |
|
||||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
* |-----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
* | | | F4 | F5 | F6 | F11 | | | | | 4 | 5 | 6 | | |
|
* | | F4 | F5 | F6 | F11 | | | | | | | 4 | 5 | 6 | |
|
||||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
|
* |-----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
|
||||||
* | | | F1 | F2 | F3 | F12 | | | | | 1 | 2 | 3 | | |
|
* | | F1 | F2 | F3 | F12 | | | | | | 0 | 1 | 2 | 3 | . |
|
||||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------+--------|
|
* |-----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------+--------|
|
||||||
* | | | | | | | | | | | 0 | 0 | . | | |
|
* | | | | | | | | | | | | | | | |
|
||||||
* '--------------------------------------------------------------------------------------------------------------------------------------'
|
* '--------------------------------------------------------------------------------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[_NB] = {
|
[_NB] = {
|
||||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
||||||
{ _______, _______, UK_F7, UK_F8, UK_F9, UK_F10, _______, _______, _______, _______, UK_7, UK_8, UK_9, _______, _______ },
|
{ _______, UK_F7, UK_F8, UK_F9, UK_F10, _______, _______, _______, _______, _______, _______, UK_7, UK_8, UK_9, _______ },
|
||||||
{ _______, _______, UK_F4, UK_F5, UK_F6, UK_F11, _______, _______, _______, _______, UK_4, UK_5, UK_6, _______, _______ },
|
{ _______, UK_F4, UK_F5, UK_F6, UK_F11, _______, _______, _______, _______, _______, _______, UK_4, UK_5, UK_6, _______ },
|
||||||
{ _______, _______, _F1_NB, UK_F2, UK_F3, UK_F12, _______, _______, _______, _______, UK_1, UK_2, _3_NB, _______, _______ },
|
{ _______, _F1_NB, UK_F2, UK_F3, UK_F12, _______, _______, _______, _______, _______, UK_0, UK_1, UK_2, _3_NB, UK_DOT },
|
||||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UK_0, UK_0, UK_DOT, _______, _______ },
|
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
|
||||||
},
|
},
|
||||||
|
|
||||||
/* Symbols _SYL and _SYR - For some reason, combining this into the same layer causes problems.
|
/* Symbols _SY
|
||||||
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||||
* | | | | | | | | | | | | | | | |
|
* | | | | | | | | | | | | | | | |
|
||||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
* | | ! | £ | _ | - | ~ | | | | \ | { | } | / | # | |
|
* | ! | £ | _ | - | ~ | | | | | | \ | { | } | / | # |
|
||||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
* | | $ | % | + | = | | | | | " | ( | ) | ' | @ | |
|
* | $ | % | + | = | | | | | | | " | ( | ) | ' | @ |
|
||||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
* | | ^ | & | * | | | | | | | < | [ | ] | > | ` | |
|
* | ^ | & | * | | | | | | | | | < | [ | ] | > | ` |
|
||||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
* | | | | | | | | | | | | | | | |
|
* | | | | | | | | | | | | | | | |
|
||||||
* '--------------------------------------------------------------------------------------------------------------------------------------'
|
* '--------------------------------------------------------------------------------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[_SYL] = {
|
[_SY] = {
|
||||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
|
||||||
{ _______, UK_EXLM, UK_PND, UK_UNDS, UK_MINS, UK_TILD, _______, _______, _______, UK_BSLS, UK_LCBR, UK_RCBR, UK_SLSH, UK_HASH, _______ },
|
|
||||||
{ _______, UK_DLR, UK_PERC, UK_PLUS, UK_EQL, _______, _______, _______, _______, UK_DQUO, UK_LPRN, UK_RPRN, UK_QUOT, UK_AT, _______ },
|
|
||||||
{ _______, UK_CIRC, UK_AMPR, _C_SY, UK_PIPE, _______, _______, _______, _______, UK_LABK, UK_LBRC, UK_RBRC, UK_RABK, UK_GRV, _______ },
|
|
||||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
|
||||||
},
|
|
||||||
[_SYR] = {
|
|
||||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
|
||||||
{ _______, UK_EXLM, UK_PND, UK_UNDS, UK_MINS, UK_TILD, _______, _______, _______, UK_BSLS, UK_LCBR, UK_RCBR, UK_SLSH, UK_HASH, _______ },
|
|
||||||
{ _______, UK_DLR, UK_PERC, UK_PLUS, UK_EQL, _______, _______, _______, _______, UK_DQUO, UK_LPRN, UK_RPRN, UK_QUOT, UK_AT, _______ },
|
|
||||||
{ _______, UK_CIRC, UK_AMPR, UK_ASTR, UK_PIPE, _______, _______, _______, _______, UK_LABK, UK_LBRC, _COM_SY, UK_RABK, UK_GRV, _______ },
|
|
||||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
||||||
|
{ UK_EXLM, UK_PND, UK_UNDS, UK_MINS, UK_TILD, _______, _______, _______, _______, _______, UK_BSLS, UK_LCBR, UK_RCBR, UK_SLSH, UK_HASH },
|
||||||
|
{ UK_DLR, UK_PERC, UK_PLUS, UK_EQL, _______, _______, _______, _______, _______, _______, UK_DQUO, UK_LPRN, UK_RPRN, UK_QUOT, UK_AT },
|
||||||
|
{ UK_CIRC, UK_AMPR, _AST_SY, UK_PIPE, _______, _______, _______, _______, _______, _______, UK_LABK, UK_LBRC, _COM_SY, UK_RABK, UK_GRV },
|
||||||
|
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
|
||||||
},
|
},
|
||||||
/*
|
/*
|
||||||
* Navigation
|
* Navigation
|
||||||
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||||
* | | | | | | | | | | | | | | | |
|
* | RESET | COLEMA | DVORAK | QWERTY | | | | | | | | | | | |
|
||||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
* | | Esc | Ctrl L | Up | Ctrl R | | | | | | PtSn | ScLk | Pause | | |
|
* | Esc | Ctrl L | Up | Ctrl R | | RGB HD | RGB HI | | | | | PtSn | ScLk | Pause | |
|
||||||
|
* +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
* | Tab | Left | Down | Right | | RGB SD | RGB SI | | | | | Insert | Home | PgUp | Term |
|
||||||
|
* +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
* | ShTab | Alt L | Shift | Alt R | | RGB VD | RGB VI | | | | | ScLk | End | PgDn | |
|
||||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
* | | Tab | Left | Down | Right | | | | | | Insert | Home | PgUp | | |
|
* | | | | | | RGB RMD| RGB MD | | | | | | | | |
|
||||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
|
||||||
* | | ShTab | Alt L | Shift | Alt R | | | | | | ScLk | End | PgDn | | |
|
|
||||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
|
||||||
* | | | | | | | | | | | | | | | RESET |
|
|
||||||
* '--------------------------------------------------------------------------------------------------------------------------------------'
|
* '--------------------------------------------------------------------------------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[_NAV] = {
|
[_NAV] = {
|
||||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
{ RESET, DF(_CM), DF(_DV), DF(_QW), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
||||||
{ _______, UK_ESC, _C_LEFT, UK_UP , _C_RGHT, _______, _______, _______, _______, _______, UK_PSCR, UK_SLCK, UK_PAUS, _______, _______ },
|
{ UK_ESC, _C_LEFT, UK_UP , _C_RGHT, _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, UK_PSCR, UK_SLCK, UK_PAUS, _______ },
|
||||||
{ _______, UK_TAB, UK_LEFT, UK_DOWN, UK_RGHT, _______, _______, _______, _______, _______, UK_INS, UK_HOME, UK_PGUP, _______, _______ },
|
{ UK_TAB, UK_LEFT, UK_DOWN, UK_RGHT, _______, RGB_SAD, RGB_SAI, _______, _______, _______, _______, UK_INS, UK_HOME, UK_PGUP, _TERM },
|
||||||
{ _______, _S_TAB, _A_LEFT, UK_LSFT, _A_RGHT, _B_NAV, _______, _______, _______, _K_NAV, UK_SLCK, UK_END, UK_PGDN, _______, _______ },
|
{ _S_TAB, _A_LEFT, UK_LSFT, _A_RGHT, _B_NAV, RGB_VAD, RGB_VAI, _______, _______, _______, _K_NAV, UK_SLCK, UK_END, UK_PGDN, _______ },
|
||||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET },
|
{ _______, _______, _______, _______, _______, RGB_RMOD,RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______ }
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -162,50 +215,74 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
|||||||
return MACRO_NONE;
|
return MACRO_NONE;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool CTRLDOWN = false;
|
bool lightsOn = true;
|
||||||
bool ALTDOWN = false;
|
int keyPresses = 0;
|
||||||
bool WINDOWN = false;
|
int effect = 0;
|
||||||
bool SHIFTDOWN = false;
|
uint32_t key_timer;
|
||||||
bool TERMINALOPEN = false;
|
|
||||||
|
void resetCounts(void) {
|
||||||
|
effect++;
|
||||||
|
keyPresses = 0;
|
||||||
|
key_timer = timer_read32();
|
||||||
|
}
|
||||||
|
|
||||||
void matrix_scan_user(void) {
|
void matrix_scan_user(void) {
|
||||||
if (TERMINALOPEN) {
|
if (!lightsOn) {
|
||||||
rgblight_effect_rainbow_swirl(128);
|
|
||||||
} else if (SHIFTDOWN) {
|
|
||||||
rgblight_effect_breathing(3);
|
|
||||||
} else if (CTRLDOWN) {
|
|
||||||
rgblight_effect_knight(3);
|
|
||||||
} else if (WINDOWN) {
|
|
||||||
rgblight_effect_snake(3);
|
|
||||||
} else {
|
|
||||||
rgblight_setrgb(0, 0, 0);
|
rgblight_setrgb(0, 0, 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (timer_elapsed32(key_timer) > 60000) {
|
||||||
|
resetCounts();
|
||||||
|
}
|
||||||
|
switch (effect) {
|
||||||
|
case 0:
|
||||||
|
rgblight_effect_breathing(3);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
rgblight_effect_knight(3);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
rgblight_effect_rainbow_swirl(128);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
rgblight_effect_snake(30);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
rgblight_effect_rainbow_swirl(128);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
rgblight_effect_rainbow_mood(128);
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
rgblight_effect_christmas();
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
rgblight_effect_rgbtest();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
effect = 0;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
switch (keycode) {
|
if (!record->event.pressed) return true;
|
||||||
case UK_LGUI:
|
if (keycode == L_SB) {
|
||||||
case UK_RGUI:
|
lightsOn = !lightsOn;
|
||||||
WINDOWN = record->event.pressed;
|
if (!lightsOn) {
|
||||||
TERMINALOPEN = false;
|
keyPresses = 0;
|
||||||
break;
|
} else {
|
||||||
case UK_LCTL:
|
resetCounts();
|
||||||
case UK_RCTL:
|
}
|
||||||
CTRLDOWN = record->event.pressed;
|
return true;
|
||||||
break;
|
}
|
||||||
case UK_LSFT:
|
if (keycode == L_NEXT) {
|
||||||
case UK_RSFT:
|
resetCounts();
|
||||||
SHIFTDOWN = record->event.pressed;
|
return true;
|
||||||
break;
|
}
|
||||||
case UK_LALT:
|
keyPresses++;
|
||||||
case UK_RALT:
|
if (keyPresses > 100) {
|
||||||
ALTDOWN = record-> event.pressed;
|
resetCounts();
|
||||||
break;
|
|
||||||
case _TERM:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
TERMINALOPEN = !TERMINALOPEN;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -15,12 +15,11 @@
|
|||||||
#define RGBLED_NUM 12
|
#define RGBLED_NUM 12
|
||||||
#elif defined(KEYBOARD_lets_split_rev2)
|
#elif defined(KEYBOARD_lets_split_rev2)
|
||||||
#define RGBLED_NUM 8
|
#define RGBLED_NUM 8
|
||||||
|
#elif defined(KEYBOARD_jj40)
|
||||||
|
#define RGBLED_NUM 5
|
||||||
#else
|
#else
|
||||||
#define RGBLED_NUM 1
|
#define RGBLED_NUM 1
|
||||||
#endif
|
#endif
|
||||||
#ifdef KEYBOARD_jj40
|
|
||||||
#define RGBLED_NUM 5
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define RGBLIGHT_ANIMATIONS
|
#define RGBLIGHT_ANIMATIONS
|
||||||
#define RGBLIGHT_HUE_STEP 8
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
|
|||||||
@@ -175,6 +175,16 @@ void persistent_default_layer_set(uint16_t default_layer) {
|
|||||||
default_layer_set(default_layer);
|
default_layer_set(default_layer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void matrix_init_user(void) {
|
||||||
|
#ifdef BOOTLOADER_CATERINA
|
||||||
|
// This will disable the red LEDs on the ProMicros
|
||||||
|
DDRD &= ~(1<<5);
|
||||||
|
PORTD &= ~(1<<5);
|
||||||
|
DDRB &= ~(1<<0);
|
||||||
|
PORTB &= ~(1<<0);
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
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 QWERTY:
|
case QWERTY:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# Build Options
|
# Build Options
|
||||||
# change to "no" to disable the options, or define them in the Makefile in
|
# change to "no" to disable the options, or define them in the Makefile in
|
||||||
# the appropriate keymap folder that will get included automatically
|
# the appropriate keymap folder that will get included automatically
|
||||||
#
|
#
|
||||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||||
@@ -7,12 +7,18 @@ MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
|||||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
|
||||||
MIDI_ENABLE = no # MIDI controls
|
MIDI_ENABLE = no # MIDI controls
|
||||||
AUDIO_ENABLE = no # Audio output on port C6
|
AUDIO_ENABLE = no # Audio output on port C6
|
||||||
UNICODE_ENABLE = no # Unicode
|
UNICODE_ENABLE = no # Unicode
|
||||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
|
||||||
|
ifneq ("$(KEYBOARD)","nyquist")
|
||||||
|
RGBLIGHT_ENABLE = yes
|
||||||
|
BACKLIGHT_ENABLE = yes
|
||||||
|
else
|
||||||
|
RGBLIGHT_ENABLE = no
|
||||||
|
BACKLIGHT_ENABLE = no
|
||||||
|
endif
|
||||||
|
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
|||||||
@@ -132,6 +132,25 @@
|
|||||||
#define UK_ASTR KC_ASTR
|
#define UK_ASTR KC_ASTR
|
||||||
#define UK_QUOT KC_QUOT
|
#define UK_QUOT KC_QUOT
|
||||||
|
|
||||||
|
#define UK_P1 KC_P1
|
||||||
|
#define UK_P2 KC_P2
|
||||||
|
#define UK_P3 KC_P3
|
||||||
|
#define UK_P4 KC_P4
|
||||||
|
#define UK_P5 KC_P5
|
||||||
|
#define UK_P6 KC_P6
|
||||||
|
#define UK_P7 KC_P7
|
||||||
|
#define UK_P8 KC_P8
|
||||||
|
#define UK_P9 KC_P9
|
||||||
|
#define UK_P0 KC_P0
|
||||||
|
#define UK_PDOT KC_PDOT
|
||||||
|
#define UK_PCMM KC_PCMM
|
||||||
|
#define UK_PSLS KC_PSLS
|
||||||
|
#define UK_PAST KC_PAST
|
||||||
|
#define UK_PMNS KC_PMNS
|
||||||
|
#define UK_PPLS KC_PPLS
|
||||||
|
#define UK_PEQL KC_PEQL
|
||||||
|
#define UK_PENT KC_PENT
|
||||||
|
|
||||||
#define UK_TAB KC_TAB
|
#define UK_TAB KC_TAB
|
||||||
#define UK_ENT KC_ENT
|
#define UK_ENT KC_ENT
|
||||||
#define UK_LSFT KC_LSFT
|
#define UK_LSFT KC_LSFT
|
||||||
|
|||||||
+6
-3
@@ -147,8 +147,10 @@ void reset_keyboard(void) {
|
|||||||
#if defined(MIDI_ENABLE) && defined(MIDI_BASIC)
|
#if defined(MIDI_ENABLE) && defined(MIDI_BASIC)
|
||||||
process_midi_all_notes_off();
|
process_midi_all_notes_off();
|
||||||
#endif
|
#endif
|
||||||
#if defined(AUDIO_ENABLE) && !defined(NO_MUSIC_MODE)
|
#ifdef AUDIO_ENABLE
|
||||||
music_all_notes_off();
|
#ifndef NO_MUSIC_MODE
|
||||||
|
music_all_notes_off();
|
||||||
|
#endif
|
||||||
uint16_t timer_start = timer_read();
|
uint16_t timer_start = timer_read();
|
||||||
PLAY_SONG(goodbye_song);
|
PLAY_SONG(goodbye_song);
|
||||||
shutdown_user();
|
shutdown_user();
|
||||||
@@ -156,6 +158,7 @@ void reset_keyboard(void) {
|
|||||||
wait_ms(1);
|
wait_ms(1);
|
||||||
stop_all_notes();
|
stop_all_notes();
|
||||||
#else
|
#else
|
||||||
|
shutdown_user();
|
||||||
wait_ms(250);
|
wait_ms(250);
|
||||||
#endif
|
#endif
|
||||||
// this is also done later in bootloader.c - not sure if it's neccesary here
|
// this is also done later in bootloader.c - not sure if it's neccesary here
|
||||||
@@ -931,7 +934,7 @@ uint8_t rgb_matrix_task_counter = 0;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
void matrix_scan_quantum() {
|
void matrix_scan_quantum() {
|
||||||
#if defined(AUDIO_ENABLE)
|
#if defined(AUDIO_ENABLE) && !defined(NO_MUSIC_MODE)
|
||||||
matrix_scan_music();
|
matrix_scan_music();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -53,6 +53,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include "print.h"
|
#include "print.h"
|
||||||
#include "send_string_keycodes.h"
|
#include "send_string_keycodes.h"
|
||||||
|
#include "suspend.h"
|
||||||
|
|
||||||
extern uint32_t default_layer_state;
|
extern uint32_t default_layer_state;
|
||||||
|
|
||||||
|
|||||||
@@ -52,6 +52,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
// #define BACKLIGHT_BREATHING
|
// #define BACKLIGHT_BREATHING
|
||||||
// #define BACKLIGHT_LEVELS 3
|
// #define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
|
// #define RGB_DI_PIN E2
|
||||||
|
// #ifdef RGB_DI_PIN
|
||||||
|
// #define RGBLIGHT_ANIMATIONS
|
||||||
|
// #define RGBLED_NUM 16
|
||||||
|
// #define RGBLIGHT_HUE_STEP 8
|
||||||
|
// #define RGBLIGHT_SAT_STEP 8
|
||||||
|
// #define RGBLIGHT_VAL_STEP 8
|
||||||
|
// #endif
|
||||||
|
|
||||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
#define DEBOUNCING_DELAY 5
|
#define DEBOUNCING_DELAY 5
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ 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
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
NKRO_ENABLE = no # USB Nkey Rollover
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
|
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
|
||||||
UNICODE_ENABLE = no # Unicode
|
UNICODE_ENABLE = no # Unicode
|
||||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
|||||||
@@ -20,15 +20,17 @@
|
|||||||
|
|
||||||
// This a shortcut to help you visually see your layout.
|
// This a shortcut to help you visually see your layout.
|
||||||
// The following is an example using the Planck MIT layout
|
// The following is an example using the Planck MIT layout
|
||||||
// The first section contains all of the arguments
|
// The first section contains all of the arguments representing the physical
|
||||||
// The second converts the arguments into a two-dimensional array
|
// 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( \
|
#define LAYOUT( \
|
||||||
k00, k01, k02, \
|
K00, K01, K02, \
|
||||||
k10, k11 \
|
K10, K11 \
|
||||||
) \
|
) \
|
||||||
{ \
|
{ \
|
||||||
{ k00, k01, k02 }, \
|
{ K00, K01, K02 }, \
|
||||||
{ k10, KC_NO, k11 }, \
|
{ K10, KC_NO, K11 }, \
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -0,0 +1,362 @@
|
|||||||
|
:10000000BDC00000E3C00000E1C00000DFC0000090
|
||||||
|
:10001000DDC00000DBC00000D9C00000D7C0000078
|
||||||
|
:10002000D5C00000D3C000003AC70000B1C700002F
|
||||||
|
:10003000CDC00000CBC00000C9C00000C7C0000098
|
||||||
|
:10004000C5C00000C3C00000C1C00000BFC00000A8
|
||||||
|
:10005000BDC00000BBC00000B9C000007FC60000EA
|
||||||
|
:10006000B5C00000B3C00000B1C00000AFC00000C8
|
||||||
|
:10007000ADC00000ABC00000A9C00000A7C00000D8
|
||||||
|
:10008000A5C00000A3C00000A1C000009FC00000E8
|
||||||
|
:100090009DC000009BC0000099C0000097C00000F8
|
||||||
|
:1000A00095C0000093C0000091C000000001000056
|
||||||
|
:1000B0005D0112000200001A014300030000160156
|
||||||
|
:1000C0000401030904FC001802030904E4001603F8
|
||||||
|
:1000D000030904D6000C0C03310032003300340055
|
||||||
|
:1000E0003500000016035500530042002000530065
|
||||||
|
:1000F00065007200690061006C0000001803540084
|
||||||
|
:10010000650065006E007300790064007500690089
|
||||||
|
:100110006E006F000000040309040902430002019D
|
||||||
|
:1001200000C0320904000001020201000524001091
|
||||||
|
:10013000010524010001042402060524060001072C
|
||||||
|
:1001400005820308004009040100020A00000007BC
|
||||||
|
:100150000503024000000705840240000012010070
|
||||||
|
:100160000202000020C01683040001010203010006
|
||||||
|
:1001700001C10201803601813600110B11241FBE1E
|
||||||
|
:10018000CFEFDAE0DEBFCDBF11E0A0E0B1E0EAE5FD
|
||||||
|
:10019000F6E102C005900D92A232B107D9F722E034
|
||||||
|
:1001A000A2E2B1E001C01D92A935B207E1F710E06B
|
||||||
|
:1001B000CEEBD0E004C02197FE010E94250BCD3B81
|
||||||
|
:1001C000D107C9F70E942D090C942B0B19CFDC0124
|
||||||
|
:1001D000ED91FC910190F081E02D09948EBD00001D
|
||||||
|
:1001E0000DB407FEFDCF8EB508950F931F930FB684
|
||||||
|
:1001F000F8948091440290914502A0914602B091FA
|
||||||
|
:1002000047020FBE409122015091230160912401C9
|
||||||
|
:10021000709125018C019D01041B150B260B370BDA
|
||||||
|
:100220000832110521053105F0F0809322019093E9
|
||||||
|
:100230002301A0932401B09325012091010180EEB8
|
||||||
|
:10024000820F813A28F090910001919590930001DE
|
||||||
|
:1002500080910001820F80930101529A803810F43E
|
||||||
|
:100260005A9801C05A9A1F910F91089590912601B2
|
||||||
|
:10027000882319F0911103C004C0911102C02E9A75
|
||||||
|
:1002800001C02E98809180008F7D8093800008951A
|
||||||
|
:100290000F931F93CF93DF938B01EC01DD27FE01BA
|
||||||
|
:1002A0009ED46EE170E080E090E098D5FE019DD490
|
||||||
|
:1002B0006EE170E080E090E091D50150110978F78F
|
||||||
|
:1002C000DF91CF911F910F91089540E05BE460E0D2
|
||||||
|
:1002D00070E08FE492E00E94AA0A509A62E070E017
|
||||||
|
:1002E00085E090E0D5DF519A62E070E086E090E032
|
||||||
|
:1002F000CFDF529A62E070E087E090E0C9CF8823B8
|
||||||
|
:1003000011F0589A01C0589884B58F7D84BD089526
|
||||||
|
:10031000CF93DF9300D01F92CDB7DEB72B834A83F4
|
||||||
|
:1003200069835CDF6981862F59DF4A81842F56DF1C
|
||||||
|
:100330002B81822F0F900F900F90DF91CF914ECF96
|
||||||
|
:1003400020913A012093270180913B01809328015D
|
||||||
|
:1003500080913C018093290180913D0180932A0185
|
||||||
|
:1003600080913E0180932B0180913F0180932C016D
|
||||||
|
:100370008091400180932D018091410180932E0155
|
||||||
|
:100380008091420180932F018091440190E0982F49
|
||||||
|
:10039000882730914501830F911D909331018093FF
|
||||||
|
:1003A00030018091460190E0982F882730914701D5
|
||||||
|
:1003B000830F911D90933301809332018091480106
|
||||||
|
:1003C00090E0982F882730914901830F911D9093D9
|
||||||
|
:1003D00035018093340180914A0190E0A0E0B0E0C3
|
||||||
|
:1003E000BA2FA92F982F882730914B01830F911D89
|
||||||
|
:1003F000A11DB11DDC019927882740914C0150E0D7
|
||||||
|
:10040000542F4427052E000C660B770B840F951F85
|
||||||
|
:10041000A61FB71F30914D01830F911DA11DB11D66
|
||||||
|
:100420008093360190933701A0933801B09339013E
|
||||||
|
:1004300081E0203E08F480E080932601089581E069
|
||||||
|
:1004400015DF269A6DD380914202882381F0813096
|
||||||
|
:1004500051F48DB3809340029DB380914102809509
|
||||||
|
:1004600089238DBB04C08FB7F8948093400283E545
|
||||||
|
:100470008CBD1DBC299864E170E080E090E0AED4B2
|
||||||
|
:1004800080E0F4DE80E991E00197F1F781E0EEDEB3
|
||||||
|
:1004900062E370E080E090E0A1D420E040E063E51A
|
||||||
|
:1004A0008CEA36DF81E090E090933D0280933C023D
|
||||||
|
:1004B000089541D322982A982198299880E0D6DE81
|
||||||
|
:1004C00026982E98EDE7F0E080818F7D8083109252
|
||||||
|
:1004D0003D0210923C020895242F880F880F880F48
|
||||||
|
:1004E000462F672F805C14CFCF93DF9300D0CDB71A
|
||||||
|
:1004F000DEB7482F692F80E090E049836A83FFDEF2
|
||||||
|
:1005000020E049816A818CE403DF6EE170E080E0E5
|
||||||
|
:1005100090E064D481E090E00F900F90DF91CF9154
|
||||||
|
:10052000EECE209132013091330180913A029091C8
|
||||||
|
:100530003B022032310511F4807F089520343105CB
|
||||||
|
:1005400011F4807E08952038310511F4807C0895DF
|
||||||
|
:100550002115314009F480780895CF92DF92EF920F
|
||||||
|
:10056000FF920F931F93CF93DF936C01DADF8C011F
|
||||||
|
:10057000C0E0D0E0CC15DD0554F5D3DF7C010817D1
|
||||||
|
:10058000190721F0C801B0DFCCDF7C01FE01E65C79
|
||||||
|
:10059000FE4F60913A0270913B02408180E09CDF07
|
||||||
|
:1005A0002296FE01E75CFE4F60913A0270913B0299
|
||||||
|
:1005B000408181E091DF20913A0230913B022F5F30
|
||||||
|
:1005C0003F4F30933B0220933A028701D3CFC801BB
|
||||||
|
:1005D0008BDF80E1DF91CF911F910F91FF90EF9022
|
||||||
|
:1005E000DF90CF900895462F880F880F880F20E066
|
||||||
|
:1005F000672F805E8DCE0F931F93CF93DF938C0177
|
||||||
|
:10060000C0E0D0E0C017D10704F560913A027091C4
|
||||||
|
:100610003B0280E0E8DF682F8FE492E0D8DD609154
|
||||||
|
:100620003A0270913B0281E0DEDF682F8FE492E0B6
|
||||||
|
:10063000CEDD20913A0230913B022F5F3F4F309345
|
||||||
|
:100640003B0220933A022296DDCF80E1DF91CF91E9
|
||||||
|
:100650001F910F910895EF92FF920F931F93CF93E5
|
||||||
|
:10066000DF937C0100913A0210913B02000F111FB1
|
||||||
|
:10067000E801CE01801B910B8E159F055CF42FEFD6
|
||||||
|
:100680004C2F6D2F80EA44DE682F8FE492E09FDDCF
|
||||||
|
:100690002196EFCF80E1DF91CF911F910F91FF90D5
|
||||||
|
:1006A000EF9008958FE492E0F2D5892BD9F38FE48F
|
||||||
|
:1006B00092E026C608950F931F93CF93DF938C018A
|
||||||
|
:1006C000CAE3D1E0CE018A539140801791071CF410
|
||||||
|
:1006D000E9DF8993F7CFDF91CF911F910F910895B3
|
||||||
|
:1006E000EF92FF920F931F93CF93DF93EC018B0157
|
||||||
|
:1006F000CB01E1DF80E090E002DE8AE3E82E81E0DA
|
||||||
|
:10070000F82E0C0F1D1FC017D10771F0F7012191B2
|
||||||
|
:100710007F014C2F6D2F80ECFBDD6DE270E080E0FF
|
||||||
|
:1007200090E05CD32196EFCF81E090E0E8DD80E1BE
|
||||||
|
:10073000DF91CF911F910F91FF90EF9008950F934C
|
||||||
|
:100740001F93CF93DF938C01C0913A02D0913B026B
|
||||||
|
:1007500080913401909135018017910718F0CC0FEA
|
||||||
|
:10076000DD1F0BC080913E0290913F020196909355
|
||||||
|
:100770003F0280933E0281E10FC00132110540F03B
|
||||||
|
:1007800060E270E0CE01ACDFA09600521109F5CF17
|
||||||
|
:10079000B801CE01A5DF80E1DF91CF911F910F91CC
|
||||||
|
:1007A000089580DF803231F464E18FE492E00FDD60
|
||||||
|
:1007B00060E10AC080913E0290913F0201969093C1
|
||||||
|
:1007C0003F0280933E0265E18FE492E000CDCF933B
|
||||||
|
:1007D000C82F68DF803251F464E18FE492E0F7DCE7
|
||||||
|
:1007E0006C2F8FE492E0F3DC60E10AC080913E025E
|
||||||
|
:1007F00090913F02019690933F0280933E0265E103
|
||||||
|
:100800008FE492E0CF91E3CC813859F020F4803826
|
||||||
|
:1008100061F482E00BC0823831F0833931F483E532
|
||||||
|
:1008200005C081E003C082E101C080E0D0CF84E058
|
||||||
|
:1008300090E041DFEAE3F1E0238142816181808140
|
||||||
|
:1008400067DDC5CFCF93DF93EC0135DF2BDF80323F
|
||||||
|
:1008500041F464E18FE492E0BADCCE017EDE682FE1
|
||||||
|
:100860000AC080913E0290913F02019690933F0210
|
||||||
|
:1008700080933E0265E18FE492E0DF91CF91A7CCB7
|
||||||
|
:10088000CF93DF930FDFC82FD0E0DC2FCC270ADF18
|
||||||
|
:10089000C80FD11D07DF863421F4CE01DF91CF913F
|
||||||
|
:1008A000D1CF8534B9F4CE014ADFC82FFBDE8032C8
|
||||||
|
:1008B00031F464E18FE492E08ADC6C2F0CC080910B
|
||||||
|
:1008C0003E0290913F02019690933F0280933E0238
|
||||||
|
:1008D00065E101C061E18FE492E0DF91CF9177CCD7
|
||||||
|
:1008E0000F931F93CF93DF93DDDEC82FDBDE082F3E
|
||||||
|
:1008F000D9DE182FD7DE803259F080913E029091D8
|
||||||
|
:100900003F02019690933F0280933E0265E115C03D
|
||||||
|
:10091000D0E0DC2FCC27C00FD11D64E18FE492E042
|
||||||
|
:1009200056DC163419F4CE0166DE06C0153419F40F
|
||||||
|
:10093000CE0191DE01C081E1682F8FE492E0DF916A
|
||||||
|
:10094000CF911F910F9143CCADDE803259F0809151
|
||||||
|
:100950003E0290913F02019690933F0280933E02A7
|
||||||
|
:1009600065E120C064E18FE492E031DC20E040E00A
|
||||||
|
:1009700060E080E3CDDC682F8FE492E028DC20E0AB
|
||||||
|
:1009800041E060E080E3C4DC682F8FE492E01FDC8C
|
||||||
|
:1009900020E042E060E080E3BBDC682F8FE492E07F
|
||||||
|
:1009A00016DC60E18FE492E012CC7CDE813509F444
|
||||||
|
:1009B00077C0E0F4813409F460C050F4803309F466
|
||||||
|
:1009C00040C0813309F442C0803209F07AC06FC060
|
||||||
|
:1009D000853409F454C0803509F455C0823409F0D7
|
||||||
|
:1009E00070C084E190E067DEABDC4CC0813609F476
|
||||||
|
:1009F00053C0F0F4863509F452C0803609F44BC078
|
||||||
|
:100A0000853509F05EC04EDE90E090933B02809306
|
||||||
|
:100A10003A0248DE90E0982F882720913A023091E0
|
||||||
|
:100A20003B02820F931F90933B0280933A022AC0AD
|
||||||
|
:100A30008437A1F1853709F439C0843609F041C003
|
||||||
|
:100A40001FCF10923F0210923E021CC02BDE80325C
|
||||||
|
:100A500071F564E18FE492E0BADBE0914F02F0912E
|
||||||
|
:100A600050020280F381E02D47E050E069E071E040
|
||||||
|
:100A70008FE492E0099560E133C014DEC5CE85E0D5
|
||||||
|
:100A800090E019DE8ECE80913C0290913D02892B40
|
||||||
|
:100A9000C9F7D5DCF7CF06DE05DEF4CF21CFC7CE10
|
||||||
|
:100AA00010923F0210923E0204DDECCF4DCF8091B8
|
||||||
|
:100AB0003E0290913F02019690933F0280933E0246
|
||||||
|
:100AC0000EC080913E0290913F02019690933F02AA
|
||||||
|
:100AD00080933E02E7DD803211F462E101C065E1FE
|
||||||
|
:100AE0008FE492E074CB80913C0290913D02892B7F
|
||||||
|
:100AF00011F0589A01C0589884B58F7D84BD8091BB
|
||||||
|
:100B00003E0290913F02892B11F0599A01C05998E9
|
||||||
|
:100B10006CDB8FE492E0BBD3892B09F046CF0895BC
|
||||||
|
:100B2000289A209A8CB580618CBD8CB580648CBD70
|
||||||
|
:100B3000219A229A08958CB58F7B8CBD08951DBA99
|
||||||
|
:100B4000109268001CBC10BE1FBA10927A0010925E
|
||||||
|
:100B50006E0010926F00109271001092720010924D
|
||||||
|
:100B6000C900ECEBF0E0108214B817B81AB81DB841
|
||||||
|
:100B700010BA108215B818B81BB81EB811BA08956B
|
||||||
|
:100B8000F894E1E6F0E020E82083108283E084BD61
|
||||||
|
:100B900085BDEEE6F0E080818160808381E0809316
|
||||||
|
:100BA000800092E090938100809390009093910058
|
||||||
|
:100BB0009093C00094E09093C1008093C200809312
|
||||||
|
:100BC000C3001092C40086E880937A0020937B00D3
|
||||||
|
:100BD00010927E0010927D0040D178940895E93102
|
||||||
|
:100BE00050F4EE0FE450FA4F0994E93120F4EE0F7F
|
||||||
|
:100BF000E25DF94F09940895289A0895299A089575
|
||||||
|
:100C00002A9A08952B9A08952F9A6AC0589A58C024
|
||||||
|
:100C1000599A08955A9A08955B9A0895469A66C01B
|
||||||
|
:100C2000479A6AC05E9A08955F9A6CC02C9A08959C
|
||||||
|
:100C30002D9A4AC02E9A4EC08F9A08958E9A089582
|
||||||
|
:100C40008D9A08958C9A0895899A0895889A08959E
|
||||||
|
:100C50005C9A08955D9A0895769A08952898089563
|
||||||
|
:100C6000299808952A9808952B9808952F9838C0A8
|
||||||
|
:100C7000589826C0599808955A9808955B980895F1
|
||||||
|
:100C8000469834C0479838C05E9808955F983AC037
|
||||||
|
:100C90002C9808952D9818C02E981CC08F980895F0
|
||||||
|
:100CA0008E9808958D9808958C9808958998089540
|
||||||
|
:100CB000889808955C9808955D98089576980895A9
|
||||||
|
:100CC000E4B5EF7DE4BD0895E0918000EF77E09317
|
||||||
|
:100CD00080000895E0918000EF7DE093800008950A
|
||||||
|
:100CE000E0918000E77FE09380000895E09190001C
|
||||||
|
:100CF000EF77E09390000895E091C000EF77E093E4
|
||||||
|
:100D0000C0000895E091C200E77FE093C20008951B
|
||||||
|
:100D1000F89484B7877F84BF80916000806180935E
|
||||||
|
:100D200060001092600080E29EE40197F1F781E09C
|
||||||
|
:100D30008093E00080E28093D80080E69AEE0197ED
|
||||||
|
:100D4000F1F7FDDE0C94003FFFCFF894F8DE80E66B
|
||||||
|
:100D50009AEE0197F1F70C940000FFCF8F938FB7B5
|
||||||
|
:100D60008F93809143028D5F8D37D0F4809343023F
|
||||||
|
:100D7000809144028F5F80934402D8F080914502B5
|
||||||
|
:100D80008F4F80934502A8F0809146028F4F809349
|
||||||
|
:100D9000460278F0809147028F4F8093470209C046
|
||||||
|
:100DA0008D5780934302809144028E5F809344026A
|
||||||
|
:100DB00028F7809148028C5F8093480258F0809118
|
||||||
|
:100DC00049028F4F8093490228F080914A028F4F49
|
||||||
|
:100DD00080934A028F918FBF8F911895CF92DF92A7
|
||||||
|
:100DE000EF92FF926B017C0119D09B01C114D104D9
|
||||||
|
:100DF000E104F10471F012D0621B730B683E734082
|
||||||
|
:100E0000A8F381E0C81AD108E108F10828513C4F45
|
||||||
|
:100E1000EDCFFF90EF90DF90CF9008950FB6F8944C
|
||||||
|
:100E200066B515B2709148028091490290914A02CC
|
||||||
|
:100E30000FBE10FE05C06F3F19F07C5F8F4F9F4FB4
|
||||||
|
:100E400011240024660F001C660F001C70290895F1
|
||||||
|
:100E50008091E80080FFFCCF08958091D80087FF43
|
||||||
|
:100E600002C085FF1BC081E08093D70080EA809399
|
||||||
|
:100E7000D80082E189BD09B400FEFDCF80E98093EE
|
||||||
|
:100E8000D8001092E00010925B0210925A02109269
|
||||||
|
:100E900059021092E1008DE08093E20008951F92C4
|
||||||
|
:100EA0000F920FB60F9211242F933F934F935F939E
|
||||||
|
:100EB0006F937F938F939F93AF93BF93EF93FF9322
|
||||||
|
:100EC0009091E1001092E10093FF11C01092E900AF
|
||||||
|
:100ED00081E08093EB001092EC0082E28093ED00C1
|
||||||
|
:100EE00088E08093F00010925B021092590292FF0A
|
||||||
|
:100EF0001DC080915B028823C9F080914E02882337
|
||||||
|
:100F000059F0815080934E02811106C084E0809395
|
||||||
|
:100F1000E9008AE38093E80080914D02882331F054
|
||||||
|
:100F2000815080934D02811101C0F2DE90FF0CC010
|
||||||
|
:100F300080E18093E20010925B0281E080935A028C
|
||||||
|
:100F400080EA8093D80019BC80915A02882379F0F6
|
||||||
|
:100F500094FF0DC082E189BD09B400FEFDCF80E998
|
||||||
|
:100F60008093D8008DE08093E20010925A02FF91A6
|
||||||
|
:100F7000EF91BF91AF919F918F917F916F915F9111
|
||||||
|
:100F80004F913F912F910F900FBE0F901F9018958A
|
||||||
|
:100F90001F920F920FB60F921124EF92FF920F93B0
|
||||||
|
:100FA0001F932F933F934F935F936F937F938F93F1
|
||||||
|
:100FB0009F93AF93BF93CF93EF93FF931092E9006A
|
||||||
|
:100FC0008091E80083FF30C1C091F1008091F10071
|
||||||
|
:100FD000E090F100F090F1000091F1001091F1002B
|
||||||
|
:100FE0002091F1003091F10092EF9093E80086306B
|
||||||
|
:100FF00009F03FC086E0ECEAF0E0459155914E15CE
|
||||||
|
:101000005F0511F0359615C0459155914017510770
|
||||||
|
:1010100011F033960EC04591559184912F3F3105C3
|
||||||
|
:1010200019F010F02FEF30E0281708F4822F3EEF70
|
||||||
|
:1010300008C0815011F7F8C0891B3093E80088235D
|
||||||
|
:10104000A9F09091E800292F2570D9F392FDEFC007
|
||||||
|
:10105000982F813208F090E2292F222369F3FA01B8
|
||||||
|
:1010600045914093F100AF012150F7CF903249F301
|
||||||
|
:10107000DEC0853049F48EEF8093E800E9DE8E2DE6
|
||||||
|
:1010800080688093E300D3C0893001F5C111CCC0E2
|
||||||
|
:10109000E0925B021092590210924E028EEF809302
|
||||||
|
:1010A000E80081E0EFE6F1E08093E900959190930C
|
||||||
|
:1010B000EB00992331F095919093EC0095919093EA
|
||||||
|
:1010C000ED008F5F853081F78EE1A9C0883049F44B
|
||||||
|
:1010D000C03809F0A9C0BCDE80915B028093F100AA
|
||||||
|
:1010E0007DC0813279F4C13A09F09EC0B1DEE2E000
|
||||||
|
:1010F000F1E087E08E0F90819093F10031968E138E
|
||||||
|
:10110000FACF6CC0803209F047C0C13209F08CC000
|
||||||
|
:101110008091E80082FFFCCFE2E0F1E087E08E0FF3
|
||||||
|
:101120009091F100908331968E13FACF8BEF8093DC
|
||||||
|
:10113000E8008EEF8093E8003091020140910301B6
|
||||||
|
:10114000809104012091050190E0A0E0B0E0DC0175
|
||||||
|
:1011500099278827942B832BB22B86389105A105DC
|
||||||
|
:10116000B10521F48FE080934D0261C0863991056D
|
||||||
|
:10117000A105B10509F05BC084E08093E9009FEF11
|
||||||
|
:101180008091EE00837039F09093E8008091E80040
|
||||||
|
:1011900082FDFCCFF5CFD9DD823231F4C13209F0C6
|
||||||
|
:1011A00043C0E092590204C0833221F4C132E1F518
|
||||||
|
:1011B0004FDE14C0811116C04BDEC23851F40093CB
|
||||||
|
:1011C000E9008091EB0085FB882780F91092E90007
|
||||||
|
:1011D00001C080E08093F1001092F1008EEF8093C7
|
||||||
|
:1011E000E80025C0982F9D7F9130F1F4C230E1F4E2
|
||||||
|
:1011F000EF28D1F40F779FEF900F9630A8F49EEF71
|
||||||
|
:101200009093E8000093E900833071F089E18093C6
|
||||||
|
:10121000EB0081E090E001C0880F0A95EAF7809327
|
||||||
|
:10122000EA001092EA0003C081E28093EB00FF9194
|
||||||
|
:10123000EF91CF91BF91AF919F918F917F916F91DE
|
||||||
|
:101240005F914F913F912F911F910F91FF90EF90E0
|
||||||
|
:101250000F900FBE0F901F90189592DC36D843DC8C
|
||||||
|
:10126000FECFCF93DF931F92CDB7DEB76983DC014A
|
||||||
|
:10127000ED91FC910280F381E02D41E050E0BE0150
|
||||||
|
:101280006F5F7F4F09950F90DF91CF910895FC011B
|
||||||
|
:101290008FB7F89490915B02911102C090E010C05A
|
||||||
|
:1012A00093E09093E9009091F200911109C0209190
|
||||||
|
:1012B000E80022FFF3CF25FDF1CF2BE62093E800D5
|
||||||
|
:1012C0008FBF2085318537FD03C09F3F09F09F5FA9
|
||||||
|
:1012D000892F90E00895CF93DF93EC01888599855D
|
||||||
|
:1012E00097FF09C0E881F9810680F781E02DCE01E2
|
||||||
|
:1012F00009959987888788859985DF91CF91089589
|
||||||
|
:10130000FC012085318537FD07C04FEF5FEF518726
|
||||||
|
:101310004087C901992708959FB7F89480915B028F
|
||||||
|
:10132000882369F083E08093E9002BE68091E80050
|
||||||
|
:1013300085FD09C082FF03C02093E800F7CF9FBF5F
|
||||||
|
:101340008FEF9FEF08958091F1002091E80025FD37
|
||||||
|
:1013500003C02BE62093E8009FBF90E00895DF9242
|
||||||
|
:10136000EF92FF920F931F93CF93DF938C01EB01CA
|
||||||
|
:1013700080915B02882371F07FB7F89484E08093BA
|
||||||
|
:10138000E90080914C02882369F08091E80085FD96
|
||||||
|
:1013900007C07FBF81E0F801828320E030E0D1C048
|
||||||
|
:1013A00010924C0220E030E064E080E4F82EA1EFDF
|
||||||
|
:1013B000B0E09AE3E92EE3E0DE2E4115510509F491
|
||||||
|
:1013C000BFC08091E400815F9091E80095FD16C058
|
||||||
|
:1013D0007FBF9091E400981304C081E080934C0299
|
||||||
|
:1013E00005C090915B02911104C081E0F8018283F5
|
||||||
|
:1013F000A8C07FB7F8946093E900E6CF8091F2002F
|
||||||
|
:101400009F2D981BE92FF0E04E175F0708F4942FEB
|
||||||
|
:10141000E92FF0E04E1B5F0B2E0F3F1FE0E4E91BAE
|
||||||
|
:10142000E03428F4EE0FFF27E85EF54F099480C002
|
||||||
|
:1014300099919C9399919C9399919C9399919C9348
|
||||||
|
:1014400099919C9399919C9399919C9399919C9338
|
||||||
|
:1014500099919C9399919C9399919C9399919C9328
|
||||||
|
:1014600099919C9399919C9399919C9399919C9318
|
||||||
|
:1014700099919C9399919C9399919C9399919C9308
|
||||||
|
:1014800099919C9399919C9399919C9399919C93F8
|
||||||
|
:1014900099919C9399919C9399919C9399919C93E8
|
||||||
|
:1014A00099919C9399919C9399919C9399919C93D8
|
||||||
|
:1014B00099919C9399919C9399919C9399919C93C8
|
||||||
|
:1014C00099919C9399919C9399919C9399919C93B8
|
||||||
|
:1014D00099919C9399919C9399919C9399919C93A8
|
||||||
|
:1014E00099919C9399919C9399919C9399919C9398
|
||||||
|
:1014F00099919C9399919C9399919C9399919C9388
|
||||||
|
:1015000099919C9399919C9399919C9399919C9377
|
||||||
|
:1015100099919C9399919C9399919C9399919C9367
|
||||||
|
:1015200099919C9399919C9399919C9399919C9357
|
||||||
|
:101530008091E80085FFE092E800D0924E023DCF16
|
||||||
|
:101540007FBFC901DF91CF911F910F91FF90EF9065
|
||||||
|
:10155000DF9008952FEF3FEFFC01318720877DDC7E
|
||||||
|
:101560000FB6F8948091440290914502A0914602F2
|
||||||
|
:10157000B09147020FBE9C0180915B02882329F045
|
||||||
|
:1015800068EC70E080E090E029CC80915A028823DA
|
||||||
|
:1015900001F10FB6F8948091440290914502A09118
|
||||||
|
:1015A0004602B09147020FBE40915A02442389F08F
|
||||||
|
:1015B0000FB6F89440914402509145026091460262
|
||||||
|
:1015C000709147020FBE481B590B4B3F510560F30A
|
||||||
|
:1015D00011C00FB6F8948091440290914502A091F9
|
||||||
|
:1015E0004602B09147020FBE821B930B853C994087
|
||||||
|
:1015F00008F4C2CF08959FB7F89480915B028823C6
|
||||||
|
:1016000021F080914E02811102C09FBF089584E0B5
|
||||||
|
:101610008093E9008AE38093E80010924E02F5CFB0
|
||||||
|
:10162000EACFEFE4F2E08AE0DF011D928A95E9F764
|
||||||
|
:1016300088EE93E0A0E0B0E083839483A583B68333
|
||||||
|
:1016400085E191E0918380830895EE0FFF1F05905F
|
||||||
|
:0A165000F491E02D0994F894FFCF07
|
||||||
|
:10165A00088000E10000000008415652204953501A
|
||||||
|
:10166A0000000000003109AF09470980096B091021
|
||||||
|
:02167A000B0063
|
||||||
|
:00000001FF
|
||||||
+1
-1
@@ -10,7 +10,7 @@ case $(uname) in
|
|||||||
Linux)
|
Linux)
|
||||||
exec "${util_dir}/linux_install.sh"
|
exec "${util_dir}/linux_install.sh"
|
||||||
;;
|
;;
|
||||||
MSYS_NT*)
|
MSYS_NT*|MINGW_64*)
|
||||||
exec "${util_dir}/msys2_install.sh"
|
exec "${util_dir}/msys2_install.sh"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
Reference in new issue
Block a user