Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1c805b3d00 | ||
|
|
a20e6aa022 | ||
|
|
b5ee6c200c | ||
|
|
8a2e328a33 | ||
|
|
129e4d1b2f | ||
|
|
fcf87370a8 | ||
|
|
63b96c34ce | ||
|
|
94efa18c28 | ||
|
|
1c5b0cbbeb | ||
|
|
b62e160a89 | ||
|
|
d534c72a54 | ||
|
|
6a79b05cf0 | ||
|
|
f2c179de58 | ||
|
|
977c316eb1 | ||
|
|
367eac2229 | ||
|
|
5fca6c0120 | ||
|
|
42f2ad96a3 | ||
|
|
a0f248c20e | ||
|
|
9bb4e63a11 | ||
|
|
4003d077ce | ||
|
|
91ee6a1dbb | ||
|
|
92f9b6c3bd | ||
|
|
ddaf37ffa9 | ||
|
|
683605a9dc | ||
|
|
c178bbf2e5 | ||
|
|
802c575506 | ||
|
|
848f3713ad | ||
|
|
0c03811d6a | ||
|
|
36dd261d06 | ||
|
|
61b5914a80 |
No files matched your search
@@ -297,8 +297,8 @@ This runs code every time that the layers get changed. This can be useful for l
|
|||||||
This example shows how to set the [RGB Underglow](feature_rgblight.md) lights based on the layer, using the Planck as an example
|
This example shows how to set the [RGB Underglow](feature_rgblight.md) lights based on the layer, using the Planck as an example
|
||||||
|
|
||||||
```c
|
```c
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
switch (biton32(state)) {
|
switch (get_highest_layer(state)) {
|
||||||
case _RAISE:
|
case _RAISE:
|
||||||
rgblight_setrgb (0x00, 0x00, 0xFF);
|
rgblight_setrgb (0x00, 0x00, 0xFF);
|
||||||
break;
|
break;
|
||||||
@@ -320,8 +320,8 @@ uint32_t layer_state_set_user(uint32_t state) {
|
|||||||
```
|
```
|
||||||
### `layer_state_set_*` Function Documentation
|
### `layer_state_set_*` Function Documentation
|
||||||
|
|
||||||
* Keyboard/Revision: `uint32_t layer_state_set_kb(uint32_t state)`
|
* Keyboard/Revision: `layer_state_t layer_state_set_kb(layer_state_t state)`
|
||||||
* Keymap: `uint32_t layer_state_set_user(uint32_t state)`
|
* Keymap: `layer_state_t layer_state_set_user(layer_state_t state)`
|
||||||
|
|
||||||
|
|
||||||
The `state` is the bitmask of the active layers, as explained in the [Keymap Overview](keymap.md#keymap-layer-status)
|
The `state` is the bitmask of the active layers, as explained in the [Keymap Overview](keymap.md#keymap-layer-status)
|
||||||
@@ -377,8 +377,8 @@ void keyboard_post_init_user(void) {
|
|||||||
The above function will use the EEPROM config immediately after reading it, to set the default layer's RGB color. The "raw" value of it is converted in a usable structure based on the "union" that you created above.
|
The above function will use the EEPROM config immediately after reading it, to set the default layer's RGB color. The "raw" value of it is converted in a usable structure based on the "union" that you created above.
|
||||||
|
|
||||||
```c
|
```c
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
switch (biton32(state)) {
|
switch (get_highest_layer(state)) {
|
||||||
case _RAISE:
|
case _RAISE:
|
||||||
if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_magenta(); rgblight_mode_noeeprom(1); }
|
if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_magenta(); rgblight_mode_noeeprom(1); }
|
||||||
break;
|
break;
|
||||||
|
|||||||
+5
-12
@@ -184,22 +184,15 @@ Pressing any key during sleep should wake host.
|
|||||||
|
|
||||||
Arduino Leonardo and micro have **ATMega32U4** and can be used for TMK, though Arduino bootloader may be a problem.
|
Arduino Leonardo and micro have **ATMega32U4** and can be used for TMK, though Arduino bootloader may be a problem.
|
||||||
|
|
||||||
|
## Enabling JTAG
|
||||||
|
|
||||||
## Using PF4-7 Pins of USB AVR?
|
By default, the JTAG debugging interface is disabled as soon as the keyboard starts up. JTAG-capable MCUs come from the factory with the `JTAGEN` fuse set, and it takes over certain pins of the MCU that the board may be using for the switch matrix, LEDs, etc.
|
||||||
You need to set JTD bit of MCUCR yourself to use PF4-7 as GPIO. Those pins are configured to serve JTAG function by default. MCUs like ATMega*U* or AT90USB* are affected with this.
|
|
||||||
|
|
||||||
If you are using Teensy this isn't needed. Teensy is shipped with JTAGEN fuse bit unprogrammed to disable the function.
|
If you would like to keep JTAG enabled, just add the following to your `config.h`:
|
||||||
|
|
||||||
See this code.
|
```c
|
||||||
|
#define NO_JTAG_DISABLE
|
||||||
```
|
```
|
||||||
// JTAG disable for PORT F. write JTD bit twice within four cycles.
|
|
||||||
MCUCR |= (1<<JTD);
|
|
||||||
MCUCR |= (1<<JTD);
|
|
||||||
```
|
|
||||||
https://github.com/tmk/tmk_keyboard/blob/master/keyboard/hbkb/matrix.c#L67
|
|
||||||
|
|
||||||
And read **26.5.1 MCU Control Register – MCUCR** of ATMega32U4 datasheet.
|
|
||||||
|
|
||||||
|
|
||||||
## Adding LED Indicators of Lock Keys
|
## Adding LED Indicators of Lock Keys
|
||||||
You need your own LED indicators for CapsLock, ScrollLock and NumLock? See this post.
|
You need your own LED indicators for CapsLock, ScrollLock and NumLock? See this post.
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ STARTUP_SONG // plays when the keyboard starts up (audio.c)
|
|||||||
GOODBYE_SONG // plays when you press the RESET key (quantum.c)
|
GOODBYE_SONG // plays when you press the RESET key (quantum.c)
|
||||||
AG_NORM_SONG // plays when you press AG_NORM (quantum.c)
|
AG_NORM_SONG // plays when you press AG_NORM (quantum.c)
|
||||||
AG_SWAP_SONG // plays when you press AG_SWAP (quantum.c)
|
AG_SWAP_SONG // plays when you press AG_SWAP (quantum.c)
|
||||||
|
CG_NORM_SONG // plays when you press CG_NORM (quantum.c)
|
||||||
|
CG_SWAP_SONG // plays when you press CG_SWAP (quantum.c)
|
||||||
MUSIC_ON_SONG // plays when music mode is activated (process_music.c)
|
MUSIC_ON_SONG // plays when music mode is activated (process_music.c)
|
||||||
MUSIC_OFF_SONG // plays when music mode is deactivated (process_music.c)
|
MUSIC_OFF_SONG // plays when music mode is deactivated (process_music.c)
|
||||||
CHROMATIC_SONG // plays when the chromatic music mode is selected (process_music.c)
|
CHROMATIC_SONG // plays when the chromatic music mode is selected (process_music.c)
|
||||||
|
|||||||
@@ -64,8 +64,11 @@ Hold down the Bootmagic key (Space by default) and the desired hotkey while plug
|
|||||||
|`MAGIC_NO_GUI` | |Disable the GUI keys (useful when gaming) |
|
|`MAGIC_NO_GUI` | |Disable the GUI keys (useful when gaming) |
|
||||||
|`MAGIC_UNNO_GUI` | |Enable the GUI keys |
|
|`MAGIC_UNNO_GUI` | |Enable the GUI keys |
|
||||||
|`MAGIC_SWAP_ALT_GUI` |`AG_SWAP`|Swap Alt and GUI on both sides (for macOS)|
|
|`MAGIC_SWAP_ALT_GUI` |`AG_SWAP`|Swap Alt and GUI on both sides (for macOS)|
|
||||||
|`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Left Alt and Left GUI |
|
|`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Alt and GUI |
|
||||||
|`MAGIC_TOGGLE_ALT_GUI` |`AG_TOGG`|Toggle Left Alt and GUI swap |
|
|`MAGIC_TOGGLE_ALT_GUI` |`AG_TOGG`|Toggle Alt and GUI swap |
|
||||||
|
|`MAGIC_SWAP_CTL_GUI` |`CG_SWAP`|Swap Ctrl and GUI on both sides (for macOS)|
|
||||||
|
|`MAGIC_UNSWAP_CTL_GUI` |`CG_NORM`|Unswap Ctrl and GUI |
|
||||||
|
|`MAGIC_TOGGLE_CTL_GUI` |`CG_TOGG`|Toggle Ctrl and GUI swap |
|
||||||
|`MAGIC_SWAP_BACKSLASH_BACKSPACE` | |Swap `\` and Backspace |
|
|`MAGIC_SWAP_BACKSLASH_BACKSPACE` | |Swap `\` and Backspace |
|
||||||
|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`| |Unswap `\` and Backspace |
|
|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`| |Unswap `\` and Backspace |
|
||||||
|`MAGIC_SWAP_CONTROL_CAPSLOCK` | |Swap Left Control and Caps Lock |
|
|`MAGIC_SWAP_CONTROL_CAPSLOCK` | |Swap Left Control and Caps Lock |
|
||||||
@@ -76,6 +79,10 @@ Hold down the Bootmagic key (Space by default) and the desired hotkey while plug
|
|||||||
|`MAGIC_UNSWAP_LALT_LGUI` | |Unswap Left Alt and Left GUI |
|
|`MAGIC_UNSWAP_LALT_LGUI` | |Unswap Left Alt and Left GUI |
|
||||||
|`MAGIC_SWAP_RALT_RGUI` | |Swap Right Alt and Right GUI |
|
|`MAGIC_SWAP_RALT_RGUI` | |Swap Right Alt and Right GUI |
|
||||||
|`MAGIC_UNSWAP_RALT_RGUI` | |Unswap Right Alt and Right GUI |
|
|`MAGIC_UNSWAP_RALT_RGUI` | |Unswap Right Alt and Right GUI |
|
||||||
|
|`MAGIC_SWAP_LCTL_LGUI` | |Swap Left Control and Left GUI |
|
||||||
|
|`MAGIC_UNSWAP_LCTL_LGUI` | |Unswap Left Control and Left GUI |
|
||||||
|
|`MAGIC_SWAP_RCTL_RGUI` | |Swap Right Control and Right GUI |
|
||||||
|
|`MAGIC_UNSWAP_RCTL_RGUI` | |Unswap Right Control and Right GUI |
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,15 @@ Additionally, the resolution can be specified in the same file (the default & su
|
|||||||
|
|
||||||
#define ENCODER_RESOLUTION 4
|
#define ENCODER_RESOLUTION 4
|
||||||
|
|
||||||
|
## Split Keyboards
|
||||||
|
|
||||||
|
If you are using different pinouts for the encoders on each half of a split keyboard, you can define the pinout for the right half like this:
|
||||||
|
|
||||||
|
```c
|
||||||
|
#define ENCODERS_PAD_A_RIGHT { encoder1a, encoder2a }
|
||||||
|
#define ENCODERS_PAD_B_RIGHT { encoder1b, encoder2b }
|
||||||
|
```
|
||||||
|
|
||||||
## Callbacks
|
## Callbacks
|
||||||
|
|
||||||
The callback functions can be inserted into your `<keyboard>.c`:
|
The callback functions can be inserted into your `<keyboard>.c`:
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ This enables the feature and the `OLED_DRIVER_ENABLE` define. Then in your `keym
|
|||||||
void oled_task_user(void) {
|
void oled_task_user(void) {
|
||||||
// Host Keyboard Layer Status
|
// Host Keyboard Layer Status
|
||||||
oled_write_P(PSTR("Layer: "), false);
|
oled_write_P(PSTR("Layer: "), false);
|
||||||
switch (biton32(layer_state)) {
|
switch (get_highest_layer(layer_state)) {
|
||||||
case _QWERTY:
|
case _QWERTY:
|
||||||
oled_write_P(PSTR("Default\n"), false);
|
oled_write_P(PSTR("Default\n"), false);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -374,6 +374,7 @@ These are defined in [`rgblight_list.h`](https://github.com/qmk/qmk_firmware/blo
|
|||||||
#define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
|
#define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
|
||||||
#define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
|
#define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
|
||||||
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
|
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
|
||||||
|
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set
|
||||||
```
|
```
|
||||||
|
|
||||||
## EEPROM storage
|
## EEPROM storage
|
||||||
|
|||||||
@@ -166,6 +166,13 @@ This allows you to specify a different set of pins for the matrix on the right s
|
|||||||
|
|
||||||
This allows you to specify a different set of direct pins for the right side.
|
This allows you to specify a different set of direct pins for the right side.
|
||||||
|
|
||||||
|
```c
|
||||||
|
#define ENCODERS_PAD_A_RIGHT { encoder1a, encoder2a }
|
||||||
|
#define ENCODERS_PAD_B_RIGHT { encoder1b, encoder2b }
|
||||||
|
```
|
||||||
|
|
||||||
|
This allows you to specify a different set of encoder pins for the right side.
|
||||||
|
|
||||||
```c
|
```c
|
||||||
#define RGBLIGHT_SPLIT
|
#define RGBLIGHT_SPLIT
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -115,11 +115,11 @@ For instance, let's look at the `layer_state_set_user()` function. You can enab
|
|||||||
In your `<name.c>` file, you'd want to add this:
|
In your `<name.c>` file, you'd want to add this:
|
||||||
```c
|
```c
|
||||||
__attribute__ ((weak))
|
__attribute__ ((weak))
|
||||||
uint32_t layer_state_set_keymap (uint32_t state) {
|
layer_state_t layer_state_set_keymap (layer_state_t state) {
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t layer_state_set_user (uint32_t state) {
|
layer_state_t layer_state_set_user (layer_state_t state) {
|
||||||
state = update_tri_layer_state(state, 2, 3, 5);
|
state = update_tri_layer_state(state, 2, 3, 5);
|
||||||
return layer_state_set_keymap (state);
|
return layer_state_set_keymap (state);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ Do change the `MANUFACTURER`, `PRODUCT`, and `DESCRIPTION` lines to accurately r
|
|||||||
#define DESCRIPTION A custom keyboard
|
#define DESCRIPTION A custom keyboard
|
||||||
```
|
```
|
||||||
|
|
||||||
?> Note: On Windows and macOS the `MANUFACTURER`, `PRODUCT`, and `DESCRIPTION` fields will be displayed in the list of USB devices. ?> On Linux these values will not be visible in lsusb by default, since Linux takes the information from the list maintained by [USB ID Repository](http://www.linux-usb.org/usb-ids.html) by default. lsusb will show the information reported by the device when executed with -v option. It is also present in kernel logs after plugging in the device.
|
?> Windows and macOS will display the `MANUFACTURER` and `PRODUCT` in the list of USB devices. `lsusb` on Linux instead takes these from the list maintained by the [USB ID Repository](http://www.linux-usb.org/usb-ids.html) by default. `lsusb -v` will show the values reported by the device, and they are also present in kernel logs after plugging it in.
|
||||||
|
|
||||||
### Keyboard Matrix Configuration
|
### Keyboard Matrix Configuration
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,11 @@ The firmware does not send actual letters or characters, but only scancodes.
|
|||||||
Thus, by modifying the firmware, you can only modify what scancode is sent over
|
Thus, by modifying the firmware, you can only modify what scancode is sent over
|
||||||
USB for a given key.
|
USB for a given key.
|
||||||
|
|
||||||
## 3. What the Operating System Does
|
## 3. What the Event Input/Kernel Does
|
||||||
|
|
||||||
|
The *scancode* is mapped to a *keycode* dependent on the keyboard [60-keyboard.hwdb at Master](https://github.com/systemd/systemd/blob/master/hwdb/60-keyboard.hwdb). Without this mapping, the operating system will not receive a valid keycode and will be unable to do anything useful with that key press.
|
||||||
|
|
||||||
|
## 4. What the Operating System Does
|
||||||
|
|
||||||
Once the keycode reaches the operating system, a piece of software has to have
|
Once the keycode reaches the operating system, a piece of software has to have
|
||||||
it match an actual character thanks to a keyboard layout. For example, if your
|
it match an actual character thanks to a keyboard layout. For example, if your
|
||||||
|
|||||||
+9
-2
@@ -261,6 +261,8 @@ This is a reference only. Each group of keys links to the page documenting their
|
|||||||
|----------------------------------|---------|------------------------------------|
|
|----------------------------------|---------|------------------------------------|
|
||||||
|`MAGIC_SWAP_CONTROL_CAPSLOCK` | |Swap Caps Lock and Left Control |
|
|`MAGIC_SWAP_CONTROL_CAPSLOCK` | |Swap Caps Lock and Left Control |
|
||||||
|`MAGIC_CAPSLOCK_TO_CONTROL` | |Treat Caps Lock as Control |
|
|`MAGIC_CAPSLOCK_TO_CONTROL` | |Treat Caps Lock as Control |
|
||||||
|
|`MAGIC_SWAP_LCTL_LGUI` | |Swap Left Control and GUI |
|
||||||
|
|`MAGIC_SWAP_RCTL_RGUI` | |Swap Right Control and GUI |
|
||||||
|`MAGIC_SWAP_LALT_LGUI` | |Swap Left Alt and GUI |
|
|`MAGIC_SWAP_LALT_LGUI` | |Swap Left Alt and GUI |
|
||||||
|`MAGIC_SWAP_RALT_RGUI` | |Swap Right Alt and GUI |
|
|`MAGIC_SWAP_RALT_RGUI` | |Swap Right Alt and GUI |
|
||||||
|`MAGIC_NO_GUI` | |Disable the GUI key |
|
|`MAGIC_NO_GUI` | |Disable the GUI key |
|
||||||
@@ -268,8 +270,11 @@ This is a reference only. Each group of keys links to the page documenting their
|
|||||||
|`MAGIC_SWAP_BACKSLASH_BACKSPACE` | |Swap `\` and Backspace |
|
|`MAGIC_SWAP_BACKSLASH_BACKSPACE` | |Swap `\` and Backspace |
|
||||||
|`MAGIC_HOST_NKRO` | |Force NKRO on |
|
|`MAGIC_HOST_NKRO` | |Force NKRO on |
|
||||||
|`MAGIC_SWAP_ALT_GUI` |`AG_SWAP`|Swap Alt and GUI on both sides |
|
|`MAGIC_SWAP_ALT_GUI` |`AG_SWAP`|Swap Alt and GUI on both sides |
|
||||||
|
|`MAGIC_SWAP_CTL_GUI` |`CG_SWAP`|Swap Ctrl and GUI on both sides (for macOS)|
|
||||||
|`MAGIC_UNSWAP_CONTROL_CAPSLOCK` | |Unswap Caps Lock and Left Control |
|
|`MAGIC_UNSWAP_CONTROL_CAPSLOCK` | |Unswap Caps Lock and Left Control |
|
||||||
|`MAGIC_UNCAPSLOCK_TO_CONTROL` | |Stop treating Caps Lock as Control |
|
|`MAGIC_UNCAPSLOCK_TO_CONTROL` | |Stop treating Caps Lock as Control |
|
||||||
|
|`MAGIC_UNSWAP_LCTL_LGUI` | |Unswap Left Control and GUI |
|
||||||
|
|`MAGIC_UNSWAP_RCTL_RGUI` | |Unswap Right Control and GUI |
|
||||||
|`MAGIC_UNSWAP_LALT_LGUI` | |Unswap Left Alt and GUI |
|
|`MAGIC_UNSWAP_LALT_LGUI` | |Unswap Left Alt and GUI |
|
||||||
|`MAGIC_UNSWAP_RALT_RGUI` | |Unswap Right Alt and GUI |
|
|`MAGIC_UNSWAP_RALT_RGUI` | |Unswap Right Alt and GUI |
|
||||||
|`MAGIC_UNNO_GUI` | |Enable the GUI key |
|
|`MAGIC_UNNO_GUI` | |Enable the GUI key |
|
||||||
@@ -277,8 +282,10 @@ This is a reference only. Each group of keys links to the page documenting their
|
|||||||
|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`| |Unswap `\` and Backspace |
|
|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`| |Unswap `\` and Backspace |
|
||||||
|`MAGIC_UNHOST_NKRO` | |Force NKRO off |
|
|`MAGIC_UNHOST_NKRO` | |Force NKRO off |
|
||||||
|`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Alt and GUI on both sides |
|
|`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Alt and GUI on both sides |
|
||||||
|`MAGIC_TOGGLE_ALT_GUI` |`AG_TOGG`|Toggle Alt and GUI swap on both sides|
|
|`MAGIC_UNSWAP_CTL_GUI` |`CG_NORM`|Unswap Ctrl and GUI on both sides |
|
||||||
|`MAGIC_TOGGLE_NKRO` | |Turn NKRO on or off |
|
|`MAGIC_TOGGLE_ALT_GUI` |`AG_TOGG`|Toggle Alt and GUI swap on both sides |
|
||||||
|
|`MAGIC_TOGGLE_CTL_GUI` |`CG_TOGG`|Toggle Ctrl and GUI swap on both sides |
|
||||||
|
|`MAGIC_TOGGLE_NKRO` | |Turn NKRO on or off |
|
||||||
|
|
||||||
## [Bluetooth](feature_bluetooth.md)
|
## [Bluetooth](feature_bluetooth.md)
|
||||||
|
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ The caveat to this method is that you cannot access the `z` layer without having
|
|||||||
#### Example
|
#### Example
|
||||||
|
|
||||||
```c
|
```c
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@@ -58,7 +58,7 @@ uint32_t layer_state_set_user(uint32_t state) {
|
|||||||
Alternatively, you don't have to immediately "return" the value. This is useful if you want to add multiple tri layers, or if you want to add additional effects.
|
Alternatively, you don't have to immediately "return" the value. This is useful if you want to add multiple tri layers, or if you want to add additional effects.
|
||||||
|
|
||||||
```c
|
```c
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
state = update_tri_layer_state(state, _RAISE, _SYMB, _SPECIAL);
|
state = update_tri_layer_state(state, _RAISE, _SYMB, _SPECIAL);
|
||||||
return state;
|
return state;
|
||||||
|
|||||||
@@ -173,23 +173,6 @@ EXTRAKEY_ENABLE = yes # 音频控制和系统控制
|
|||||||
|
|
||||||
Arduino Leonardo和micro使用**ATMega32U4**,该芯片TMK可用,但Arduino的bootloader会导致问题。
|
Arduino Leonardo和micro使用**ATMega32U4**,该芯片TMK可用,但Arduino的bootloader会导致问题。
|
||||||
|
|
||||||
|
|
||||||
## 在USB AVR使用PF4-7针脚?
|
|
||||||
你要置位MCUCR寄存器JTD位来将PF4-7设置为GPIO。这些针脚默认是JTAG功能。 像ATMega*U* or AT90USB*这样的MCU会受影响。
|
|
||||||
|
|
||||||
如果是用Teensy的话就不需要了。Tennsy自带JTAGEN位未编程来失能该功能。
|
|
||||||
<!--翻译问题:上句可能有错,原文为:Teensy is shipped with JTAGEN fuse bit unprogrammed to disable the function. -->
|
|
||||||
代码如下。
|
|
||||||
```
|
|
||||||
// F接口JTAG失能。在四个周期内写入两次JTD位。
|
|
||||||
MCUCR |= (1<<JTD);
|
|
||||||
MCUCR |= (1<<JTD);
|
|
||||||
```
|
|
||||||
https://github.com/tmk/tmk_keyboard/blob/master/keyboard/hbkb/matrix.c#L67
|
|
||||||
|
|
||||||
阅读ATMega32U4的datasheet中的**26.5.1 MCU Control Register – MCUCR**。
|
|
||||||
|
|
||||||
|
|
||||||
## 为锁定键添加指示灯
|
## 为锁定键添加指示灯
|
||||||
你要自制CapsLock, ScrollLock 和 NumLock指示灯?见下文。
|
你要自制CapsLock, ScrollLock 和 NumLock指示灯?见下文。
|
||||||
|
|
||||||
|
|||||||
File renamed without changes.
File renamed without changes.
@@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
#include "adkb96.h"
|
#include "adkb96.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -12,9 +10,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
|
|
||||||
// Keymap with right side flipped
|
// Keymap with right side flipped
|
||||||
// (TRRS jack on both halves are to the right)
|
// (TRRS jack on both halves are to the right)
|
||||||
#define LAYOUT_ortho_6x16( \
|
#define LAYOUT_ortho_6x16( \
|
||||||
|
|||||||
@@ -63,9 +63,6 @@ void matrix_init(void)
|
|||||||
#ifdef UART_RGB_ENABLE
|
#ifdef UART_RGB_ENABLE
|
||||||
uart_rgb_init();
|
uart_rgb_init();
|
||||||
#endif
|
#endif
|
||||||
// disable JTAG
|
|
||||||
MCUCR = _BV(JTD);
|
|
||||||
MCUCR = _BV(JTD);
|
|
||||||
|
|
||||||
// 85 REST
|
// 85 REST
|
||||||
DDRD |= _BV(PD7);
|
DDRD |= _BV(PD7);
|
||||||
|
|||||||
@@ -0,0 +1,51 @@
|
|||||||
|
/* Copyright 2019 kakunpc
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include "angel17.h"
|
||||||
|
|
||||||
|
// Optional override functions below.
|
||||||
|
// You can leave any or all of these undefined.
|
||||||
|
// These are only required if you want to perform custom actions.
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
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,40 @@
|
|||||||
|
/* Copyright 2019 kakunpc
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
/* This a shortcut to help you visually see your layout.
|
||||||
|
*
|
||||||
|
* The first section contains all of the arguments representing the physical
|
||||||
|
* layout of the board and position of the keys.
|
||||||
|
*
|
||||||
|
* The second converts the arguments into a two-dimensional array which
|
||||||
|
* represents the switch matrix.
|
||||||
|
*/
|
||||||
|
#define LAYOUT_numpad_5x4( \
|
||||||
|
k00, k01, k02, k03, \
|
||||||
|
k10, k11, k12, \
|
||||||
|
k20, k21, k22, k13, \
|
||||||
|
k30, k31, k32, \
|
||||||
|
k40, k41, k33 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k00, k10, k20, k31, k41 }, \
|
||||||
|
{ k02, k12, k22, k33, KC_NO }, \
|
||||||
|
{ k01, k11, k21, k32, KC_NO }, \
|
||||||
|
{ k03, k13, k30, k40, KC_NO }, \
|
||||||
|
}
|
||||||
@@ -0,0 +1,249 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2019 kakunpc
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xFEED
|
||||||
|
#define PRODUCT_ID 0x0000
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER kakunpc
|
||||||
|
#define PRODUCT angel17
|
||||||
|
#define DESCRIPTION A custom keyboard
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 4
|
||||||
|
#define MATRIX_COLS 5
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define MATRIX_ROW_PINS { D4, C6, D7, E6 }
|
||||||
|
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL*/
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
|
||||||
|
*/
|
||||||
|
#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
|
||||||
|
|
||||||
|
// #define BACKLIGHT_PIN B7
|
||||||
|
// #define BACKLIGHT_BREATHING
|
||||||
|
// #define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
|
// #define RGB_DI_PIN E2
|
||||||
|
// #ifdef RGB_DI_PIN
|
||||||
|
// #define RGBLED_NUM 16
|
||||||
|
// #define RGBLIGHT_HUE_STEP 8
|
||||||
|
// #define RGBLIGHT_SAT_STEP 8
|
||||||
|
// #define RGBLIGHT_VAL_STEP 8
|
||||||
|
// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
||||||
|
// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||||
|
// /*== all animations enable ==*/
|
||||||
|
// #define RGBLIGHT_ANIMATIONS
|
||||||
|
// /*== or choose animations ==*/
|
||||||
|
// #define RGBLIGHT_EFFECT_BREATHING
|
||||||
|
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||||
|
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||||
|
// #define RGBLIGHT_EFFECT_SNAKE
|
||||||
|
// #define RGBLIGHT_EFFECT_KNIGHT
|
||||||
|
// #define RGBLIGHT_EFFECT_CHRISTMAS
|
||||||
|
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||||
|
// #define RGBLIGHT_EFFECT_RGB_TEST
|
||||||
|
// #define RGBLIGHT_EFFECT_ALTERNATING
|
||||||
|
// /*== customize breathing effect ==*/
|
||||||
|
// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
|
||||||
|
// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
|
||||||
|
// /*==== use exp() and sin() ====*/
|
||||||
|
// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
|
||||||
|
// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
|
||||||
|
// #endif
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||||
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
|
||||||
|
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
|
||||||
|
*/
|
||||||
|
// #define GRAVE_ESC_CTRL_OVERRIDE
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Force NKRO
|
||||||
|
*
|
||||||
|
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||||
|
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||||
|
* makefile for this to work.)
|
||||||
|
*
|
||||||
|
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||||
|
* until the next keyboard reset.
|
||||||
|
*
|
||||||
|
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||||
|
* fully operational during normal computer usage.
|
||||||
|
*
|
||||||
|
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||||
|
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||||
|
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||||
|
* power-up.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//#define FORCE_NKRO
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Magic Key Options
|
||||||
|
*
|
||||||
|
* Magic keys are hotkey commands that allow control over firmware functions of
|
||||||
|
* the keyboard. They are best used in combination with the HID Listen program,
|
||||||
|
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||||
|
*
|
||||||
|
* The options below allow the magic key functionality to be changed. This is
|
||||||
|
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* key combination for magic key command */
|
||||||
|
/* defined by default; to change, uncomment and set to the combination you want */
|
||||||
|
// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
|
||||||
|
|
||||||
|
/* control how magic key switches layers */
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||||
|
|
||||||
|
/* override magic key keymap */
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||||
|
//#define MAGIC_KEY_HELP H
|
||||||
|
//#define MAGIC_KEY_HELP_ALT SLASH
|
||||||
|
//#define MAGIC_KEY_DEBUG D
|
||||||
|
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||||
|
//#define MAGIC_KEY_DEBUG_KBD K
|
||||||
|
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||||
|
//#define MAGIC_KEY_VERSION V
|
||||||
|
//#define MAGIC_KEY_STATUS S
|
||||||
|
//#define MAGIC_KEY_CONSOLE C
|
||||||
|
//#define MAGIC_KEY_LAYER0 0
|
||||||
|
//#define MAGIC_KEY_LAYER0_ALT GRAVE
|
||||||
|
//#define MAGIC_KEY_LAYER1 1
|
||||||
|
//#define MAGIC_KEY_LAYER2 2
|
||||||
|
//#define MAGIC_KEY_LAYER3 3
|
||||||
|
//#define MAGIC_KEY_LAYER4 4
|
||||||
|
//#define MAGIC_KEY_LAYER5 5
|
||||||
|
//#define MAGIC_KEY_LAYER6 6
|
||||||
|
//#define MAGIC_KEY_LAYER7 7
|
||||||
|
//#define MAGIC_KEY_LAYER8 8
|
||||||
|
//#define MAGIC_KEY_LAYER9 9
|
||||||
|
//#define MAGIC_KEY_BOOTLOADER B
|
||||||
|
//#define MAGIC_KEY_BOOTLOADER_ALT ESC
|
||||||
|
//#define MAGIC_KEY_LOCK CAPS
|
||||||
|
//#define MAGIC_KEY_EEPROM E
|
||||||
|
//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
|
||||||
|
//#define MAGIC_KEY_NKRO N
|
||||||
|
//#define MAGIC_KEY_SLEEP_LED Z
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Feature disable options
|
||||||
|
* These options are also useful to firmware size reduction.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* disable debug print */
|
||||||
|
//#define NO_DEBUG
|
||||||
|
|
||||||
|
/* disable print */
|
||||||
|
//#define NO_PRINT
|
||||||
|
|
||||||
|
/* disable action features */
|
||||||
|
//#define NO_ACTION_LAYER
|
||||||
|
//#define NO_ACTION_TAPPING
|
||||||
|
//#define NO_ACTION_ONESHOT
|
||||||
|
//#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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Bootmagic Lite key configuration */
|
||||||
|
// #define BOOTMAGIC_LITE_ROW 0
|
||||||
|
// #define BOOTMAGIC_LITE_COLUMN 0
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "angel17",
|
||||||
|
"url": "https://kakunpc.booth.pm/",
|
||||||
|
"maintainer": "kakunpc",
|
||||||
|
"width": 4,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_numpad_5x4": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"Num Lock", "x":0, "y":0},
|
||||||
|
{"label":"/", "x":1, "y":0},
|
||||||
|
{"label":"*", "x":2, "y":0},
|
||||||
|
{"label":"-", "x":3, "y":0},
|
||||||
|
|
||||||
|
{"label":"7", "x":0, "y":1},
|
||||||
|
{"label":"8", "x":1, "y":1},
|
||||||
|
{"label":"9", "x":2, "y":1},
|
||||||
|
|
||||||
|
{"label":"4", "x":0, "y":2},
|
||||||
|
{"label":"5", "x":1, "y":2},
|
||||||
|
{"label":"6", "x":2, "y":2},
|
||||||
|
{"label":"+", "x":3, "y":1, "h":2},
|
||||||
|
|
||||||
|
{"label":"1", "x":0, "y":3},
|
||||||
|
{"label":"2", "x":1, "y":3},
|
||||||
|
{"label":"3", "x":2, "y":3},
|
||||||
|
|
||||||
|
{"label":"0", "x":0, "y":4, "w":2},
|
||||||
|
{"label":".", "x":2, "y":4},
|
||||||
|
{"label":"Enter", "x":3, "y":3, "h":2}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
/* Copyright 2019 kakunpc
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
// place overrides here
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
/* Copyright 2019 kakunpc
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_numpad_5x4( /* Base */
|
||||||
|
KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
|
||||||
|
KC_P7, KC_P8, KC_P9,
|
||||||
|
KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||||
|
KC_P1, KC_P2, KC_P3,
|
||||||
|
KC_P0, KC_PDOT, KC_PENT
|
||||||
|
),
|
||||||
|
};
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_init_user(void) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_scan_user(void) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void led_set_user(uint8_t usb_led) {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# The default keymap for angel17
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# angel17
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Keyboard for tablets.
|
||||||
|
|
||||||
|
Keyboard Maintainer: [kakunpc](https://github.com/kakunpc)
|
||||||
|
Hardware Supported: angel17_alpha, promicro
|
||||||
|
Hardware Availability: booth([@kakunpc](https://kakunpc.booth.pm/))
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make angel17:default
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
# Teensy halfkay
|
||||||
|
# Pro Micro caterina
|
||||||
|
# Atmel DFU atmel-dfu
|
||||||
|
# LUFA DFU lufa-dfu
|
||||||
|
# QMK DFU qmk-dfu
|
||||||
|
# atmega32a bootloadHID
|
||||||
|
BOOTLOADER = caterina
|
||||||
|
|
||||||
|
|
||||||
|
# If you don't know the bootloader type, then you can specify the
|
||||||
|
# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
# OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||||
|
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE = 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
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
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)
|
||||||
|
|
||||||
|
LAYOUTS = numpad_5x4
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#undef MATRIX_ROWS
|
||||||
|
#define MATRIX_ROWS 8
|
||||||
|
|
||||||
|
#undef MATRIX_COLS
|
||||||
|
#define MATRIX_COLS 6
|
||||||
|
|
||||||
|
#undef MATRIX_ROW_PINS
|
||||||
|
#define MATRIX_ROW_PINS { A6, A7, A8, A15, B11, B12, A14, A13 }
|
||||||
|
|
||||||
|
#undef MATRIX_COL_PINS
|
||||||
|
#define MATRIX_COL_PINS { B5, B4, B3, B2, B1, B0 }
|
||||||
@@ -0,0 +1,116 @@
|
|||||||
|
/* Copyright 2019 George Koenig
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
#include "ridingqwerty.h"
|
||||||
|
|
||||||
|
/* Atreus
|
||||||
|
┏━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┓ ┏━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┓
|
||||||
|
┃ 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 │ , │ 𝔽 . │ ⇧ / ┃
|
||||||
|
┠────────┼────────┼────────┼────────┼────────┤ ¶ ⎋ ┃ ❦ ⇥ ├────────┼────────┼────────┼────────┼────────┨
|
||||||
|
┃ ⎈ ⎋ │ ⌘ ⇥ │ ⎇ [ │ ⇧ ] │ 🔢 ⌫ │ ┃ │ ★ ␣ │ ⇧ - │ ⎇ = │ ⌘ ' │ ⎈ ↵ ┃
|
||||||
|
┗━━━━━━━━┷━━━━━━━━┷━━━━━━━━┷━━━━━━━━┷━━━━━━━━┷━━━━━━━━┻━━━━━━━━┷━━━━━━━━┷━━━━━━━━┷━━━━━━━━┷━━━━━━━━┷━━━━━━━━┛
|
||||||
|
MODS // LAYERS // MODS //
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef LAYOUT
|
||||||
|
#undef LAYOUT
|
||||||
|
#define LAYOUT( \
|
||||||
|
K00, K01, K02, K03, K04, K40, K41, K42, K43, K44, \
|
||||||
|
K10, K11, K12, K13, K14, K50, K51, K52, K53, K54, \
|
||||||
|
K20, K21, K22, K23, K24, K60, K61, K62, K63, K64, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K70, K71, K72, K73, K74, K75 \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, KC_NO }, \
|
||||||
|
{ K10, K11, K12, K13, K14, KC_NO }, \
|
||||||
|
{ K20, K21, K22, K23, K24, KC_NO }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35 }, \
|
||||||
|
{ K44, K43, K42, K41, K40, KC_NO }, \
|
||||||
|
{ K54, K53, K52, K51, K50, KC_NO }, \
|
||||||
|
{ K64, K63, K62, K61, K60, KC_NO }, \
|
||||||
|
{ K75, K74, K73, K72, K71, K70 } \
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_QWERTY] = LAYOUT( /* Qwerty */
|
||||||
|
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||||
|
ED_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, NM_SCLN,
|
||||||
|
LS_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, FK_DOT, RS_SLSH,
|
||||||
|
LC_ESC, LG_TAB, LA_LBRC, LS_RBRC, NM_BSPC, ED_ESC, SC_TAB, SM_SPC, RS_MINS, RA_EQL, RG_QUOT, RC_ENT
|
||||||
|
),
|
||||||
|
[_EDITOR] = LAYOUT( /* ED_A, ED_ESC */
|
||||||
|
KC_GRV, _______, KC_END, _______, KC_TAB, _______, _______, KC_INS, _______, KC_PGUP,
|
||||||
|
KC_HOME, _______, KC_DELT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ENT,
|
||||||
|
_______, _______, _______, _______, _______, KC_PGDN, _______, _______, _______, KC_BSLS,
|
||||||
|
_______, _______, _______, _______, _______, _______, KC_ENT, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[_NUMBER] = LAYOUT( /* NM_SCLN, NM_BSPC */
|
||||||
|
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
|
||||||
|
KC_6, KC_7, KC_8, KC_9, KC_0, _______, KC_4, KC_5, KC_6, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, KC_BSLS,
|
||||||
|
_______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_0, KC_0, KC_DOT, _______, _______
|
||||||
|
),
|
||||||
|
[_SYMBOL] = LAYOUT( /* SM_SPC */
|
||||||
|
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
|
||||||
|
KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, _______, KC_COLN,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLS,
|
||||||
|
_______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[_F_KEYS] = LAYOUT( /* FK_DOT */
|
||||||
|
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
|
||||||
|
KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, KC_F11,
|
||||||
|
KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, KC_F12,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[_SECRET] = LAYOUT( /* shhhh... */
|
||||||
|
RESET, _______, _______, RUSTY, FUEL, KC_F13, _______, _______, _______, _______,
|
||||||
|
AR1ST, SYSNOC, _______, _______, _______, _______, _______, _______, OS_LAB, _______,
|
||||||
|
CDLOCAL, _______, C0RE, VAXIS, _______, _______, MUNKY, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[_FINAL] = LAYOUT( /* . */
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
|
// custom tap/hold keys
|
||||||
|
uint16_t key_timer;
|
||||||
|
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
switch(keycode) {
|
||||||
|
case RG_QUOT:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
key_timer = timer_read();
|
||||||
|
layer_on(_NUMBER);
|
||||||
|
register_mods(MOD_BIT(KC_RGUI));
|
||||||
|
} else {
|
||||||
|
unregister_mods(MOD_BIT(KC_RGUI));
|
||||||
|
layer_off(_NUMBER);
|
||||||
|
if (timer_elapsed(key_timer) < TAPPING_TERM) {
|
||||||
|
tap_code(KC_QUOT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false; break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
This is a handwired Atreus42 using a Proton C
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
MCU = STM32F303
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# comment out to disable the options.
|
||||||
|
#
|
||||||
|
BACKLIGHT_ENABLE = no
|
||||||
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
|
||||||
|
#MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = yes # Console for debug
|
||||||
|
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||||
|
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||||
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
|
AUDIO_ENABLE = yes
|
||||||
|
RGBLIGHT_ENABLE = no
|
||||||
|
# SERIAL_LINK_ENABLE = yes
|
||||||
|
#TAP_DANCE_ENABLE = yes
|
||||||
@@ -3,8 +3,6 @@
|
|||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
// This a shortcut to help you visually see your layout.
|
// This a shortcut to help you visually see your layout.
|
||||||
// The first section contains all of the arguements
|
// The first section contains all of the arguements
|
||||||
// The second converts the arguments into a two-dimensional array
|
// The second converts the arguments into a two-dimensional array
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
|
||||||
|
/*
|
||||||
|
This is the c configuration file for the keymap
|
||||||
|
|
||||||
|
Copyright 2012 Jun Wako <[email protected]>
|
||||||
|
Copyright 2015 Jack Humbert
|
||||||
|
Copyright 2017 Art Ortenburger
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
/* key combination for magic key command */
|
||||||
|
#undef IS_COMMAND
|
||||||
|
#define IS_COMMAND() ( \
|
||||||
|
get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LALT)) \
|
||||||
|
)
|
||||||
|
|
||||||
|
//#ifdef RGBLIGHT_ENABLE
|
||||||
|
//#define RGB_DI_PIN D3
|
||||||
|
//#define RGBLED_NUM 16 // Number of LEDs
|
||||||
|
//#define RGBLED_SPLIT { 8, 8 }
|
||||||
|
//
|
||||||
|
//#define RGBLIGHT_HUE_STEP 12
|
||||||
|
//#define RGBLIGHT_SAT_STEP 12
|
||||||
|
//#define RGBLIGHT_VAL_STEP 12
|
||||||
|
//#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
|
||||||
|
//#define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
|
||||||
|
//#define RGBLIGHT_EFFECT_BREATHE_CENTER 1
|
||||||
|
//#endif // RGBLIGHT_ENABLE
|
||||||
|
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
/*
|
||||||
|
This is the keymap for the keyboard
|
||||||
|
|
||||||
|
Copyright 2012 Jun Wako <[email protected]>
|
||||||
|
Copyright 2015 Jack Humbert
|
||||||
|
Copyright 2017 Art Ortenburger
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
#include "kuchosauronad0.h"
|
||||||
|
|
||||||
|
#ifdef INDICATOR_LIGHTS
|
||||||
|
extern userspace_config_t userspace_config;
|
||||||
|
|
||||||
|
uint8_t last_mod;
|
||||||
|
uint8_t last_led;
|
||||||
|
uint8_t last_osm;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define LAYOUT_collide39_base( \
|
||||||
|
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
|
||||||
|
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
|
||||||
|
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
|
||||||
|
) \
|
||||||
|
LAYOUT_wrapper( \
|
||||||
|
MT(MOD_LALT,KC_TAB), K01, K02, K03, K04, K05, LT(RAISE,KC_PGUP), K06, K07, K08, K09, K0A, KC_BSPC, \
|
||||||
|
SFT_T(KC_ESC), K11, K12, K13, K14, K15, LT(LOWER,KC_PGDN), K16, K17, K18, K19, K1A, SFT_T(KC_ENT), \
|
||||||
|
MT(MOD_LCTL,KC_DEL), K21, K22, K23, K24, K25, KC_SPACE, K26, K27, K28, K29, K2A, KC_LEAD \
|
||||||
|
)
|
||||||
|
#define LAYOUT_collide39_base_wrapper(...) LAYOUT_collide39_base(__VA_ARGS__)
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_QWERTY] = LAYOUT_collide39_base_wrapper(
|
||||||
|
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
|
||||||
|
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
|
||||||
|
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________
|
||||||
|
),
|
||||||
|
|
||||||
|
[_COLEMAK] = LAYOUT_collide39_base_wrapper(
|
||||||
|
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
|
||||||
|
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
|
||||||
|
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________
|
||||||
|
),
|
||||||
|
|
||||||
|
[_DVORAK] = LAYOUT_collide39_base_wrapper(
|
||||||
|
_________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
|
||||||
|
_________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
|
||||||
|
_________________DVORAK_L3_________________, _________________DVORAK_R3_________________
|
||||||
|
),
|
||||||
|
|
||||||
|
#ifdef UNICODEMAP_ENABLE
|
||||||
|
[_UNICODE] = LAYOUT_collide39_base_wrapper(
|
||||||
|
_______________UNICODE_L1__________________, _______________UNICODE_R1__________________,
|
||||||
|
_______________UNICODE_L2__________________, _______________UNICODE_R2__________________,
|
||||||
|
_______________UNICODE_L3__________________, _______________UNICODE_R3__________________
|
||||||
|
),
|
||||||
|
#endif
|
||||||
|
[_WORKMAN] = LAYOUT_collide39_base_wrapper(
|
||||||
|
_________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
|
||||||
|
_________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
|
||||||
|
_________________WORKMAN_L3________________, _________________WORKMAN_R3________________
|
||||||
|
),
|
||||||
|
|
||||||
|
[_NORMAN] = LAYOUT_collide39_base_wrapper(
|
||||||
|
_________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
|
||||||
|
_________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
|
||||||
|
_________________NORMAN_L3_________________, _________________NORMAN_R3_________________
|
||||||
|
),
|
||||||
|
|
||||||
|
[_MALTRON] = LAYOUT_collide39_base_wrapper(
|
||||||
|
_________________MALTRON_L1________________, _________________MALTRON_R1________________,
|
||||||
|
_________________MALTRON_L2________________, _________________MALTRON_R2________________,
|
||||||
|
_________________MALTRON_L3________________, _________________MALTRON_R3________________
|
||||||
|
),
|
||||||
|
|
||||||
|
[_EUCALYN] = LAYOUT_collide39_base_wrapper(
|
||||||
|
_________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
|
||||||
|
_________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
|
||||||
|
_________________EUCALYN_L3________________, _________________EUCALYN_R3________________
|
||||||
|
),
|
||||||
|
|
||||||
|
[_CARPLAX] = LAYOUT_collide39_base_wrapper(
|
||||||
|
_____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
|
||||||
|
_____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
|
||||||
|
_____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
|
[_MODS] = LAYOUT_wrapper(\
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LOWER] = LAYOUT_wrapper(\
|
||||||
|
KC_TILD, _________________LOWER_L1__________________, _______, _________________LOWER_R1__________________, KC_BSPC,
|
||||||
|
KC_F11, _________________LOWER_L2__________________, _______, _________________LOWER_R2__________________, KC_PIPE,
|
||||||
|
KC_F12, _________________LOWER_L3__________________, _______, _________________LOWER_R3__________________, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[_RAISE] = LAYOUT_wrapper(\
|
||||||
|
KC_GRV, _________________RAISE_L1__________________, _______, _________________RAISE_R1__________________, KC_BSPC,
|
||||||
|
_______, _________________RAISE_L2__________________, _______, _________________RAISE_R2__________________, KC_BSLS,
|
||||||
|
_______, _________________RAISE_L3__________________, _______, _________________RAISE_R3__________________, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[_ADJUST] = LAYOUT_wrapper(\
|
||||||
|
KC_MAKE, _________________ADJUST_L1_________________, _______, _________________ADJUST_R1_________________, KC_RESET,
|
||||||
|
VRSN, _________________ADJUST_L2_________________, _______, _________________ADJUST_R2_________________, EEP_RST,
|
||||||
|
TG_MODS, _________________ADJUST_L3_________________, _______, _________________ADJUST_R3_________________, KC_MPLY
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
void matrix_init_keymap(void) {
|
||||||
|
#ifndef CONVERT_TO_PROTON_C
|
||||||
|
setPinOutput(D5);
|
||||||
|
writePinHigh(D5);
|
||||||
|
setPinOutput(B0);
|
||||||
|
writePinHigh(B0);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# Personal keymap for the collide39
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
BOOTLOADER = caterina
|
||||||
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
LEADER_ENABLE = yes # default is yes
|
||||||
|
TAP_DANCE_ENABLE = no #(+1254)
|
||||||
|
UNICODE_ENABLE = no #(+1134)
|
||||||
|
UNICODEMAP_ENABLE = yes
|
||||||
|
RGBLIGHT_ENABLE = no
|
||||||
|
AUDIO_ENABLE = no
|
||||||
|
NKRO_ENABLE = yes
|
||||||
|
|
||||||
|
INDICATOR_LIGHTS = no
|
||||||
|
MACROS_ENABLED = no
|
||||||
|
RGBLIGHT_TWINKLE = no
|
||||||
|
RGBLIGHT_STARTUP_ANIMATION = no
|
||||||
|
|
||||||
|
NO_SECRETS = yes
|
||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
#include "../claw44.h"
|
#include "../claw44.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
#ifdef RGBLIGHT_ENABLE
|
||||||
@@ -18,7 +17,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
||||||
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
||||||
|
|||||||
@@ -6,10 +6,6 @@ void matrix_init_kb(void) {
|
|||||||
// put your keyboard start-up code here
|
// put your keyboard start-up code here
|
||||||
// runs once when the firmware starts up
|
// runs once when the firmware starts up
|
||||||
matrix_init_user();
|
matrix_init_user();
|
||||||
|
|
||||||
// JTAG disable for PORT F. write JTD bit twice within four cycles.
|
|
||||||
MCUCR |= (1<<JTD);
|
|
||||||
MCUCR |= (1<<JTD);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void led_set_kb(uint8_t usb_led) {
|
void led_set_kb(uint8_t usb_led) {
|
||||||
|
|||||||
@@ -8,10 +8,6 @@ void matrix_init_kb(void) {
|
|||||||
// runs once when the firmware starts up
|
// runs once when the firmware starts up
|
||||||
matrix_init_user();
|
matrix_init_user();
|
||||||
led_init_ports();
|
led_init_ports();
|
||||||
|
|
||||||
// JTAG disable for PORT F. write JTD bit twice within four cycles.
|
|
||||||
MCUCR |= (1<<JTD);
|
|
||||||
MCUCR |= (1<<JTD);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -14,15 +14,10 @@
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
#include "gen1.h"
|
#include "gen1.h"
|
||||||
#include "is31fl3731-simple.h"
|
|
||||||
|
|
||||||
void matrix_init_kb(void) {
|
|
||||||
}
|
|
||||||
|
|
||||||
void matrix_scan_kb(void) {
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef LED_MATRIX_ENABLE
|
#ifdef LED_MATRIX_ENABLE
|
||||||
|
#include "is31fl3731-simple.h"
|
||||||
|
|
||||||
const is31_led g_is31_leds[LED_DRIVER_LED_COUNT] = {
|
const is31_led g_is31_leds[LED_DRIVER_LED_COUNT] = {
|
||||||
/* Refer to IS31 manual for these locations
|
/* Refer to IS31 manual for these locations
|
||||||
* driver
|
* driver
|
||||||
|
|||||||
@@ -8,10 +8,6 @@ void matrix_init_kb(void) {
|
|||||||
// runs once when the firmware starts up
|
// runs once when the firmware starts up
|
||||||
matrix_init_user();
|
matrix_init_user();
|
||||||
led_init_ports();
|
led_init_ports();
|
||||||
|
|
||||||
// JTAG disable for PORT F. write JTD bit twice within four cycles.
|
|
||||||
MCUCR |= (1<<JTD);
|
|
||||||
MCUCR |= (1<<JTD);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -19,3 +19,5 @@ MIDI_ENABLE = no # MIDI controls
|
|||||||
UNICODE_ENABLE = no # Unicode
|
UNICODE_ENABLE = no # Unicode
|
||||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
AUDIO_ENABLE = yes # Audio output on port C6
|
AUDIO_ENABLE = yes # Audio output on port C6
|
||||||
|
|
||||||
|
LINK_TIME_OPTIMIZATION_ENABLE = yes
|
||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
#include "crkbd.h"
|
#include "crkbd.h"
|
||||||
|
|
||||||
// void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#ifdef PROTOCOL_LUFA
|
#ifdef PROTOCOL_LUFA
|
||||||
@@ -23,7 +22,6 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
||||||
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
||||||
|
|||||||
@@ -3,10 +3,8 @@
|
|||||||
|
|
||||||
#include "deltasplit75.h"
|
#include "deltasplit75.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
//matrix is defined in a weird way here; the layout on both sides are asymmetrical, but the "matrix" is symmetrical but with empty gaps
|
//matrix is defined in a weird way here; the layout on both sides are asymmetrical, but the "matrix" is symmetrical but with empty gaps
|
||||||
//the last column is defined as a separate row because the firmware currently doesnt support more than 8 columns (this layout has 9 columns per side) K45 and K110 are the Bs on both sides; K53 and K106 are extra keys for ISO
|
//the last column is defined as a separate row because the firmware currently doesnt support more than 8 columns (this layout has 9 columns per side) K45 and K110 are the Bs on both sides; K53 and K106 are extra keys for ISO
|
||||||
#define LAYOUT_v2( \
|
#define LAYOUT_v2( \
|
||||||
@@ -59,4 +57,4 @@
|
|||||||
{ KC_NO, KC_NO, K132, K133, K134, K135, K136, K137} \
|
{ KC_NO, KC_NO, K132, K133, K134, K135, K136, K137} \
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -17,10 +17,8 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -29,8 +27,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#ifndef FLIP_HALF
|
#ifndef FLIP_HALF
|
||||||
// Standard Keymap
|
// Standard Keymap
|
||||||
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
||||||
|
|||||||
@@ -51,6 +51,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define ENCODERS_PAD_A { D0 }
|
#define ENCODERS_PAD_A { D0 }
|
||||||
#define ENCODERS_PAD_B { D4 }
|
#define ENCODERS_PAD_B { D4 }
|
||||||
|
|
||||||
|
/* LED layer indicators */
|
||||||
|
#define LAYER_INDICATOR_LED_0 B3
|
||||||
|
#define LAYER_INDICATOR_LED_1 B1
|
||||||
|
|
||||||
/* Bootmagic - hold down rotary encoder pushbutton while plugging in to enter bootloader */
|
/* Bootmagic - hold down rotary encoder pushbutton while plugging in to enter bootloader */
|
||||||
#define BOOTMAGIC_LITE_ROW 3
|
#define BOOTMAGIC_LITE_ROW 3
|
||||||
#define BOOTMAGIC_LITE_COLUMN 0
|
#define BOOTMAGIC_LITE_COLUMN 0
|
||||||
|
|||||||
@@ -15,15 +15,49 @@
|
|||||||
*/
|
*/
|
||||||
#include "dumbpad.h"
|
#include "dumbpad.h"
|
||||||
|
|
||||||
|
void keyboard_pre_init_kb(void) {
|
||||||
|
// Set the layer LED IO as outputs
|
||||||
|
setPinOutput(LAYER_INDICATOR_LED_0);
|
||||||
|
setPinOutput(LAYER_INDICATOR_LED_1);
|
||||||
|
|
||||||
|
keyboard_pre_init_user();
|
||||||
|
}
|
||||||
|
|
||||||
|
void shutdown_user() {
|
||||||
|
// Shutdown the layer LEDs
|
||||||
|
writePinLow(LAYER_INDICATOR_LED_0);
|
||||||
|
writePinLow(LAYER_INDICATOR_LED_1);
|
||||||
|
}
|
||||||
|
|
||||||
|
layer_state_t layer_state_set_kb(layer_state_t state) {
|
||||||
|
// Layer LEDs act as binary indication of current layer
|
||||||
|
uint8_t layer = biton32(state);
|
||||||
|
writePin(LAYER_INDICATOR_LED_0, layer & 0b1);
|
||||||
|
writePin(LAYER_INDICATOR_LED_1, (layer >> 1) & 0b1);
|
||||||
|
return layer_state_set_user(state);
|
||||||
|
}
|
||||||
|
|
||||||
// Optional override functions below.
|
// Optional override functions below.
|
||||||
// You can leave any or all of these undefined.
|
// You can leave any or all of these undefined.
|
||||||
// These are only required if you want to perform custom actions.
|
// These are only required if you want to perform custom actions.
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
void matrix_init_kb(void) {
|
void matrix_init_kb(void) {
|
||||||
// put your keyboard start-up code here
|
// put your keyboard start-up code here
|
||||||
// runs once when the firmware starts up
|
// runs once when the firmware starts up
|
||||||
|
for (int i = 0; i < 2; i++) {
|
||||||
|
writePin(LAYER_INDICATOR_LED_0, true);
|
||||||
|
writePin(LAYER_INDICATOR_LED_1, false);
|
||||||
|
wait_ms(100);
|
||||||
|
writePin(LAYER_INDICATOR_LED_0, true);
|
||||||
|
writePin(LAYER_INDICATOR_LED_1, true);
|
||||||
|
wait_ms(100);
|
||||||
|
writePin(LAYER_INDICATOR_LED_0, false);
|
||||||
|
writePin(LAYER_INDICATOR_LED_1, true);
|
||||||
|
wait_ms(100);
|
||||||
|
writePin(LAYER_INDICATOR_LED_0, false);
|
||||||
|
writePin(LAYER_INDICATOR_LED_1, false);
|
||||||
|
wait_ms(100);
|
||||||
|
}
|
||||||
|
|
||||||
matrix_init_user();
|
matrix_init_user();
|
||||||
}
|
}
|
||||||
@@ -47,5 +81,3 @@ void led_set_kb(uint8_t usb_led) {
|
|||||||
|
|
||||||
led_set_user(usb_led);
|
led_set_user(usb_led);
|
||||||
}
|
}
|
||||||
|
|
||||||
*/
|
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
#pragma once
|
||||||
|
#define TAPPING_TOGGLE 2
|
||||||
@@ -28,14 +28,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
| |---------|---------|---------|---------|
|
| |---------|---------|---------|---------|
|
||||||
| | 1 | 2 | 3 | Tab |
|
| | 1 | 2 | 3 | Tab |
|
||||||
|-------------|---------|---------|---------|---------|
|
|-------------|---------|---------|---------|---------|
|
||||||
| Left mouse | MO(SUB) | 0 | . | Enter |
|
| Left mouse | TT(SUB) | 0 | . | Enter |
|
||||||
\-----------------------------------------------------'
|
\-----------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[_BASE] = LAYOUT( /* Base */
|
[_BASE] = LAYOUT(
|
||||||
KC_7, KC_8, KC_9, KC_BSPC,
|
KC_7, KC_8, KC_9, KC_BSPC,
|
||||||
KC_4, KC_5, KC_6, KC_ESC,
|
KC_4, KC_5, KC_6, KC_ESC,
|
||||||
KC_1, KC_2, KC_3, KC_TAB,
|
KC_1, KC_2, KC_3, KC_TAB,
|
||||||
KC_BTN1, MO(_SUB), KC_0, KC_DOT, KC_ENTER
|
KC_BTN1, TT(_SUB), KC_0, KC_DOT, KC_ENTER
|
||||||
),
|
),
|
||||||
/*
|
/*
|
||||||
SUB LAYER
|
SUB LAYER
|
||||||
@@ -88,19 +88,34 @@ void led_set_user(uint8_t usb_led) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
/* Custom encoder control - handles CW/CCW turning of encoder
|
||||||
|
* Default behavior:
|
||||||
|
* main layer:
|
||||||
|
* CW: move mouse right
|
||||||
|
* CCW: move mouse left
|
||||||
|
* other layers:
|
||||||
|
* CW: = (equals/plus - increase slider in Adobe products)
|
||||||
|
* CCW: - (minus/underscore - decrease slider in adobe products)
|
||||||
|
*/
|
||||||
if (index == 0) {
|
if (index == 0) {
|
||||||
if (layer_state && 0x1) {
|
switch (biton32(layer_state)) {
|
||||||
if (clockwise) {
|
case _BASE:
|
||||||
tap_code(KC_VOLU);
|
// main layer - move mouse right (CW) and left (CCW)
|
||||||
} else {
|
if (clockwise) {
|
||||||
tap_code(KC_VOLD);
|
tap_code(KC_MS_R);
|
||||||
}
|
} else {
|
||||||
} else {
|
tap_code(KC_MS_L);
|
||||||
if (clockwise) {
|
}
|
||||||
tap_code(KC_MS_R);
|
break;
|
||||||
} else {
|
|
||||||
tap_code(KC_MS_L);
|
default:
|
||||||
}
|
// other layers - =/+ (quals/plus) (CW) and -/_ (minus/underscore) (CCW)
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_EQL);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_MINS);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
#pragma once
|
||||||
|
#define TAPPING_TOGGLE 2
|
||||||
@@ -0,0 +1,163 @@
|
|||||||
|
/* Copyright 2019 imchipwood
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
#define _BASE 0
|
||||||
|
#define _SUB 1
|
||||||
|
#define _DBG 2
|
||||||
|
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/*
|
||||||
|
BASE LAYER
|
||||||
|
/-----------------------------------------------------`
|
||||||
|
| | 7 | 8 | 9 | Bkspc |
|
||||||
|
| |---------|---------|---------|---------|
|
||||||
|
| | 4 | 5 | 6 | + |
|
||||||
|
| |---------|---------|---------|---------|
|
||||||
|
| | 1 | 2 | 3 | * |
|
||||||
|
|-------------|---------|---------|---------|---------|
|
||||||
|
| Play/Pause | TT(SUB) | 0 | . | Enter |
|
||||||
|
\-----------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[_BASE] = LAYOUT(
|
||||||
|
KC_P7, KC_P8, KC_P9, KC_BSPC,
|
||||||
|
KC_P4, KC_P5, KC_P6, KC_KP_PLUS,
|
||||||
|
KC_P1, KC_P2, KC_P3, KC_KP_ASTERISK,
|
||||||
|
KC_MPLY, TT(_SUB), KC_P0, KC_PDOT, KC_KP_ENTER
|
||||||
|
),
|
||||||
|
/*
|
||||||
|
SUB LAYER
|
||||||
|
/-----------------------------------------------------`
|
||||||
|
| | | | | Numlock |
|
||||||
|
| |---------|---------|---------|---------|
|
||||||
|
| | | | | - |
|
||||||
|
| |---------|---------|---------|---------|
|
||||||
|
| | | | | / |
|
||||||
|
|-------------|---------|---------|---------|---------|
|
||||||
|
| MO(_DBG) | | | | = |
|
||||||
|
\-----------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[_SUB] = LAYOUT(
|
||||||
|
_______, _______, _______, KC_NLCK,
|
||||||
|
_______, _______, _______, KC_KP_MINUS,
|
||||||
|
_______, _______, _______, KC_KP_SLASH,
|
||||||
|
MO(_DBG), _______, _______, _______, KC_KP_EQUAL
|
||||||
|
),
|
||||||
|
/*
|
||||||
|
DEBUG LAYER
|
||||||
|
/-----------------------------------------------------`
|
||||||
|
| | | | | Reset |
|
||||||
|
| |---------|---------|---------|---------|
|
||||||
|
| | | | | |
|
||||||
|
| |---------|---------|---------|---------|
|
||||||
|
| | | | | |
|
||||||
|
|-------------|---------|---------|---------|---------|
|
||||||
|
| | | | | |
|
||||||
|
\-----------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[_DBG] = LAYOUT(
|
||||||
|
_______, _______, _______, RESET,
|
||||||
|
_______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
};
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
// If console is enabled, it will print the matrix position and status of each key pressed
|
||||||
|
/*
|
||||||
|
#ifdef CONSOLE_ENABLE
|
||||||
|
uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed);
|
||||||
|
#endif
|
||||||
|
*/
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void keyboard_post_init_user(void) {
|
||||||
|
// Customise these values to desired behaviour
|
||||||
|
//debug_enable = true;
|
||||||
|
//debug_matrix = true;
|
||||||
|
//debug_keyboard = true;
|
||||||
|
//debug_mouse = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_init_user(void) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_scan_user(void) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void led_set_user(uint8_t usb_led) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
/* Custom encoder control - handles CW/CCW turning of encoder
|
||||||
|
* Cusotom behavior:
|
||||||
|
* main layer:
|
||||||
|
* CW: volume up
|
||||||
|
* CCW: volume down
|
||||||
|
* sub layer:
|
||||||
|
* CW: next media track
|
||||||
|
* CCW: prev media track
|
||||||
|
* debug layer:
|
||||||
|
* CW: brightness up
|
||||||
|
* CCW: brightness down
|
||||||
|
*/
|
||||||
|
if (index == 0) {
|
||||||
|
switch (biton32(layer_state)) {
|
||||||
|
case _BASE:
|
||||||
|
// main layer - volume up (CW) and down (CCW)
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_VOLU);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_VOLD);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case _SUB:
|
||||||
|
// sub layer - next track (CW) and previous track (CCW)
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_MNXT);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_MPRV);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case _DBG:
|
||||||
|
// debug layer - brightness up (CW) and brightness down (CCW)
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_BRIU);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_BRID);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// any other layer (shouldn't exist..) - volume up (CW) and down (CCW)
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_VOLU);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_VOLD);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,11 +3,8 @@
|
|||||||
|
|
||||||
#include "../eco.h"
|
#include "../eco.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, k013, k014, \
|
k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, k013, k014, \
|
||||||
k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114, \
|
k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114, \
|
||||||
|
|||||||
@@ -3,11 +3,8 @@
|
|||||||
|
|
||||||
#include "../eco.h"
|
#include "../eco.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, k013, k014, \
|
k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, k013, k014, \
|
||||||
k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114, \
|
k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114, \
|
||||||
|
|||||||
@@ -3,10 +3,8 @@
|
|||||||
|
|
||||||
#include "ergo42.h"
|
#include "ergo42.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -15,8 +13,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#ifndef FLIP_HALF
|
#ifndef FLIP_HALF
|
||||||
// Standard Keymap
|
// Standard Keymap
|
||||||
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
||||||
|
|||||||
@@ -3,10 +3,8 @@
|
|||||||
|
|
||||||
#include "ergodash.h"
|
#include "ergodash.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -15,8 +13,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#ifndef FLIP_HALF
|
#ifndef FLIP_HALF
|
||||||
// Standard Keymap
|
// Standard Keymap
|
||||||
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
||||||
|
|||||||
@@ -3,10 +3,8 @@
|
|||||||
|
|
||||||
#include "ergodash.h"
|
#include "ergodash.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -15,8 +13,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#ifndef FLIP_HALF
|
#ifndef FLIP_HALF
|
||||||
// Standard Keymap
|
// Standard Keymap
|
||||||
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
||||||
|
|||||||
@@ -77,10 +77,6 @@ uint8_t matrix_cols(void)
|
|||||||
|
|
||||||
void matrix_init(void)
|
void matrix_init(void)
|
||||||
{
|
{
|
||||||
// disable JTAG
|
|
||||||
MCUCR = (1<<JTD);
|
|
||||||
MCUCR = (1<<JTD);
|
|
||||||
|
|
||||||
unselect_rows();
|
unselect_rows();
|
||||||
init_cols();
|
init_cols();
|
||||||
|
|
||||||
|
|||||||
@@ -85,6 +85,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#define RGBW 1
|
#define RGBW 1
|
||||||
|
|
||||||
|
#define RGBLIGHT_SLEEP
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The debounce filtering reports a key/switch change directly,
|
* The debounce filtering reports a key/switch change directly,
|
||||||
* without any extra delay. After that the debounce logic will filter
|
* without any extra delay. After that the debounce logic will filter
|
||||||
@@ -109,6 +111,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define DRIVER_2_LED_TOTAL 24
|
#define DRIVER_2_LED_TOTAL 24
|
||||||
#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
|
#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
|
||||||
|
|
||||||
|
#define RGB_MATRIX_LED_PROCESS_LIMIT 5
|
||||||
|
#define RGB_MATRIX_LED_FLUSH_LIMIT 26
|
||||||
|
|
||||||
|
#define RGB_DISABLE_WHEN_USB_SUSPENDED true
|
||||||
|
|
||||||
// #define RGBLIGHT_COLOR_LAYER_0 0x00, 0x00, 0xFF
|
// #define RGBLIGHT_COLOR_LAYER_0 0x00, 0x00, 0xFF
|
||||||
/* #define RGBLIGHT_COLOR_LAYER_1 0x00, 0x00, 0xFF */
|
/* #define RGBLIGHT_COLOR_LAYER_1 0x00, 0x00, 0xFF */
|
||||||
/* #define RGBLIGHT_COLOR_LAYER_2 0xFF, 0x00, 0x00 */
|
/* #define RGBLIGHT_COLOR_LAYER_2 0xFF, 0x00, 0x00 */
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ extern inline void ergodox_right_led_set(uint8_t led, uint8_t n);
|
|||||||
|
|
||||||
extern inline void ergodox_led_all_set(uint8_t n);
|
extern inline void ergodox_led_all_set(uint8_t n);
|
||||||
|
|
||||||
|
keyboard_config_t keyboard_config;
|
||||||
|
|
||||||
bool i2c_initialized = 0;
|
bool i2c_initialized = 0;
|
||||||
i2c_status_t mcp23018_status = 0x20;
|
i2c_status_t mcp23018_status = 0x20;
|
||||||
|
|
||||||
@@ -43,6 +45,16 @@ void matrix_init_kb(void) {
|
|||||||
PORTD |= (1<<5 | 1<<4);
|
PORTD |= (1<<5 | 1<<4);
|
||||||
PORTE |= (1<<6);
|
PORTE |= (1<<6);
|
||||||
|
|
||||||
|
keyboard_config.raw = eeconfig_read_kb();
|
||||||
|
ergodox_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 );
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
if (keyboard_config.rgb_matrix_enable) {
|
||||||
|
rgb_matrix_set_flags(LED_FLAG_ALL);
|
||||||
|
} else {
|
||||||
|
rgb_matrix_set_flags(LED_FLAG_NONE);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
ergodox_blink_all_leds();
|
ergodox_blink_all_leds();
|
||||||
|
|
||||||
matrix_init_user();
|
matrix_init_user();
|
||||||
@@ -305,6 +317,7 @@ led_config_t g_led_config = { {
|
|||||||
} };
|
} };
|
||||||
|
|
||||||
void suspend_power_down_kb(void) {
|
void suspend_power_down_kb(void) {
|
||||||
|
rgb_matrix_set_color_all(0, 0, 0);
|
||||||
rgb_matrix_set_suspend_state(true);
|
rgb_matrix_set_suspend_state(true);
|
||||||
suspend_power_down_user();
|
suspend_power_down_user();
|
||||||
}
|
}
|
||||||
@@ -314,4 +327,65 @@ void suspend_power_down_kb(void) {
|
|||||||
suspend_wakeup_init_user();
|
suspend_wakeup_init_user();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ORYX_CONFIGURATOR
|
||||||
|
void keyboard_post_init_kb(void) {
|
||||||
|
rgb_matrix_enable_noeeprom();
|
||||||
|
keyboard_post_init_user();
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ORYX_CONFIGURATOR
|
||||||
|
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
switch (keycode) {
|
||||||
|
case LED_LEVEL:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
keyboard_config.led_level++;
|
||||||
|
if (keyboard_config.led_level > 4) {
|
||||||
|
keyboard_config.led_level = 0;
|
||||||
|
}
|
||||||
|
ergodox_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 );
|
||||||
|
eeconfig_update_kb(keyboard_config.raw);
|
||||||
|
layer_state_set_kb(layer_state);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
case TOGGLE_LAYER_COLOR:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
keyboard_config.disable_layer_led ^= 1;
|
||||||
|
if (keyboard_config.disable_layer_led)
|
||||||
|
rgb_matrix_set_color_all(0, 0, 0);
|
||||||
|
eeconfig_update_kb(keyboard_config.raw);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case RGB_TOG:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
switch (rgb_matrix_get_flags()) {
|
||||||
|
case LED_FLAG_ALL: {
|
||||||
|
rgb_matrix_set_flags(LED_FLAG_NONE);
|
||||||
|
keyboard_config.rgb_matrix_enable = false;
|
||||||
|
rgb_matrix_set_color_all(0, 0, 0);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default: {
|
||||||
|
rgb_matrix_set_flags(LED_FLAG_ALL);
|
||||||
|
keyboard_config.rgb_matrix_enable = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
eeconfig_update_kb(keyboard_config.raw);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
return process_record_user(keycode, record);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void eeconfig_init_kb(void) { // EEPROM is getting reset!
|
||||||
|
keyboard_config.raw = 0;
|
||||||
|
keyboard_config.led_level = 4;
|
||||||
|
keyboard_config.rgb_matrix_enable = true;
|
||||||
|
eeconfig_update_kb(keyboard_config.raw);
|
||||||
|
eeconfig_init_user();
|
||||||
|
}
|
||||||
@@ -107,6 +107,25 @@ inline void ergodox_led_all_set(uint8_t n)
|
|||||||
ergodox_right_led_3_set(n);
|
ergodox_right_led_3_set(n);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ORYX_CONFIGURATOR
|
||||||
|
enum ergodox_ez_keycodes {
|
||||||
|
LED_LEVEL = SAFE_RANGE,
|
||||||
|
TOGGLE_LAYER_COLOR,
|
||||||
|
EZ_SAFE_RANGE,
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef union {
|
||||||
|
uint32_t raw;
|
||||||
|
struct {
|
||||||
|
uint8_t led_level :3;
|
||||||
|
bool disable_layer_led :1;
|
||||||
|
bool rgb_matrix_enable :1;
|
||||||
|
};
|
||||||
|
} keyboard_config_t;
|
||||||
|
|
||||||
|
extern keyboard_config_t keyboard_config;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* LEFT HAND: LINES 115-122
|
* LEFT HAND: LINES 115-122
|
||||||
* RIGHT HAND: LINES 124-131
|
* RIGHT HAND: LINES 124-131
|
||||||
|
|||||||
@@ -6,7 +6,11 @@
|
|||||||
#define MDIA 2 // media keys
|
#define MDIA 2 // media keys
|
||||||
|
|
||||||
enum custom_keycodes {
|
enum custom_keycodes {
|
||||||
|
#ifdef ORYX_CONFIGURATOR
|
||||||
|
EPRM = EZ_SAFE_RANGE,
|
||||||
|
#else
|
||||||
EPRM = SAFE_RANGE,
|
EPRM = SAFE_RANGE,
|
||||||
|
#endif
|
||||||
VRSN,
|
VRSN,
|
||||||
RGB_SLD
|
RGB_SLD
|
||||||
};
|
};
|
||||||
@@ -164,7 +168,7 @@ void matrix_init_user(void) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Runs whenever there is a layer state change.
|
// Runs whenever there is a layer state change.
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
ergodox_board_led_off();
|
ergodox_board_led_off();
|
||||||
ergodox_right_led_1_off();
|
ergodox_right_led_1_off();
|
||||||
ergodox_right_led_2_off();
|
ergodox_right_led_2_off();
|
||||||
|
|||||||
@@ -54,6 +54,8 @@ ARMV = 7
|
|||||||
# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
|
# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
|
||||||
OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000
|
OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000
|
||||||
|
|
||||||
|
BOOTLOADER = dfu
|
||||||
|
|
||||||
# Build Options
|
# Build Options
|
||||||
# comment out to disable the options.
|
# comment out to disable the options.
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -54,6 +54,8 @@ ARMV = 7
|
|||||||
# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
|
# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
|
||||||
OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000
|
OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000
|
||||||
|
|
||||||
|
BOOTLOADER = dfu
|
||||||
|
|
||||||
# Build Options
|
# Build Options
|
||||||
# comment out to disable the options.
|
# comment out to disable the options.
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -3,10 +3,8 @@
|
|||||||
|
|
||||||
#include "ergotravel.h"
|
#include "ergotravel.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -15,8 +13,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
|
L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
|
||||||
L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
|
L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
|
||||||
|
|||||||
@@ -3,10 +3,8 @@
|
|||||||
|
|
||||||
#include "fortitude60.h"
|
#include "fortitude60.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -15,8 +13,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
// Standard Keymap
|
// Standard Keymap
|
||||||
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
|
|||||||
@@ -2,10 +2,8 @@
|
|||||||
|
|
||||||
#include "dactyl_manuform.h"
|
#include "dactyl_manuform.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -14,8 +12,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#ifndef FLIP_HALF
|
#ifndef FLIP_HALF
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \
|
L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
#include "62key.h"
|
#include "62key.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -895,13 +895,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
/* Emoji
|
/* Emoji
|
||||||
* ,-----------------------------------------------------------------------------------.
|
* ,-----------------------------------------------------------------------------------.
|
||||||
* | | | | | | | | | | | | |
|
* | 💕 | 😢 | 😩 | 😍 | 😏 | 😂 | ♻ | 😒 | 🎶 | 👌 | 😔 | 😌 |
|
||||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
* | | | | | | | | | | | | |
|
* | 👍 | 🙏 | 😁 | 😅 | 😳 | 😊 | ❤ | 👋 | 😘 | 🙌 | 😎 | 🙈 |
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
* | | | | | | | | | | | | |
|
* | 👎 | 😴 | 👏 | 😭 | ✌ | 💔 | ☀ | 😊 | 😉 | 🌔 | 😕 | 🙉 |
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
* | | | | | | | | | | | | |
|
* | 💩 | 👀 | 💯 | | 💀 | 😈 | 😇 | 😱 | | 😋 | 😞 | 🙊 |
|
||||||
* `-----------------------------------------------------------------------------------'
|
* `-----------------------------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[_EMOJI] = LAYOUT(
|
[_EMOJI] = LAYOUT(
|
||||||
|
|||||||
@@ -104,13 +104,6 @@ uint8_t matrix_cols(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void matrix_init(void) {
|
void matrix_init(void) {
|
||||||
|
|
||||||
// To use PORTF disable JTAG with writing JTD bit twice within four cycles.
|
|
||||||
#if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) || defined(__AVR_ATmega32U4__))
|
|
||||||
MCUCR |= _BV(JTD);
|
|
||||||
MCUCR |= _BV(JTD);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// initialize row and col
|
// initialize row and col
|
||||||
unselect_rows();
|
unselect_rows();
|
||||||
init_cols();
|
init_cols();
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
#ifndef REV1_H
|
#ifndef REV1_H
|
||||||
#define REV1_H
|
#define REV1_H
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#define XXX KC_NO
|
#define XXX KC_NO
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
#include "../helix.h"
|
#include "../helix.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
#ifdef RGBLIGHT_ENABLE
|
||||||
@@ -19,9 +18,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef FLIP_HALF
|
#ifndef FLIP_HALF
|
||||||
// Standard Keymap
|
// Standard Keymap
|
||||||
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
||||||
|
|||||||
@@ -3,10 +3,8 @@
|
|||||||
|
|
||||||
#include "../helix.h"
|
#include "../helix.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -15,9 +13,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
|
|
||||||
#if HELIX_ROWS == 3
|
#if HELIX_ROWS == 3
|
||||||
#ifndef FLIP_HALF
|
#ifndef FLIP_HALF
|
||||||
// Standard Keymap
|
// Standard Keymap
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
#include "../helix.h"
|
#include "../helix.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
#ifdef RGBLIGHT_ENABLE
|
||||||
@@ -19,9 +18,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
|
|
||||||
#if HELIX_ROWS == 4
|
#if HELIX_ROWS == 4
|
||||||
#ifndef FLIP_HALF
|
#ifndef FLIP_HALF
|
||||||
// Standard Keymap
|
// Standard Keymap
|
||||||
|
|||||||
@@ -26,10 +26,6 @@ host_driver_t rn42_driver = {
|
|||||||
|
|
||||||
void rn42_init(void)
|
void rn42_init(void)
|
||||||
{
|
{
|
||||||
// JTAG disable for PORT F. write JTD bit twice within four cycles.
|
|
||||||
MCUCR |= (1<<JTD);
|
|
||||||
MCUCR |= (1<<JTD);
|
|
||||||
|
|
||||||
// PF7: BT connection control(high: connect, low: disconnect)
|
// PF7: BT connection control(high: connect, low: disconnect)
|
||||||
rn42_autoconnect();
|
rn42_autoconnect();
|
||||||
|
|
||||||
|
|||||||
@@ -172,10 +172,6 @@ uint8_t matrix_cols(void)
|
|||||||
|
|
||||||
void matrix_init(void)
|
void matrix_init(void)
|
||||||
{
|
{
|
||||||
// To use PORTF disable JTAG with writing JTD bit twice within four cycles.
|
|
||||||
MCUCR |= (1<<JTD);
|
|
||||||
MCUCR |= (1<<JTD);
|
|
||||||
|
|
||||||
// initialize row and col
|
// initialize row and col
|
||||||
setup_io_pins();
|
setup_io_pins();
|
||||||
setup_leds();
|
setup_leds();
|
||||||
|
|||||||
@@ -77,10 +77,6 @@ uint8_t matrix_cols(void)
|
|||||||
|
|
||||||
void matrix_init(void)
|
void matrix_init(void)
|
||||||
{
|
{
|
||||||
// disable JTAG
|
|
||||||
MCUCR = (1<<JTD);
|
|
||||||
MCUCR = (1<<JTD);
|
|
||||||
|
|
||||||
unselect_rows();
|
unselect_rows();
|
||||||
init_cols();
|
init_cols();
|
||||||
|
|
||||||
|
|||||||
@@ -53,6 +53,8 @@ ARMV = 7
|
|||||||
# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
|
# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
|
||||||
OPT_DEFS = -DCORTEX_VTOR_INIT=0x00001000
|
OPT_DEFS = -DCORTEX_VTOR_INIT=0x00001000
|
||||||
|
|
||||||
|
BOOTLOADER = dfu
|
||||||
|
|
||||||
# Build Options
|
# Build Options
|
||||||
# comment out to disable the options.
|
# comment out to disable the options.
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -59,6 +59,8 @@ OPT_DEFS =
|
|||||||
DFU_ARGS = -d 1c11:b007
|
DFU_ARGS = -d 1c11:b007
|
||||||
DFU_SUFFIX_ARGS = -p b007 -v 1c11
|
DFU_SUFFIX_ARGS = -p b007 -v 1c11
|
||||||
|
|
||||||
|
BOOTLOADER = dfu
|
||||||
|
|
||||||
# Build Options
|
# Build Options
|
||||||
# comment out to disable the options.
|
# comment out to disable the options.
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -2,10 +2,8 @@
|
|||||||
|
|
||||||
#include "iris.h"
|
#include "iris.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -14,8 +12,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
||||||
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
||||||
|
|||||||
@@ -2,10 +2,8 @@
|
|||||||
|
|
||||||
#include "iris.h"
|
#include "iris.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -14,8 +12,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
||||||
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
||||||
|
|||||||
@@ -2,10 +2,8 @@
|
|||||||
|
|
||||||
#include "iris.h"
|
#include "iris.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -14,8 +12,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
||||||
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
||||||
|
|||||||
@@ -2,10 +2,8 @@
|
|||||||
|
|
||||||
#include "levinson.h"
|
#include "levinson.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -14,8 +12,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#ifndef FLIP_HALF
|
#ifndef FLIP_HALF
|
||||||
// Standard Keymap
|
// Standard Keymap
|
||||||
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
||||||
|
|||||||
@@ -2,10 +2,8 @@
|
|||||||
|
|
||||||
#include "levinson.h"
|
#include "levinson.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -14,8 +12,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#ifndef FLIP_HALF
|
#ifndef FLIP_HALF
|
||||||
// Standard Keymap
|
// Standard Keymap
|
||||||
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
||||||
|
|||||||
@@ -2,10 +2,8 @@
|
|||||||
|
|
||||||
#include "levinson.h"
|
#include "levinson.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
|
|||||||
@@ -2,10 +2,8 @@
|
|||||||
|
|
||||||
#include "nyquist.h"
|
#include "nyquist.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -14,8 +12,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#ifndef FLIP_HALF
|
#ifndef FLIP_HALF
|
||||||
// Standard Keymap
|
// Standard Keymap
|
||||||
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
||||||
|
|||||||
@@ -2,10 +2,8 @@
|
|||||||
|
|
||||||
#include "nyquist.h"
|
#include "nyquist.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -14,8 +12,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#ifndef FLIP_HALF
|
#ifndef FLIP_HALF
|
||||||
// Standard Keymap
|
// Standard Keymap
|
||||||
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
||||||
|
|||||||
@@ -2,10 +2,8 @@
|
|||||||
|
|
||||||
#include "rorschach.h"
|
#include "rorschach.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -14,8 +12,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
||||||
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
#include "viterbi.h"
|
#include "viterbi.h"
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -12,8 +11,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#ifndef FLIP_HALF
|
#ifndef FLIP_HALF
|
||||||
// Standard Keymap
|
// Standard Keymap
|
||||||
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
||||||
|
|||||||
@@ -1,14 +1,9 @@
|
|||||||
#include "launchpad.h"
|
#include "launchpad.h"
|
||||||
|
|
||||||
void matrix_init_kb(void) {
|
void matrix_init_kb(void) {
|
||||||
|
|
||||||
// JTAG disable for PORT F. write JTD bit twice within four cycles.
|
|
||||||
MCUCR |= (1<<JTD);
|
|
||||||
MCUCR |= (1<<JTD);
|
|
||||||
|
|
||||||
// Undo init of RX LED, we use that port currently
|
// Undo init of RX LED, we use that port currently
|
||||||
//DDRB &= ~(1<<0);
|
//DDRB &= ~(1<<0);
|
||||||
|
|
||||||
matrix_init_user();
|
matrix_init_user();
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -3,11 +3,8 @@
|
|||||||
|
|
||||||
#include "../launchpad.h"
|
#include "../launchpad.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
K00, K01, \
|
K00, K01, \
|
||||||
K10, K11, \
|
K10, K11, \
|
||||||
@@ -21,4 +18,4 @@
|
|||||||
{ K30, K31 } \
|
{ K30, K31 } \
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -2,11 +2,8 @@
|
|||||||
|
|
||||||
#include "lets_split.h"
|
#include "lets_split.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
||||||
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
||||||
|
|||||||
@@ -2,10 +2,8 @@
|
|||||||
|
|
||||||
#include "lets_split.h"
|
#include "lets_split.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -14,8 +12,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#ifndef FLIP_HALF
|
#ifndef FLIP_HALF
|
||||||
// Standard Keymap
|
// Standard Keymap
|
||||||
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
||||||
|
|||||||
@@ -1,12 +1,9 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#define DISABLE_JTAG // The keyboard uses PF4 and PF7, which are used by JTAG.
|
|
||||||
|
|
||||||
#include "lets_split.h"
|
#include "lets_split.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
@@ -15,8 +12,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
#ifndef FLIP_HALF
|
#ifndef FLIP_HALF
|
||||||
// Standard Keymap
|
// Standard Keymap
|
||||||
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
This is the c configuration file for the keymap
|
||||||
|
|
||||||
|
Copyright 2012 Jun Wako <[email protected]>
|
||||||
|
Copyright 2015 Jack Humbert
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
// place overrides here
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||||
|
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||||
|
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||||
|
// entirely and just use numbers.
|
||||||
|
enum layers {
|
||||||
|
_QWERTY,
|
||||||
|
_LOWER,
|
||||||
|
_RAISE,
|
||||||
|
_FUNCTION,
|
||||||
|
_ADJUST,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define LOWER MO(_LOWER)
|
||||||
|
#define RAISE MO(_RAISE)
|
||||||
|
#define FUNCTION MO(_FUNCTION)
|
||||||
|
#define ADJUST MO(_ADJUST)
|
||||||
|
|
||||||
|
// Defines for task manager and such
|
||||||
|
#define CALTDEL LCTL(LALT(KC_DEL))
|
||||||
|
#define TSKMGR LCTL(LSFT(KC_ESC))
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
/* Qwerty
|
||||||
|
* ,-----------------------------------------------------------------------------------.
|
||||||
|
* | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||||
|
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
|
* | Tab | A | S | D | F | G | H | J | K | L | ; | " |
|
||||||
|
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
|
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||||
|
* `-----------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[_QWERTY] = LAYOUT( \
|
||||||
|
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||||
|
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
|
||||||
|
_______, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Lower
|
||||||
|
* ,-----------------------------------------------------------------------------------.
|
||||||
|
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
||||||
|
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
|
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
|
||||||
|
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
|
* | | F7 | F8 | F9 | F10 | F11 | F12 | | | Home | End | |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||||
|
* `-----------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[_LOWER] = LAYOUT( \
|
||||||
|
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||||
|
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||||
|
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_HOME, KC_END, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Raise
|
||||||
|
* ,-----------------------------------------------------------------------------------.
|
||||||
|
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||||
|
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
|
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
|
||||||
|
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
|
* | | F7 | F8 | F9 | F10 | F11 | F12 | | |Pg Up |Pg Dn | |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||||
|
* `-----------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[_RAISE] = LAYOUT( \
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||||
|
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||||
|
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PGUP, KC_PGDN, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Adjust (Lower + Raise)
|
||||||
|
* ,-----------------------------------------------------------------------------------.
|
||||||
|
* | RESET| | | | | | |RGBMOD|RGBVAI|RGBSAI|RGBHUI|caltde|
|
||||||
|
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
|
* | | | | | | | |RGBRMO|RGBVAD|RGBSAD|RGBHUD|RGBTOG|
|
||||||
|
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | | | | |BLSTEP|
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | | | | | |
|
||||||
|
* `-----------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[_ADJUST] = LAYOUT( \
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_VAI, RGB_SAI, RGB_HUI, CALTDEL, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_VAD, RGB_SAD, RGB_HUD, RGB_TOG, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_STEP, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Function
|
||||||
|
* ,-----------------------------------------------------------------------------------.
|
||||||
|
* | | | | | | | | | Up | | | |
|
||||||
|
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | Left | Down |Right | | |
|
||||||
|
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
|
* | Caps | | | | | | | | | | | |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | | | | |
|
||||||
|
* `-----------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[_FUNCTION] = LAYOUT( \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, \
|
||||||
|
KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
uint32_t layer_state_set_user(uint32_t state) {
|
||||||
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
|
}
|
||||||
Whitespace-only changes.
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
#include "lily58.h"
|
#include "lily58.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
#ifdef RGBLIGHT_ENABLE
|
||||||
@@ -18,8 +17,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#ifndef FLIP_HALF
|
#ifndef FLIP_HALF
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
||||||
@@ -62,4 +59,4 @@
|
|||||||
{ R30, R31, R32, R33, R34, R35 }, \
|
{ R30, R31, R32, R33, R34, R35 }, \
|
||||||
{ KC_NO, R41, R42, R43, R44, R45 } \
|
{ KC_NO, R41, R42, R43, R44, R45 } \
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -102,11 +102,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
switch (rgb_matrix_get_flags()) {
|
switch (rgb_matrix_get_flags()) {
|
||||||
case LED_FLAG_ALL: {
|
case LED_FLAG_ALL: {
|
||||||
rgb_matrix_set_flags(LED_FLAG_KEYLIGHT);
|
rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER);
|
||||||
rgb_matrix_set_color_all(0, 0, 0);
|
rgb_matrix_set_color_all(0, 0, 0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case LED_FLAG_KEYLIGHT: {
|
case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: {
|
||||||
rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
|
rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
|
||||||
rgb_matrix_set_color_all(0, 0, 0);
|
rgb_matrix_set_color_all(0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -237,5 +237,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
//#define EE_HANDS
|
//#define EE_HANDS
|
||||||
#define I2C_MASTER_LEFT
|
#define I2C_MASTER_LEFT
|
||||||
//#define I2C_MASTER_RIGHT
|
//#define I2C_MASTER_RIGHT
|
||||||
|
|
||||||
#define DISABLE_JTAG
|
|
||||||
@@ -3,11 +3,8 @@
|
|||||||
|
|
||||||
#include "../minidox.h"
|
#include "../minidox.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
//void promicro_bootloader_jmp(bool program);
|
|
||||||
|
|
||||||
// readability
|
// readability
|
||||||
#define ___ KC_NO
|
#define ___ KC_NO
|
||||||
|
|
||||||
|
|||||||
Loaded 100 of 203 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user