Compare commits
30 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
e3f67e6e7f | ||
|
31cae1f1bd | ||
|
0092be5925 | ||
|
381f4e6404 | ||
|
b713feb6f2 | ||
|
d7f46f3466 | ||
|
452d23da52 | ||
|
7f7f763598 | ||
|
2b8a82fb9d | ||
|
8e99fbc884 | ||
|
524053e3c0 | ||
|
19b02bf267 | ||
|
298ac18dfa | ||
|
c6ce959f49 | ||
|
3b801880a0 | ||
|
21a37a5245 | ||
|
3cff95c8df | ||
|
93eabc4b2c | ||
|
01f91bf6f4 | ||
|
2c1ba03a98 | ||
|
27d32378b5 | ||
|
3f3d0551cd | ||
|
f746174874 | ||
|
a8daf3ffba | ||
|
3b4d26e344 | ||
|
767f7a8cf0 | ||
|
ee176f2b27 | ||
|
c72c1db68b | ||
|
d469aaa166 | ||
|
d54de1c5f2 |
@@ -1,6 +1,6 @@
|
||||
# Setting up Eclipse for QMK Development
|
||||
|
||||
[Eclipse](https://en.wikipedia.org/wiki/Eclipse_(software)) is an open-source [Integrated Development Environment](https://en.wikipedia.org/wiki/Integrated_development_environment) (IDE) widely used for Java development, but with an extensible plugin system that allows to customize it for other languages and usages.
|
||||
[Eclipse][1] is an open-source [Integrated Development Environment](https://en.wikipedia.org/wiki/Integrated_development_environment) (IDE) widely used for Java development, but with an extensible plugin system that allows to customize it for other languages and usages.
|
||||
|
||||
Using an IDE such as Eclipse provides many advantages over a plain text editor, such as:
|
||||
* intelligent code completion
|
||||
@@ -17,7 +17,7 @@ Note that this set-up has been tested on Ubuntu 16.04 only for the moment.
|
||||
|
||||
# Prerequisites
|
||||
## Build Environment
|
||||
Before starting, you must have followed the [Getting Started](home.md#getting-started) section corresponding to your system. In particular, you must have been able to build the firmware with [the `make` command](../#the-make-command).
|
||||
Before starting, you must have followed the [Getting Started](README.md#getting-started) section corresponding to your system. In particular, you must have been able to build the firmware with [the `make` command](../#the-make-command).
|
||||
|
||||
## Java
|
||||
Eclipse is a Java application, so you will need to install Java 8 or more recent to be able to run it. You may choose between the JRE or the JDK, the latter being useful if you intend to do Java development.
|
||||
@@ -84,3 +84,5 @@ We will now configure a make target that cleans the project and builds the keyma
|
||||
7. (Optional) Toggle the <kbd>Hide Empty Folders</kbd> icon button above the targets tree to only show your build target.
|
||||
8. Double-click the build target you created to trigger a build.
|
||||
9. Select the <kbd>Console</kbd> view at the bottom to view the running build.
|
||||
|
||||
[1]: https://en.wikipedia.org/wiki/Eclipse_(software)
|
@@ -116,7 +116,7 @@ These are the values you can use for the `mod` in `MT()` and `OSM()`:
|
||||
* MOD_HYPR
|
||||
* MOD_MEH
|
||||
|
||||
These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped. Note however, that you cannot mix right and left side modifiers.
|
||||
These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped.
|
||||
|
||||
We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact:
|
||||
|
||||
@@ -129,6 +129,12 @@ We've added shortcuts to make common modifier/tap (mod-tap) mappings more compac
|
||||
* `LCAG_T(kc)` - is CtrlAltGui when held and *kc* when tapped
|
||||
* `MEH_T(kc)` - is like Hyper, but not as cool -- does not include the Cmd/Win key, so just sends Alt+Ctrl+Shift.
|
||||
|
||||
{% hint style='info' %}
|
||||
Due to the way that keycodes are structured, any modifiers specified as part of `kc`, such as `LCTL()` or `KC_LPRN`, will only activate when held instead of tapped.
|
||||
|
||||
Additionally, if there is at least one right modifier, any other modifiers will turn into their right equivalents, so it is not possible to "mix and match" the two.
|
||||
{% endhint %}
|
||||
|
||||
# One Shot Keys
|
||||
|
||||
One shot keys are keys that remain active until the next key is pressed, and then are released. This allows you to type keyboard combinations without pressing more than one key at a time. These keys are usually called "Sticky keys" or "Dead keys".
|
||||
|
@@ -82,7 +82,7 @@ The pitch standard (`PITCH_STANDARD_A`) is 440.0f by default - to change this, a
|
||||
|
||||
#define PITCH_STANDARD_A 432.0f
|
||||
|
||||
You can completely disable Music Mode as well. This is useful, if you're pressed for space on your controller. To disable it, add this to your `confid.h`:
|
||||
You can completely disable Music Mode as well. This is useful, if you're pressed for space on your controller. To disable it, add this to your `config.h`:
|
||||
|
||||
#define NO_MUSIC_MODE
|
||||
|
||||
|
@@ -27,3 +27,38 @@ Shortcuts for bootmagic options. You can use these even when bootmagic is off.
|
||||
|`MAGIC_UNHOST_NKRO` | |Force NKRO off |
|
||||
|`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Left Alt and GUI |
|
||||
|`MAGIC_TOGGLE_NKRO` | |Turn NKRO on or off |
|
||||
|
||||
|
||||
## Bootmagc Hotkeys
|
||||
|
||||
Use this by holding the SPACEBAR and the documented key while
|
||||
plugging in the USB connection. e.g. to get into bootloader mode
|
||||
hold `SPACE` and `B` while plugging in USB.
|
||||
|
||||
|
||||
|Key |Description |
|
||||
|-----------|------------------------------------------------------------------------|
|
||||
|`ESC` | Skip bootmagic and saved eeprom configuration |
|
||||
|`B` | Enter bootloader instead of firmware |
|
||||
|`BACKSPACE`| Clear the saved settings from flash |
|
||||
|`LCTRL` | Swap `Control` and `Capslock` and save into flash |
|
||||
|`CAPSLOCK` | Swap `Capslock` and `Control` and save into flash |
|
||||
|`LALT` | Swap Left `Alt` and `GUI` and save into flash, e.g. for OSX Opt and Cmd|
|
||||
|`RALT` | Swap Right `Alt` and `GUI` and save into flash |
|
||||
|`LGUI` | Disable GUI key - e.g. disable Windows key during gaming |
|
||||
|`GRAVE` | Swap ' and `ESC` and save into flash |
|
||||
|`BACKSLASH`| Swap Blackslash and Backspace and save into flash |
|
||||
|`N` | Enable NKRO (N Key Roll Over) |
|
||||
|`0` | Make Layer 0 the default layer at bootup, e.g. switch to dvorak |
|
||||
|`1` | Make Layer 1 the default layer at bootup |
|
||||
|`2` | Make Layer 2 the default layer at bootup |
|
||||
|`3` | Make Layer 3 the default layer at bootup |
|
||||
|`4` | Make Layer 4 the default layer at bootup |
|
||||
|`5` | Make Layer 5 the default layer at bootup |
|
||||
|`6` | Make Layer 6 the default layer at bootup |
|
||||
|`7` | Make Layer 7 the default layer at bootup |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -22,7 +22,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch(keycode) {
|
||||
case MY_CUSTOM_MACRO:
|
||||
SEND_STRING("QMK is the best thing ever!"); // this is our macro!
|
||||
return false; break;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@@ -56,10 +56,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch(keycode) {
|
||||
case MY_CUSTOM_MACRO:
|
||||
SEND_STRING("QMK is the best thing ever!");
|
||||
return false; break;
|
||||
return false;
|
||||
case MY_OTHER_MACRO:
|
||||
SEND_STRING(SS_LCTRL("ac")); // selects all and copies
|
||||
return false; break;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
@@ -5,17 +5,17 @@ Mousekeys is a feature that allows you to emulate a mouse using your keyboard. Y
|
||||
|
||||
## Adding Mousekeys to a Keymap
|
||||
|
||||
There are two steps to adding Mousekeys support to your keyboard. You must enable support in the Makefile and you must map mouse actions to keys on your keyboard.
|
||||
There are two steps to adding Mousekeys support to your keyboard. You must enable support in the `rules.mk` file and you must map mouse actions to keys on your keyboard.
|
||||
|
||||
### Adding Mousekeys Support in the `Makefile`
|
||||
### Adding Mousekeys Support in the `rules.mk`
|
||||
|
||||
To add support for Mousekeys you simply need to add a single line to your keymap's `Makefile`:
|
||||
To add support for Mousekeys you simply need to add a single line to your keymap's `rules.mk`:
|
||||
|
||||
```
|
||||
MOUSEKEY_ENABLE = yes
|
||||
```
|
||||
|
||||
You can see an example here: https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/keymaps/mouse_keys/Makefile
|
||||
You can see an example here: https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/66/keymaps/mouse_keys/rules.mk
|
||||
|
||||
### Mapping Mouse Actions to Keyboard Keys
|
||||
|
||||
@@ -40,7 +40,7 @@ You can use these keycodes within your keymap to map button presses to mouse act
|
||||
|`KC_MS_ACCEL1` |`KC_ACL1`|Set mouse acceleration to 1|
|
||||
|`KC_MS_ACCEL2` |`KC_ACL2`|Set mouse acceleration to 2|
|
||||
|
||||
You can see an example in the `_ML` here: https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/keymaps/mouse_keys/keymap.c#L46
|
||||
You can see an example in the `_ML` here: https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/66/keymaps/mouse_keys/keymap.c#L46
|
||||
|
||||
## Configuring the Behavior of Mousekeys
|
||||
|
||||
|
@@ -37,6 +37,7 @@ Debian / Ubuntu example:
|
||||
sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi
|
||||
|
||||
Fedora / Red Hat example:
|
||||
|
||||
sudo dnf install gcc unzip wget zip dfu-util dfu-programmer avr-gcc avr-libc binutils-avr32-linux-gnu arm-none-eabi-gcc-cs arm-none-eabi-binutils-cs arm-none-eabi-newlib
|
||||
|
||||
## Nix
|
||||
@@ -131,7 +132,7 @@ docker run -e keymap=gwen -e keyboard=ergodox_ez --rm -v $('pwd'):/qmk:rw edasqu
|
||||
On Windows Docker seems to have issues with the VOLUME tag in Dockerfile, and `$('pwd')` won't print a Windows compliant path; use full path instead, like this:
|
||||
|
||||
```bash
|
||||
docker run -e keymap=default -e keyboard=ergobox_ez --rm -v D:/Users/Sacapuces/Documents/Repositories/qmk:/qmk:rw edasque/qmk_firmware
|
||||
docker run -e keymap=default -e keyboard=ergodox_ez --rm -v D:/Users/Sacapuces/Documents/Repositories/qmk:/qmk:rw edasque/qmk_firmware
|
||||
|
||||
```
|
||||
|
||||
|
@@ -4,7 +4,7 @@
|
||||
A line of 32-bit MCU's produced by a number of companies, such as Atmel, Cypress, Kinetis, NXP, ST, and TI.
|
||||
|
||||
## AVR
|
||||
A line of 8-bit MCU's produced by [Atmel](http://atmel.com). AVR was the original platform that TMK supported.
|
||||
A line of 8-bit MCU's produced by [Atmel](http://www.microchip.com/). AVR was the original platform that TMK supported.
|
||||
|
||||
## AZERTY
|
||||
The standard Français (French) keyboard layout. Named for the first 6 keys on the keyboard.
|
||||
|
@@ -366,7 +366,7 @@ This is a reference only. Each group of keys links to the page documenting their
|
||||
|`KC_RIGHT_ANGLE_BRACKET`|`KC_GT`/`KC_RABK` |`>` |
|
||||
|`KC_QUESTION` |`KC_QUES` |`?` |
|
||||
|
||||
## [Switching and Toggling Layers](feature_common_shortcuts.md#switching-and-toggling-layers)
|
||||
## [Switching and Toggling Layers](feature_advanced_keycodes.md#switching-and-toggling-layers)
|
||||
|
||||
|Key |Description |
|
||||
|---------------|----------------------------------------------------------------------------------|
|
||||
|
@@ -77,7 +77,7 @@ At the keyboard level we define a C macro (typically named `KEYMAP()`) which map
|
||||
|
||||
Notice how the second block of our `KEYMAP()` macro matches the Matrix Scanning array above? This macro is what will map the matrix scanning array to keycodes. However, if you look at a 17 key numpad you'll notice that it has 3 places where the matrix could have a switch but doesn't, due to larger keys. We have populated those spaces with `KC_NO` so that our keymap definition doesn't have to.
|
||||
|
||||
You can also use this macro to handle unusual matrix layouts, for example the [Clueboard rev 2](https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/rev2/rev2.h). Explaining that is outside the scope of this document.
|
||||
You can also use this macro to handle unusual matrix layouts, for example the [Clueboard rev 2](https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/66/rev2/rev2.h). Explaining that is outside the scope of this document.
|
||||
|
||||
##### Keycode Assignment
|
||||
|
||||
@@ -135,8 +135,8 @@ The `process_record()` function itself is deceptively simple, but hidden within
|
||||
* [`void process_record(keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/action.c#L128)
|
||||
* [`bool process_record_quantum(keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/master/quantum/quantum.c#L140)
|
||||
* [Map this record to a keycode](https://github.com/qmk/qmk_firmware/blob/master/quantum/quantum.c#L143)
|
||||
* [`bool process_record_kb(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/master/keyboards/cluecard/cluecard.c#L20)
|
||||
* [`bool process_record_user(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/master/keyboards/cluecard/keymaps/default/keymap.c#L58)
|
||||
* [`bool process_record_kb(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/card/card.c#L20)
|
||||
* [`bool process_record_user(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/card/keymaps/default/keymap.c#L58)
|
||||
* [`bool process_midi(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/master/quantum/process_keycode/process_midi.c#L102)
|
||||
* [`bool process_audio(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/master/quantum/process_keycode/process_audio.c#L10)
|
||||
* [`bool process_music(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/master/quantum/process_keycode/process_music.c#L69)
|
||||
|
@@ -1,228 +0,0 @@
|
||||
#include <avr/io.h>
|
||||
#include <util/twi.h>
|
||||
#include <avr/interrupt.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include "twi.h"
|
||||
|
||||
#ifndef F_SCL
|
||||
#define F_SCL 100000UL // SCL frequency
|
||||
#endif
|
||||
#ifndef PRESCALER
|
||||
#define PRESCALER 1
|
||||
#endif
|
||||
|
||||
// Limits the amount of we wait for any one i2c transaction.
|
||||
// Since were running SCL line 100kHz (=> 10μs/bit), and each transactions is
|
||||
// 9 bits, a single transaction will take around 90μs to complete.
|
||||
//
|
||||
// (F_CPU/SCL_CLOCK) => # of μC cycles to transfer a bit
|
||||
// poll loop takes at least 8 clock cycles to execute
|
||||
|
||||
#ifdef TWI_TIMEOUT
|
||||
#ifndef TWI_TX_SIZE
|
||||
#define TWI_TX_SIZE 9
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Wait for an twi operation to finish
|
||||
inline static
|
||||
void twi_wait(uint8_t status) {
|
||||
#ifdef TWI_TIMEOUT
|
||||
uint16_t lim = 0;
|
||||
while ( !(TWCR & (_BV(status))) && lim < (TWI_TX_SIZE+1)*(F_CPU/F_SCL)/8)
|
||||
lim++;
|
||||
#else
|
||||
while ( !(TWCR & (_BV(status))) );
|
||||
#endif
|
||||
}
|
||||
|
||||
void twi_master_init(void) {
|
||||
TWBR = (uint8_t) ((((F_CPU / F_SCL) / PRESCALER) - 16 ) / 2);
|
||||
}
|
||||
|
||||
void twi_slave_init(uint8_t address) {
|
||||
TWAR = address << 0; // slave i2c address
|
||||
TWCR = _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWEN);
|
||||
}
|
||||
|
||||
uint8_t twi_master_start(uint8_t address) {
|
||||
// reset TWI control register and transmit start
|
||||
TWCR = 0;
|
||||
TWCR = _BV(TWINT) | _BV(TWEN) | _BV(TWSTA);
|
||||
|
||||
twi_wait(TWINT);
|
||||
|
||||
// check if the start condition was successfully transmitted
|
||||
if (TW_STATUS != TW_START)
|
||||
return 1;
|
||||
|
||||
// set slave address and transmit
|
||||
TWDR = address;
|
||||
TWCR = _BV(TWINT) | _BV(TWEN);
|
||||
|
||||
twi_wait(TWINT);
|
||||
|
||||
// check if the device has acknowledged the READ / WRITE mode
|
||||
if ( (TW_STATUS != TW_MT_SLA_ACK) && (TW_STATUS != TW_MR_SLA_ACK) )
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void twi_master_stop(void) {
|
||||
// transmit STOP condition
|
||||
TWCR = _BV(TWINT) | _BV(TWEN) | _BV(TWSTO);
|
||||
|
||||
twi_wait(TWSTO);
|
||||
}
|
||||
|
||||
uint8_t twi_write(uint8_t data) {
|
||||
// load data into data register and start transmission of data
|
||||
TWDR = data;
|
||||
TWCR = _BV(TWINT) | _BV(TWEN);
|
||||
|
||||
twi_wait(TWINT);
|
||||
|
||||
if ( TW_STATUS != TW_MT_DATA_ACK )
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint8_t twi_read(bool ack) {
|
||||
// start TWI module and acknowledge data after reception
|
||||
if (ack)
|
||||
TWCR = _BV(TWINT) | _BV(TWEN) | _BV(TWEA);
|
||||
else
|
||||
TWCR = _BV(TWINT) | _BV(TWEN);
|
||||
|
||||
twi_wait(TWINT);
|
||||
|
||||
return TWDR;
|
||||
}
|
||||
|
||||
uint8_t twi_transmit(uint8_t address, uint8_t* data, uint16_t length) {
|
||||
if (twi_start(address | TW_WRITE))
|
||||
return 1;
|
||||
|
||||
for (uint16_t i = 0; i < length; i++) {
|
||||
if (twi_write(data[i]))
|
||||
return 1;
|
||||
}
|
||||
|
||||
twi_stop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint8_t twi_receive(uint8_t address, uint8_t* data, uint16_t length) {
|
||||
if (twi_start(address | TW_READ))
|
||||
return 1;
|
||||
|
||||
for (uint16_t i = 0; i < (length-1); i++) {
|
||||
data[i] = twi_read(true);
|
||||
}
|
||||
data[(length-1)] = twi_read(false);
|
||||
|
||||
twi_stop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint8_t twi_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length) {
|
||||
if (twi_start(devaddr | TW_WRITE))
|
||||
return 1;
|
||||
|
||||
twi_write(regaddr);
|
||||
|
||||
for (uint16_t i = 0; i < length; i++) {
|
||||
if (twi_write(data[i]))
|
||||
return 1;
|
||||
}
|
||||
|
||||
twi_stop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint8_t twi_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length)
|
||||
{
|
||||
if (twi_start(devaddr))
|
||||
return 1;
|
||||
|
||||
twi_write(regaddr);
|
||||
|
||||
if (twi_start(devaddr | TW_READ))
|
||||
return 1;
|
||||
|
||||
for (uint16_t i = 0; i < (length-1); i++) {
|
||||
data[i] = twi_read(true);
|
||||
}
|
||||
data[(length-1)] = twi_read(false);
|
||||
|
||||
twi_stop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint8_t buffer_address = 0;
|
||||
|
||||
ISR(TWI_vect) {
|
||||
uint8_t data;
|
||||
switch (TW_STATUS) {
|
||||
case TW_SR_SLA_ACK:
|
||||
buffer_address = 0xff;
|
||||
TWCR |= _BV(TWIE) | _BV(TWINT) | _BV(TWEA) | _BV(TWEN);
|
||||
break;
|
||||
case TW_SR_DATA_ACK:
|
||||
data = TWDR;
|
||||
if (buffer_address == 0xff) {
|
||||
// store address to read from later
|
||||
buffer_address = data;
|
||||
TWCR |= _BV(TWIE) | _BV(TWINT) | _BV(TWEA) | _BV(TWEN);
|
||||
} else {
|
||||
// store data from address and increment
|
||||
rxbuffer[buffer_address] = data;
|
||||
buffer_address++;
|
||||
|
||||
if (buffer_address < 0xFF) {
|
||||
// ack
|
||||
TWCR |= _BV(TWIE) | _BV(TWINT) | _BV(TWEA) | _BV(TWEN);
|
||||
} else {
|
||||
// nack
|
||||
TWCR &= ~_BV(TWEA);
|
||||
TWCR |= _BV(TWIE) | _BV(TWINT) | _BV(TWEN);
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
case TW_ST_SLA_ACK:
|
||||
case TW_ST_DATA_ACK:
|
||||
data = TWDR;
|
||||
|
||||
if (buffer_address == 0xFF) {
|
||||
buffer_address = data;
|
||||
}
|
||||
|
||||
TWDR = txbuffer[buffer_address];
|
||||
buffer_address++;
|
||||
|
||||
|
||||
if (buffer_address < 0xFF) {
|
||||
// ack
|
||||
TWCR |= _BV(TWIE) | _BV(TWINT) | _BV(TWEA) | _BV(TWEN);
|
||||
} else {
|
||||
// nack
|
||||
TWCR &= ~_BV(TWEA);
|
||||
TWCR |= _BV(TWIE) | _BV(TWINT) | _BV(TWEN);
|
||||
}
|
||||
break;
|
||||
case TW_BUS_ERROR:
|
||||
TWCR = 0;
|
||||
break;
|
||||
default:
|
||||
TWCR |= _BV(TWIE) | _BV(TWEA) | _BV(TWEN);
|
||||
break;
|
||||
}
|
||||
}
|
@@ -1,4 +0,0 @@
|
||||
#ifndef TWI_H
|
||||
#define TWI_H
|
||||
|
||||
#endif
|
@@ -14,6 +14,19 @@
|
||||
|
||||
static bool mouse_lock = false;
|
||||
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||
|
||||
// Cloud9 macros
|
||||
CLOUD9_TAB_LEFT,
|
||||
CLOUD9_TAB_RIGHT,
|
||||
CLOUD9_TAB_CLOSE,
|
||||
CLOUD9_GOTO_SYMBOL,
|
||||
CLOUD9_GOTO_LINE,
|
||||
CLOUD9_NAVIGATE,
|
||||
|
||||
};
|
||||
|
||||
// building instructions:
|
||||
// make atreus:dvorak_42_key
|
||||
|
||||
@@ -30,10 +43,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
},
|
||||
|
||||
[KEYNAV] = {
|
||||
{KC_ESC, MEH(KC_F9), RCTL(KC_Z), RCTL(KC_S), MEH(KC_F10), KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, },
|
||||
{MEH(KC_F11), MEH(KC_F12), RSFT(KC_TAB), KC_TAB, MEH(KC_A), KC_TRNS, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), },
|
||||
{MEH(KC_B), MEH(KC_C), MEH(KC_D), MEH(KC_E), MEH(KC_F), KC_TRNS, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDOWN, },
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE), }
|
||||
{KC_ESC, CLOUD9_GOTO_LINE, RCTL(KC_Z), RCTL(KC_S), MEH(KC_F10), KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, },
|
||||
{MEH(KC_F11), CLOUD9_GOTO_SYMBOL, RSFT(KC_TAB), KC_TAB, MEH(KC_A), KC_TRNS, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), },
|
||||
{MEH(KC_B), CLOUD9_NAVIGATE, CLOUD9_TAB_LEFT, CLOUD9_TAB_RIGHT, CLOUD9_TAB_CLOSE, KC_TRNS, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDOWN, },
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE), }
|
||||
},
|
||||
|
||||
[KEYSEL] = {
|
||||
@@ -64,6 +77,40 @@ const uint16_t PROGMEM fn_actions[] = {
|
||||
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if(record->event.pressed) {
|
||||
switch (keycode) {
|
||||
// Cloud9 macros
|
||||
case CLOUD9_TAB_LEFT:
|
||||
SEND_STRING(SS_LCTRL("["));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_TAB_RIGHT:
|
||||
SEND_STRING(SS_LCTRL("]"));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_TAB_CLOSE:
|
||||
SEND_STRING(SS_LALT("w"));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_GOTO_SYMBOL:
|
||||
SEND_STRING(SS_LSFT(SS_LCTRL("e")));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_GOTO_LINE:
|
||||
SEND_STRING(SS_LCTRL("g"));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_NAVIGATE:
|
||||
SEND_STRING(SS_LCTRL("e"));
|
||||
return true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
|
134
keyboards/clueboard/60/keymaps/yanfali/keymap.c
Normal file
134
keyboards/clueboard/60/keymaps/yanfali/keymap.c
Normal file
@@ -0,0 +1,134 @@
|
||||
#include "60.h"
|
||||
|
||||
#define _______ KC_TRNS
|
||||
|
||||
enum keyboard_layers {
|
||||
_BL,
|
||||
_FL,
|
||||
_CL,
|
||||
_YF
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
S_BSKTC = SAFE_RANGE,
|
||||
S_ODEJY,
|
||||
S_RCKBY,
|
||||
S_DOEDR,
|
||||
S_SCALE,
|
||||
S_ONEUP,
|
||||
S_COIN,
|
||||
S_SONIC,
|
||||
S_ZELDA
|
||||
};
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
float song_basketcase[][2] = SONG(BASKET_CASE);
|
||||
float song_ode_to_joy[][2] = SONG(ODE_TO_JOY);
|
||||
float song_rock_a_bye_baby[][2] = SONG(ROCK_A_BYE_BABY);
|
||||
float song_doe_a_deer[][2] = SONG(DOE_A_DEER);
|
||||
float song_scale[][2] = SONG(MUSIC_SCALE_SOUND);
|
||||
float song_coin[][2] = SONG(COIN_SOUND);
|
||||
float song_one_up[][2] = SONG(ONE_UP_SOUND);
|
||||
float song_sonic_ring[][2] = SONG(SONIC_RING);
|
||||
float song_zelda_puzzle[][2] = SONG(ZELDA_PUZZLE);
|
||||
#endif
|
||||
|
||||
const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Layer 0: Default Layer
|
||||
* ,-----------------------------------------------------------------.
|
||||
* |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| `|BSp|
|
||||
* |-----------------------------------------------------------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
|
||||
* |-----------------------------------------------------------------|
|
||||
* |MT(CTL, ESC)| A| S| D| F| G| H| J| K| L| ;| '|Enter |
|
||||
* |-----------------------------------------------------------------|
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0|
|
||||
* |-----------------------------------------------------------------'
|
||||
* |Ctrl |Alt|Gui | Space |Alt |Gui|Fn |Ctrl |
|
||||
* `-----------------------------------------------------------------'
|
||||
*/
|
||||
[_BL] = KEYMAP(
|
||||
KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_GRV, KC_BSPC,\
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, \
|
||||
MT(MOD_LCTL, KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_NUHS, KC_ENT, \
|
||||
KC_LSFT, KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, MO(_YF), \
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL),
|
||||
[_FL] = KEYMAP(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,_______,\
|
||||
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
|
||||
_______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
|
||||
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, MO(_YF), \
|
||||
_______,_______,_______, _______, _______, _______, MO(_FL), _______),
|
||||
[_CL] = KEYMAP(
|
||||
BL_STEP,S_BSKTC,S_ODEJY,S_RCKBY,S_DOEDR,S_SCALE,S_ONEUP,S_COIN, S_SONIC,S_ZELDA,_______,_______,_______,_______,_______,\
|
||||
_______, _______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, \
|
||||
_______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
|
||||
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, MO(_YF), \
|
||||
_______, _______, _______, _______, _______, _______, MO(_FL), _______),
|
||||
[_YF] = KEYMAP(
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,\
|
||||
_______,_______,KC_UP ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
|
||||
_______,KC_LEFT,KC_DOWN,KC_RIGHT,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
|
||||
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, MO(_YF), \
|
||||
_______, _______, _______, _______, _______, _______, MO(_FL), _______)
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case S_BSKTC:
|
||||
if (record->event.pressed) {
|
||||
stop_all_notes();
|
||||
PLAY_SONG(song_basketcase);
|
||||
}
|
||||
return false;
|
||||
case S_ODEJY:
|
||||
if (record->event.pressed) {
|
||||
stop_all_notes();
|
||||
PLAY_SONG(song_ode_to_joy);
|
||||
}
|
||||
return false;
|
||||
case S_RCKBY:
|
||||
if (record->event.pressed) {
|
||||
stop_all_notes();
|
||||
PLAY_SONG(song_rock_a_bye_baby);
|
||||
}
|
||||
return false;
|
||||
case S_DOEDR:
|
||||
if (record->event.pressed) {
|
||||
stop_all_notes();
|
||||
PLAY_SONG(song_doe_a_deer);
|
||||
}
|
||||
return false;
|
||||
case S_SCALE:
|
||||
if (record->event.pressed) {
|
||||
stop_all_notes();
|
||||
PLAY_SONG(song_scale);
|
||||
}
|
||||
return false;
|
||||
case S_ONEUP:
|
||||
if (record->event.pressed) {
|
||||
stop_all_notes();
|
||||
PLAY_SONG(song_one_up);
|
||||
}
|
||||
return false;
|
||||
case S_COIN:
|
||||
if (record->event.pressed) {
|
||||
stop_all_notes();
|
||||
PLAY_SONG(song_coin);
|
||||
}
|
||||
return false;
|
||||
case S_SONIC:
|
||||
if (record->event.pressed) {
|
||||
stop_all_notes();
|
||||
PLAY_SONG(song_sonic_ring);
|
||||
}
|
||||
return false;
|
||||
case S_ZELDA:
|
||||
if (record->event.pressed) {
|
||||
stop_all_notes();
|
||||
PLAY_SONG(song_zelda_puzzle);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
14
keyboards/clueboard/60/keymaps/yanfali/readme.md
Normal file
14
keyboards/clueboard/60/keymaps/yanfali/readme.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# /u/yanfali keymap for clueboard 60%
|
||||
|
||||
Almost the same as default but differs in the following ways
|
||||
|
||||
1. `Caps Lock` -> `MT(KC_LCTL, KC_ESC)`.
|
||||
I'm a heavy vim user and I prefer escape to be closer than default. I also move `Control` to this key if you hold it.
|
||||
1. Switch Alt and GUI.
|
||||
I spend most of my time on OSX, so I reverse Alt and GUI to be
|
||||
more comfortable on OSX.
|
||||
1. Added a custom layer.
|
||||
I use this to map the cursor keys to WASD, the familiar directional
|
||||
gaming keys. As I use a split right shift, this naturally leads
|
||||
to the left hand being used for navigation. This is also the
|
||||
best place to add custom mappings, macros and combo keys.
|
@@ -1,5 +1,9 @@
|
||||
#include "66.h"
|
||||
|
||||
enum custom_keycodes {
|
||||
M_SHRUG = SAFE_RANGE
|
||||
};
|
||||
|
||||
// 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
|
||||
@@ -30,9 +34,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap _CL: Control layer
|
||||
*/
|
||||
[_CL] = LAYOUT(
|
||||
_______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_TOG, RGB_VAI,
|
||||
M_SHRUG, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_TOG, RGB_VAI,
|
||||
_______, _______, _______,_______,RESET, _______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_VAD,
|
||||
_______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______,
|
||||
MO(_FL), _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, MO(_FL), RGB_SAI,
|
||||
_______, _______, _______,_______, RGB_MOD,RGB_MOD, _______, _______, _______, _______, RGB_HUD,RGB_SAD,RGB_HUI),
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (record->event.pressed) {
|
||||
switch(keycode) {
|
||||
case M_SHRUG:
|
||||
SEND_STRING("/shrug"SS_TAP(X_ENTER));
|
||||
return false; break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
@@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
|
||||
|
||||
For those that prefer a GUI tool, the crawlpad.json file in this repo can be used on [kbfirmware.com](http://kbfirmware.com].
|
||||
For those that prefer a GUI tool, the crawlpad.json file in this repo can be used on [kbfirmware.com](http://kbfirmware.com).
|
65
keyboards/e6v2/config.h
Normal file
65
keyboards/e6v2/config.h
Normal file
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
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/>.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_H
|
||||
#define CONFIG_H
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x6060
|
||||
#define DEVICE_VER 0x0002
|
||||
#define MANUFACTURER Exclusive / E-Team
|
||||
#define PRODUCT E6-V2
|
||||
#define DESCRIPTION E6-V2 QMK PCB (Mid-Port)
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 15
|
||||
|
||||
/* QMK E6-V2 PCB default pin-out */
|
||||
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
|
||||
#define MATRIX_COL_PINS { C7, C6, B5, B4, D7, D6, D4, F6, F7, F5, F4, F1, F0, B0, B1 }
|
||||
#define UNUSED_PINS { E6, B2, B3, B7 }
|
||||
|
||||
#define RGB_DI_PIN E2
|
||||
#ifdef RGB_DI_PIN
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 8
|
||||
#define RGBLIGHT_HUE_STEP 12
|
||||
#define RGBLIGHT_SAT_STEP 12
|
||||
#define RGBLIGHT_VAL_STEP 12
|
||||
#endif
|
||||
|
||||
#define BACKLIGHT_PIN B6
|
||||
#ifdef BACKLIGHT_PIN
|
||||
#define BACKLIGHT_LEVELS 5
|
||||
#define BACKLIGHT_BREAHTING
|
||||
#define BREATHING_PERIOD 3
|
||||
#endif
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
#define DEBOUNCING_DELAY 5
|
||||
|
||||
#define IS_COMMAND() ( \
|
||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||
)
|
||||
|
||||
|
||||
|
||||
#endif
|
53
keyboards/e6v2/e6v2.c
Normal file
53
keyboards/e6v2/e6v2.c
Normal file
@@ -0,0 +1,53 @@
|
||||
#include "e6v2.h"
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
// put your keyboard start-up code here
|
||||
// runs once when the firmware starts up
|
||||
|
||||
matrix_init_user();
|
||||
}
|
||||
|
||||
void matrix_scan_kb(void) {
|
||||
// put your looping keyboard code here
|
||||
// runs every cycle (a lot)
|
||||
|
||||
matrix_scan_user();
|
||||
}
|
||||
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
// put your per-action keyboard code here
|
||||
// runs for every action, just before processing by the firmware
|
||||
|
||||
return process_record_user(keycode, record);
|
||||
}
|
||||
|
||||
void led_set_kb(uint8_t usb_led) {
|
||||
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
||||
DDRB |= (1<<6);
|
||||
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
|
||||
// output low
|
||||
DDRB |= (1<<2);
|
||||
PORTB &= ~(1<<2);
|
||||
} else {
|
||||
// Hi-Z
|
||||
DDRB &= ~(1<<2);
|
||||
PORTB &= ~(1<<2);
|
||||
}
|
||||
// DDRB |= (1<<7);
|
||||
// DDRB |= (1<<1);
|
||||
// DDRB |= (1<<3);
|
||||
// DDRE |= (1<<6);
|
||||
if (usb_led == 0){
|
||||
PORTB |= (1<<6);
|
||||
// PORTB |= (1<<7);
|
||||
// PORTB |= (1<<1);
|
||||
// PORTB |= (1<<3);
|
||||
// PORTE |= (1<<6);
|
||||
}
|
||||
else{
|
||||
PORTB &= ~(1<<6);
|
||||
// PORTB &= ~(1<<7);
|
||||
}
|
||||
|
||||
led_set_user(usb_led);
|
||||
}
|
66
keyboards/e6v2/e6v2.h
Normal file
66
keyboards/e6v2/e6v2.h
Normal file
@@ -0,0 +1,66 @@
|
||||
#ifndef E6V2_H
|
||||
#define E6V2_H
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define KEYMAP( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||
K40, K41, K42, K46, K4A, K4B, K4C, K4D \
|
||||
)\
|
||||
{\
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO }, \
|
||||
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, KC_NO }, \
|
||||
}
|
||||
|
||||
#define KEYMAP_ANSI( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
|
||||
K40, K41, K42, K46, K4A, K4B, K4C, K4D \
|
||||
)\
|
||||
{\
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO }, \
|
||||
{ K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO }, \
|
||||
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, KC_NO }, \
|
||||
}
|
||||
|
||||
#define KEYMAP_HHKB( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||
K41, K42, K46, K4B, K4C \
|
||||
)\
|
||||
{\
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO }, \
|
||||
{ K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO }, \
|
||||
{ KC_NO, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, KC_NO, K4B, K4C, KC_NO, KC_NO }, \
|
||||
}
|
||||
|
||||
#define KEYMAP_HHKB_SPLITS( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||
K41, K42, K46, K4B, K4C \
|
||||
)\
|
||||
{\
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO }, \
|
||||
{ KC_NO, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, KC_NO, K4B, K4C, KC_NO, KC_NO }, \
|
||||
}
|
||||
|
||||
#endif
|
1
keyboards/e6v2/keymaps/amnesia0287/config.h
Normal file
1
keyboards/e6v2/keymaps/amnesia0287/config.h
Normal file
@@ -0,0 +1 @@
|
||||
#include "../../config.h"
|
79
keyboards/e6v2/keymaps/amnesia0287/keymap.c
Normal file
79
keyboards/e6v2/keymaps/amnesia0287/keymap.c
Normal file
@@ -0,0 +1,79 @@
|
||||
#include "e6v2.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.
|
||||
#define _BL 0
|
||||
#define _HLa 1
|
||||
#define _HLb 2
|
||||
#define _HL 3
|
||||
#define _XL 4
|
||||
|
||||
enum hype_keycodes {
|
||||
FN_HLa = SAFE_RANGE,
|
||||
FN_HLb
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BL] = KEYMAP_HHKB(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, FN_HLb,
|
||||
KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, FN_HLa
|
||||
),
|
||||
[_HLa] = KEYMAP_HHKB(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[_HLb] = KEYMAP_HHKB(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[_HL] = KEYMAP_HHKB(
|
||||
RGB_TOG, RGB_M_P, RGB_RMOD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, BL_BRTG, BL_OFF, BL_STEP, BL_ON, BL_DEC, BL_INC, LALT(KC_F4),
|
||||
RESET, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case FN_HLa:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
layer_on(_HLa);
|
||||
update_tri_layer(_HLa, _HLb, _HL);
|
||||
}
|
||||
else
|
||||
{
|
||||
layer_off(_HLa);
|
||||
update_tri_layer(_HLa, _HLb, _HL);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case FN_HLb:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
layer_on(_HLb);
|
||||
update_tri_layer(_HLa, _HLb, _HL);
|
||||
}
|
||||
else
|
||||
{
|
||||
layer_off(_HLb);
|
||||
update_tri_layer(_HLa, _HLb, _HL);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
8
keyboards/e6v2/keymaps/amnesia0287/readme.md
Normal file
8
keyboards/e6v2/keymaps/amnesia0287/readme.md
Normal file
@@ -0,0 +1,8 @@
|
||||
amnesia0287's Keymap
|
||||
===
|
||||
|
||||
Keymap Maintainer: [Jason Gorman](https://github.com/amnesia0287)
|
||||
|
||||
Difference from base layout: Primarily the HHKB-ness
|
||||
|
||||
Intended usage: Daily driver for programming
|
0
keyboards/e6v2/keymaps/amnesia0287/rules.mk
Normal file
0
keyboards/e6v2/keymaps/amnesia0287/rules.mk
Normal file
1
keyboards/e6v2/keymaps/default/config.h
Normal file
1
keyboards/e6v2/keymaps/default/config.h
Normal file
@@ -0,0 +1 @@
|
||||
#include "../../config.h"
|
18
keyboards/e6v2/keymaps/default/keymap.c
Normal file
18
keyboards/e6v2/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,18 @@
|
||||
#include "e6v2.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = KEYMAP_ANSI(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, MO(1), KC_MENU, KC_RCTL
|
||||
),
|
||||
[1] = KEYMAP_ANSI(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
};
|
8
keyboards/e6v2/keymaps/default/readme.md
Normal file
8
keyboards/e6v2/keymaps/default/readme.md
Normal file
@@ -0,0 +1,8 @@
|
||||
Default Keymap
|
||||
===
|
||||
|
||||
Super simple default keymap with only a base layer.
|
||||
|
||||
Keymap Maintainer: [Jason Gorman](https://github.com/amnesia0287)
|
||||
|
||||
Intended usage: This is mostly provided for testing before you build your own keymap and as a reference to a stock(ish) configuration
|
0
keyboards/e6v2/keymaps/default/rules.mk
Normal file
0
keyboards/e6v2/keymaps/default/rules.mk
Normal file
18
keyboards/e6v2/readme.md
Normal file
18
keyboards/e6v2/readme.md
Normal file
@@ -0,0 +1,18 @@
|
||||
E6-V2
|
||||
===
|
||||
|
||||
These docs are for the QMK version of the PCB. [More info on qmk.fm](http://qmk.fm/)
|
||||
|
||||
Keyboard Maintainer: [Jason Gorman](https://github.com/amnesia0287)
|
||||
Hardware Supported: E6-V2 Mid Port rev.qmk
|
||||
Hardware Availability: [geekhack.org/index.php?topic=90787.0](https://geekhack.org/index.php?topic=90787.0)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make e6v2:default
|
||||
|
||||
Or to make and flash:
|
||||
|
||||
make e6v2:default:dfu
|
||||
|
||||
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
|
68
keyboards/e6v2/rules.mk
Normal file
68
keyboards/e6v2/rules.mk
Normal file
@@ -0,0 +1,68 @@
|
||||
# MCU name
|
||||
#MCU = at90usb1287
|
||||
MCU = atmega32u4
|
||||
|
||||
# Processor frequency.
|
||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
||||
# processor frequency in Hz. You can then use this symbol in your source code to
|
||||
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
||||
# automatically to create a 32-bit value in your source code.
|
||||
#
|
||||
# This will be an integer division of F_USB below, as it is sourced by
|
||||
# F_USB after it has run through any CPU prescalers. Note that this value
|
||||
# does not *change* the processor frequency - it should merely be updated to
|
||||
# reflect the processor speed set externally so that the code can use accurate
|
||||
# software delays.
|
||||
F_CPU = 16000000
|
||||
|
||||
|
||||
#
|
||||
# LUFA specific
|
||||
#
|
||||
# Target architecture (see library "Board Types" documentation).
|
||||
ARCH = AVR8
|
||||
|
||||
# Input clock frequency.
|
||||
# This will define a symbol, F_USB, in all source code files equal to the
|
||||
# input clock frequency (before any prescaling is performed) in Hz. This value may
|
||||
# differ from F_CPU if prescaling is used on the latter, and is required as the
|
||||
# raw input clock is fed directly to the PLL sections of the AVR for high speed
|
||||
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
|
||||
# at the end, this will be done automatically to create a 32-bit value in your
|
||||
# source code.
|
||||
#
|
||||
# If no clock division is performed on the input clock inside the AVR (via the
|
||||
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
||||
F_USB = $(F_CPU)
|
||||
|
||||
# Interrupt driven control endpoint task(+60)
|
||||
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
||||
|
||||
|
||||
# Boot Section Size in *bytes*
|
||||
# Teensy halfKay 512
|
||||
# Teensy++ halfKay 1024
|
||||
# Atmel DFU loader 4096
|
||||
# LUFA bootloader 4096
|
||||
# USBaspLoader 2048
|
||||
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
|
||||
RGBLIGHT_ENABLE = yes
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
@@ -19,4 +19,4 @@ make ergodox_ez:bepo_tm_style:all
|
||||
## Debug
|
||||
|
||||
See https://github.com/tmk/tmk_keyboard#magic-commands for command that can help
|
||||
debug, together with the hid_listen tool (https://docs.qmk.fm/faq_debug.html).
|
||||
debug, together with the [hid_listen tool](https://docs.qmk.fm/faq_debug.html).
|
@@ -19,6 +19,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
|
||||
//enum more_custom_keycodes {
|
||||
// KC_P00 = NEW_SAFE_RANGE
|
||||
//};
|
||||
|
||||
|
||||
//define layer change stuff for underglow indicator
|
||||
bool skip_leds = false;
|
||||
@@ -49,20 +53,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* `---------------------' `---------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT_ergodox_wrapper(
|
||||
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TT(_MOUS),
|
||||
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS),
|
||||
KC_TAB, _________________QWERTY_L1_________________, TG(_DIABLO),
|
||||
KC_BSPC, _________________QWERTY_L2_________________,
|
||||
KC_LSFT, _________________QWERTY_L3_________________, TG(_GAMEPAD),
|
||||
KC_MLSF, _________________QWERTY_L3_________________, TG(_GAMEPAD),
|
||||
LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________,
|
||||
|
||||
ALT_T(KC_APP), KC_LGUI,
|
||||
KC_HOME,
|
||||
KC_SPACE,KC_BSPC, KC_END,
|
||||
|
||||
TT(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||
OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||
TG(_DIABLO), _________________QWERTY_R1_________________, KC_BSLS,
|
||||
_________________QWERTY_R2_________________, GUI_T(KC_QUOT),
|
||||
TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_RSFT,
|
||||
TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_MRSF,
|
||||
___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
|
||||
KC_RGUI, CTL_T(KC_ESCAPE),
|
||||
KC_PGUP,
|
||||
@@ -93,19 +97,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// Otherwise, it needs KC_*
|
||||
[_COLEMAK] = LAYOUT_ergodox_wrapper(
|
||||
// left hand
|
||||
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TT(_MOUS),
|
||||
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS),
|
||||
KC_TAB, _________________COLEMAK_L1________________, TG(_DIABLO),
|
||||
KC_BSPC, _________________COLEMAK_L2________________,
|
||||
KC_LSFT, _________________COLEMAK_L3________________, TG(_GAMEPAD),
|
||||
KC_MLSF, _________________COLEMAK_L3________________, TG(_GAMEPAD),
|
||||
LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________,
|
||||
ALT_T(KC_APP), KC_LGUI,
|
||||
KC_HOME,
|
||||
KC_SPACE,KC_BSPC, KC_END,
|
||||
// right hand
|
||||
TT(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||
OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||
TG(_DIABLO), _________________COLEMAK_R1________________, KC_BSLS,
|
||||
_________________COLEMAK_R2________________, GUI_T(KC_QUOT),
|
||||
TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_RSFT,
|
||||
TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_MRSF,
|
||||
___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
|
||||
KC_RGUI, CTL_T(KC_ESCAPE),
|
||||
KC_PGUP,
|
||||
@@ -136,19 +140,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// Otherwise, it needs KC_*
|
||||
[_DVORAK] = LAYOUT_ergodox_wrapper(
|
||||
// left hand
|
||||
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TT(_MOUS),
|
||||
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS),
|
||||
KC_TAB, _________________DVORAK_L1_________________, TG(_DIABLO),
|
||||
KC_BSPC, _________________DVORAK_L2_________________,
|
||||
KC_LSFT, _________________DVORAK_L3_________________, TG(_GAMEPAD),
|
||||
KC_MLSF, _________________DVORAK_L3_________________, TG(_GAMEPAD),
|
||||
LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________,
|
||||
ALT_T(KC_APP), KC_LGUI,
|
||||
KC_HOME,
|
||||
KC_SPACE,KC_BSPC, KC_END,
|
||||
// right hand
|
||||
TT(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
|
||||
OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
|
||||
TG(_DIABLO), _________________DVORAK_R1_________________, KC_SLSH,
|
||||
_________________DVORAK_R2_________________, GUI_T(KC_MINS),
|
||||
TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_RSFT,
|
||||
TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_MRSF,
|
||||
___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
|
||||
KC_RGUI, CTL_T(KC_ESCAPE),
|
||||
KC_PGUP,
|
||||
@@ -179,19 +183,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// Otherwise, it needs KC_*
|
||||
[_WORKMAN] = LAYOUT_ergodox_wrapper(
|
||||
// left hand
|
||||
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TT(_MOUS),
|
||||
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS),
|
||||
KC_TAB, _________________WORKMAN_L1________________, TG(_DIABLO),
|
||||
KC_BSPC, _________________WORKMAN_L2________________,
|
||||
KC_LSFT, _________________WORKMAN_L3________________, TG(_GAMEPAD),
|
||||
KC_MLSF, _________________WORKMAN_L3________________, TG(_GAMEPAD),
|
||||
LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________,
|
||||
ALT_T(KC_APP), KC_LGUI,
|
||||
KC_HOME,
|
||||
KC_SPACE,KC_BSPC, KC_END,
|
||||
// right hand
|
||||
TT(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||
OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||
TG(_DIABLO), _________________WORKMAN_R1________________, KC_BSLS,
|
||||
_________________WORKMAN_R2________________, GUI_T(KC_QUOT),
|
||||
TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_RSFT,
|
||||
TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_MRSF,
|
||||
___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
|
||||
KC_RGUI, CTL_T(KC_ESCAPE),
|
||||
KC_PGUP,
|
||||
@@ -202,7 +206,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
OSM(MOD_LSFT),KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_LSFT,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
@@ -211,7 +215,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, OSM(MOD_RSFT),
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
@@ -241,9 +245,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
*/
|
||||
[_SYMB] = LAYOUT_ergodox(
|
||||
EPRM, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, TG(_MODS),
|
||||
VRSN, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_WORKMAN,
|
||||
KC_RESET, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_WORKMAN,
|
||||
KC_MAKE, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE,
|
||||
KC_RESET, KC_PERC, KC_CIRC, KC_LBRACKET,KC_RBRACKET,KC_TILD, KC_COLEMAK,
|
||||
VRSN, KC_PERC, KC_CIRC, KC_LBRACKET,KC_RBRACKET,KC_TILD, KC_COLEMAK,
|
||||
KC_TRNS, KC_AMPR, KC_ASTR, KC_COLN, KC_SCOLON,
|
||||
RGB_SMOD, KC_RGB_T,
|
||||
RGB_HUI,
|
||||
@@ -387,12 +391,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
};
|
||||
|
||||
|
||||
|
||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
|
||||
|
||||
//switch (keycode) {
|
||||
// case KC_P00:
|
||||
// if (!record->event.pressed) {
|
||||
// register_code(KC_KP_0);
|
||||
// unregister_code(KC_KP_0);
|
||||
// register_code(KC_KP_0);
|
||||
// unregister_code(KC_KP_0);
|
||||
// }
|
||||
// return false;
|
||||
// break;
|
||||
//}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void matrix_init_keymap(void) { // Runs boot tasks for keyboard
|
||||
};
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
TAP_DANCE_ENABLE = yes
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
RGBLIGHT_ENABLE = yes
|
||||
CONSOLE_ENABLE = no
|
||||
BOOTMAGIC_ENABLE = yes
|
||||
|
||||
|
@@ -7,6 +7,12 @@
|
||||
// to build this keymap
|
||||
// make ergodox_ez:dvorak_42_key:teensy
|
||||
|
||||
// keeping fork up to date:
|
||||
// https://help.github.com/articles/configuring-a-remote-for-a-fork/
|
||||
// https://help.github.com/articles/syncing-a-fork/
|
||||
// pushing dev branch
|
||||
// git push origin dev:dev
|
||||
|
||||
static bool mouse_lock = false;
|
||||
|
||||
enum custom_keycodes {
|
||||
@@ -17,6 +23,7 @@ enum custom_keycodes {
|
||||
// shell nav macros
|
||||
SHELL_LS,
|
||||
SHELL_LSLTR,
|
||||
SHELL_LSLA,
|
||||
SHELL_CDPRE,
|
||||
SHELL_LESS,
|
||||
SHELL_PLESS,
|
||||
@@ -31,6 +38,15 @@ enum custom_keycodes {
|
||||
SHELL_SCREEN_LIST,
|
||||
SHELL_MKE,
|
||||
SHELL_HTCSTATUS,
|
||||
|
||||
// Cloud9 macros
|
||||
CLOUD9_TAB_LEFT,
|
||||
CLOUD9_TAB_RIGHT,
|
||||
CLOUD9_TAB_CLOSE,
|
||||
CLOUD9_GOTO_SYMBOL,
|
||||
CLOUD9_GOTO_LINE,
|
||||
CLOUD9_NAVIGATE,
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -39,8 +55,11 @@ enum custom_keycodes {
|
||||
#define KEYSEL 2 // arrow navigation + shift (allow text selection)
|
||||
#define SHELL_NAV 3 // bash shortcuts
|
||||
#define SHELL_SCREEN 4 // linux screen shortcuts
|
||||
#define MOUSE 5 // mouse layer (can be locked with lock key)
|
||||
#define COMBINED 6 // combined numbers and symbols layer
|
||||
#define SCREEN_NAV 5 // navigate between linux screen tabs
|
||||
#define MOUSE 6 // mouse layer (can be locked with lock key), unmapped for now
|
||||
#define BROWSER_CONTROL 7 // control browser and mouse
|
||||
#define COMBINED 8 // combined numbers and symbols layer
|
||||
|
||||
|
||||
// macros
|
||||
#define MOUSE_TOGGLE 1
|
||||
@@ -64,7 +83,18 @@ enum custom_keycodes {
|
||||
#define SCREEN_8 20
|
||||
#define SCREEN_9 21
|
||||
#define SCREEN_DETACH 22
|
||||
#define SHELL_RECALL_LAST_ARG_REMOVE_FIRST_COMMAND 30
|
||||
#define SCREEN_UP_JUMP 23
|
||||
#define SCREEN_DOWN_JUMP 24
|
||||
#define SCREEN_READREG_1 25
|
||||
#define SCREEN_READREG_2 26
|
||||
#define SCREEN_READREG_3 27
|
||||
#define SCREEN_PASTEREG_1 28
|
||||
#define SCREEN_PASTEREG_2 29
|
||||
#define SCREEN_PASTEREG_3 30
|
||||
#define SHELL_WRITE_LOGPATTERN 31
|
||||
#define SHELL_WRITE_TRANPATTERN 32
|
||||
#define SHELL_EXPAND_PATTERN 33
|
||||
|
||||
|
||||
|
||||
#define MACRO_SCREEN_NUM(MACRO_NAME,NUM) \
|
||||
@@ -73,16 +103,50 @@ enum custom_keycodes {
|
||||
return MACRO( D(LCTL), T(A), U(LCTL), T(NUM), END);\
|
||||
}\
|
||||
break;\
|
||||
|
||||
#define MACRO_SCREEN_REG(MACRO_NAME,NUM) \
|
||||
case MACRO_NAME:\
|
||||
if (record->event.pressed) {\
|
||||
return MACRO( D(LCTL), T(A), U(LCTL), D(LSFT), T(SCOLON), U(LSFT),\
|
||||
T(R),\
|
||||
T(E),\
|
||||
T(A),\
|
||||
T(D),\
|
||||
T(R),\
|
||||
T(E),\
|
||||
T(G),\
|
||||
T(SPC),\
|
||||
T(NUM),\
|
||||
T(ENTER),\
|
||||
END);\
|
||||
}\
|
||||
break;\
|
||||
|
||||
#define MACRO_SCREEN_PASTE(MACRO_NAME,NUM)\
|
||||
case MACRO_NAME:\
|
||||
if (record->event.pressed) {\
|
||||
return MACRO( D(LCTL), T(A), U(LCTL), D(LSFT), T(SCOLON), U(LSFT),\
|
||||
T(P),\
|
||||
T(A),\
|
||||
T(S),\
|
||||
T(T),\
|
||||
T(E),\
|
||||
T(SPC),\
|
||||
T(NUM),\
|
||||
T(ENTER),\
|
||||
END);\
|
||||
}\
|
||||
break;\
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[BASE] = KEYMAP(
|
||||
// left hand
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
|
||||
KC_TAB, KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, MEH(KC_2),
|
||||
OSL(SCREEN_NAV), KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, MEH(KC_2),
|
||||
OSL(SHELL_NAV), KC_A, KC_O, KC_E, KC_U, KC_I,
|
||||
OSL(SHELL_SCREEN), KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, MEH(KC_3),
|
||||
MEH(KC_1), OSM(MOD_LSFT), OSM(MOD_LCTL), M(MOUSE_TOGGLE), MO(KEYSEL),
|
||||
MEH(KC_1), OSM(MOD_LSFT), OSM(MOD_LCTL), MO(KEYSEL), MO(BROWSER_CONTROL),
|
||||
|
||||
// left thumb cluster
|
||||
MEH(KC_4), MEH(KC_5),
|
||||
@@ -91,8 +155,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// right hand
|
||||
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MEH(KC_9),
|
||||
MEH(KC_7), KC_F, KC_G, KC_C, KC_R, KC_L, MEH(KC_F1),
|
||||
KC_D, KC_H, KC_T, KC_N, KC_S, MEH(KC_F2),
|
||||
MEH(KC_7), KC_F, KC_G, KC_C, KC_R, KC_L, KC_TAB,
|
||||
KC_D, KC_H, KC_T, KC_N, KC_S, RCTL(KC_BSPC),
|
||||
MEH(KC_8), KC_B, KC_M, KC_W, KC_V, KC_Z, MEH(KC_F3),
|
||||
KC_BSPC, RCTL(KC_BSPC), KC_CAPSLOCK, OSM(MOD_LSFT),MEH(KC_F4),
|
||||
|
||||
@@ -103,11 +167,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[KEYNAV] = KEYMAP(
|
||||
// left hand
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,KC_ESC, MEH(KC_F9), RCTL(KC_Z), RCTL(KC_S), MEH(KC_F10), KC_TRNS,
|
||||
KC_TRNS,MEH(KC_F11), MEH(KC_F12), RSFT(KC_TAB), KC_TAB, MEH(KC_A),
|
||||
KC_TRNS,MEH(KC_B), MEH(KC_C), MEH(KC_D), MEH(KC_E), MEH(KC_F), KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,KC_ESC, CLOUD9_GOTO_LINE, RCTL(KC_Z), RCTL(KC_S), MEH(KC_F10), KC_TRNS,
|
||||
KC_TRNS,KC_LSFT, CLOUD9_GOTO_SYMBOL, RSFT(KC_TAB), KC_TAB, MEH(KC_A),
|
||||
KC_TRNS,MEH(KC_B), CLOUD9_NAVIGATE, CLOUD9_TAB_LEFT, CLOUD9_TAB_RIGHT, CLOUD9_TAB_CLOSE, KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
// left thumb cluster
|
||||
KC_TRNS,KC_TRNS,KC_TRNS,TO(MOUSE),KC_TRNS,KC_TRNS,
|
||||
|
||||
@@ -130,7 +194,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TRNS,MEH(KC_L), MEH(KC_M),MEH(KC_N), MEH(KC_O), MEH(KC_P),
|
||||
KC_TRNS,MEH(KC_Q), MEH(KC_R),MEH(KC_S), MEH(KC_T), MEH(KC_U), KC_TRNS,
|
||||
// bottom row
|
||||
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
|
||||
RESET,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
|
||||
// thumb cluster
|
||||
KC_TRNS,KC_TRNS,
|
||||
KC_TRNS,
|
||||
@@ -151,9 +215,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// shell navigation layer
|
||||
[SHELL_NAV] = KEYMAP(
|
||||
// left hand
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, SHELL_PGREP, SHELL_PLESS, SHELL_LESS, KC_TRNS, SHELL_H3,
|
||||
KC_TRNS,SHELL_MKE, SHELL_CDPRE, SHELL_LSLTR, SHELL_LS, SHELL_PWD,
|
||||
KC_TRNS,SHELL_MKE, SHELL_CDPRE, SHELL_LSLTR, SHELL_LS, SHELL_LSLA,
|
||||
KC_TRNS,SHELL_SCREEN_LIST, SHELL_SCREENRD, SHELL_SCREEN_NEW, SHELL_TAILF, SHELL_HTCSTATUS, SHELL_AMMCOLO,
|
||||
// bottom row
|
||||
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
|
||||
@@ -162,10 +226,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TRNS,
|
||||
KC_TRNS,KC_TRNS,KC_TRNS,
|
||||
// right hand
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(SWITCH_NDS),
|
||||
RCTL(KC_L), RCTL(KC_W), KC_HOME, KC_UP, KC_END, KC_TRNS, RCTL(KC_R),
|
||||
LALT(KC_B), KC_LEFT, KC_DOWN, KC_RIGHT, LALT(KC_F), LALT(KC_DOT),
|
||||
RCTL(KC_C), RCTL(KC_U), M(SCREEN_COPY_MODE), M(SCREEN_PASTE), MEH(KC_V), RCTL(KC_K), M(SHELL_RECALL_LAST_ARG_REMOVE_FIRST_COMMAND),
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(SHELL_WRITE_TRANPATTERN),
|
||||
RCTL(KC_L), RCTL(KC_W), KC_HOME, KC_UP, KC_END, KC_TRNS, M(SHELL_WRITE_LOGPATTERN),
|
||||
LALT(KC_B), KC_LEFT, KC_DOWN, KC_RIGHT, LALT(KC_F), RCTL(KC_W),
|
||||
RCTL(KC_C), RCTL(KC_U), LALT(KC_DOT), RCTL(KC_R), MEH(KC_V), RCTL(KC_K), M(SHELL_EXPAND_PATTERN),
|
||||
// bottom row (match functionality of base layer)
|
||||
KC_BSPC, RCTL(KC_W), KC_DELETE, LALT(KC_D), RCTL(KC_U),
|
||||
// thumb cluster
|
||||
@@ -178,7 +242,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// linux screen layer
|
||||
[SHELL_SCREEN] = KEYMAP(
|
||||
// left hand
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
@@ -201,6 +265,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
// navigation within screen (for copy/paste)
|
||||
[SCREEN_NAV] = KEYMAP(
|
||||
// left hand
|
||||
// left hand
|
||||
KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, M(SCREEN_READREG_3), M(SCREEN_READREG_2), M(SCREEN_READREG_1), KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, M(SCREEN_PASTEREG_3), M(SCREEN_PASTEREG_2), M(SCREEN_PASTEREG_1), KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
// bottom row
|
||||
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
|
||||
// thumb cluster
|
||||
KC_TRNS,KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS,KC_TRNS,KC_TRNS,
|
||||
// right hand
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_0, KC_UP, KC_DLR, M(SCREEN_UP_JUMP), KC_TRNS,
|
||||
KC_B, KC_LEFT, KC_DOWN, KC_RIGHT, KC_W, M(SCREEN_COPY_MODE),
|
||||
KC_TRNS, KC_TRNS, S(KC_W), S(KC_Y), M(SCREEN_PASTE), M(SCREEN_DOWN_JUMP), MEH(KC_V),
|
||||
// bottom row (match functionality of base layer)
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
// thumb cluster
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
|
||||
|
||||
|
||||
[COMBINED] = KEYMAP(
|
||||
|
||||
@@ -222,7 +315,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// bottom row
|
||||
KC_0, KC_DOT, KC_PIPE, KC_BSLS, MEH(KC_P),
|
||||
// thumb cluster
|
||||
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS),
|
||||
KC_TRNS,KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS,KC_TRNS,KC_TAB),
|
||||
|
||||
|
||||
[MOUSE] = KEYMAP(
|
||||
@@ -246,6 +341,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_BTN1, KC_BTN2
|
||||
),
|
||||
|
||||
[BROWSER_CONTROL] = KEYMAP(
|
||||
// left hand
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_BTN3, KC_MS_U, KC_BTN1, KC_BTN2, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
// bottom row
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
// right hand
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_UP, KC_PGUP, KC_PGDN, KC_MS_WH_UP, KC_TRNS, KC_TRNS,
|
||||
KC_DOWN, RSFT(RCTL(KC_TAB)), RCTL(KC_TAB), KC_MS_WH_DOWN, LALT(KC_LEFT), KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, RCTL(KC_1), RCTL(KC_9), KC_F6, KC_F5, KC_TRNS,
|
||||
// bottom row
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, RCTL(KC_W), RCTL(KC_T)
|
||||
),
|
||||
|
||||
|
||||
};
|
||||
@@ -317,6 +436,14 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
}
|
||||
break;
|
||||
|
||||
MACRO_SCREEN_REG(SCREEN_READREG_1,1);
|
||||
MACRO_SCREEN_REG(SCREEN_READREG_2,2);
|
||||
MACRO_SCREEN_REG(SCREEN_READREG_3,3);
|
||||
|
||||
MACRO_SCREEN_PASTE(SCREEN_PASTEREG_1,1);
|
||||
MACRO_SCREEN_PASTE(SCREEN_PASTEREG_2,2);
|
||||
MACRO_SCREEN_PASTE(SCREEN_PASTEREG_3,3);
|
||||
|
||||
MACRO_SCREEN_NUM(SCREEN_0,0);
|
||||
MACRO_SCREEN_NUM(SCREEN_1,1);
|
||||
MACRO_SCREEN_NUM(SCREEN_2,2);
|
||||
@@ -328,6 +455,18 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
MACRO_SCREEN_NUM(SCREEN_8,8);
|
||||
MACRO_SCREEN_NUM(SCREEN_9,9);
|
||||
|
||||
case SCREEN_UP_JUMP:
|
||||
if (record->event.pressed) {
|
||||
return MACRO( T(5), T(UP), END);
|
||||
}
|
||||
break;
|
||||
|
||||
case SCREEN_DOWN_JUMP:
|
||||
if (record->event.pressed) {
|
||||
return MACRO( T(5), T(DOWN), END);
|
||||
}
|
||||
break;
|
||||
|
||||
case SCREEN_COPY_MODE:
|
||||
if (record->event.pressed) {
|
||||
return MACRO( D(LCTL), T(A), U(LCTL), T(ESC), END);
|
||||
@@ -338,23 +477,39 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
return MACRO( D(LCTL), T(A), U(LCTL), T(RBRC), END);
|
||||
}
|
||||
break;
|
||||
case SWITCH_NDS:
|
||||
|
||||
case SHELL_WRITE_LOGPATTERN:
|
||||
if (record->event.pressed) {
|
||||
return MACRO( D(LSFT),
|
||||
T(F11),
|
||||
U(LSFT),
|
||||
W(255),
|
||||
D(LALT),
|
||||
T(TAB),
|
||||
U(LALT),
|
||||
END);
|
||||
}
|
||||
break;
|
||||
case SHELL_RECALL_LAST_ARG_REMOVE_FIRST_COMMAND:
|
||||
return MACRO( D(LSFT),
|
||||
T(8),
|
||||
T(8),
|
||||
U(LSFT),
|
||||
T(L),
|
||||
T(O),
|
||||
T(G),
|
||||
T(LEFT),
|
||||
T(LEFT),
|
||||
T(LEFT),
|
||||
T(LEFT),
|
||||
END);
|
||||
}
|
||||
break;
|
||||
|
||||
case SHELL_WRITE_TRANPATTERN:
|
||||
if (record->event.pressed) {
|
||||
return MACRO( T(UP), T(HOME), D(LALT), T(D), U(LALT), END);
|
||||
}
|
||||
break;
|
||||
return MACRO( D(LSFT),
|
||||
T(8),
|
||||
T(8),
|
||||
U(LSFT), T(T), T(R), T(A), T(N), T(LEFT), T(LEFT), T(LEFT), T(LEFT), T(LEFT), END);
|
||||
}
|
||||
break;
|
||||
|
||||
case SHELL_EXPAND_PATTERN:
|
||||
if (record->event.pressed) {
|
||||
return MACRO( D(LALT), T(F), U(LALT), D(LCTL), T(X), U(LCTL), D(LSFT), T(8), D(LSFT), END);
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
@@ -393,6 +548,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
SEND_STRING("ls -ltr\n");
|
||||
return true;
|
||||
break;
|
||||
case SHELL_LSLA:
|
||||
SEND_STRING("ls -la\n");
|
||||
return true;
|
||||
break;
|
||||
case SHELL_CDPRE:
|
||||
SEND_STRING("cd ..\n");
|
||||
return true;
|
||||
@@ -445,6 +604,32 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
SEND_STRING("htcStatus -j ");
|
||||
return true;
|
||||
break;
|
||||
// Cloud9 macros
|
||||
case CLOUD9_TAB_LEFT:
|
||||
SEND_STRING(SS_LCTRL("["));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_TAB_RIGHT:
|
||||
SEND_STRING(SS_LCTRL("]"));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_TAB_CLOSE:
|
||||
SEND_STRING(SS_LALT("w"));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_GOTO_SYMBOL:
|
||||
SEND_STRING(SS_LSFT(SS_LCTRL("e")));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_GOTO_LINE:
|
||||
SEND_STRING(SS_LCTRL("g"));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_NAVIGATE:
|
||||
SEND_STRING(SS_LCTRL("e"));
|
||||
return true;
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -474,9 +659,11 @@ void matrix_scan_user(void) {
|
||||
case SHELL_SCREEN:
|
||||
case KEYNAV:
|
||||
case KEYSEL:
|
||||
case SCREEN_NAV:
|
||||
ergodox_right_led_3_on();
|
||||
break;
|
||||
case MOUSE:
|
||||
case BROWSER_CONTROL:
|
||||
ergodox_right_led_2_on();
|
||||
ergodox_right_led_3_on();
|
||||
break;
|
||||
|
228
keyboards/ergodox_ez/keymaps/smurmann/keymap.c
Normal file
228
keyboards/ergodox_ez/keymaps/smurmann/keymap.c
Normal file
@@ -0,0 +1,228 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "debug.h"
|
||||
#include "action_layer.h"
|
||||
#include "version.h"
|
||||
|
||||
#define BASE 0 // default layer
|
||||
#define MDIA 1 // media keys
|
||||
|
||||
#define _______ KC_TRNS
|
||||
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||
EPRM,
|
||||
VRSN,
|
||||
RGB_SLD
|
||||
};
|
||||
|
||||
bool capsOn = false;
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap 0: Basic layer
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | Bksp |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | Tab | Q | W | E | R | T | { | | } | Y | U | I | O | P | \ |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* |HyperCaps| A | S | D | F | G |------| |------| H | J | K | L |; / L1| Enter |
|
||||
* |--------+------+------+------+------+------| Alt | | L1 |------+------+------+------+------+--------|
|
||||
* | LShift | Z/L1 | X | C | V | B | | | | N | M | , | . | ? | RShift |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* |lCrtr | [ | ] | ` | ' | | Left | Up | Down | Right| PlayWin |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* |PRTSRN| Win | | Home | End |
|
||||
* ,------|------|------| |------+--------+------.
|
||||
* | | | Ins | | PgUp | | |
|
||||
* | Space|Backsp|------| |------| Enter |Space |
|
||||
* | |ace | Del | | PgDn | | |
|
||||
* `--------------------' `----------------------'
|
||||
*/
|
||||
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
|
||||
// Otherwise, it needs KC_*
|
||||
[BASE] = LAYOUT_ergodox( // layer 0 : default
|
||||
// left hand
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LCBR,
|
||||
ALL_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G,
|
||||
KC_LSFT, LT(MDIA,KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT,
|
||||
KC_LCTRL, KC_LBRC, KC_RBRC, KC_GRV, KC_QUOT,
|
||||
KC_PSCR, KC_LGUI,
|
||||
KC_INS,
|
||||
KC_SPC,KC_BSPC,KC_DEL,
|
||||
// right hand
|
||||
KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL, KC_BSPC,
|
||||
KC_RCBR, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||
KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_ENT,
|
||||
TG(MDIA), KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LEFT, KC_UP,KC_DOWN,KC_RGHT, GUI_T(KC_MPLY),
|
||||
KC_HOME, KC_END,
|
||||
KC_PGUP,
|
||||
KC_PGDN,KC_ENT, KC_SPC
|
||||
),
|
||||
/* Keymap 1: Media and mouse keys
|
||||
*
|
||||
* ,---------------------------------------------------. ,--------------------------------------------------.
|
||||
* |Version | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
|
||||
* |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
* |BootLoad | | Lclk | MsUp | Rclk | | | | | | | Up | | | |
|
||||
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | |MsLeft|MsDown|MsRght| |------| |------| | Left | Down | Right| | |
|
||||
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | |MsAcl0|MsAcl1|MsAcl2| | | | | | | Mute | Mute | | |
|
||||
* `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | | | | | | | Prev |VolUp |VolDn | Next | |
|
||||
* `-----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | | | | | |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | | | | | |
|
||||
* | | |------| |------| | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
// Functions
|
||||
[MDIA] = LAYOUT_ergodox(
|
||||
// left hand
|
||||
VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
|
||||
RESET,_______,KC_BTN1,KC_MS_U,KC_BTN2,_______,_______,
|
||||
_______,_______,KC_MS_L,KC_MS_D,KC_MS_R,_______,
|
||||
_______,_______,KC_ACL0,KC_ACL1,KC_ACL2,_______,_______,
|
||||
_______,_______,_______,_______,_______,
|
||||
_______,_______,
|
||||
_______,
|
||||
_______,_______,_______,
|
||||
// right hand
|
||||
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,_______,
|
||||
_______,_______,_______, KC_UP ,_______,_______,_______,
|
||||
_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______,
|
||||
_______,_______,_______,KC_MUTE,KC_MUTE,_______,_______,
|
||||
KC_MPRV,KC_VOLU,KC_VOLD,KC_MNXT,_______,
|
||||
_______, _______,
|
||||
_______,
|
||||
_______, _______, _______
|
||||
),
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[1] = ACTION_LAYER_TAP_TOGGLE(MDIA) // FN1 - Momentary Layer 1 (Symbols)
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (record->event.pressed) { // For resetting EEPROM
|
||||
eeconfig_init();
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
// dynamically generate these.
|
||||
case EPRM:
|
||||
if (record->event.pressed) {
|
||||
eeconfig_init();
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case VRSN:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RGB_SLD:
|
||||
if (record->event.pressed) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
rgblight_mode(1);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Runs just one time when the keyboard initializes.
|
||||
void matrix_init_user(void) {
|
||||
#ifdef RGBLIGHT_COLOR_LAYER_0
|
||||
rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0);
|
||||
#endif
|
||||
};
|
||||
|
||||
// Runs constantly in the background, in a loop.
|
||||
void matrix_scan_user(void) {
|
||||
uint8_t layer = biton32(layer_state);
|
||||
|
||||
if(layer == 1)
|
||||
{
|
||||
ergodox_right_led_2_on();
|
||||
ergodox_right_led_3_on();
|
||||
|
||||
ergodox_right_led_2_set (LED_BRIGHTNESS_HI);
|
||||
ergodox_right_led_3_set (LED_BRIGHTNESS_HI);
|
||||
}
|
||||
|
||||
if(capsOn)
|
||||
{
|
||||
ergodox_right_led_1_set (LED_BRIGHTNESS_HI);
|
||||
ergodox_right_led_1_on ();
|
||||
}
|
||||
|
||||
if(keyboard_report->mods & MOD_BIT(KC_LSFT))
|
||||
{
|
||||
ergodox_right_led_1_set (LED_BRIGHTNESS_HI);
|
||||
ergodox_right_led_1_on ();
|
||||
} else {
|
||||
ergodox_right_led_1_set (LED_BRIGHTNESS_LO);
|
||||
|
||||
if(!capsOn)
|
||||
{
|
||||
ergodox_right_led_1_off ();
|
||||
}
|
||||
}
|
||||
|
||||
if(keyboard_report->mods & MOD_BIT(KC_LALT))
|
||||
{
|
||||
ergodox_right_led_2_set (LED_BRIGHTNESS_HI);
|
||||
ergodox_right_led_2_on ();
|
||||
} else {
|
||||
ergodox_right_led_2_set (LED_BRIGHTNESS_LO);
|
||||
if(layer != 1)
|
||||
{
|
||||
ergodox_right_led_2_off ();
|
||||
}
|
||||
}
|
||||
|
||||
if(keyboard_report->mods & MOD_BIT(KC_LCTRL))
|
||||
{
|
||||
ergodox_right_led_3_set (LED_BRIGHTNESS_HI);
|
||||
ergodox_right_led_3_on ();
|
||||
} else {
|
||||
ergodox_right_led_3_set (LED_BRIGHTNESS_LO);
|
||||
if(layer != 1)
|
||||
{
|
||||
ergodox_right_led_3_off ();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
void led_set_user(uint8_t usb_led){
|
||||
if (usb_led & (1 << USB_LED_CAPS_LOCK))
|
||||
{
|
||||
capsOn = true;
|
||||
}else {
|
||||
capsOn = false;
|
||||
}
|
||||
}
|
@@ -0,0 +1,3 @@
|
||||
# Truly Ergonomic like layout
|
||||
|
||||
A basic ErgoDox layout that imitates the Truly Ergonomic keyboard layout.
|
177
keyboards/ergodox_infinity/keymaps/trulyergonomic/keymap.c
Normal file
177
keyboards/ergodox_infinity/keymaps/trulyergonomic/keymap.c
Normal file
@@ -0,0 +1,177 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "debug.h"
|
||||
#include "action_layer.h"
|
||||
#include "version.h"
|
||||
|
||||
#define BASE 0 // default layer
|
||||
#define EXTRA 1 // extra
|
||||
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||
EPRM,
|
||||
VRSN,
|
||||
RGB_SLD
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap 0: Basic layer
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | ESC | 1 | 2 | 3 | 4 | 5 | LGui | | LGui | 6 | 7 | 8 | 9 | 0 | - |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | Tab | Q | W | E | R | T | Del | | Tab | Y | U | I | O | P | = |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | RShift |
|
||||
* |--------+------+------+------+------+------| Back | | Back |------+------+------+------+------+--------|
|
||||
* | LCtrl | Z | X | C | V | B | space| | space| N | M | , | . | ' | RCtrl |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | LAlt | Home | PgUp | PgDn | End | | Left | Up | Down | Rigth| RAlt |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | ~ | | | | [ | ] |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | L1 | | Grv | | |
|
||||
* | Space|Enter |------| |------| Enter|Space |
|
||||
* | | | / | | \ | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
|
||||
// Otherwise, it needs KC_*
|
||||
[BASE] = LAYOUT_ergodox( // layer 0 : default
|
||||
// left hand
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LGUI,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_DELT,
|
||||
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G,
|
||||
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BSPC,
|
||||
KC_LALT, KC_HOME, KC_PGUP, KC_PGDN, KC_END,
|
||||
KC_TILD, KC_PIPE,
|
||||
TG(EXTRA),
|
||||
KC_SPC, KC_ENT, KC_SLSH,
|
||||
// right hand
|
||||
KC_LGUI, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||
KC_TAB, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL,
|
||||
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_RSFT,
|
||||
KC_BSPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT, KC_RCTL,
|
||||
KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_RALT,
|
||||
KC_LBRC, KC_RBRC,
|
||||
KC_GRV,
|
||||
KC_BSLS, KC_ENT, KC_SPC
|
||||
),
|
||||
/* Keymap 1: Extra Layer
|
||||
*
|
||||
* ,---------------------------------------------------. ,--------------------------------------------------.
|
||||
* | | F1 | F2 | F3 | F4 | F5 | | | PSCR | F6 | F7 | F8 | F9 | F10 | F11 |
|
||||
* |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
* | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
|
||||
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | Caps | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
|
||||
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
|
||||
* `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | | | | | | | 0 | , | . | = | |
|
||||
* `-----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* |VolUp |VolDn | | Prev | Next |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | | | Stop |Bright|Bright|
|
||||
* | Mute |Pause |------| |------|ness- |ness+ |
|
||||
* | | | | | Play | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
// SYMBOLS
|
||||
[EXTRA] = LAYOUT_ergodox(
|
||||
// left hand
|
||||
KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
|
||||
KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
|
||||
KC_CAPS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
|
||||
KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
|
||||
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
|
||||
KC_VOLU,KC_VOLD,
|
||||
KC_TRNS,
|
||||
KC_MUTE,KC_PAUS,KC_TRNS,
|
||||
// right hand
|
||||
KC_PSCR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||
KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
|
||||
KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
|
||||
KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
|
||||
KC_0, KC_COMM, KC_DOT, KC_EQL, KC_TRNS,
|
||||
KC_MPRV, KC_MNXT,
|
||||
KC_STOP,
|
||||
KC_MPLY, RGB_VAD, RGB_VAI
|
||||
),
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (record->event.pressed) { // For resetting EEPROM
|
||||
eeconfig_init();
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
// dynamically generate these.
|
||||
case EPRM:
|
||||
if (record->event.pressed) {
|
||||
eeconfig_init();
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case VRSN:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RGB_SLD:
|
||||
if (record->event.pressed) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
rgblight_mode(1);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Runs just one time when the keyboard initializes.
|
||||
void matrix_init_user(void) {
|
||||
|
||||
};
|
||||
|
||||
|
||||
// Runs constantly in the background, in a loop.
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
uint8_t layer = biton32(layer_state);
|
||||
|
||||
ergodox_board_led_off();
|
||||
ergodox_right_led_1_off();
|
||||
ergodox_right_led_2_off();
|
||||
ergodox_right_led_3_off();
|
||||
switch (layer) {
|
||||
// TODO: Make this relevant to the ErgoDox EZ.
|
||||
case 1:
|
||||
ergodox_right_led_1_on();
|
||||
break;
|
||||
case 2:
|
||||
ergodox_right_led_2_on();
|
||||
break;
|
||||
default:
|
||||
// none
|
||||
break;
|
||||
}
|
||||
|
||||
};
|
@@ -155,8 +155,8 @@ Datasheets
|
||||
- AD5258: http://www.analog.com/media/en/technical-documentation/data-sheets/AD5258.pdf
|
||||
- JST S5B-PH-SM4: http://www.jst-mfg.com/product/pdf/eng/ePH.pdf
|
||||
- Hirose UX60SC-MB-5S8: https://www.hirose.com/product/en/products/UX/UX60SC-MB-5S8%2880%29/
|
||||
- TYU TU1252WNR-05S: http://php2.twinner.com.tw/files/tyu/TU1252series.pdf
|
||||
- Tr(E42) for LED?: http://cj-elec.com/txUpfile/2013614923661845.pdf
|
||||
- TYU TU1252WNR-05S: http://php2.twinner.com.tw/files/goodjob/TY1252series.pdf
|
||||
|
||||
|
||||
3.3V power supply
|
||||
|
@@ -49,6 +49,13 @@
|
||||
/*tap dance definition */
|
||||
#define TAPPING_TERM 200
|
||||
|
||||
//Mousekeys Settings
|
||||
#define MOUSEKEY_INTERVAL 1
|
||||
#define MOUSEKEY_DELAY 0
|
||||
#define MOUSEKEY_TIME_TO_MAX 1
|
||||
#define MOUSEKEY_MAX_SPEED 15
|
||||
#define MOUSEKEY_WHEEL_DELAY 0
|
||||
|
||||
|
||||
#ifdef RGB_DI_PIN
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
|
@@ -173,14 +173,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
// * | left | down | right | PrScr | SHIFT | CTRL | PgDn | END | [ | ] |
|
||||
// * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
// * | | | | | | | | | ALT | / |
|
||||
// * | P-Brk | | | | | | | RGUI | ALT | / |
|
||||
// * '-----------------------------------------------------------------------------------------'
|
||||
// */
|
||||
//
|
||||
[DIR] = KEYMAP( /* Directional Modifiers */
|
||||
KC_TAB, KC_UP, KC_TRNS, KC_INS, KC_LCTL, KC_RSFT, KC_PGUP, KC_HOME, KC_MINS, KC_EQL ,
|
||||
KC_LEFT, KC_DOWN, KC_RGHT, KC_PSCR, KC_LSFT, KC_RCTL, KC_PGDN, KC_END, KC_LBRC, KC_RBRC ,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RALT, KC_SLSH
|
||||
KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_LALT, KC_SLSH
|
||||
),
|
||||
//
|
||||
// /*
|
||||
@@ -205,17 +205,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// /*
|
||||
// * ETC
|
||||
// * .-----------------------------------------------------------------------------------------.
|
||||
// * | ` | | | | | | | | | \ |
|
||||
// * | ` | mUP | | | | SHIFT | mUp | mDown | | \ |
|
||||
// * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
// * | CAPS | P-Brk | | | | | | | ; | ' |
|
||||
// * | mLeft | mDown | mRight | | SHIFT | | mBtn1 | mBtn2 | ; | ' |
|
||||
// * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
// * | SHIFT | | | | | C-A-D | | GUI | | DEL |
|
||||
// * | Sft//Cp| | | | | C-A-D | | | ALT | DEL |
|
||||
// * '-----------------------------------------------------------------------------------------'
|
||||
// */
|
||||
//
|
||||
[ETC] = KEYMAP( /* ETC */
|
||||
KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS ,
|
||||
KC_CAPS, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT ,
|
||||
KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LALT(LCTL(KC_DEL)), KC_TRNS, KC_RGUI, KC_TRNS, KC_DEL
|
||||
KC_GRV, KC_MS_U, _______, _______, _______, KC_RSFT, KC_WH_U, KC_WH_D, _______, KC_BSLS ,
|
||||
KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_LSFT, KC_TRNS, KC_BTN1, KC_BTN2, KC_SCLN, KC_QUOT ,
|
||||
TD(TD_SFT_CAPS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LALT(LCTL(KC_DEL)), KC_TRNS, KC_TRNS, KC_LALT, KC_DEL
|
||||
),
|
||||
};
|
||||
|
@@ -1,12 +1,47 @@
|
||||

|
||||

|
||||
|
||||
# Gherkin Wanleg Layout
|
||||
|
||||
Here is the layout I came up with to preserve a standard QWERTY layout as much as possible, in as few layers as possible for a 30 key board.
|
||||
I originally set up a few Tap Dance keys, but eventually dropped most of them in favor of chorded versions, since in actual use, they tended to impede typing speed more than their (current) two-key versions.
|
||||
I originally set up a few Tap Dance keys, but dropped half of them in favor of chorded versions, since in actual use, they tended to impede typing speed more than their (current) two-key versions.
|
||||
I've left them in my layout ready for use if anyone wants to try them out:
|
||||
Single tap - Double tap - Hold
|
||||
space - enter - shift
|
||||
backspace - delete - control
|
||||
shift - caps lock - XXXX
|
||||
KC_Q - escape - XXXX
|
||||
|
||||
Legend Name | Single Tap | Double Tap | Hold
|
||||
--- | --- | --- | ---
|
||||
*null* | space | enter | shift
|
||||
*null* | backspace | delete | control
|
||||
Sft//Cp | shift | caps lock | *null*
|
||||
Q//Esc | KC_Q | escape | *null*
|
||||
|
||||
# Gherkin Flashing
|
||||
## Linux
|
||||
The ProMicro doesn't like dfu-programmer, so we have to use AVRdude. What follows below are instructions for Linux taken from https://deskthority.net/workshop-f7/how-to-use-a-pro-micro-as-a-cheap-controller-converter-like-soarer-s-t8448.html
|
||||
|
||||
`ls /dev/tty*`
|
||||
|
||||
Next, plug in your device and re-run the command, the same as before:
|
||||
|
||||
`ls /dev/tty*`
|
||||
|
||||
There should be one more output device than was seen previously. For me, it's /dev/ttyACM0.
|
||||
To flash the device, you need to have AVRdude installed. On Linux, you can do this with your normal package manager.
|
||||
Once you have AVRdude set up, navigate to the directory with your .hex file in it. Then, run the following:
|
||||
|
||||
`avrdude -p atmega32u4 -P YOUR_SERIAL_PORT -c avr109 -U flash:w:YOUR_FILENAME.hex`
|
||||
|
||||
Of course, replace YOUR_SERIAL_PORT with your serial port's device name, and YOUR_FILENAME.hex with the appropriate filename. For me, this line looks like this:
|
||||
|
||||
`avrdude -p atmega32u4 -P /dev/ttyACM0 -c avr109 -U flash:w:Soarer_at2usb_v1.12_atmega32u4.hex`
|
||||
|
||||
If it says ''device not in sync'' or similar, your device is no longer in bootloader mode. Unplug it, and get it back into bootloader mode like you did in the previous step (or short the reset pin), and try again.
|
||||
If this still doesn't work, try running the command again as root
|
||||
|
||||
`sudo avrdude -p atmega32u4 -P /dev/ttyACM0 -c avr109 -U flash:w:Soarer_at2usb_v1.12_atmega32u4.hex`
|
||||
|
||||
## Windows
|
||||
1. Install the latest version of AVRdude for Windows from http://savannah.nongnu.org/projects/avrdude/
|
||||
Test that it installed correctly by running "avrdude" from Command Prompt. It should display a usage message with version information at the end
|
||||
2. Open Device Manager and take a look at your "Ports (COM & LPT)" section
|
||||
3. Plug in the Gherkin and short the RESET pin on the microcontroller to Ground to put it into bootloader mode. Take note of the new COM device that shows up. After 8 seconds or so the microcontroller will leave bootloader mode and it will disappear from that section
|
||||
4. Open Command Prompt and run the following (substituting "com7" with whatever port you saw earlier)
|
||||
|
||||
`avrdude -p atmega32u4 -P com7 -c avr109 -U flash:w:YOURHEX.hex`
|
||||
|
7
keyboards/gonnerd/keymaps/gam3cat/config.h
Normal file
7
keyboards/gonnerd/keymaps/gam3cat/config.h
Normal file
@@ -0,0 +1,7 @@
|
||||
#include "../../config.h"
|
||||
//GRAVE_ESC override for CTRL+SHIFT+ESC Windows task manager shortcut.
|
||||
#define GRAVE_ESC_CTRL_OVERRIDE
|
||||
#define PREVENT_STUCK_MODIFIERS
|
||||
|
||||
//Delay matrix scan for tap dance, reduce to activate modifier keys faster.
|
||||
//#define TAPPING_TERM 200
|
288
keyboards/gonnerd/keymaps/gam3cat/keymap.c
Normal file
288
keyboards/gonnerd/keymaps/gam3cat/keymap.c
Normal file
@@ -0,0 +1,288 @@
|
||||
#include "gonnerd.h"
|
||||
#include "version.h"
|
||||
|
||||
enum layers {
|
||||
_BL = 0, // Base Layer
|
||||
_WL, // Workman Layer
|
||||
_NL, // Norman Layer
|
||||
_DL, // Dvorak Layer
|
||||
_CL, // Base Layer
|
||||
_FL, // Function Layer
|
||||
_AL, // Adjust Layer
|
||||
};
|
||||
|
||||
enum gonnerd_keycodes {
|
||||
DYNAMIC_MACRO_RANGE = SAFE_RANGE,
|
||||
};
|
||||
|
||||
#include "dynamic_macro.h"
|
||||
#define _______ KC_TRNS
|
||||
#define XXXXXXX KC_NO
|
||||
#define FN_CAPS LT(_FL, KC_CAPS)
|
||||
#define KC_DMR1 DYN_REC_START1
|
||||
#define KC_DMR2 DYN_REC_START2
|
||||
#define KC_DMP1 DYN_MACRO_PLAY1
|
||||
#define KC_DMP2 DYN_MACRO_PLAY2
|
||||
#define KC_DMRS DYN_REC_STOP
|
||||
|
||||
static uint8_t current_layer;
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* _BL: Base Layer, mostly standard TKL QWERTY layout.
|
||||
* .-----------------------------------------------------------------------.
|
||||
* |Esc||||| F1| F2| F3| F4||| F5| F6| F7| F8||| F9|F10|F11|F12|PSc|SLk|Pau|
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | ~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Ins|Hom|PgU|
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|Del|End|PgD|
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* |FnCaps| A| S| D| F| G| H| J| K| L| ;| '|Return | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up| |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* |Ctrl |||||Win | Space |RAlt |||||Ctrl |Lft|Dwn|Rgt|
|
||||
* *-----------------------------------------------------------------------*
|
||||
*/
|
||||
[_BL] = KEYMAP_TKL( \
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, \
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \
|
||||
FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, XXXXXXX, KC_ENT, \
|
||||
KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FL), KC_UP, \
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \
|
||||
),
|
||||
|
||||
/* _WL: Workman Layer.
|
||||
* .-----------------------------------------------------------------------.
|
||||
* | ||||| | | | ||| | | | ||| | | | | | | |
|
||||
* .-----------------------------------------------------------|-----------|
|
||||
* | | | | | | | | | | | | -| =| | | | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | | Q| D| R| W| B| J| F| U| P| ;| [| ]| \| | | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | | A| S| H| T| G| Y| N| E| O| I| '| | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | | Z| X| M| C| V| K| L| ,| .| /| | | | | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | ||||| | | ||||| | | | |
|
||||
* *-----------------------------------------------------------------------*
|
||||
*/
|
||||
[_WL] = KEYMAP_TKL( \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, KC_Q , KC_D , KC_R , KC_W , KC_B , KC_J , KC_F , KC_U , KC_P , KC_SCLN, _______, _______, _______, _______, _______, _______, \
|
||||
_______, KC_A , KC_S , KC_H , KC_T , KC_G , KC_Y , KC_N , KC_E , KC_O , KC_I , _______, _______, _______, \
|
||||
_______, _______, KC_Z , KC_X , KC_M , KC_C , KC_V , KC_K , KC_L , KC_COMM, KC_DOT , KC_SLSH, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
|
||||
),
|
||||
|
||||
/* _NL: Norman Layer.
|
||||
* .-----------------------------------------------------------------------.
|
||||
* | ||||| | | | ||| | | | ||| | | | | | | |
|
||||
* .-----------------------------------------------------------|-----------|
|
||||
* | | | | | | | | | | | | -| =| | | | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | | Q| W| D| F| K| J| U| R| L| ;| [| ]| \| | | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | | A| S| E| T| G| Y| N| I| O| H| '| | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | | Z| X| C| V| B| P| M| ,| .| /| | | | | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | ||||| | | ||||| | | | |
|
||||
* *-----------------------------------------------------------------------*
|
||||
*/
|
||||
[_NL] = KEYMAP_TKL( \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, KC_Q , KC_W , KC_D , KC_F , KC_K , KC_J , KC_U , KC_R , KC_L , KC_SCLN, _______, _______, _______, _______, _______, _______, \
|
||||
_______, KC_A , KC_S , KC_E , KC_T , KC_G , KC_Y , KC_N , KC_I , KC_O , KC_H , _______, _______, _______, \
|
||||
_______, _______, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_P , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
|
||||
),
|
||||
|
||||
/* _DL: Dvorak Layer.
|
||||
* .-----------------------------------------------------------------------.
|
||||
* | ||||| | | | ||| | | | ||| | | | | | | |
|
||||
* .-----------------------------------------------------------|-----------|
|
||||
* | | | | | | | | | | | | [| ]| | | | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | | '| ,| .| P| Y| F| G| C| R| L| /| =| \| | | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | | A| O| E| U| I| D| H| T| N| S| -| | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | | ;| Q| J| K| X| B| M| W| V| Z| | | | | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | ||||| | | ||||| | | | |
|
||||
* *-----------------------------------------------------------------------*
|
||||
*/
|
||||
[_DL] = KEYMAP_TKL( \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, _______, _______, \
|
||||
_______, KC_QUOT, KC_COMM, KC_DOT , KC_P , KC_Y , KC_F , KC_G , KC_C , KC_R , KC_L , KC_SLSH, KC_EQL , _______, _______, _______, _______, \
|
||||
_______, KC_A , KC_O , KC_E , KC_U , KC_I , KC_D , KC_H , KC_T , KC_N , KC_S , KC_MINS, _______, _______, \
|
||||
_______, _______, KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_B , KC_M , KC_W , KC_V , KC_Z , _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
|
||||
),
|
||||
|
||||
/* _CL: Colmak Layer.
|
||||
* .-----------------------------------------------------------------------.
|
||||
* | ||||| | | | ||| | | | ||| | | | | | | |
|
||||
* .-----------------------------------------------------------|-----------|
|
||||
* | | | | | | | | | | | | -| =| | | | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | | Q| W| F| P| G| J| L| U| Y| ;| [| ]| \| | | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | | A| R| S| T| D| H| N| E| I| O| '| | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | | Z| X| C| V| B| K| M| ,| .| /| | | | | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | ||||| | | ||||| | | | |
|
||||
* *-----------------------------------------------------------------------*
|
||||
*/
|
||||
[_CL] = KEYMAP_TKL( \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN, _______, _______, _______, _______, _______, _______, \
|
||||
_______, KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , _______, _______, _______, \
|
||||
_______, _______, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
|
||||
),
|
||||
|
||||
/* _FL: Function Layer.
|
||||
* M0 opens Chrome
|
||||
* .-----------------------------------------------------------------------.
|
||||
* | ||||| | | | ||| | | | ||| |VlM|VlD|VlU| | | |
|
||||
* .-----------------------------------------------------------|-----------|
|
||||
* | M0| | | | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* |Fn_AL| | | | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* |FnCaps| | | | | | |Lft|Dwn|Up |Rgt| | | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | | | | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | ||||| | | ||||| |WBk| |WFw|
|
||||
* *-----------------------------------------------------------------------*
|
||||
*/
|
||||
[_FL] = KEYMAP_TKL( \
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
M(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
MO(_AL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, \
|
||||
XXXXXXX, XXXXXXX, KC_MENU, M(1), XXXXXXX, _______, XXXXXXX, XXXXXXX, KC_WBAK, XXXXXXX, KC_WFWD \
|
||||
),
|
||||
|
||||
/* _AL: Adjust Layer.
|
||||
* Default keymap, RGB Underglow, LED backlight, and Dynamic Macro settings.
|
||||
* .-----------------------------------------------------------------------.
|
||||
* |Rst||||| | | | ||| | | | ||| | | | | | | |
|
||||
* .-----------------------------------------------------------|-----------|
|
||||
* |Ver|Tog|Mod|H- |H+ |S- |S+ |V- |V+ | |BLT|BL-|BL+| | |MR1|MP1|
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* |Fn_AL|_BL|_WL| | | | | | | | | | | | MS|MR2|MP2|
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* |FnCaps| | |_DL| | | | | | | | | | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | | | |_CL| |_BL|_NL| | | | | | | | | |
|
||||
* |-----------------------------------------------------------|-----------|
|
||||
* | ||||| | | ||||| | | | |
|
||||
* *-----------------------------------------------------------------------*
|
||||
*/
|
||||
[_AL] = KEYMAP_TKL( \
|
||||
RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
F(0), RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, XXXXXXX, BL_TOGG, BL_DEC, BL_INC, XXXXXXX, XXXXXXX, KC_DMR1, KC_DMP1, \
|
||||
_______, DF(_BL), DF(_WL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DMRS, KC_DMR2, KC_DMP2, \
|
||||
_______, XXXXXXX, XXXXXXX, DF(_DL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF(_CL), XXXXXXX, DF(_BL), DF(_NL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, \
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
|
||||
),
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
||||
switch(id) {
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
return MACRO(I(0), D(LGUI), T(R), U(LGUI), END);
|
||||
}
|
||||
else {
|
||||
SEND_STRING("chrome.exe\n");
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (record->event.pressed) {
|
||||
return MACRO(I(0), T(SPC), T(SPC), T(SPC), T(SPC), END);
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[0] = ACTION_FUNCTION(0),
|
||||
};
|
||||
|
||||
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
||||
switch (id) {
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING ("[QMK:" QMK_KEYBOARD ":" QMK_KEYMAP ":" QMK_VERSION "]");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void matrix_init_user(void) {
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
backlight_level(0);
|
||||
#endif
|
||||
}
|
||||
|
||||
// Runs constantly in the background, in a loop.
|
||||
void matrix_scan_user(void) {
|
||||
uint8_t layer = biton32(layer_state);
|
||||
|
||||
if (current_layer == layer) {
|
||||
}
|
||||
else {
|
||||
current_layer = layer;
|
||||
switch (layer) {
|
||||
case 0:
|
||||
backlight_level(0);
|
||||
break;
|
||||
case 1:
|
||||
backlight_level(1);
|
||||
break;
|
||||
case 2:
|
||||
backlight_level(1);
|
||||
break;
|
||||
case 3:
|
||||
backlight_level(1);
|
||||
break;
|
||||
case 4:
|
||||
backlight_level(1);
|
||||
break;
|
||||
case 5:
|
||||
backlight_level(2);
|
||||
break;
|
||||
case 6:
|
||||
backlight_level(3);
|
||||
break;
|
||||
default:
|
||||
backlight_level(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
// Enable Dynamic Macros.
|
||||
if (!process_record_dynamic_macro(keycode, record)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
120
keyboards/gonnerd/keymaps/gam3cat/readme.md
Normal file
120
keyboards/gonnerd/keymaps/gam3cat/readme.md
Normal file
@@ -0,0 +1,120 @@
|
||||
# Keymap Maintainer: Gam3cat
|
||||
make gonnerd:gam3cat
|
||||
## Layout Config:
|
||||
2u backspace, 2.25u left shift/enter, 1.75u right shift.
|
||||
2x1.5u, 1x7.0u, 2x1.5u, 3x1u bottom row.
|
||||
|
||||
FN_CAPS = MO(_FL) when held, CAPS when tapped.
|
||||
GRAVE_ESC + GUI = `
|
||||
GRAVE_ESC + SHIFT = ~
|
||||
|
||||
## Base Layer Selection:
|
||||
(Caps+TAB+( )): (Q)WERTY, (W)orkman, (N)orman, (D)vorak, (C)olmak
|
||||
|
||||
### Base Layer Options:
|
||||
_BL: Base Layer, mostly standard TKL QWERTY layout.
|
||||
.-----------------------------------------------------------------------.
|
||||
|Esc||||| F1| F2| F3| F4||| F5| F6| F7| F8||| F9|F10|F11|F12|PSc|SLk|Pau|
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| ~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Ins|Hom|PgU|
|
||||
|-----------------------------------------------------------|-----------|
|
||||
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|Del|End|PgD|
|
||||
|-----------------------------------------------------------|-----------|
|
||||
|FnCaps| A| S| D| F| G| H| J| K| L| ;| '|Return | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
|Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up| |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
|Ctrl |||||Win | Space |RAlt |||||Ctrl |Lft|Dwn|Rgt|
|
||||
*-----------------------------------------------------------------------*
|
||||
|
||||
_WL: Workman Layer.
|
||||
.-----------------------------------------------------------------------.
|
||||
| ||||| | | | ||| | | | ||| | | | | | | |
|
||||
.-----------------------------------------------------------|-----------|
|
||||
| | | | | | | | | | | | -| =| | | | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| | Q| D| R| W| B| J| F| U| P| ;| [| ]| \| | | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| | A| S| H| T| G| Y| N| E| O| I| '| | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| | Z| X| M| C| V| K| L| ,| .| /| | | | | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| ||||| | | ||||| | | | |
|
||||
*-----------------------------------------------------------------------*
|
||||
|
||||
_NL: Norman Layer.
|
||||
.-----------------------------------------------------------------------.
|
||||
| ||||| | | | ||| | | | ||| | | | | | | |
|
||||
.-----------------------------------------------------------|-----------|
|
||||
| | | | | | | | | | | | -| =| | | | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| | Q| W| D| F| K| J| U| R| L| ;| [| ]| \| | | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| | A| S| E| T| G| Y| N| I| O| H| '| | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| | Z| X| C| V| B| P| M| ,| .| /| | | | | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| ||||| | | ||||| | | | |
|
||||
*-----------------------------------------------------------------------*
|
||||
|
||||
_DL: Dvorak Layer.
|
||||
.-----------------------------------------------------------------------.
|
||||
| ||||| | | | ||| | | | ||| | | | | | | |
|
||||
.-----------------------------------------------------------|-----------|
|
||||
| | | | | | | | | | | | [| ]| | | | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| | '| ,| .| P| Y| F| G| C| R| L| /| =| \| | | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| | A| O| E| U| I| D| H| T| N| S| -| | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| | ;| Q| J| K| X| B| M| W| V| Z| | | | | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| ||||| | | ||||| | | | |
|
||||
*-----------------------------------------------------------------------*
|
||||
|
||||
_CL: Colmak Layer.
|
||||
.-----------------------------------------------------------------------.
|
||||
| ||||| | | | ||| | | | ||| | | | | | | |
|
||||
.-----------------------------------------------------------|-----------|
|
||||
| | | | | | | | | | | | -| =| | | | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| | Q| W| F| P| G| J| L| U| Y| ;| [| ]| \| | | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| | A| R| S| T| D| H| N| E| I| O| '| | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| | Z| X| C| V| B| K| M| ,| .| /| | | | | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| ||||| | | ||||| | | | |
|
||||
*-----------------------------------------------------------------------*
|
||||
|
||||
_FL: Function Layer.
|
||||
M0 opens Chrome
|
||||
.-----------------------------------------------------------------------.
|
||||
| ||||| | | | ||| | | | ||| |VlM|VlD|VlU| | | |
|
||||
.-----------------------------------------------------------|-----------|
|
||||
| M0| | | | | | | | | | | | | | | | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| | | | | | | | | | | | | | | | | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| | | | | | | |Lft|Dwn|Up |Rgt| | | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| | | | | | | | | | | | | | | | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| ||||| | | ||||| |WBk| |WFw|
|
||||
*-----------------------------------------------------------------------*
|
||||
|
||||
_AL: Adjust Layer.
|
||||
Default keymap, RGB Underglow, LED backlight, and Dynamic Macro settings.
|
||||
.-----------------------------------------------------------------------.
|
||||
|Rst||||| | | | ||| | | | ||| | | | | | | |
|
||||
.-----------------------------------------------------------|-----------|
|
||||
|Ver|Tog|Mod|H- |H+ |S- |S+ |V- |V+ | |BLT|BL-|BL+| | |MR1|MP1|
|
||||
|-----------------------------------------------------------|-----------|
|
||||
|Fn_AL|_BL|_WL| | | | | | | | | | | | MS|MR2|MP2|
|
||||
|-----------------------------------------------------------|-----------|
|
||||
|FnCaps| | |_DL| | | | | | | | | | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| | | |_CL| |_BL|_NL| | | | | | | | | |
|
||||
|-----------------------------------------------------------|-----------|
|
||||
| ||||| | | ||||| | | | |
|
||||
*-----------------------------------------------------------------------*
|
21
keyboards/gonnerd/keymaps/gam3cat/rules.mk
Normal file
21
keyboards/gonnerd/keymaps/gam3cat/rules.mk
Normal file
@@ -0,0 +1,21 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
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
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
@@ -10,7 +10,7 @@ achieve a higher level of productivity if you take the time to learn its functio
|
||||
|
||||
## Quantum MK Firmware
|
||||
|
||||
For the full Quantum feature list, see [the parent readme.md](/doc/readme.md).
|
||||
For the full Quantum feature list, see [the parent readme.md](/docs/README.md).
|
||||
|
||||
## Building
|
||||
|
||||
|
@@ -3,7 +3,7 @@ fivethirteen keyboard firmware
|
||||
|
||||
## Quantum MK Firmware
|
||||
|
||||
For the full Quantum feature list, see [the parent readme.md](/doc/readme.md).
|
||||
For the full Quantum feature list, see [the parent readme.md](/doc/README.md).
|
||||
|
||||
## Building
|
||||
|
||||
|
@@ -76,7 +76,7 @@ This is the code for the KC_FN1 button. Notice how we check against what key is
|
||||
|
||||
## Quantum MK Firmware
|
||||
|
||||
For the full Quantum feature list, see [the parent readme.md](/doc/readme.md).
|
||||
For the full Quantum feature list, see [the parent readme.md](/docs/README.md).
|
||||
|
||||
## Building
|
||||
|
||||
|
@@ -30,4 +30,4 @@ Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` fol
|
||||
- [Shane's Fork](https://github.com/shanecelis/tmk_keyboard/tree/master/keyboard/planck)
|
||||
- [Pierre's Fork](https://github.com/pcarrier/tmk_keyboard/blob/pcarrier/planck/keyboard/gh60/keymap_planck.c)
|
||||
- [Nathan's Fork](https://github.com/nathanrosspowell/tmk_keyboard/tree/planck-jack/keyboard/planck)
|
||||
- [Matthew's Fork](https://github.com/pepers/tmk_keyboard/tree/master/keyboard/planck_grid)
|
||||
- [Matthew's Fork](https://github.com/pepers/tmk_keyboard/tree/master/keyboard/planck)
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
## Quantum MK Firmware
|
||||
|
||||
For the full Quantum feature list, see [the parent README.md](/README.md).
|
||||
For the full Quantum feature list, see [the parent README.md](/readme.md).
|
||||
|
||||
## Building
|
||||
|
||||
|
@@ -14,7 +14,7 @@ You can make your own traveller keyboard by using the openscad tools from the a
|
||||
|
||||
## Quantum MK Firmware
|
||||
|
||||
For the full Quantum feature list, see [the parent README.md](/README.md).
|
||||
For the full Quantum feature list, see [the parent README.md](/readme.md).
|
||||
|
||||
## Building
|
||||
|
||||
|
1
keyboards/jc65/v32u4/keymaps/dead_encryption/config.h
Normal file
1
keyboards/jc65/v32u4/keymaps/dead_encryption/config.h
Normal file
@@ -0,0 +1 @@
|
||||
#include "../../config.h"
|
35
keyboards/jc65/v32u4/keymaps/dead_encryption/keymap.c
Normal file
35
keyboards/jc65/v32u4/keymaps/dead_encryption/keymap.c
Normal file
@@ -0,0 +1,35 @@
|
||||
#include "v32u4.h"
|
||||
// How long (in ms) to wait between animation steps for the breathing mode
|
||||
const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {30, 20, 10, 5};
|
||||
|
||||
// How long (in ms) to wait between animation steps for the rainbow mode
|
||||
const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {120, 60, 30};
|
||||
|
||||
// How long (in ms) to wait between animation steps for the swirl mode
|
||||
const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {30, 20, 3};
|
||||
|
||||
// How long (in ms) to wait between animation steps for the snake mode
|
||||
const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20};
|
||||
|
||||
// How long (in ms) to wait between animation steps for the knight modes
|
||||
const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {127, 63, 31};
|
||||
|
||||
// These control which colors are selected for the gradient mode
|
||||
const uint16_t RGBLED_GRADIENT_RANGES[] PROGMEM = {360, 240, 180, 120, 90};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = KEYMAP(
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_PSCR,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_SPACE, KC_SPACE, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = KEYMAP(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_PAUS, KC_TRNS,
|
||||
KC_TRNS, RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_MOD, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS,
|
||||
KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_HUD, RGB_SAD, RGB_VAD, KC_DOWN, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, BL_TOGG, BL_STEP, BL_INC, BL_DEC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MPLY, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
};
|
10
keyboards/jc65/v32u4/keymaps/dead_encryption/readme.md
Normal file
10
keyboards/jc65/v32u4/keymaps/dead_encryption/readme.md
Normal file
@@ -0,0 +1,10 @@
|
||||
Dead's Keymap
|
||||
===
|
||||
|
||||
Split backspace, 6.25u space, 2 Function Layers, reset + rgb controls on layer(2)
|
||||
|
||||
Intended usage: This is my daily driver keymap
|
||||
|
||||
===
|
||||
|
||||
Encryption Complete
|
7
keyboards/jc65/v32u4/keymaps/gam3cat/config.h
Normal file
7
keyboards/jc65/v32u4/keymaps/gam3cat/config.h
Normal file
@@ -0,0 +1,7 @@
|
||||
#include "../../config.h"
|
||||
//GRAVE_ESC override for CTRL+SHIFT+ESC Windows task manager shortcut.
|
||||
#define GRAVE_ESC_CTRL_OVERRIDE
|
||||
#define PREVENT_STUCK_MODIFIERS
|
||||
|
||||
//Delay matrix scan for tap dance, reduce to activate modifier keys faster.
|
||||
//#define TAPPING_TERM 200
|
279
keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c
Normal file
279
keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c
Normal file
@@ -0,0 +1,279 @@
|
||||
#include "jc65.h"
|
||||
#include "version.h"
|
||||
|
||||
enum layers {
|
||||
_BL = 0, // Base Layer
|
||||
_WL, // Workman Layer
|
||||
_NL, // Norman Layer
|
||||
_DL, // Dvorak Layer
|
||||
_CL, // Base Layer
|
||||
_FL, // Function Layer
|
||||
_AL, // Adjust Layer
|
||||
};
|
||||
|
||||
enum jc65_keycodes {
|
||||
DYNAMIC_MACRO_RANGE = SAFE_RANGE,
|
||||
};
|
||||
|
||||
#include "dynamic_macro.h"
|
||||
#define _______ KC_TRNS
|
||||
#define XXXXXXX KC_NO
|
||||
#define FN_CAPS LT(_FL, KC_CAPS)
|
||||
#define KC_DMR1 DYN_REC_START1
|
||||
#define KC_DMR2 DYN_REC_START2
|
||||
#define KC_DMP1 DYN_MACRO_PLAY1
|
||||
#define KC_DMP2 DYN_MACRO_PLAY2
|
||||
#define KC_DMRS DYN_REC_STOP
|
||||
|
||||
static uint8_t current_layer;
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* _BL: Base Layer, mostly standard 65% QWERTY layout.
|
||||
* .---------------------------------------------------------------.
|
||||
* |GrE| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Ins|
|
||||
* |---------------------------------------------------------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|Del|
|
||||
* |---------------------------------------------------------------|
|
||||
* |FnCaps| A| S| D| F| G| H| J| K| L| ;| '|Return |PgU|
|
||||
* |---------------------------------------------------------------|
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD|
|
||||
* |---------------------------------------------------------------|
|
||||
* |Ctrl|Gui |Alt | Space |RAlt |Ctrl |Lft|Dwn|Rgt|
|
||||
* *---------------------------------------------------------------*
|
||||
*/
|
||||
[_BL] = KEYMAP(
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXXXXX, KC_BSPC, KC_INS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
||||
FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
|
||||
KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
/* _WL: Workman Layer.
|
||||
* .---------------------------------------------------------------.
|
||||
* | | | | | | | | | | | | -| =| | |
|
||||
* |---------------------------------------------------------------|
|
||||
* | | Q| D| R| W| B| J| F| U| P| ;| [| ]| \| |
|
||||
* |---------------------------------------------------------------|
|
||||
* | | A| S| H| T| G| Y| N| E| O| I| '| | |
|
||||
* |---------------------------------------------------------------|
|
||||
* | | Z| X| M| C| V| K| L| ,| .| /| | | |
|
||||
* |---------------------------------------------------------------|
|
||||
* | | | | | | | | | |
|
||||
* *---------------------------------------------------------------*
|
||||
*/
|
||||
[_WL] = KEYMAP(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_Q , KC_D , KC_R , KC_W , KC_B , KC_J , KC_F , KC_U , KC_P , KC_SCLN, _______, _______, _______, _______,
|
||||
_______, KC_A , KC_S , KC_H , KC_T , KC_G , KC_Y , KC_N , KC_E , KC_O , KC_I , _______, _______, _______,
|
||||
_______, _______, KC_Z , KC_X , KC_M , KC_C , KC_V , KC_K , KC_L , KC_COMM, KC_DOT , KC_SLSH, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* _NL: Norman Layer.
|
||||
* .---------------------------------------------------------------.
|
||||
* | | | | | | | | | | | | -| =| | |
|
||||
* |---------------------------------------------------------------|
|
||||
* | | Q| W| D| F| K| J| U| R| L| ;| [| ]| \| |
|
||||
* |---------------------------------------------------------------|
|
||||
* | | A| S| E| T| G| Y| N| I| O| H| '| | |
|
||||
* |---------------------------------------------------------------|
|
||||
* | | Z| X| C| V| B| P| M| ,| .| /| | | |
|
||||
* |---------------------------------------------------------------|
|
||||
* | | | | | | | | | |
|
||||
* *---------------------------------------------------------------*
|
||||
*/
|
||||
[_NL] = KEYMAP(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_Q , KC_W , KC_D , KC_F , KC_K , KC_J , KC_U , KC_R , KC_L , KC_SCLN, _______, _______, _______, _______,
|
||||
_______, KC_A , KC_S , KC_E , KC_T , KC_G , KC_Y , KC_N , KC_I , KC_O , KC_H , _______, _______, _______,
|
||||
_______, _______, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_P , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* _DL: Dvorak Layer.
|
||||
* .---------------------------------------------------------------.
|
||||
* | | | | | | | | | | | | [| ]| | |
|
||||
* |---------------------------------------------------------------|
|
||||
* | | '| ,| .| P| Y| F| G| C| R| L| /| =| \| |
|
||||
* |---------------------------------------------------------------|
|
||||
* | | A| O| E| U| I| D| H| T| N| S| -| | |
|
||||
* |---------------------------------------------------------------|
|
||||
* | | ;| Q| J| K| X| B| M| W| V| Z| | | |
|
||||
* |---------------------------------------------------------------|
|
||||
* | | | | | | | | | |
|
||||
* *---------------------------------------------------------------*
|
||||
*/
|
||||
[_DL] = KEYMAP(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, _______,
|
||||
_______, KC_QUOT, KC_COMM, KC_DOT , KC_P , KC_Y , KC_F , KC_G , KC_C , KC_R , KC_L , KC_SLSH, KC_EQL , _______, _______,
|
||||
_______, KC_A , KC_O , KC_E , KC_U , KC_I , KC_D , KC_H , KC_T , KC_N , KC_S , KC_MINS, _______, _______,
|
||||
_______, _______, KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_B , KC_M , KC_W , KC_V , KC_Z , _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* _CL: Colmak Layer.
|
||||
* .---------------------------------------------------------------.
|
||||
* | | | | | | | | | | | | -| =| | |
|
||||
* |---------------------------------------------------------------|
|
||||
* | | Q| W| F| P| G| J| L| U| Y| ;| [| ]| \| |
|
||||
* |---------------------------------------------------------------|
|
||||
* | | A| R| S| T| D| H| N| E| I| O| '| | |
|
||||
* |---------------------------------------------------------------|
|
||||
* | | Z| X| C| V| B| K| M| ,| .| /| | | |
|
||||
* |---------------------------------------------------------------|
|
||||
* | | | | | | | | | |
|
||||
* *---------------------------------------------------------------*
|
||||
*/
|
||||
[_CL] = KEYMAP(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN, _______, _______, _______, _______,
|
||||
_______, KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , _______, _______, _______,
|
||||
_______, _______, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* _FL: Function Layer.
|
||||
* M0 opens Chrome
|
||||
* .---------------------------------------------------------------.
|
||||
* |M0 | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|SLock |PSc|
|
||||
* |---------------------------------------------------------------|
|
||||
* |Fn_AL| | | | | | | | | | | | | |Pau|
|
||||
* |---------------------------------------------------------------|
|
||||
* |FnCaps| | | | | |Lft|Dwn|Up |Rgt| | | |Hme|
|
||||
* |---------------------------------------------------------------|
|
||||
* | | | | | | | | | | | |VlMute|VlU|End|
|
||||
* |---------------------------------------------------------------|
|
||||
* | | |Menu| | | |WBk|VlD|WFw|
|
||||
* *---------------------------------------------------------------*
|
||||
*/
|
||||
[_FL] = KEYMAP(
|
||||
M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_SLCK, KC_PSCR,
|
||||
MO(_AL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PAUS,
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE, KC_VOLU, KC_END,
|
||||
XXXXXXX, XXXXXXX, KC_MENU, M(1), M(1), M(1), XXXXXXX, XXXXXXX, XXXXXXX, KC_WBAK, KC_VOLD, KC_WFWD
|
||||
),
|
||||
|
||||
/* _AL: Adjust Layer.
|
||||
* Default keymap, RGB Underglow, LED backlight, and Dynamic Macro settings.
|
||||
* .---------------------------------------------------------------.
|
||||
* |Ver|Tog|Mod|H- |H+ |S- |S+ |V- |V+ | |BLT|BL-|BL+| |MP1|
|
||||
* |---------------------------------------------------------------|
|
||||
* |Fn_AL|_BL|_WL| | | | | | | | | | | |MR1|
|
||||
* |---------------------------------------------------------------|
|
||||
* |FnCaps| | |_DL| | | | | | | | | |MS |
|
||||
* |---------------------------------------------------------------|
|
||||
* | | | |_CL| |_BL|_NL| | | | | | |MR2|
|
||||
* |---------------------------------------------------------------|
|
||||
* |Rst | | | | | | | |MP2|
|
||||
* *---------------------------------------------------------------*
|
||||
*/
|
||||
[_AL] = KEYMAP(
|
||||
F(0), RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, XXXXXXX, BL_TOGG, BL_DEC, BL_INC, XXXXXXX, XXXXXXX, KC_DMP1,
|
||||
_______, DF(_BL), DF(_WL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DMR1,
|
||||
_______, XXXXXXX, XXXXXXX, DF(_DL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DMRS,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF(_CL), XXXXXXX, DF(_BL), DF(_NL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DMR2,
|
||||
RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DMP2
|
||||
),
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
||||
switch(id) {
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
return MACRO(I(0), D(LGUI), T(R), U(LGUI), END);
|
||||
}
|
||||
else {
|
||||
SEND_STRING("chrome.exe https://geekhack.org/index.php?topic=86756.new;topicseen#new\n");
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (record->event.pressed) {
|
||||
return MACRO(I(0), T(SPC), T(SPC), T(SPC), T(SPC), END);
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[0] = ACTION_FUNCTION(0),
|
||||
};
|
||||
|
||||
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
||||
switch (id) {
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING ("[QMK:" QMK_KEYBOARD ":" QMK_KEYMAP ":" QMK_VERSION "]");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void matrix_init_user(void) {
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
backlight_level(0);
|
||||
#endif
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
rgblight_mode(1);
|
||||
rgblight_sethsv(180,100,100);
|
||||
#endif
|
||||
}
|
||||
|
||||
// Runs constantly in the background, in a loop.
|
||||
void matrix_scan_user(void) {
|
||||
uint8_t layer = biton32(layer_state);
|
||||
|
||||
if (current_layer == layer) {
|
||||
}
|
||||
else {
|
||||
current_layer = layer;
|
||||
switch (layer) {
|
||||
case 0:
|
||||
backlight_level(0);
|
||||
rgblight_sethsv(180,100,255);
|
||||
break;
|
||||
case 1:
|
||||
backlight_level(1);
|
||||
rgblight_sethsv(180,95,240);
|
||||
break;
|
||||
case 2:
|
||||
backlight_level(1);
|
||||
rgblight_sethsv(180,90,225);
|
||||
break;
|
||||
case 3:
|
||||
backlight_level(1);
|
||||
rgblight_sethsv(180,85,210);
|
||||
break;
|
||||
case 4:
|
||||
backlight_level(1);
|
||||
rgblight_sethsv(180,80,195);
|
||||
break;
|
||||
case 5:
|
||||
backlight_level(2);
|
||||
rgblight_sethsv(230,255,255);
|
||||
break;
|
||||
case 6:
|
||||
backlight_level(3);
|
||||
rgblight_sethsv(350,255,255);
|
||||
break;
|
||||
default:
|
||||
backlight_level(0);
|
||||
rgblight_sethsv(180,100,100);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
// Enable Dynamic Macros.
|
||||
if (!process_record_dynamic_macro(keycode, record)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
109
keyboards/jc65/v32u4/keymaps/gam3cat/readme.md
Normal file
109
keyboards/jc65/v32u4/keymaps/gam3cat/readme.md
Normal file
@@ -0,0 +1,109 @@
|
||||
# Keymap Maintainer: Gam3cat
|
||||
make jc65/v32u4:gam3cat
|
||||
## Layout Config:
|
||||
2u backspace, 2.25u left shift/enter, 1.75u right shift.
|
||||
(2x1.5u, 1x7.0u, 2x1.5u, 3x1u), (3x1.25u, 1x6.25u, 2x1.5u, 3x1u), or
|
||||
(3x1.25u, 1x6.25u, 6x1u) bottom row.
|
||||
|
||||
FN_CAPS = MO(_FL) when held, CAPS when tapped.
|
||||
GRAVE_ESC + GUI = `
|
||||
GRAVE_ESC + SHIFT = ~
|
||||
|
||||
## Base Layer Selection:
|
||||
(Caps+TAB+( )): (Q)WERTY, (W)orkman, (N)orman, (D)vorak, (C)olmak
|
||||
|
||||
### Base Layer Options:
|
||||
#### _BL: Base Layer, mostly standard 65% QWERTY layout.
|
||||
.---------------------------------------------------------------.
|
||||
|GrE| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Ins|
|
||||
|---------------------------------------------------------------|
|
||||
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|Del|
|
||||
|---------------------------------------------------------------|
|
||||
|FnCaps| A| S| D| F| G| H| J| K| L| ;| '|Return |PgU|
|
||||
|---------------------------------------------------------------|
|
||||
|Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD|
|
||||
|---------------------------------------------------------------|
|
||||
|Ctrl|Gui |Alt | Space |RAlt |Ctrl |Lft|Dwn|Rgt|
|
||||
*---------------------------------------------------------------*
|
||||
|
||||
#### _WL: Workman Layer.
|
||||
.---------------------------------------------------------------.
|
||||
| | | | | | | | | | | | -| =| | |
|
||||
|---------------------------------------------------------------|
|
||||
| | Q| D| R| W| B| J| F| U| P| ;| [| ]| \| |
|
||||
|---------------------------------------------------------------|
|
||||
| | A| S| H| T| G| Y| N| E| O| I| '| | |
|
||||
|---------------------------------------------------------------|
|
||||
| | Z| X| M| C| V| K| L| ,| .| /| | | |
|
||||
|---------------------------------------------------------------|
|
||||
| | | | | | | | | |
|
||||
*---------------------------------------------------------------*
|
||||
|
||||
#### _NL: Norman Layer.
|
||||
.---------------------------------------------------------------.
|
||||
| | | | | | | | | | | | -| =| | |
|
||||
|---------------------------------------------------------------|
|
||||
| | Q| W| D| F| K| J| U| R| L| ;| [| ]| \| |
|
||||
|---------------------------------------------------------------|
|
||||
| | A| S| E| T| G| Y| N| I| O| H| '| | |
|
||||
|---------------------------------------------------------------|
|
||||
| | Z| X| C| V| B| P| M| ,| .| /| | | |
|
||||
|---------------------------------------------------------------|
|
||||
| | | | | | | | | |
|
||||
*---------------------------------------------------------------*
|
||||
|
||||
#### _DL: Dvorak Layer.
|
||||
.---------------------------------------------------------------.
|
||||
| | | | | | | | | | | | [| ]| | |
|
||||
|---------------------------------------------------------------|
|
||||
| | '| ,| .| P| Y| F| G| C| R| L| /| =| \| |
|
||||
|---------------------------------------------------------------|
|
||||
| | A| O| E| U| I| D| H| T| N| S| -| | |
|
||||
|---------------------------------------------------------------|
|
||||
| | ;| Q| J| K| X| B| M| W| V| Z| | | |
|
||||
|---------------------------------------------------------------|
|
||||
| | | | | | | | | |
|
||||
*---------------------------------------------------------------*
|
||||
|
||||
#### _CL: Colmak Layer.
|
||||
.---------------------------------------------------------------.
|
||||
| | | | | | | | | | | | -| =| | |
|
||||
|---------------------------------------------------------------|
|
||||
| | Q| W| F| P| G| J| L| U| Y| ;| [| ]| \| |
|
||||
|---------------------------------------------------------------|
|
||||
| | A| R| S| T| D| H| N| E| I| O| '| | |
|
||||
|---------------------------------------------------------------|
|
||||
| | Z| X| C| V| B| K| M| ,| .| /| | | |
|
||||
|---------------------------------------------------------------|
|
||||
| | | | | | | | | |
|
||||
*---------------------------------------------------------------*
|
||||
|
||||
### Function Layer: (hold Caps to access)
|
||||
M0 opens Chrome
|
||||
#### _FL: Function Layer.
|
||||
.---------------------------------------------------------------.
|
||||
|M0 | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|SLock |PSc|
|
||||
|---------------------------------------------------------------|
|
||||
|Fn_AL| | | | | | | | | | | | | |Pau|
|
||||
|---------------------------------------------------------------|
|
||||
|FnCaps| | | | | |Lft|Dwn|Up |Rgt| | | |Hme|
|
||||
|---------------------------------------------------------------|
|
||||
| | | | | | | | | | | |VlMute|VlU|End|
|
||||
|---------------------------------------------------------------|
|
||||
| | |Menu| | | |WBk|VlD|WFw|
|
||||
*---------------------------------------------------------------*
|
||||
|
||||
### Adjust Layer: (hold Caps+TAB to access)
|
||||
Default keymap, RGB Underglow, LED backlight, and Dynamic Macro settings.
|
||||
#### _AL: Adjust Layer.
|
||||
.---------------------------------------------------------------.
|
||||
|Ver|Tog|Mod|H- |H+ |S- |S+ |V- |V+ | |BLT|BL-|BL+| |MP1|
|
||||
|---------------------------------------------------------------|
|
||||
|Fn_AL|_BL|_WL| | | | | | | | | | | |MR1|
|
||||
|---------------------------------------------------------------|
|
||||
|FnCaps| | |_DL| | | | | | | | | |MS |
|
||||
|---------------------------------------------------------------|
|
||||
| | | |_CL| |_BL|_NL| | | | | | |MR2|
|
||||
|---------------------------------------------------------------|
|
||||
|Rst | | | | | | | |MP2|
|
||||
*---------------------------------------------------------------*
|
6
keyboards/jc65/v32u4/keymaps/gam3cat/rules.mk
Normal file
6
keyboards/jc65/v32u4/keymaps/gam3cat/rules.mk
Normal file
@@ -0,0 +1,6 @@
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
BACKLIGHT_ENABLE=yes
|
||||
//TAP_DANCE_ENABLE=yes
|
@@ -5,7 +5,7 @@ A compact 40% keyboard.
|
||||
|
||||
Keyboard Maintainer: QMK Community
|
||||
Hardware Supported: JD40 PCB
|
||||
Hardware Availability: [1up](https://1upkeyboards.com/jd40-mkii-1up-keyboards-logo-pcb.html) [mechanicalkeyboards.com](https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=2452) [originative](https://originative.co/products/jd40-pcb)
|
||||
Hardware Availability: [1up](https://1upkeyboards.com/jd40-mkii-1up-keyboards-logo-pcb.html) [mechanicalkeyboards.com](https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=2452) [originative](https://www.originativeco.com/products/jd40-pcb)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
|
8
keyboards/jj40/keymaps/ajp10304/config.h
Normal file
8
keyboards/jj40/keymaps/ajp10304/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
#define PREVENT_STUCK_MODIFIERS
|
||||
|
||||
#endif
|
70
keyboards/jj40/keymaps/ajp10304/jj40.h
Normal file
70
keyboards/jj40/keymaps/ajp10304/jj40.h
Normal file
@@ -0,0 +1,70 @@
|
||||
/*
|
||||
Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.com>
|
||||
|
||||
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/>.
|
||||
*/
|
||||
|
||||
#ifndef KEYMAP_COMMON_H
|
||||
#define KEYMAP_COMMON_H
|
||||
|
||||
#include "quantum.h"
|
||||
// #include "keycode.h"
|
||||
// #include "action.h"
|
||||
|
||||
#define KEYMAP_GRID( \
|
||||
K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, \
|
||||
K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \
|
||||
K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \
|
||||
K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, K312 \
|
||||
) \
|
||||
{ \
|
||||
{ K012, K011, K010, K09, K05, K06, K07, K08, K04, K03, K02, K01 }, \
|
||||
{ K112, K111, K110, K19, K15, K16, K17, K18, K14, K13, K12, K11 }, \
|
||||
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
|
||||
{ K212, K211, K210, K29, K25, K26, K27, K28, K24, K23, K22, K21 }, \
|
||||
{ K312, K311, K310, K39, K35, K36, K37, K38, K34, K33, K32, K31 } \
|
||||
}
|
||||
|
||||
#define KEYMAP_MIT( \
|
||||
K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, \
|
||||
K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \
|
||||
K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \
|
||||
K31, K32, K33, K34, K35, K3X, K38, K39, K310, K311, K312 \
|
||||
) \
|
||||
{ \
|
||||
{ K012, K011, K010, K09, K05, K06, K07, K08, K04, K03, K02, K01 }, \
|
||||
{ K112, K111, K110, K19, K15, K16, K17, K18, K14, K13, K12, K11 }, \
|
||||
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
|
||||
{ K212, K211, K210, K29, K25, K26, K27, K28, K24, K23, K22, K21 }, \
|
||||
{ K312, K311, K310, K39, K35, K3X, KC_NO, K38, K34, K33, K32, K31 } \
|
||||
}
|
||||
|
||||
#define KEYMAP_OFFSET( \
|
||||
K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, \
|
||||
K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \
|
||||
K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \
|
||||
K31, K32, K33, K34, K35, K36, K3X, K39, K310, K311, K312 \
|
||||
) \
|
||||
{ \
|
||||
{ K012, K011, K010, K09, K05, K06, K07, K08, K04, K03, K02, K01 }, \
|
||||
{ K112, K111, K110, K19, K15, K16, K17, K18, K14, K13, K12, K11 }, \
|
||||
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
|
||||
{ K212, K211, K210, K29, K25, K26, K27, K28, K24, K23, K22, K21 }, \
|
||||
{ K312, K311, K310, K39, K35, K36, K3X, KC_NO, K34, K33, K32, K31 } \
|
||||
}
|
||||
|
||||
#define KEYMAP KEYMAP_GRID
|
||||
#define LAYOUT_ortho_4x12 LAYOUT_planck_grid
|
||||
|
||||
#endif
|
206
keyboards/jj40/keymaps/ajp10304/keymap.c
Normal file
206
keyboards/jj40/keymaps/ajp10304/keymap.c
Normal file
@@ -0,0 +1,206 @@
|
||||
#include "jj40.h"
|
||||
#include "action_layer.h"
|
||||
#include "eeconfig.h"
|
||||
#include "keymap_uk.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// 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.
|
||||
#define _QWERTY 0
|
||||
#define _LOWER 1
|
||||
#define _RAISE 2
|
||||
#define _FUNC 3
|
||||
#define _ADJUST 16
|
||||
#define _DYN 6
|
||||
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
FUNC,
|
||||
LOWER,
|
||||
RAISE,
|
||||
DYNAMIC_MACRO_RANGE
|
||||
};
|
||||
|
||||
#include "dynamic_macro.h"
|
||||
|
||||
// Fillers to make layering more clear
|
||||
#define _______ KC_TRNS
|
||||
#define XXXXXXX KC_NO
|
||||
|
||||
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 | ;: | Enter|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = KEYMAP(\
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC ,\
|
||||
MT(MOD_LSFT, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MT(MOD_RSFT, KC_ENT) ,\
|
||||
KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT ,\
|
||||
MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LSHIFT, KC_BTN2, KC_RCTL, MO(_FUNC) \
|
||||
),
|
||||
|
||||
/* Function
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_FUNC] = KEYMAP(\
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 ,\
|
||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT ,\
|
||||
KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,\
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
|
||||
),
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = KEYMAP(\
|
||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_BSPC ,\
|
||||
LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_0), LCTL(KC_DEL), LCTL(KC_BSPC) ,\
|
||||
KC_LSPO, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_QUOT, KC_MINS, KC_EQL, KC_NONUS_HASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,\
|
||||
_______, _______, _______, _______, _______, KC_DEL, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
|
||||
),
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | { | } | | |< | LEFT | DOWN |RIGHT | >| |ZOOM -|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | Alt | Enter|Raise | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = KEYMAP(\
|
||||
KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN ,\
|
||||
KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) ,\
|
||||
_______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) ,\
|
||||
_______, _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ \
|
||||
),
|
||||
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ???? | Reset|Qwerty| | | | | | | | | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | CAPS | | | | | | | Mute | Vol+ | Play | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | | | Prev | Vol- | Next | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | DYN | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = KEYMAP(\
|
||||
M(0), RESET, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,\
|
||||
KC_CAPS, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,\
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,\
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, MO(_DYN), _______, _______, _______ \
|
||||
),
|
||||
|
||||
/* DYN: Macro Recording and Playback
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | | | | | REC1 | REC2 | | | | | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | | | | PLAY1| PLAY2| | | | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | STOP | STOP | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_DYN]= KEYMAP(\
|
||||
_______, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, _______,\
|
||||
_______, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______,\
|
||||
_______, _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, _______, _______, _______, _______, _______,\
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
|
||||
void persistant_default_layer_set(uint16_t default_layer) {
|
||||
eeconfig_update_default_layer(default_layer);
|
||||
default_layer_set(default_layer);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
|
||||
if (!process_record_dynamic_macro(keycode, record)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
persistant_default_layer_set(1UL<<_QWERTY);
|
||||
}
|
||||
return false;
|
||||
case LOWER:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
case RAISE:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
||||
switch(id) {
|
||||
// These would trigger when you hit a key mapped as M(0)
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
return MACRO(
|
||||
// SENSITIVE
|
||||
END
|
||||
);
|
||||
}
|
||||
break;
|
||||
case 1: // Word Select
|
||||
if (record->event.pressed) {
|
||||
return MACRO(
|
||||
DOWN(KC_LCTL), DOWN(KC_RIGHT), UP(KC_RIGHT), DOWN(KC_LSFT), DOWN(KC_LEFT), UP(KC_LEFT), UP(KC_LSFT), UP(KC_LCTL),
|
||||
END
|
||||
);
|
||||
}
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
91
keyboards/jj40/keymaps/ajp10304/readme.md
Normal file
91
keyboards/jj40/keymaps/ajp10304/readme.md
Normal file
@@ -0,0 +1,91 @@
|
||||
# AJP10304 Custom JJ40 Layout
|
||||
###Based on my Planck layout of the same name.
|
||||
|
||||
**Note:** In the tables below where there are two characters on a key,
|
||||
the second is the output when shift is applied.
|
||||
|
||||
**Note:** The below tables assume a UK layout.
|
||||
|
||||
##### Main Qwerty Layer
|
||||
|
||||
* Tab: when held, operates as shift.
|
||||
* Enter: when held, operates as shift.
|
||||
* MENU: perform right-click
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
|
||||
| Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
| Tab | A | S | D | F | G | H | J | K | L | ;: | Enter|
|
||||
| Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
|
||||
| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn |
|
||||
|
||||
##### Function Layer
|
||||
Activated when `fn` held in the above `qwerty` layer.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
|
||||
| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
|
||||
| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn |
|
||||
|
||||
##### Lower Layer
|
||||
Activated when `Lower` is held in the above `qwerty` layer.
|
||||
|
||||
* Numbers are along the top row, their shifted counterparts are on row 2.
|
||||
* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
|
||||
* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
|
||||
| ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
|
||||
| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
|
||||
| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
|
||||
|
||||
##### Raise Layer
|
||||
Activated when `Raise` is held in the above `qwerty` layer.
|
||||
|
||||
* Preferred layer for typing brackets.
|
||||
* Allows for cursor navigation to be used solely with the right hand.
|
||||
* WRDSEL: Select the word where the cursor is.
|
||||
* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
|
||||
| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
|
||||
| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
|
||||
| | | | { | } | ||<| LEFT | DOWN |RIGHT |>||ZOOM -|
|
||||
| | | | | | Alt | Enter |Raise | | | | |
|
||||
|
||||
##### Lower + Raise
|
||||
Activated when `Lower` and `Raise` are held together the above `qwerty` layer.
|
||||
|
||||
* Audio controls in the same position as cursor keys from the `Raise` layer.
|
||||
* ????: Runs a macro for outputting a text string. Do not use this store passwords.
|
||||
* Reset: Enter bootloader for flashing firmware to the keyboard.
|
||||
* CAPS: Toggle caps lock.
|
||||
* DYN: Enter `DYN` layer.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| ???? | Reset|Qwerty| | | | | | | | | Del |
|
||||
| CAPS | | | | | | | Mute | Vol+ | Play | | |
|
||||
| | | | | | | | Prev | Vol- | Next | | |
|
||||
| | | | | | | | | DYN | | | |
|
||||
|
||||
##### DYN
|
||||
Activated when `DYN` held along with `Lower` and `Raise`
|
||||
Allows recording of macros. To start recording the macro, press either REC1 or REC2.
|
||||
To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| | | | | | REC1 | REC2 | | | | | |
|
||||
| | | | | | PLAY1| PLAY2| | | | | |
|
||||
| | | | | | STOP | STOP | | | | | |
|
||||
| | | | | | | | | | | | |
|
||||
|
||||
|
||||
####Manual Flashing of hex file
|
||||
`bootloadHID -r .build/jj40_ajp10304.hex`
|
5
keyboards/jj40/keymaps/ajp10304/rules.mk
Normal file
5
keyboards/jj40/keymaps/ajp10304/rules.mk
Normal file
@@ -0,0 +1,5 @@
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
AUDIO_ENABLE = no
|
24
keyboards/kbd66/keymaps/maartenwut/config.h
Executable file
24
keyboards/kbd66/keymaps/maartenwut/config.h
Executable file
@@ -0,0 +1,24 @@
|
||||
/* Copyright 2018 Alex Peters
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
// place overrides here
|
||||
|
||||
#endif
|
69
keyboards/kbd66/keymaps/maartenwut/keymap.c
Executable file
69
keyboards/kbd66/keymaps/maartenwut/keymap.c
Executable file
@@ -0,0 +1,69 @@
|
||||
#include "kbd66.h"
|
||||
|
||||
#define _MA 0
|
||||
#define _GA 1
|
||||
#define _FL 2
|
||||
#define _AR 3
|
||||
#define _LE 4
|
||||
#define _LO 5
|
||||
#define _UL 6
|
||||
|
||||
#define TRNS KC_TRNS
|
||||
#define ______ KC_NO
|
||||
#define trigger_time 400
|
||||
|
||||
#define LSHIFT OSM(MOD_LSFT)
|
||||
#define SPACE LT(_AR, KC_SPC)
|
||||
#define CAPS LT(_LE, KC_CAPS)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// Main Layer
|
||||
[_MA] = KEYMAP_ANSI(
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_MPLY, KC_BSPC, KC_PSCR,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
||||
CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
LSHIFT, TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TRNS, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, SPACE, SPACE, KC_RALT, KC_RCTRL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
//Function Layer
|
||||
[_FL] = KEYMAP_ANSI(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TRNS, RESET, KC_PGUP,
|
||||
TRNS, KC_BTN1, KC_MS_U, KC_BTN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_PGDN,
|
||||
TRNS, KC_MS_L, KC_MS_D, KC_MS_R, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_VOLD, KC_VOLU, KC_MUTE, TRNS, TRNS, KC_WH_U,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_WH_L, KC_WH_D, KC_WH_R),
|
||||
|
||||
//Arrow keys layer (space bar)
|
||||
[_AR] = KEYMAP_ANSI(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, M(0), TRNS, TRNS, TRNS),
|
||||
//LED control layer (caps)
|
||||
[_LE] = KEYMAP_ANSI(
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, BL_TOGG, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, BL_INC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, BL_DEC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
|
||||
|
||||
//Game layer (fn + g)
|
||||
[_GA] = KEYMAP_ANSI(
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
KC_CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
KC_LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, KC_SPC, KC_SPC, TRNS, TRNS, MO(_FL), TRNS, TRNS, TRNS),
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
||||
switch (id) {
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("AdminF123!");
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
3
keyboards/kbd66/keymaps/maartenwut/readme.md
Executable file
3
keyboards/kbd66/keymaps/maartenwut/readme.md
Executable file
@@ -0,0 +1,3 @@
|
||||
# Maartenwut's KBD66 layout
|
||||
|
||||
This is Maartenwut's layout, which is really similar to Maartenwut's Tada68 layout.
|
@@ -23,7 +23,7 @@ Not yet implemented:
|
||||
|
||||
## Quantum MK Firmware
|
||||
|
||||
For the full Quantum feature list, see [the parent readme.md](/doc/readme.md).
|
||||
For the full Quantum feature list, see [the parent readme.md](/docs/README.md).
|
||||
|
||||
## Building
|
||||
|
||||
|
@@ -26,18 +26,18 @@ If you want to perform this customization, these parts may be helpful.
|
||||
| Reset cables | 2 | Sparkfun | PRT-09140 |
|
||||
|
||||
The board and connections are shown here
|
||||

|
||||

|
||||
|
||||
The Teensy mounting detail can be seen here.
|
||||
I used a socket for prototyping.
|
||||

|
||||

|
||||
|
||||
|
||||
Since the proper mounting of the Teensy board places the reset button in a tight space, I added a 2-pin header to the reset and ground pins on the edge of the board.
|
||||
Shorting these two pins together will reset the board.
|
||||
I also put female to male header jumper cables on these so they could be accessed outside the enclosure.
|
||||
The exterior cables can be seen here.
|
||||

|
||||

|
||||
|
||||
|
||||
## Keymaps
|
||||
@@ -52,7 +52,3 @@ To build with the default keymap, run `make default` while in the
|
||||
This keymap contains a dvorak implementation as well as media and symbol layers.
|
||||
|
||||
Run `make dvorak` while in the `kinesis_stapelberg` working directory.
|
||||
|
||||

|
||||

|
||||

|
@@ -33,7 +33,7 @@ A [keymap](keymaps/winkeyless) for the winkeyless version of the PCB are also pr
|
||||
|
||||
### Custom keymaps
|
||||
|
||||
To define your own keymap, copy one of the [existing keymap](keymaps) folders and give it the name of your keymap. Then check the [keymap documentation](https://docs.qmk.fm/Keymap.html) for details on how to modify the keymap.
|
||||
To define your own keymap, copy one of the [existing keymap](keymaps) folders and give it the name of your keymap. Then check the [keymap documentation](https://docs.qmk.fm/faq_keymap.html) for details on how to modify the keymap.
|
||||
|
||||
To make it easy to define keymaps for the different versions of the PCB two macros are provided.
|
||||
|
||||
|
@@ -44,7 +44,7 @@ If everything worked correctly you will see a file:
|
||||
lets_split_rev2_YOUR_KEYMAP_NAME.hex
|
||||
```
|
||||
|
||||
For more information on customizing keymaps, take a look at the primary documentation for [Customizing Your Keymap](/readme.md##customizing-your-keymap) in the main readme.md.
|
||||
For more information on customizing keymaps, take a look at the primary documentation for [Customizing Your Keymap](/docs/faq_keymap.md) in the main readme.md.
|
||||
|
||||
### Let's split 1.0
|
||||
If you have a first generation Let's Split you will need to use the revision 1 code. To do so, use `rev1` in all your commands instead.
|
||||
|
8
keyboards/lfkeyboards/lfk78/keymaps/ca178858/config.h
Normal file
8
keyboards/lfkeyboards/lfk78/keymaps/ca178858/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
|
||||
#endif
|
197
keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c
Normal file
197
keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c
Normal file
@@ -0,0 +1,197 @@
|
||||
#include "lfk78.h"
|
||||
#include "issi.h"
|
||||
#include "lighting.h"
|
||||
#include "action_layer.h"
|
||||
#include "process_tap_dance.h"
|
||||
|
||||
//Define a shorter 'transparent' key code to make the keymaps more compact
|
||||
#define KC_TR KC_TRNS
|
||||
|
||||
enum keymap_layout {
|
||||
VANILLA = 0, // matches MF68 layout
|
||||
CS_GO, // 0x08
|
||||
FUNC, // 0x10
|
||||
SETTINGS, // 0x20
|
||||
};
|
||||
|
||||
enum {
|
||||
TD_ESC_FUNC = 0,
|
||||
TD_ESC_CTRL,
|
||||
TD_SPC_SPAM
|
||||
};
|
||||
|
||||
bool spam_space = false;
|
||||
|
||||
|
||||
// {0x00000000, 0xFFFFFFFF, {0x0000, 0x0FFF, 0x0000}}, // base layer - green
|
||||
// {0x00000008, 0xFFFFFFF8, {0x07FF, 0x07FF, 0x0000}}, // CSGO layer - orange
|
||||
// {0x00000010, 0xFFFFFFF0, {0x0000, 0x0000, 0x0FFF}}, // function layer - blue
|
||||
// {0x00000020, 0xFFFFFFE0, {0x0FFF, 0x0000, 0x0FFF}}, // settings layer - magenta
|
||||
// {0xFFFFFFFF, 0xFFFFFFFF, {0x0FFF, 0x0FFF, 0x0FFF}}, // unknown layer - REQUIRED - white
|
||||
|
||||
|
||||
// Colors of the layer indicator LED
|
||||
// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
|
||||
const Layer_Info layer_info[] = {
|
||||
// Layer Mask Red Green Blue
|
||||
{0x00000000, 0xFFFFFFFF, {0x0000, 0x0FFF, 0x0000}}, // base layer - green
|
||||
{0x00000002, 0xFFFFFFFE, {0x07FF, 0x07FF, 0x0000}}, // CSGO layer - orange
|
||||
{0x00000004, 0xFFFFFFFC, {0x0000, 0x0000, 0x0FFF}}, // function layer - blue
|
||||
{0x00000008, 0xFFFFFFE8, {0x0FFF, 0x0000, 0x0FFF}}, // settings layer - magenta
|
||||
{0xFFFFFFFF, 0xFFFFFFFF, {0x0FFF, 0x0FFF, 0x0FFF}}, // unknown layer - REQUIRED - white
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap BASE: (Base Layer) Default Layer
|
||||
* ,---------. ,------------------------------------------------------------. ,---------.
|
||||
* |Vol-|Vol+| |Esc~| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backspa| | Ins|PgUp|
|
||||
* |---------| |------------------------------------------------------------| |---------|
|
||||
* | F3 | F4 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del|PgDn|
|
||||
* |---------| |------------------------------------------------------------| `---------'
|
||||
* | F5 | F6 | |Control | A| S| D| F| G| H| J| K| L| ;| '|Return |
|
||||
* |---------| |------------------------------------------------------------| ,----.
|
||||
* | F7 | F8 | |Shift | Z| X| C| V| B| N| M| ,| .| /| Shift | | Up |
|
||||
* |---------| |-------------------------------------------------------------------------.
|
||||
* | F9 | F10| |Func|Alt |Cmd | Space |Cmd |Alt |Func | |Lft| Dn |Rig |
|
||||
* `---------' `------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[VANILLA] = SPLIT_SHIFT_KEYMAP(
|
||||
KC_VOLD, KC_VOLU, KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, LALT(KC_F5), KC_PGUP,
|
||||
KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_PGDN,
|
||||
KC_F5, KC_F6, TD(TD_ESC_FUNC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(CS_GO), KC_UP,
|
||||
KC_F9, KC_F10, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[CS_GO] = SPLIT_SHIFT_KEYMAP(
|
||||
KC_TR, KC_TR, KC_GESC, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_FN0, KC_TR,
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR,
|
||||
KC_TR, KC_TR, KC_LCTL, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR,
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR,
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR),
|
||||
|
||||
/* Keymap FUNCTION: Function Layer
|
||||
* ,---------. ,-------------------------------------------------------------. ,---------.
|
||||
* | V- | V+ | | ` |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Delete | | Ins|Home|
|
||||
* |---------| |-------------------------------------------------------------| |---------|
|
||||
* | | | |Tab | |PgU| | | | | | Up| | | | | | | Del|End |
|
||||
* |---------| |-------------------------------------------------------------| `---------'
|
||||
* | | | |Control|Hme|PgD|End| | | |Lft|Dwn|Rgt| | | |
|
||||
* |---------| |-------------------------------------------------------------| ,----.
|
||||
* | | | |Shift | |Del| | | | |Mute|V- |V+ | |TG(SETTINGS)| | Up |
|
||||
* |---------| |--------------------------------------------------------------------------.
|
||||
* | | F10| |Func|Win |Alt | PgD |Alt |Ctrl |Func | |Lft| Dn |Rig |
|
||||
* `---------' `------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[FUNC] = SPLIT_SHIFT_KEYMAP(
|
||||
KC_TR, KC_TR, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, TO(CS_GO), KC_HOME,
|
||||
KC_TR, KC_TR, KC_NO,KC_PGUP, KC_UP, KC_PGDN, KC_HOME, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_END,
|
||||
KC_TR, KC_TR, KC_TR, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO,
|
||||
KC_TR, KC_TR, KC_TR, KC_NO, KC_DEL, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, TG(SETTINGS), KC_NO, KC_TR,
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_PGDN, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR),
|
||||
|
||||
/* Keymap SETTINGS: Settings Layer
|
||||
* ,---------. ,-----------------------------------------------------------. ,-------------.
|
||||
* | | | |FN0 |BL0|BL1|BL2|BL3| | | | | | |BL-|BL+|BL Togl| |RGB Tog |Val+|
|
||||
* |---------| |-----------------------------------------------------------| |-------------|
|
||||
* | | | |Debug| | | | | | | | | | | | |RGBTst| |RGB Mode|Val-|
|
||||
* |---------| |-----------------------------------------------------------| `-------------'
|
||||
* | | | |LayrClr|Hz+|MS+| | | | | | | | | | RST |
|
||||
* |---------| |-----------------------------------------------------------| ,----.
|
||||
* | | | |ClickTgl|Hz-|MS-| | | | | | | | |Layer Clr | |Hue+|
|
||||
* |---------| |------------------------------------------------------------------------.
|
||||
* | | | | | | | Print Debug | | | | |Sat-|Hue-|Sat+|
|
||||
* `---------' `------------------------------------------------------' `--------------'
|
||||
*/
|
||||
[SETTINGS] = SPLIT_SHIFT_KEYMAP(
|
||||
KC_NO, KC_NO, KC_FN0,KC_FN3,KC_FN4,KC_FN5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI,
|
||||
KC_NO, KC_NO, DEBUG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_MOD, RGB_VAD,
|
||||
KC_NO, KC_NO, KC_FN0, KC_FN6,KC_FN8, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET,
|
||||
KC_NO, KC_NO, KC_FN10, KC_FN7,KC_FN9, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_FN0, KC_NO, RGB_HUI,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_FN12, KC_NO, KC_NO, KC_FN0, RGB_SAD, RGB_HUD, RGB_SAI),
|
||||
};
|
||||
|
||||
|
||||
void tap_space_spam_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
if(get_mods() & (MOD_BIT(KC_LGUI))){
|
||||
return;
|
||||
}
|
||||
if(state->pressed){
|
||||
spam_space = true;
|
||||
}
|
||||
register_code(KC_SPC);
|
||||
unregister_code(KC_SPC);
|
||||
}
|
||||
|
||||
void tap_space_spam_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
spam_space = false;
|
||||
unregister_code(KC_SPC);
|
||||
}
|
||||
|
||||
void tap_esc_func_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
if(state->pressed){
|
||||
layer_on(FUNC);
|
||||
}else{
|
||||
register_code(KC_ESC);
|
||||
unregister_code(KC_ESC);
|
||||
}
|
||||
}
|
||||
|
||||
void tap_esc_func_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
layer_off(FUNC);
|
||||
}
|
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[TD_ESC_FUNC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tap_esc_func_finished, tap_esc_func_reset),
|
||||
[TD_SPC_SPAM] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tap_space_spam_finished, tap_space_spam_reset),
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
ACTION_FUNCTION(LFK_CLEAR), // FN0 - reset layers
|
||||
ACTION_FUNCTION(LFK_ESC_TILDE), // FN1 - esc+shift = ~, else escape
|
||||
ACTION_FUNCTION(LFK_LED_TEST), // FN2 - cycle through LEDs for testing
|
||||
ACTION_FUNCTION_OPT(LFK_SET_DEFAULT_LAYER, VANILLA), // FN3 - set base layer to 0 and save
|
||||
ACTION_FUNCTION_OPT(LFK_SET_DEFAULT_LAYER, VANILLA), // FN4 - set base layer to 1 and save
|
||||
ACTION_FUNCTION_OPT(LFK_SET_DEFAULT_LAYER, VANILLA), // FN5 - set base layer to 2 and save
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_HIGHER), // FN6 - Increase Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_LOWER), // FN7 - Decrease Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_LONGER), // FN8 - Increase length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_SHORTER), // FN9 - Decrease length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TOGGLE), // FN10 - Toggle audio click
|
||||
ACTION_FUNCTION(LFK_LED_TEST), // FN11 - cycle through LEDs for testing
|
||||
ACTION_FUNCTION(LFK_DEBUG_SETTINGS), // FN12 - prints LED and click settings to HID
|
||||
};
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
void matrix_init_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
if(spam_space && !(get_mods() & (MOD_BIT(KC_LGUI)))){
|
||||
register_code(KC_SPC);
|
||||
unregister_code(KC_SPC);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if((layer_state & (1 << CS_GO)) && (keycode == 44)){
|
||||
if(get_mods() & (MOD_BIT(KC_LGUI))){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
1
keyboards/lfkeyboards/lfk78/keymaps/ca178858/readme.md
Normal file
1
keyboards/lfkeyboards/lfk78/keymaps/ca178858/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default keymap for bluepad
|
53
keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk
Normal file
53
keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk
Normal file
@@ -0,0 +1,53 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
|
||||
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
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Disable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable RGB underlight
|
||||
RGBLIGHT_CUSTOM_DRIVER = no # RGB code is implemented in lefkeyboards, not WS2812
|
||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
TAP_DANCE_ENABLE = yes
|
||||
|
||||
ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
|
||||
WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms
|
||||
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(ISSI_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DISSI_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
|
||||
endif
|
||||
|
||||
|
||||
# # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired
|
||||
# #
|
||||
# # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
|
||||
# # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB
|
||||
# #
|
||||
# # Set to B, C or D
|
||||
# LFK_REV = D
|
||||
|
||||
# ifeq ($(LFK_REV), B)
|
||||
# MCU = atmega32u4
|
||||
# else
|
||||
# MCU = at90usb1286
|
||||
# endif
|
||||
# OPT_DEFS += -DLFK_REV_$(LFK_REV)
|
||||
# OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\"
|
@@ -19,8 +19,9 @@ RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not q
|
||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
TAP_DANCE_ENABLE = no
|
||||
|
||||
ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
|
||||
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
|
||||
ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
|
||||
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
|
||||
CAPSLOCK_LED = no # Toggle back light LED of Caps Lock
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
@@ -34,6 +35,10 @@ ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(CAPSLOCK_LED)), yes)
|
||||
TMK_COMMON_DEFS += -DCAPSLOCK_LED
|
||||
endif
|
||||
|
||||
# Override the LFK78 hardware version:
|
||||
#
|
||||
# B - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
|
||||
|
8
keyboards/lfkeyboards/lfk78/keymaps/iso/config.h
Normal file
8
keyboards/lfkeyboards/lfk78/keymaps/iso/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
|
||||
#endif
|
125
keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c
Normal file
125
keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c
Normal file
@@ -0,0 +1,125 @@
|
||||
#include "lfk78.h"
|
||||
#include "issi.h"
|
||||
#include "lighting.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
//Define a shorter 'transparent' key code to make the keymaps more compact
|
||||
#define KC_TR KC_TRNS
|
||||
|
||||
enum keymap_layout {
|
||||
VANILLA = 0, // matches MF68 layout
|
||||
FUNC, // 0x02
|
||||
SETTINGS, // 0x04
|
||||
};
|
||||
|
||||
// Colors of the layer indicator LED
|
||||
// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
|
||||
const Layer_Info layer_info[] = {
|
||||
// Layer Mask Red Green Blue
|
||||
{0x00000000, 0xFFFFFFFF, {0x0000, 0x0FFF, 0x0000}}, // base layer - green
|
||||
{0x00000002, 0xFFFFFFFE, {0x0000, 0x0000, 0x0FFF}}, // function layer - blue
|
||||
{0x00000004, 0xFFFFFFFC, {0x0FFF, 0x0000, 0x0FFF}}, // settings layer - magenta
|
||||
{0xFFFFFFFF, 0xFFFFFFFF, {0x0FFF, 0x0FFF, 0x0FFF}}, // unknown layer - REQUIRED - white
|
||||
};
|
||||
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[VANILLA] = ISO_KEYMAP(
|
||||
/* Keymap VANILLA: (Base Layer) Default Layer
|
||||
* ,---------. ,------------------------------------------------------------. ,---------.
|
||||
* | F1 | F2 | |Esc~| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backspa| | Ins|PgUp|
|
||||
* |---------| |------------------------------------------------------------| |---------|
|
||||
* | F3 | F4 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| Ret| | Del|PgDn|
|
||||
* |---------| |--------------------------------------------------------. | `---------'
|
||||
* | F5 | F6 | |CAPS | A| S| D| F| G| H| J| K| L| ;| '| # | |
|
||||
* |---------| |-----------------------------------------------------------| ,----.
|
||||
* | F7 | F8 | |Shft| \ | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up |
|
||||
* |---------| |-------------------------------------------------------------------------.
|
||||
* | F9 | F10| |Ctrl|Win |Alt | Space |Alt |Ctrl|Func | |Lft| Dn |Rig |
|
||||
* `---------' `------------------------------------------------------' `-------------'
|
||||
*/
|
||||
KC_F1, KC_F2, KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_PGUP,
|
||||
KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_DEL, KC_PGDN,
|
||||
KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS,
|
||||
KC_F7, KC_F8, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
/* Keymap FUNCTION: Function Layer
|
||||
* ,---------. ,-------------------------------------------------------------. ,---------.
|
||||
* | | | | ` |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Delete | | Ins|Home|
|
||||
* |---------| |-------------------------------------------------------------| |---------|
|
||||
* | | | |Tab |Hom| Up|End|PgU| | | | | | | | | | | Del|End |
|
||||
* |---------| |-------------------------------------------------------------| `---------'
|
||||
* | | | |MO(FUNC)|Lft|Dn |Rig|PgD| |Lft|Dwn| Up|Rgt| | | |
|
||||
* |---------| |-------------------------------------------------------------| ,----.
|
||||
* | | | |Shift | | | | | | |Mute|V- |V+ | |TG(SETTINGS)| | Up |
|
||||
* |---------| |--------------------------------------------------------------------------.
|
||||
* | | | |Ctrl|Win |Alt | PgD |Alt |Func |CTRL | |Lft| Dn |Rig |
|
||||
* `---------' `------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[FUNC] = KEYMAP(
|
||||
KC_TR, KC_TR, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TR, KC_HOME,
|
||||
KC_TR, KC_TR, KC_NO,KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_END,
|
||||
KC_TR, KC_TR, KC_TR, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_NO,
|
||||
KC_TR, KC_TR, KC_TR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, TG(SETTINGS), KC_TR,
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_PGDN, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR),
|
||||
|
||||
/* Keymap SETTINGS: Settings Layer
|
||||
* ,---------. ,-------------------------------------------------------------. ,-------------.
|
||||
* | | | |LayClr| | | | | | | | | | |BL-|BL+|BL Togl| |RGB Tog |Val+|
|
||||
* |---------| |-------------------------------------------------------------| |-------------|
|
||||
* | | | |MuMode | | | | | | | | | | | | |LEDTst| |RGB Mode|Val-|
|
||||
* |---------| |-------------------------------------------------------------| `-------------'
|
||||
* | | | |AudTgl |Hz+|MS+| | | | | | | | | | RST |
|
||||
* |---------| |-------------------------------------------------------------| ,----.
|
||||
* | | | |ClickTgl |Hz-|MS-| | | | |MuTgl| | | |Layer Clr | |Hue+|
|
||||
* |---------| |-------------------------------------------------------------------------.
|
||||
* | | | | | | | | | | | |Sat-|Hue-|Sat+|
|
||||
* `---------' `--------------------------------------------------------' `--------------'
|
||||
*/
|
||||
[SETTINGS] = KEYMAP(
|
||||
KC_NO, KC_NO, KC_FN0,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI,
|
||||
KC_NO, KC_NO, MU_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_MOD, RGB_VAD,
|
||||
KC_NO, KC_NO, AU_TOG, KC_FN1,KC_FN3, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET,
|
||||
KC_NO, KC_NO, KC_FN5, KC_FN2,KC_FN4, KC_NO, KC_NO, KC_NO, KC_NO, MU_TOG, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUI,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SAD, RGB_HUD, RGB_SAI),
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
ACTION_FUNCTION(LFK_CLEAR), // FN0 - reset layers
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_HIGHER), // FN1 - Increase Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_LOWER), // FN2 - Decrease Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_LONGER), // FN3 - Increase length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_SHORTER), // FN4 - Decrease length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TOGGLE), // FN5 - Toggle audio click
|
||||
};
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
|
||||
void matrix_init_user(void) {
|
||||
// This keymap only has a single base layer, so reset the default if needed
|
||||
if(eeconfig_read_default_layer() > 1){
|
||||
eeconfig_update_default_layer(1);
|
||||
default_layer_set(1);
|
||||
}
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
1
keyboards/lfkeyboards/lfk78/keymaps/iso/readme.md
Normal file
1
keyboards/lfkeyboards/lfk78/keymaps/iso/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default keymap for bluepad
|
53
keyboards/lfkeyboards/lfk78/keymaps/iso/rules.mk
Normal file
53
keyboards/lfkeyboards/lfk78/keymaps/iso/rules.mk
Normal file
@@ -0,0 +1,53 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
|
||||
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 = yes # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not qmk base
|
||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
TAP_DANCE_ENABLE = no
|
||||
|
||||
ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
|
||||
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
|
||||
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(ISSI_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DISSI_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
|
||||
endif
|
||||
|
||||
|
||||
# # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired
|
||||
# #
|
||||
# # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
|
||||
# # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB
|
||||
# #
|
||||
# # Set to B, C or D
|
||||
# LFK_REV = D
|
||||
|
||||
# ifeq ($(LFK_REV), B)
|
||||
# MCU = atmega32u4
|
||||
# else
|
||||
# MCU = at90usb1286
|
||||
# endif
|
||||
# OPT_DEFS += -DLFK_REV_$(LFK_REV)
|
||||
# OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\"
|
@@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
|
||||
#endif
|
123
keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c
Normal file
123
keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c
Normal file
@@ -0,0 +1,123 @@
|
||||
#include "lfk78.h"
|
||||
#include "issi.h"
|
||||
#include "lighting.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
//Define a shorter 'transparent' key code to make the keymaps more compact
|
||||
#define KC_TR KC_TRNS
|
||||
|
||||
enum keymap_layout {
|
||||
VANILLA = 0, // matches MF68 layout
|
||||
FUNC, // 0x02
|
||||
SETTINGS, // 0x04
|
||||
};
|
||||
|
||||
// Colors of the layer indicator LED
|
||||
// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
|
||||
const Layer_Info layer_info[] = {
|
||||
// Layer Mask Red Green Blue
|
||||
{0x00000000, 0xFFFFFFFF, {0x0000, 0x0FFF, 0x0000}}, // base layer - green
|
||||
{0x00000002, 0xFFFFFFFE, {0x0000, 0x0000, 0x0FFF}}, // function layer - blue
|
||||
{0x00000004, 0xFFFFFFFC, {0x0FFF, 0x0000, 0x0FFF}}, // settings layer - magenta
|
||||
{0xFFFFFFFF, 0xFFFFFFFF, {0x0FFF, 0x0FFF, 0x0FFF}}, // unknown layer - REQUIRED - white
|
||||
};
|
||||
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[VANILLA] = SPLIT_BS_KEYMAP(
|
||||
/* Keymap VANILLA: (Base Layer) Default Layer
|
||||
* ,---------. ,------------------------------------------------------------. ,---------.
|
||||
* | F1 | F2 | |Esc~| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = | / | ` | | Ins|PgUp|
|
||||
* |---------| |------------------------------------------------------------| |---------|
|
||||
* | F3 | F4 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backsp| | Del|PgDn|
|
||||
* |---------| |------------------------------------------------------------| `---------'
|
||||
* | F5 | F6 | |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
|
||||
* |---------| |------------------------------------------------------------| ,----.
|
||||
* | F7 | F8 | |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up |
|
||||
* |---------| |-------------------------------------------------------------------------.
|
||||
* | F9 | F10| |Ctrl|Alt |Cmd | Space |Cmd |Ctrl|Func | |Lft| Dn |Rig |
|
||||
* `---------' `------------------------------------------------------' `-------------'
|
||||
*/
|
||||
KC_F1, KC_F2, KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_INS, KC_PGUP,
|
||||
KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL, KC_PGDN,
|
||||
KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_F9, KC_F10, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
/* Keymap FUNCTION: Function Layer
|
||||
* ,---------. ,-------------------------------------------------------------. ,---------.
|
||||
* | | | | ` |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Ins |Del | | Ins|Home|
|
||||
* |---------| |-------------------------------------------------------------| |---------|
|
||||
* | | | |Tab |Hom| Up|End|PgU| | | | | | | | | | | Del|End |
|
||||
* |---------| |-------------------------------------------------------------| `---------'
|
||||
* | | | |MO(FUNC)|Lft|Dn |Rig|PgD| |Lft|Dwn| Up|Rgt| | | |
|
||||
* |---------| |-------------------------------------------------------------| ,----.
|
||||
* | | | |Shift | | | | | | |Mute|V- |V+ | |TG(SETTINGS)| | Up |
|
||||
* |---------| |--------------------------------------------------------------------------.
|
||||
* | | | |Ctrl|Alt |Cmd | Enter |Alt |Func |CTRL | |Lft| Dn |Rig |
|
||||
* `---------' `------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[FUNC] = SPLIT_BS_KEYMAP(
|
||||
KC_TR, KC_TR, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, KC_TR, KC_HOME,
|
||||
KC_TR, KC_TR, KC_NO,KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_END,
|
||||
KC_TR, KC_TR, KC_TR, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_NO,
|
||||
KC_TR, KC_TR, KC_TR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, TG(SETTINGS), KC_TR,
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_ENT, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR),
|
||||
|
||||
/* Keymap SETTINGS: Settings Layer
|
||||
* ,---------. ,-------------------------------------------------------------. ,-------------.
|
||||
* | | | |LayClr| | | | | | | | | | |BL-|BL+| | | |RGB Tog |Val+|
|
||||
* |---------| |-------------------------------------------------------------| |-------------|
|
||||
* | | | |MuMode | | | | | | | | | | | | |BLTogl| |RGB Mode|Val-|
|
||||
* |---------| |-------------------------------------------------------------| `-------------'
|
||||
* | | | |AudTgl |Hz+|MS+| | | | | | | | | | RST |
|
||||
* |---------| |-------------------------------------------------------------| ,----.
|
||||
* | | | |ClickTgl |Hz-|MS-| | | | |MuTgl| | | |Layer Clr | |Hue+|
|
||||
* |---------| |-------------------------------------------------------------------------.
|
||||
* | | | | | | | | | | | |Sat-|Hue-|Sat+|
|
||||
* `---------' `--------------------------------------------------------' `--------------'
|
||||
*/
|
||||
[SETTINGS] = SPLIT_BS_KEYMAP(
|
||||
KC_NO, KC_NO, KC_FN0,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, KC_NO, KC_NO, RGB_TOG, RGB_VAI,
|
||||
KC_NO, KC_NO, MU_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_TOGG, RGB_MOD, RGB_VAD,
|
||||
KC_NO, KC_NO, AU_TOG, KC_FN1,KC_FN3, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET,
|
||||
KC_NO, KC_NO, KC_FN5, KC_FN2,KC_FN4, KC_NO, KC_NO, KC_NO, KC_NO, MU_TOG, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUI,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SAD, RGB_HUD, RGB_SAI),
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
ACTION_FUNCTION(LFK_CLEAR), // FN0 - reset layers
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_HIGHER), // FN1 - Increase Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_LOWER), // FN2 - Decrease Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_LONGER), // FN3 - Increase length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_SHORTER), // FN4 - Decrease length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TOGGLE), // FN5 - Toggle audio click
|
||||
};
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
|
||||
void matrix_init_user(void) {
|
||||
// This keymap only has a single base layer, so reset the default if needed
|
||||
if(eeconfig_read_default_layer() > 1){
|
||||
eeconfig_update_default_layer(1);
|
||||
default_layer_set(1);
|
||||
}
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
}
|
@@ -0,0 +1 @@
|
||||
# The split bs keymap for LFK78
|
47
keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/rules.mk
Normal file
47
keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/rules.mk
Normal file
@@ -0,0 +1,47 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
|
||||
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
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not qmk base
|
||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
TAP_DANCE_ENABLE = no
|
||||
|
||||
ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
|
||||
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
|
||||
CAPSLOCK_LED = no # Toggle back light LED of Caps Lock
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(ISSI_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DISSI_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(CAPSLOCK_LED)), yes)
|
||||
TMK_COMMON_DEFS += -DCAPSLOCK_LED
|
||||
endif
|
||||
|
||||
# Override the LFK78 hardware version:
|
||||
#
|
||||
# B - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
|
||||
# C-H - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB
|
||||
# J - at90usb646, C6 audio, ISSI device 0 is backlight, 4 is RGB
|
||||
# LFK_REV = J
|
@@ -200,7 +200,15 @@ void reset_keyboard_kb(){
|
||||
void led_set_kb(uint8_t usb_led)
|
||||
{
|
||||
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
||||
|
||||
#ifdef ISSI_ENABLE
|
||||
#ifdef CAPSLOCK_LED
|
||||
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
|
||||
activateLED(0, 3, 7, 255);
|
||||
}else{
|
||||
activateLED(0, 3, 7, 0);
|
||||
}
|
||||
#endif // CAPSLOCK_LED
|
||||
#endif // ISS_ENABLE
|
||||
led_set_user(usb_led);
|
||||
}
|
||||
|
||||
|
@@ -91,7 +91,7 @@ void click(uint16_t freq, uint16_t duration);
|
||||
{ k90, k91, k92, k93, k94, k95, k96, k97, }, \
|
||||
}
|
||||
#else
|
||||
/* RevC/D Keymap */
|
||||
/* RevC+ Keymap */
|
||||
// This a shortcut to help you visually see your layout.
|
||||
/*
|
||||
* ,---------. ,-----------------------------------------------------------------------. ,---------.
|
||||
@@ -122,6 +122,20 @@ void click(uint16_t freq, uint16_t duration);
|
||||
{k51, k52, k53, k54, k55, KC_NO, KC_NO, KC_NO, k59, KC_NO, KC_NO, KC_NO, k5D, k5E, k5F, k5G, k5H, k5I} \
|
||||
}
|
||||
|
||||
#define SPLIT_BS_KEYMAP( \
|
||||
k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, k3G, k1H, k1I, \
|
||||
k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2I, \
|
||||
k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, \
|
||||
k41, k42, k43, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, k4H, \
|
||||
k51, k52, k53, k54, k55, k59, k5D, k5E, k5F, k5G, k5H, k5I \
|
||||
) { \
|
||||
{k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, k1H, k1I}, \
|
||||
{k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2I}, \
|
||||
{k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k3G, KC_NO, KC_NO}, \
|
||||
{k41, k42, k43, KC_NO, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, KC_NO, k4H, KC_NO}, \
|
||||
{k51, k52, k53, k54, k55, KC_NO, KC_NO, KC_NO, k59, KC_NO, KC_NO, KC_NO, k5D, k5E, k5F, k5G, k5H, k5I} \
|
||||
}
|
||||
|
||||
#define SPLIT_SHIFT_KEYMAP( \
|
||||
k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, k1H, k1I, \
|
||||
k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2I, \
|
||||
|
8
keyboards/lfkeyboards/lfk87/keymaps/ca178858/config.h
Normal file
8
keyboards/lfkeyboards/lfk87/keymaps/ca178858/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
|
||||
#endif
|
223
keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c
Normal file
223
keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c
Normal file
@@ -0,0 +1,223 @@
|
||||
#include "lfk87.h"
|
||||
#include "issi.h"
|
||||
#include "lighting.h"
|
||||
#include "action_layer.h"
|
||||
#include "process_tap_dance.h"
|
||||
|
||||
//Define a shorter 'transparent' key code to make the keymaps more compact
|
||||
#define KC_TR KC_TRNS
|
||||
|
||||
enum keymap_layout {
|
||||
VANILLA = 0, // matches MF68 layout
|
||||
DEFAULT_WKL, // 0x02 Function in CapsLock location, gui key disabled
|
||||
DEFAULT_OSX, // 0x04 Function in CapsLock location, gui/alt swapped for OSX
|
||||
CS_GO, // 0x08 Function in CapsLock location, gui/alt swapped for OSX
|
||||
FUNC, // 0x10
|
||||
SETTINGS, // 0x20
|
||||
};
|
||||
|
||||
enum {
|
||||
TD_ESC_FUNC = 0,
|
||||
};
|
||||
|
||||
|
||||
// Colors of the layer indicator LED
|
||||
// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
|
||||
const Layer_Info layer_info[] = {
|
||||
// Layer Mask Red Green Blue
|
||||
{0x00000000, 0xFFFFFFF8, {0x00, 0xFF, 0x00}}, // base layers (VANILLA, DEFAULT_WKL, DEFAULT_OSX) - green
|
||||
{0x00000008, 0xFFFFFFF8, {0x07FF, 0x07FF, 0x0000}}, // CSGO layer - orange
|
||||
{0x00000010, 0xFFFFFFF0, {0x0000, 0x0000, 0x0FFF}}, // function layer - blue
|
||||
{0x00000020, 0xFFFFFFE0, {0x0FFF, 0x0000, 0x0FFF}}, // settings layer - magenta
|
||||
{0xFFFFFFFF, 0xFFFFFFFF, {0x0FFF, 0x0FFF, 0x0FFF}}, // unknown layer - REQUIRED - white
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[VANILLA] = KEYMAP(
|
||||
/* Keymap VANILLA: (Base Layer) Default Layer
|
||||
* ,-----------------------------------------------------------------------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn|
|
||||
* |-----------------------------------------------------------| `--------------'
|
||||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
|
||||
* |-----------------------------------------------------------| ,----.
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up |
|
||||
* |-----------------------------------------------------------| ,-------------.
|
||||
* |Ctrl|Gui |Alt | Space |ALT |GUI |CTRL |Func| |Lft| Dn |Rig |
|
||||
* `-----------------------------------------------------------' `-------------'
|
||||
*/
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, \
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_END, KC_PGDN, \
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RCTL, MO(FUNC), MO(SETTINGS), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
/* Keymap DEFAULT_TKL: (Base Layer) Default Layer
|
||||
* ,-----------------------------------------------------------------------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn|
|
||||
* |-----------------------------------------------------------| `--------------'
|
||||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
|
||||
* |-----------------------------------------------------------| ,----.
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up |
|
||||
* |-----------------------------------------------------------| ,-------------.
|
||||
* |Ctrl| |Alt | Space |ALT | |CTRL |Func| |Lft| Dn |Rig |
|
||||
* `-----------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[DEFAULT_WKL] = KEYMAP(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, \
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_END, KC_PGDN, \
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
/* Keymap DEFAULT_OSX: (Base Layer) Default Layer
|
||||
* ,-----------------------------------------------------------------------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn|
|
||||
* |-----------------------------------------------------------| `--------------'
|
||||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
|
||||
* |-----------------------------------------------------------| ,----.
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up |
|
||||
* |-----------------------------------------------------------| ,-------------.
|
||||
* |Ctrl| Opt |Cmd | Space |Cmd |Opt |CTRL |Func| |Lft| Dn |Rig |
|
||||
* `-----------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[DEFAULT_OSX] = KEYMAP(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_SLCK, KC_PAUS, LALT(KC_F5), \
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_END, KC_PGDN, \
|
||||
TD(TD_ESC_FUNC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RCTL, MO(FUNC),MO(SETTINGS), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
[CS_GO] = KEYMAP(
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, \
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_FN0, KC_TR, KC_TR, \
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, \
|
||||
KC_LCTL, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, \
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, \
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR),
|
||||
|
||||
/* Keymap FUNCTION: Function Layer
|
||||
* ,-------------------------------------------------------------. ,--------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12 | |Prnt|ScLk|Paus|
|
||||
* |-------------------------------------------------------------| |--------------|
|
||||
* | ` |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Delete | | | | |
|
||||
* |-------------------------------------------------------------| |--------------|
|
||||
* |Tab | |PgU| | | | | | Up| | | | | | | | | |
|
||||
* |-------------------------------------------------------------| `--------------'
|
||||
* |Control|Hme|PgD|End| | | |Lft|Dwn|Rgt| | | |
|
||||
* |-------------------------------------------------------------| ,----.
|
||||
* |Shift | |Del| | | | |Mute|V- |V+ | |TG(SETTINGS)| | Up |
|
||||
* |-------------------------------------------------------------' ,-------------.
|
||||
* |Func|Win |Alt | PgD |Alt |Ctrl |Func | |Lft| Dn |Rig |
|
||||
* `------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[FUNC] = KEYMAP(
|
||||
KC_ESC, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_PSCR, KC_SLCK, KC_PAUS, \
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_DEL, TO(CS_GO), KC_TR, KC_TR, \
|
||||
KC_NO,KC_PGUP, KC_UP, KC_PGDN, KC_HOME, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_TR, KC_TR, \
|
||||
KC_TR, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, \
|
||||
KC_TR, KC_NO, KC_DEL, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, TG(SETTINGS), KC_TR, \
|
||||
KC_TR, KC_TR, KC_TR, KC_PGDN, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR),
|
||||
|
||||
/* Keymap SETTINGS: Settings Layer
|
||||
* ,-----------------------------------------------------------. ,-------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12 | |Prnt|ScLk|Paus|
|
||||
* |-------------------------------------------------------------| |--------------|
|
||||
* |LayClr| | | | | | | | | | |BL-|BL+|BL Togl| |RGB Tog |Val+|
|
||||
* |-----------------------------------------------------------| |-------------|
|
||||
* |Debug| | | | | | | | | | | | |LEDTst| |RGB Mode|Val-|
|
||||
* |-----------------------------------------------------------| `-------------'
|
||||
* |AU_TOG |Hz+|MS+| | | | | | | | | | RST |
|
||||
* |-----------------------------------------------------------| ,----.
|
||||
* |ClickTgl|Hz-|MS-| | | | | | | | |Layer Clr | |Hue+|
|
||||
* |------------------------------------------------------------------------.
|
||||
* | | | | Print Debug | | | | |Sat-|Hue-|Sat+|
|
||||
* `------------------------------------------------------' `--------------'
|
||||
*/
|
||||
[SETTINGS] = KEYMAP(
|
||||
KC_FN13, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, KC_NO, KC_NO, KC_NO,
|
||||
KC_FN0,KC_FN3,KC_FN4,KC_FN5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, KC_NO,
|
||||
MU_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_FN2, RGB_MOD, RGB_VAD, KC_NO,
|
||||
AU_TOG, KC_FN6,KC_FN8, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET,
|
||||
KC_FN10, KC_FN7,KC_FN9, KC_NO, KC_NO, KC_NO, KC_NO, MU_TOG, KC_NO, KC_NO, KC_NO, KC_FN0, RGB_HUI,
|
||||
KC_NO, KC_NO, KC_NO, KC_FN12, KC_NO, KC_NO, KC_NO, KC_TR, RGB_SAD, RGB_HUD, RGB_SAI),
|
||||
};
|
||||
|
||||
void tap_esc_func_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
if(state->pressed){
|
||||
layer_on(FUNC);
|
||||
}else{
|
||||
register_code(KC_ESC);
|
||||
unregister_code(KC_ESC);
|
||||
}
|
||||
}
|
||||
|
||||
void tap_esc_func_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
layer_off(FUNC);
|
||||
}
|
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[TD_ESC_FUNC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tap_esc_func_finished, tap_esc_func_reset),
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
ACTION_FUNCTION(LFK_CLEAR), // FN0 - reset layers
|
||||
ACTION_FUNCTION(LFK_ESC_TILDE), // FN1 - esc+shift = ~, else escape
|
||||
ACTION_FUNCTION(LFK_LED_TEST), // FN2 - cycle through LEDs for testing
|
||||
ACTION_FUNCTION_OPT(LFK_SET_DEFAULT_LAYER, VANILLA), // FN3 - set base layer to 0 and save
|
||||
ACTION_FUNCTION_OPT(LFK_SET_DEFAULT_LAYER, DEFAULT_WKL), // FN4 - set base layer to 1 and save
|
||||
ACTION_FUNCTION_OPT(LFK_SET_DEFAULT_LAYER, DEFAULT_OSX), // FN5 - set base layer to 2 and save
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_HIGHER), // FN6 - Increase Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_LOWER), // FN7 - Decrease Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_LONGER), // FN8 - Increase length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_SHORTER), // FN9 - Decrease length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TOGGLE), // FN10 - Toggle audio click
|
||||
ACTION_FUNCTION(LFK_LED_TEST), // FN11 - cycle through LEDs for testing
|
||||
ACTION_FUNCTION(LFK_DEBUG_SETTINGS), // FN12 - prints LED and click settings to HID
|
||||
ACTION_FUNCTION(LFK_PLAY_ONEUP),
|
||||
};
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
|
||||
void matrix_init_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if((layer_state & (1 << CS_GO)) && (keycode == 44)){
|
||||
if(get_mods() & (MOD_BIT(KC_LGUI))){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
1
keyboards/lfkeyboards/lfk87/keymaps/ca178858/readme.md
Normal file
1
keyboards/lfkeyboards/lfk87/keymaps/ca178858/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default keymap for LFK87
|
53
keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk
Normal file
53
keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk
Normal file
@@ -0,0 +1,53 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
|
||||
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 = yes # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Disable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = yes # Enable RGB underlight
|
||||
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
|
||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
TAP_DANCE_ENABLE = yes
|
||||
|
||||
ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
|
||||
WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms
|
||||
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(ISSI_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DISSI_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
|
||||
endif
|
||||
|
||||
|
||||
# # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired
|
||||
# #
|
||||
# # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
|
||||
# # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB
|
||||
# #
|
||||
# # Set to B, C or D
|
||||
# LFK_REV = D
|
||||
|
||||
# ifeq ($(LFK_REV), B)
|
||||
# MCU = atmega32u4
|
||||
# else
|
||||
# MCU = at90usb1286
|
||||
# endif
|
||||
# OPT_DEFS += -DLFK_REV_$(LFK_REV)
|
||||
# OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\"
|
8
keyboards/lfkeyboards/lfk87/keymaps/gbchk/config.h
Normal file
8
keyboards/lfkeyboards/lfk87/keymaps/gbchk/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
|
||||
#endif
|
133
keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c
Normal file
133
keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c
Normal file
@@ -0,0 +1,133 @@
|
||||
#include "lfk87.h"
|
||||
#include "issi.h"
|
||||
#include "lighting.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
//Define a shorter 'transparent' key code to make the keymaps more compact
|
||||
#define KC_TR KC_TRNS
|
||||
|
||||
enum keymap_layout {
|
||||
VANILLA = 0, // matches MF68 layout
|
||||
FUNC, // 0x08
|
||||
SETTINGS, // 0x10
|
||||
};
|
||||
|
||||
// Colors of the layer indicator LED
|
||||
// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
|
||||
const Layer_Info layer_info[] = {
|
||||
// Layer Mask Red Green Blue
|
||||
{0x00000000, 0xFFFFFFFF, {0x00, 0x00, 0x00}}, // base layers - off
|
||||
{0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0xFF}}, // function layer - blue
|
||||
{0x00000004, 0xFFFFFFFC, {0xFF, 0x00, 0xFF}}, // settings layer - magenta
|
||||
{0xFFFFFFFF, 0xFFFFFFFF, {0xFF, 0xFF, 0xFF}}, // unknown layer - REQUIRED - white
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[VANILLA] = KEYMAP(
|
||||
/* Keymap VANILLA: (Base Layer) Default Layer
|
||||
* ,-----------------------------------------------------------------------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn|
|
||||
* |-----------------------------------------------------------| `--------------'
|
||||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
|
||||
* |-----------------------------------------------------------| ,----.
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up |
|
||||
* |-----------------------------------------------------------| ,-------------.
|
||||
* |Ctrl|Gui |Alt | Space |ALT |GUI |Func|CTRL | |Lft| Dn |Rig |
|
||||
* `-----------------------------------------------------------' `-------------'
|
||||
*/
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, LGUI(KC_D), KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SLCK, KC_PAUS, \
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_END, KC_PGDN, \
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(FUNC), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
/* Keymap FUNCTION: Function Layer
|
||||
* ,-------------------------------------------------------------. ,--------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12 | |Prnt|ScLk|Paus|
|
||||
* |-------------------------------------------------------------| |--------------|
|
||||
* | ` |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Delete | | | | |
|
||||
* |-------------------------------------------------------------| |--------------|
|
||||
* |Tab | |PgU| | | | | | Up| | | | | | | | | |
|
||||
* |-------------------------------------------------------------| `--------------'
|
||||
* |Control|Hme|PgD|End| | | |Lft|Dwn|Rgt| | | |
|
||||
* |-------------------------------------------------------------| ,----.
|
||||
* |Shift | |Del| | | | |Mute|V- |V+ | |TG(SETTINGS)| | Up |
|
||||
* |-------------------------------------------------------------' ,-------------.
|
||||
* |Func|Win |Alt | PgD |Alt |Ctrl |Func | |Lft| Dn |Rig |
|
||||
* `------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[FUNC] = KEYMAP(
|
||||
KC_ESC, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_PSCR, KC_SLCK, KC_PAUS, \
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_DEL, KC_TR, KC_TR, KC_TR, \
|
||||
KC_NO,KC_NO, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_TR, KC_TR, \
|
||||
KC_TR, KC_HOME, KC_PGDN, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, \
|
||||
KC_TR, KC_NO, KC_DEL, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, TG(SETTINGS), KC_TR, \
|
||||
KC_TR, KC_TR, KC_TR, KC_PGDN, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR),
|
||||
|
||||
/* Keymap SETTINGS: Settings Layer
|
||||
* ,-----------------------------------------------------------. ,-------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12 | |Prnt|ScLk|Paus|
|
||||
* |-------------------------------------------------------------| |--------------|
|
||||
* |FN0 | | | | | | | | | | |BL-|BL+|BL Togl| |RGB Tog |Val+|
|
||||
* |-----------------------------------------------------------| |-------------|
|
||||
* |MuMode| | | | | | | | | | | | |LEDTst| |RGB Mode|Val-|
|
||||
* |-----------------------------------------------------------| `-------------'
|
||||
* |AudTgl |Hz+|MS+| | | | | | | | | | RST |
|
||||
* |-----------------------------------------------------------| ,----.
|
||||
* |ClickTgl|Hz-|MS-| | | | | | | | |Layer Clr | |Hue+|
|
||||
* |--------------------------------------------------------------------------.
|
||||
* | | | | | | | | | |Sat-|Hue-|Sat+|
|
||||
* `----------------------------------------------------------------------------'
|
||||
*/
|
||||
[SETTINGS] = KEYMAP(
|
||||
KC_FN0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, KC_NO, KC_NO, KC_NO,
|
||||
KC_FN0,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, KC_NO,
|
||||
MU_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_FN2, RGB_MOD, RGB_VAD, KC_NO,
|
||||
AU_TOG, KC_F1,KC_FN3, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET,
|
||||
KC_FN5, KC_FN2,KC_FN4, KC_NO, KC_NO, KC_NO, KC_NO, MU_TOG, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUI,
|
||||
KC_NO, KC_NO, KC_NO, KC_FN12, KC_NO, KC_NO, KC_NO, KC_TR, RGB_SAD, RGB_HUD, RGB_SAI),
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
ACTION_FUNCTION(LFK_CLEAR), // FN0 - reset layers
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_HIGHER), // FN1 - Increase Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_LOWER), // FN2 - Decrease Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_LONGER), // FN3 - Increase length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_SHORTER), // FN4 - Decrease length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TOGGLE), // FN5 - Toggle audio click
|
||||
};
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
|
||||
void matrix_init_user(void) {
|
||||
// This keymap only has a single base layer, so reset the default if needed
|
||||
if(eeconfig_read_default_layer() > 1){
|
||||
eeconfig_update_default_layer(1);
|
||||
default_layer_set(1);
|
||||
}
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
54
keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk
Normal file
54
keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk
Normal file
@@ -0,0 +1,54 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
|
||||
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
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = yes # Enable RGB underlight
|
||||
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
|
||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
TAP_DANCE_ENABLE = no
|
||||
|
||||
ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
|
||||
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
|
||||
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(ISSI_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DISSI_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
|
||||
endif
|
||||
|
||||
|
||||
# Override the LFK87 hardware version.
|
||||
#
|
||||
# A - Green PCB. at90usb1286 Only 3 exist
|
||||
# B - We don't talk about RevB
|
||||
# C-D - Black PCB. at90usb646 First public release
|
||||
#
|
||||
# LFK_REV = C
|
||||
|
||||
# ifeq ($(LFK_REV), A)
|
||||
# MCU = at90usb1286
|
||||
# OPT_DEFS += -DBOOTLOADER_SIZE=8192
|
||||
# else
|
||||
# MCU = at90usb646
|
||||
# OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||
# endif
|
||||
# OPT_DEFS += -DLFK_TKL_REV_$(LFK_REV)
|
151
keyboards/lfkeyboards/lfkpad/config.h
Normal file
151
keyboards/lfkeyboards/lfkpad/config.h
Normal file
@@ -0,0 +1,151 @@
|
||||
/*
|
||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
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/>.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_H
|
||||
#define CONFIG_H
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x6060
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER LFKeyboards
|
||||
#define PRODUCT LFKPad 21
|
||||
#define DESCRIPTION QMK keyboard firmware for LFKPad LFK_REV_STRING
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
#define MATRIX_ROWS 6
|
||||
#define MATRIX_COLS 4
|
||||
#define MATRIX_ROW_PINS { D5, F4, F6, F7, C7, C6}
|
||||
#define MATRIX_COL_PINS { F1, F0, D4, D6}
|
||||
#define UNUSED_PINS { }
|
||||
#define RGBLED_NUM 28 // Number of LEDs
|
||||
|
||||
#define RGB_DI_PIN C7 // Have to set it to something to get the ws2812 code to compile
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLIGHT_HUE_STEP 10
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
|
||||
#define TAPPING_TERM 200
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCING_DELAY 5
|
||||
|
||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||
//#define MATRIX_HAS_GHOST
|
||||
|
||||
/* number of backlight levels */
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/*
|
||||
* Force NKRO
|
||||
*
|
||||
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||
* makefile for this to work.)
|
||||
*
|
||||
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||
* until the next keyboard reset.
|
||||
*
|
||||
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||
* fully operational during normal computer usage.
|
||||
*
|
||||
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||
* power-up.
|
||||
*
|
||||
*/
|
||||
//#define FORCE_NKRO
|
||||
|
||||
/*
|
||||
* Magic Key Options
|
||||
*
|
||||
* Magic keys are hotkey commands that allow control over firmware functions of
|
||||
* the keyboard. They are best used in combination with the HID Listen program,
|
||||
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||
*
|
||||
* The options below allow the magic key functionality to be changed. This is
|
||||
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
||||
*
|
||||
*/
|
||||
|
||||
/* key combination for magic key command */
|
||||
#define IS_COMMAND() ( \
|
||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||
)
|
||||
|
||||
/* control how magic key switches layers */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||
|
||||
/* override magic key keymap */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||
//#define MAGIC_KEY_HELP1 H
|
||||
//#define MAGIC_KEY_HELP2 SLASH
|
||||
//#define MAGIC_KEY_DEBUG D
|
||||
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||
//#define MAGIC_KEY_DEBUG_KBD K
|
||||
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||
//#define MAGIC_KEY_VERSION V
|
||||
//#define MAGIC_KEY_STATUS S
|
||||
//#define MAGIC_KEY_CONSOLE C
|
||||
//#define MAGIC_KEY_LAYER0_ALT1 ESC
|
||||
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
|
||||
//#define MAGIC_KEY_LAYER0 0
|
||||
//#define MAGIC_KEY_LAYER1 1
|
||||
//#define MAGIC_KEY_LAYER2 2
|
||||
//#define MAGIC_KEY_LAYER3 3
|
||||
//#define MAGIC_KEY_LAYER4 4
|
||||
//#define MAGIC_KEY_LAYER5 5
|
||||
//#define MAGIC_KEY_LAYER6 6
|
||||
//#define MAGIC_KEY_LAYER7 7
|
||||
//#define MAGIC_KEY_LAYER8 8
|
||||
//#define MAGIC_KEY_LAYER9 9
|
||||
//#define MAGIC_KEY_BOOTLOADER PAUSE
|
||||
//#define MAGIC_KEY_LOCK CAPS
|
||||
//#define MAGIC_KEY_EEPROM E
|
||||
//#define MAGIC_KEY_NKRO N
|
||||
//#define MAGIC_KEY_SLEEP_LED Z
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
//#define NO_ACTION_MACRO
|
||||
//#define NO_ACTION_FUNCTION
|
||||
|
||||
#endif
|
8
keyboards/lfkeyboards/lfkpad/keymaps/default/config.h
Normal file
8
keyboards/lfkeyboards/lfkpad/keymaps/default/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
|
||||
#endif
|
52
keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c
Normal file
52
keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,52 @@
|
||||
#include "lfkpad.h"
|
||||
#include "issi.h"
|
||||
#include "lighting.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = KEYMAP( /* Base */
|
||||
KC_ESC, KC_TAB, KC_PEQL, MO(1), \
|
||||
KC_LNUM, KC_PSLS, KC_PAST, KC_PMNS, \
|
||||
KC_P7, KC_P8, KC_P9, KC_PPLS, \
|
||||
KC_P4, KC_P5, KC_P6, \
|
||||
KC_P1, KC_P2, KC_P3, KC_PENT, \
|
||||
KC_P0, KC_PDOT),
|
||||
|
||||
[1] = KEYMAP( /* RGB */
|
||||
RGB_SAI, RGB_VAI, RGB_HUI, KC_TRNS, \
|
||||
RGB_SAD, RGB_VAD, RGB_HUD, KC_TRNS, \
|
||||
RGB_M_X, RGB_M_G, RGB_MOD, RGB_RMOD, \
|
||||
RGB_M_SW, RGB_M_SN, RGB_M_K, \
|
||||
RGB_M_P, RGB_M_B, RGB_M_R, RGB_TOG, \
|
||||
KC_NO, KC_NO),
|
||||
};
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
|
||||
void matrix_init_user(void) {
|
||||
// This keymap only has a single base layer, so reset the default if needed
|
||||
if(eeconfig_read_default_layer() > 1){
|
||||
eeconfig_update_default_layer(1);
|
||||
default_layer_set(1);
|
||||
}
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
1
keyboards/lfkeyboards/lfkpad/keymaps/default/readme.md
Normal file
1
keyboards/lfkeyboards/lfkpad/keymaps/default/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default keymap LFKPad 21
|
53
keyboards/lfkeyboards/lfkpad/keymaps/default/rules.mk
Normal file
53
keyboards/lfkeyboards/lfkpad/keymaps/default/rules.mk
Normal file
@@ -0,0 +1,53 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
|
||||
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
|
||||
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not qmk base
|
||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
TAP_DANCE_ENABLE = no
|
||||
|
||||
ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
|
||||
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
|
||||
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(ISSI_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DISSI_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
|
||||
endif
|
||||
|
||||
|
||||
# # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired
|
||||
# #
|
||||
# # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
|
||||
# # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB
|
||||
# #
|
||||
# # Set to B, C or D
|
||||
# LFK_REV = D
|
||||
|
||||
# ifeq ($(LFK_REV), B)
|
||||
# MCU = atmega32u4
|
||||
# else
|
||||
# MCU = at90usb1286
|
||||
# endif
|
||||
# OPT_DEFS += -DLFK_REV_$(LFK_REV)
|
||||
# OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\"
|
176
keyboards/lfkeyboards/lfkpad/lfkpad.c
Normal file
176
keyboards/lfkeyboards/lfkpad/lfkpad.c
Normal file
@@ -0,0 +1,176 @@
|
||||
#include <avr/sfr_defs.h>
|
||||
#include <avr/timer_avr.h>
|
||||
#include <avr/wdt.h>
|
||||
#include "lfkpad.h"
|
||||
#include "keymap.h"
|
||||
#include "issi.h"
|
||||
#include "TWIlib.h"
|
||||
#include "lighting.h"
|
||||
#include "debug.h"
|
||||
#include "quantum.h"
|
||||
|
||||
uint16_t click_hz = CLICK_HZ;
|
||||
uint16_t click_time = CLICK_MS;
|
||||
uint8_t click_toggle = CLICK_ENABLED;
|
||||
|
||||
|
||||
void matrix_init_kb(void)
|
||||
{
|
||||
matrix_init_user();
|
||||
#ifndef AUDIO_ENABLE
|
||||
// If we're not using the audio pin, drive it low
|
||||
sbi(DDRC, 6);
|
||||
cbi(PORTC, 6);
|
||||
#endif
|
||||
|
||||
#ifdef ISSI_ENABLE
|
||||
issi_init();
|
||||
#endif
|
||||
#ifdef WATCHDOG_ENABLE
|
||||
// This is done after turning the layer LED red, if we're caught in a loop
|
||||
// we should get a flashing red light
|
||||
wdt_enable(WDTO_500MS);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
void matrix_scan_kb(void)
|
||||
{
|
||||
#ifdef WATCHDOG_ENABLE
|
||||
wdt_reset();
|
||||
#endif
|
||||
#ifdef ISSI_ENABLE
|
||||
// switch/underglow lighting update
|
||||
static uint32_t issi_device = 0;
|
||||
static uint32_t twi_last_ready = 0;
|
||||
if(twi_last_ready > 1000){
|
||||
// Its been way too long since the last ISSI update, reset the I2C bus and start again
|
||||
dprintf("TWI failed to recover, TWI re-init\n");
|
||||
twi_last_ready = 0;
|
||||
TWIInit();
|
||||
force_issi_refresh();
|
||||
}
|
||||
if(isTWIReady()){
|
||||
twi_last_ready = 0;
|
||||
// If the i2c bus is available, kick off the issi update, alternate between devices
|
||||
update_issi(issi_device, issi_device);
|
||||
if(issi_device){
|
||||
issi_device = 0;
|
||||
}else{
|
||||
issi_device = 3;
|
||||
}
|
||||
}else{
|
||||
twi_last_ready++;
|
||||
}
|
||||
#endif
|
||||
matrix_scan_user();
|
||||
}
|
||||
|
||||
void click(uint16_t freq, uint16_t duration){
|
||||
#ifdef AUDIO_ENABLE
|
||||
if(freq >= 100 && freq <= 20000 && duration < 100){
|
||||
play_note(freq, 10);
|
||||
for (uint16_t i = 0; i < duration; i++){
|
||||
_delay_ms(1);
|
||||
}
|
||||
stop_all_notes();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t* record)
|
||||
{
|
||||
if (click_toggle && record->event.pressed){
|
||||
click(click_hz, click_time);
|
||||
}
|
||||
if (keycode == RESET) {
|
||||
reset_keyboard_kb();
|
||||
} else {
|
||||
}
|
||||
return process_record_user(keycode, record);
|
||||
}
|
||||
|
||||
void action_function(keyrecord_t *event, uint8_t id, uint8_t opt)
|
||||
{
|
||||
#ifdef AUDIO_ENABLE
|
||||
int8_t sign = 1;
|
||||
#endif
|
||||
if(id == LFK_ESC_TILDE){
|
||||
// Send ~ on shift-esc
|
||||
void (*method)(uint8_t) = (event->event.pressed) ? &add_key : &del_key;
|
||||
uint8_t shifted = get_mods() & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT));
|
||||
if(layer_state == 0){
|
||||
method(shifted ? KC_GRAVE : KC_ESCAPE);
|
||||
}else{
|
||||
method(shifted ? KC_ESCAPE : KC_GRAVE);
|
||||
}
|
||||
send_keyboard_report();
|
||||
}else if(event->event.pressed){
|
||||
switch(id){
|
||||
case LFK_SET_DEFAULT_LAYER:
|
||||
// set/save the current base layer to eeprom, falls through to LFK_CLEAR
|
||||
eeconfig_update_default_layer(1UL << opt);
|
||||
default_layer_set(1UL << opt);
|
||||
case LFK_CLEAR:
|
||||
// Go back to default layer
|
||||
layer_clear();
|
||||
break;
|
||||
#ifdef AUDIO_ENABLE
|
||||
case LFK_CLICK_FREQ_LOWER:
|
||||
sign = -1; // continue to next statement
|
||||
case LFK_CLICK_FREQ_HIGHER:
|
||||
click_hz += sign * 100;
|
||||
click(click_hz, click_time);
|
||||
break;
|
||||
case LFK_CLICK_TOGGLE:
|
||||
if(click_toggle){
|
||||
click_toggle = 0;
|
||||
click(4000, 100);
|
||||
click(1000, 100);
|
||||
}else{
|
||||
click_toggle = 1;
|
||||
click(1000, 100);
|
||||
click(4000, 100);
|
||||
}
|
||||
break;
|
||||
case LFK_CLICK_TIME_SHORTER:
|
||||
sign = -1; // continue to next statement
|
||||
case LFK_CLICK_TIME_LONGER:
|
||||
click_time += sign;
|
||||
click(click_hz, click_time);
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void reset_keyboard_kb(){
|
||||
#ifdef WATCHDOG_ENABLE
|
||||
MCUSR = 0;
|
||||
wdt_disable();
|
||||
wdt_reset();
|
||||
#endif
|
||||
reset_keyboard();
|
||||
}
|
||||
|
||||
void led_set_kb(uint8_t usb_led)
|
||||
{
|
||||
led_set_user(usb_led);
|
||||
}
|
||||
|
||||
// LFK lighting info
|
||||
const uint8_t rgb_matrices[] = {0, 1};
|
||||
const uint8_t rgb_sequence[] = {
|
||||
32, 1, 2, 3,
|
||||
31, 30, 5, 6,
|
||||
28, 27, 7, 8,
|
||||
17, 18, 9,
|
||||
19, 21, 11, 12,
|
||||
22, 14,
|
||||
|
||||
16, 26,
|
||||
4, 25,
|
||||
13, 24,
|
||||
20
|
||||
|
||||
};
|
73
keyboards/lfkeyboards/lfkpad/lfkpad.h
Normal file
73
keyboards/lfkeyboards/lfkpad/lfkpad.h
Normal file
@@ -0,0 +1,73 @@
|
||||
#ifndef LFKPAD_H
|
||||
#define LFKPAD_H
|
||||
|
||||
/* if the kb.h file exists (because we're running from qmkbuilder) include it */
|
||||
#if __has_include("kb.h")
|
||||
#include "kb.h"
|
||||
#endif
|
||||
|
||||
#include "quantum.h"
|
||||
#include "matrix.h"
|
||||
#include <avr/sfr_defs.h>
|
||||
|
||||
#ifndef cbi
|
||||
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
|
||||
#endif
|
||||
|
||||
#ifndef sbi
|
||||
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct RGB_Color {
|
||||
uint16_t red;
|
||||
uint16_t green;
|
||||
uint16_t blue;
|
||||
} RGB_Color;
|
||||
|
||||
typedef struct Layer_Info {
|
||||
uint32_t layer;
|
||||
uint32_t mask;
|
||||
RGB_Color color;
|
||||
} Layer_Info;
|
||||
|
||||
extern const uint32_t layer_count;
|
||||
extern const Layer_Info layer_info[];
|
||||
|
||||
enum action_functions {
|
||||
LFK_CLEAR = 0, // Resets all layers
|
||||
LFK_ESC_TILDE, // esc+lshift = ~
|
||||
LFK_SET_DEFAULT_LAYER, // changes and saves current base layer to eeprom
|
||||
LFK_CLICK_TOGGLE, // Adjusts click duration
|
||||
LFK_CLICK_FREQ_HIGHER, // Adjusts click frequency
|
||||
LFK_CLICK_FREQ_LOWER, // Adjusts click frequency
|
||||
LFK_CLICK_TIME_LONGER, // Adjusts click duration
|
||||
LFK_CLICK_TIME_SHORTER, // Adjusts click duration
|
||||
LFK_DEBUG_SETTINGS, // prints LED and click settings to HID
|
||||
LFK_LED_TEST // cycles through switch and RGB LEDs
|
||||
};
|
||||
|
||||
#define CLICK_HZ 500
|
||||
#define CLICK_MS 2
|
||||
#define CLICK_ENABLED 0
|
||||
|
||||
void reset_keyboard_kb(void);
|
||||
void click(uint16_t freq, uint16_t duration);
|
||||
|
||||
#define KEYMAP( \
|
||||
k00, k01, k02, k03,\
|
||||
k10, k11, k12, k13,\
|
||||
k20, k21, k22, k23,\
|
||||
k30, k31, k32,\
|
||||
k40, k41, k42, k43,\
|
||||
k50, k52\
|
||||
) { \
|
||||
{ k00, k01, k02, k03 }, \
|
||||
{ k10, k11, k12, k13 }, \
|
||||
{ k20, k21, k22, k23 }, \
|
||||
{ k30, k31, k32, KC_NO }, \
|
||||
{ k40, k41, k42, k43 }, \
|
||||
{ k50, KC_NO, k52, KC_NO } \
|
||||
}
|
||||
|
||||
#endif //LFKPAD_H
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user