Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a980a7972c | ||
|
|
526eabb6f8 | ||
|
|
e448ef0b1a | ||
|
|
ded51136ce | ||
|
|
1038bbef40 | ||
|
|
d80774027e | ||
|
|
f5f0e93230 | ||
|
|
6590f3c811 |
No files matched your search
Vendored
+8
-29
@@ -2,27 +2,8 @@
|
|||||||
# vi: set ft=ruby :
|
# vi: set ft=ruby :
|
||||||
|
|
||||||
Vagrant.configure(2) do |config|
|
Vagrant.configure(2) do |config|
|
||||||
# You can only have one config.vm.box uncommented at a time
|
|
||||||
|
|
||||||
# Comment this and uncomment another if you don't want to use the minimal Arch box
|
|
||||||
#config.vm.box = "dragon788/arch-ala-elasticdog"
|
|
||||||
|
|
||||||
# VMware/Virtualbox 64 bit
|
# VMware/Virtualbox 64 bit
|
||||||
config.vm.box = "phusion/ubuntu-14.04-amd64"
|
config.vm.box = "phusion/ubuntu-14.04-amd64"
|
||||||
#
|
|
||||||
# VMware/Virtualbox 64 bit
|
|
||||||
#config.vm.box = "puphpet/centos65-x64"
|
|
||||||
#
|
|
||||||
# The opensuse boxes don't have dfu-util in their default repositories
|
|
||||||
#
|
|
||||||
# The virtualbox version has tools issues
|
|
||||||
# VMware/Virtualbox 64 bit
|
|
||||||
#config.vm.box = "bento/opensuse-13.2-x86_64"
|
|
||||||
#
|
|
||||||
# Virtualbox only
|
|
||||||
#config.vm.box = "bento/opensuse-13.2-i386"
|
|
||||||
# config.vm.box = ""
|
|
||||||
# config.vm.box = ""
|
|
||||||
|
|
||||||
# This section allows you to customize the Virtualbox VM
|
# This section allows you to customize the Virtualbox VM
|
||||||
# settings, ie showing the GUI or upping the memory
|
# settings, ie showing the GUI or upping the memory
|
||||||
@@ -81,18 +62,16 @@ Vagrant.configure(2) do |config|
|
|||||||
config.vm.provision "shell", run: "always", path: "./util/install_dependencies.sh", args: "-update"
|
config.vm.provision "shell", run: "always", path: "./util/install_dependencies.sh", args: "-update"
|
||||||
|
|
||||||
config.vm.post_up_message = <<-EOT
|
config.vm.post_up_message = <<-EOT
|
||||||
Log into the VM using 'vagrant ssh' on OSX or from Git Bash (Win)
|
|
||||||
or 'vagrant ssh-config' and Putty or Bitvise SSH or another SSH tool
|
|
||||||
|
|
||||||
Change directory (cd) to the keyboard you wish to program
|
Log into the VM using 'vagrant ssh'. QMK directory synchronized with host is
|
||||||
(Optionally) modify your layout,
|
located at /vagrant
|
||||||
then run 'make clean'
|
To compile the .hex files use make command inside this directory.
|
||||||
and then 'make' to compile the .eep and .hex files.
|
|
||||||
|
|
||||||
Or you can copy and paste the example line below.
|
|
||||||
|
|
||||||
cd /vagrant; cd keyboards; cd ergodox; make clean; make
|
|
||||||
|
|
||||||
|
QMK's make format recently changed to use folder locations and colons:
|
||||||
|
make project_folder:keymap[:target]
|
||||||
|
Examples:
|
||||||
|
make planck/rev4:default:dfu
|
||||||
|
make planck:default
|
||||||
|
|
||||||
EOT
|
EOT
|
||||||
end
|
end
|
||||||
@@ -167,6 +167,7 @@ This is a reference only. Each group of keys links to the page documenting their
|
|||||||
|`KC_MEDIA_STOP` |`KC_MSTP` |Stop Track |
|
|`KC_MEDIA_STOP` |`KC_MSTP` |Stop Track |
|
||||||
|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |Play/Pause Track |
|
|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |Play/Pause Track |
|
||||||
|`KC_MEDIA_SELECT` |`KC_MSEL` | |
|
|`KC_MEDIA_SELECT` |`KC_MSEL` | |
|
||||||
|
|`KC_MEDIA_EJECT` |`KC_EJCT` |Eject (macOS) |
|
||||||
|`KC_NUMLOCK` |`KC_NLCK` |Keypad Num Lock and Clear |
|
|`KC_NUMLOCK` |`KC_NLCK` |Keypad Num Lock and Clear |
|
||||||
|`KC_KP_SLASH` |`KC_PSLS` |Keypad `/` |
|
|`KC_KP_SLASH` |`KC_PSLS` |Keypad `/` |
|
||||||
|`KC_KP_ASTERISK` |`KC_PAST` |Keypad `*` |
|
|`KC_KP_ASTERISK` |`KC_PAST` |Keypad `*` |
|
||||||
|
|||||||
@@ -194,6 +194,7 @@ Windows and macOS use different keycodes for "next track" and "previous track".
|
|||||||
|`KC_MEDIA_STOP` |`KC_MSTP`|Stop Track |
|
|`KC_MEDIA_STOP` |`KC_MSTP`|Stop Track |
|
||||||
|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY`|Play/Pause Track |
|
|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY`|Play/Pause Track |
|
||||||
|`KC_MEDIA_SELECT` |`KC_MSEL`| |
|
|`KC_MEDIA_SELECT` |`KC_MSEL`| |
|
||||||
|
|`KC_MEDIA_EJECT` |`KC_EJCT`|Eject (macOS) |
|
||||||
|
|
||||||
## Number Pad
|
## Number Pad
|
||||||
|
|
||||||
|
|||||||
+102
-47
@@ -14,9 +14,45 @@
|
|||||||
|
|
||||||
#ifdef USE_SERIAL
|
#ifdef USE_SERIAL
|
||||||
|
|
||||||
// Serial pulse period in microseconds. Its probably a bad idea to lower this
|
#define _delay_sub_us(x) __builtin_avr_delay_cycles(x)
|
||||||
// value.
|
|
||||||
#define SERIAL_DELAY 30
|
// Serial pulse period in microseconds.
|
||||||
|
#define SELECT_SERIAL_SPEED 1
|
||||||
|
#if SELECT_SERIAL_SPEED == 0
|
||||||
|
// Very High speed
|
||||||
|
#define SERIAL_DELAY 4 // micro sec
|
||||||
|
#define READ_WRITE_START_ADJUST 30 // cycles
|
||||||
|
#define READ_WRITE_WIDTH_ADJUST 10 // cycles
|
||||||
|
#elif SELECT_SERIAL_SPEED == 1
|
||||||
|
// High speed
|
||||||
|
#define SERIAL_DELAY 6 // micro sec
|
||||||
|
#define READ_WRITE_START_ADJUST 23 // cycles
|
||||||
|
#define READ_WRITE_WIDTH_ADJUST 10 // cycles
|
||||||
|
#elif SELECT_SERIAL_SPEED == 2
|
||||||
|
// Middle speed
|
||||||
|
#define SERIAL_DELAY 12 // micro sec
|
||||||
|
#define READ_WRITE_START_ADJUST 25 // cycles
|
||||||
|
#define READ_WRITE_WIDTH_ADJUST 10 // cycles
|
||||||
|
#elif SELECT_SERIAL_SPEED == 3
|
||||||
|
// Low speed
|
||||||
|
#define SERIAL_DELAY 24 // micro sec
|
||||||
|
#define READ_WRITE_START_ADJUST 25 // cycles
|
||||||
|
#define READ_WRITE_WIDTH_ADJUST 10 // cycles
|
||||||
|
#elif SELECT_SERIAL_SPEED == 4
|
||||||
|
// Very Low speed
|
||||||
|
#define SERIAL_DELAY 50 // micro sec
|
||||||
|
#define READ_WRITE_START_ADJUST 25 // cycles
|
||||||
|
#define READ_WRITE_WIDTH_ADJUST 10 // cycles
|
||||||
|
#else
|
||||||
|
#error Illegal Serial Speed
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define SERIAL_DELAY_HALF1 (SERIAL_DELAY/2)
|
||||||
|
#define SERIAL_DELAY_HALF2 (SERIAL_DELAY - SERIAL_DELAY/2)
|
||||||
|
|
||||||
|
#define SLAVE_INT_WIDTH 1
|
||||||
|
#define SLAVE_INT_RESPONSE_TIME SERIAL_DELAY
|
||||||
|
|
||||||
uint8_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0};
|
uint8_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0};
|
||||||
uint8_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0};
|
uint8_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0};
|
||||||
@@ -28,9 +64,17 @@ inline static
|
|||||||
void serial_delay(void) {
|
void serial_delay(void) {
|
||||||
_delay_us(SERIAL_DELAY);
|
_delay_us(SERIAL_DELAY);
|
||||||
}
|
}
|
||||||
void serial_delay_short(void) {
|
|
||||||
_delay_us(SERIAL_DELAY-1);
|
inline static
|
||||||
|
void serial_delay_half1(void) {
|
||||||
|
_delay_us(SERIAL_DELAY_HALF1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline static
|
||||||
|
void serial_delay_half2(void) {
|
||||||
|
_delay_us(SERIAL_DELAY_HALF2);
|
||||||
|
}
|
||||||
|
|
||||||
inline static
|
inline static
|
||||||
void serial_output(void) {
|
void serial_output(void) {
|
||||||
SERIAL_PIN_DDR |= SERIAL_PIN_MASK;
|
SERIAL_PIN_DDR |= SERIAL_PIN_MASK;
|
||||||
@@ -38,7 +82,7 @@ void serial_output(void) {
|
|||||||
|
|
||||||
// make the serial pin an input with pull-up resistor
|
// make the serial pin an input with pull-up resistor
|
||||||
inline static
|
inline static
|
||||||
void serial_input(void) {
|
void serial_input_with_pullup(void) {
|
||||||
SERIAL_PIN_DDR &= ~SERIAL_PIN_MASK;
|
SERIAL_PIN_DDR &= ~SERIAL_PIN_MASK;
|
||||||
SERIAL_PIN_PORT |= SERIAL_PIN_MASK;
|
SERIAL_PIN_PORT |= SERIAL_PIN_MASK;
|
||||||
}
|
}
|
||||||
@@ -64,7 +108,7 @@ void serial_master_init(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void serial_slave_init(void) {
|
void serial_slave_init(void) {
|
||||||
serial_input();
|
serial_input_with_pullup();
|
||||||
|
|
||||||
#ifndef USE_SERIAL_PD2
|
#ifndef USE_SERIAL_PD2
|
||||||
// Enable INT0
|
// Enable INT0
|
||||||
@@ -79,25 +123,21 @@ void serial_slave_init(void) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// Used by the master to synchronize timing with the slave.
|
// Used by the sender to synchronize timing with the reciver.
|
||||||
static
|
static
|
||||||
void sync_recv(void) {
|
void sync_recv(void) {
|
||||||
serial_input();
|
for (int i = 0; i < SERIAL_DELAY*5 && serial_read_pin(); i++ ) {
|
||||||
|
}
|
||||||
// This shouldn't hang if the slave disconnects because the
|
// This shouldn't hang if the slave disconnects because the
|
||||||
// serial line will float to high if the slave does disconnect.
|
// serial line will float to high if the slave does disconnect.
|
||||||
while (!serial_read_pin());
|
while (!serial_read_pin());
|
||||||
//serial_delay();
|
|
||||||
_delay_us(SERIAL_DELAY-5);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Used by the slave to send a synchronization signal to the master.
|
// Used by the reciver to send a synchronization signal to the sender.
|
||||||
static
|
static
|
||||||
void sync_send(void) {
|
void sync_send(void) {
|
||||||
serial_output();
|
|
||||||
|
|
||||||
serial_low();
|
serial_low();
|
||||||
serial_delay();
|
serial_delay();
|
||||||
|
|
||||||
serial_high();
|
serial_high();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -105,66 +145,70 @@ void sync_send(void) {
|
|||||||
static
|
static
|
||||||
uint8_t serial_read_byte(void) {
|
uint8_t serial_read_byte(void) {
|
||||||
uint8_t byte = 0;
|
uint8_t byte = 0;
|
||||||
serial_input();
|
_delay_sub_us(READ_WRITE_START_ADJUST);
|
||||||
for ( uint8_t i = 0; i < 8; ++i) {
|
for ( uint8_t i = 0; i < 8; ++i) {
|
||||||
|
serial_delay_half1(); // read the middle of pulses
|
||||||
byte = (byte << 1) | serial_read_pin();
|
byte = (byte << 1) | serial_read_pin();
|
||||||
serial_delay();
|
_delay_sub_us(READ_WRITE_WIDTH_ADJUST);
|
||||||
_delay_us(1);
|
serial_delay_half2();
|
||||||
}
|
}
|
||||||
|
|
||||||
return byte;
|
return byte;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sends a byte with MSB ordering
|
// Sends a byte with MSB ordering
|
||||||
static
|
static
|
||||||
void serial_write_byte(uint8_t data) {
|
void serial_write_byte(uint8_t data) {
|
||||||
uint8_t b = 8;
|
uint8_t b = 1<<7;
|
||||||
serial_output();
|
while( b ) {
|
||||||
while( b-- ) {
|
if(data & b) {
|
||||||
if(data & (1 << b)) {
|
|
||||||
serial_high();
|
serial_high();
|
||||||
} else {
|
} else {
|
||||||
serial_low();
|
serial_low();
|
||||||
}
|
}
|
||||||
|
b >>= 1;
|
||||||
serial_delay();
|
serial_delay();
|
||||||
}
|
}
|
||||||
|
serial_low(); // sync_send() / senc_recv() need raise edge
|
||||||
}
|
}
|
||||||
|
|
||||||
// interrupt handle to be used by the slave device
|
// interrupt handle to be used by the slave device
|
||||||
ISR(SERIAL_PIN_INTERRUPT) {
|
ISR(SERIAL_PIN_INTERRUPT) {
|
||||||
sync_send();
|
serial_output();
|
||||||
|
|
||||||
|
// slave send phase
|
||||||
uint8_t checksum = 0;
|
uint8_t checksum = 0;
|
||||||
for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) {
|
for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) {
|
||||||
serial_write_byte(serial_slave_buffer[i]);
|
|
||||||
sync_send();
|
sync_send();
|
||||||
|
serial_write_byte(serial_slave_buffer[i]);
|
||||||
checksum += serial_slave_buffer[i];
|
checksum += serial_slave_buffer[i];
|
||||||
}
|
}
|
||||||
serial_write_byte(checksum);
|
|
||||||
sync_send();
|
sync_send();
|
||||||
|
serial_write_byte(checksum);
|
||||||
|
|
||||||
// wait for the sync to finish sending
|
// slave switch to input
|
||||||
serial_delay();
|
sync_send(); //0
|
||||||
|
serial_delay_half1(); //1
|
||||||
// read the middle of pulses
|
serial_low(); //2
|
||||||
_delay_us(SERIAL_DELAY/2);
|
serial_input_with_pullup(); //2
|
||||||
|
serial_delay_half1(); //3
|
||||||
|
|
||||||
|
// slave recive phase
|
||||||
uint8_t checksum_computed = 0;
|
uint8_t checksum_computed = 0;
|
||||||
for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) {
|
for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) {
|
||||||
|
sync_recv();
|
||||||
serial_master_buffer[i] = serial_read_byte();
|
serial_master_buffer[i] = serial_read_byte();
|
||||||
sync_send();
|
|
||||||
checksum_computed += serial_master_buffer[i];
|
checksum_computed += serial_master_buffer[i];
|
||||||
}
|
}
|
||||||
|
sync_recv();
|
||||||
uint8_t checksum_received = serial_read_byte();
|
uint8_t checksum_received = serial_read_byte();
|
||||||
sync_send();
|
|
||||||
|
|
||||||
serial_input(); // end transaction
|
|
||||||
|
|
||||||
if ( checksum_computed != checksum_received ) {
|
if ( checksum_computed != checksum_received ) {
|
||||||
status |= SLAVE_DATA_CORRUPT;
|
status |= SLAVE_DATA_CORRUPT;
|
||||||
} else {
|
} else {
|
||||||
status &= ~SLAVE_DATA_CORRUPT;
|
status &= ~SLAVE_DATA_CORRUPT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sync_recv(); //weit master output to high
|
||||||
}
|
}
|
||||||
|
|
||||||
inline
|
inline
|
||||||
@@ -178,6 +222,7 @@ bool serial_slave_DATA_CORRUPT(void) {
|
|||||||
// Returns:
|
// Returns:
|
||||||
// 0 => no error
|
// 0 => no error
|
||||||
// 1 => slave did not respond
|
// 1 => slave did not respond
|
||||||
|
// 2 => checksum error
|
||||||
int serial_update_buffers(void) {
|
int serial_update_buffers(void) {
|
||||||
// this code is very time dependent, so we need to disable interrupts
|
// this code is very time dependent, so we need to disable interrupts
|
||||||
cli();
|
cli();
|
||||||
@@ -185,51 +230,61 @@ int serial_update_buffers(void) {
|
|||||||
// signal to the slave that we want to start a transaction
|
// signal to the slave that we want to start a transaction
|
||||||
serial_output();
|
serial_output();
|
||||||
serial_low();
|
serial_low();
|
||||||
_delay_us(1);
|
_delay_us(SLAVE_INT_WIDTH);
|
||||||
|
|
||||||
// wait for the slaves response
|
// wait for the slaves response
|
||||||
serial_input();
|
serial_input_with_pullup();
|
||||||
serial_high();
|
_delay_us(SLAVE_INT_RESPONSE_TIME);
|
||||||
_delay_us(SERIAL_DELAY);
|
|
||||||
|
|
||||||
// check if the slave is present
|
// check if the slave is present
|
||||||
if (serial_read_pin()) {
|
if (serial_read_pin()) {
|
||||||
// slave failed to pull the line low, assume not present
|
// slave failed to pull the line low, assume not present
|
||||||
|
serial_output();
|
||||||
|
serial_high();
|
||||||
sei();
|
sei();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// master recive phase
|
||||||
// if the slave is present syncronize with it
|
// if the slave is present syncronize with it
|
||||||
sync_recv();
|
|
||||||
|
|
||||||
uint8_t checksum_computed = 0;
|
uint8_t checksum_computed = 0;
|
||||||
// receive data from the slave
|
// receive data from the slave
|
||||||
for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) {
|
for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) {
|
||||||
serial_slave_buffer[i] = serial_read_byte();
|
|
||||||
sync_recv();
|
sync_recv();
|
||||||
|
serial_slave_buffer[i] = serial_read_byte();
|
||||||
checksum_computed += serial_slave_buffer[i];
|
checksum_computed += serial_slave_buffer[i];
|
||||||
}
|
}
|
||||||
uint8_t checksum_received = serial_read_byte();
|
|
||||||
sync_recv();
|
sync_recv();
|
||||||
|
uint8_t checksum_received = serial_read_byte();
|
||||||
|
|
||||||
if (checksum_computed != checksum_received) {
|
if (checksum_computed != checksum_received) {
|
||||||
|
serial_output();
|
||||||
|
serial_high();
|
||||||
sei();
|
sei();
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// master switch to output
|
||||||
|
sync_recv(); //0
|
||||||
|
serial_delay(); //1
|
||||||
|
serial_low(); //3
|
||||||
|
serial_output(); // 3
|
||||||
|
serial_delay_half1(); //4
|
||||||
|
|
||||||
|
// master send phase
|
||||||
uint8_t checksum = 0;
|
uint8_t checksum = 0;
|
||||||
// send data to the slave
|
|
||||||
for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) {
|
for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) {
|
||||||
|
sync_send();
|
||||||
serial_write_byte(serial_master_buffer[i]);
|
serial_write_byte(serial_master_buffer[i]);
|
||||||
sync_recv();
|
|
||||||
checksum += serial_master_buffer[i];
|
checksum += serial_master_buffer[i];
|
||||||
}
|
}
|
||||||
|
sync_send();
|
||||||
serial_write_byte(checksum);
|
serial_write_byte(checksum);
|
||||||
sync_recv();
|
|
||||||
|
|
||||||
// always, release the line when not in use
|
// always, release the line when not in use
|
||||||
serial_output();
|
sync_send();
|
||||||
serial_high();
|
|
||||||
|
|
||||||
sei();
|
sei();
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -52,6 +52,13 @@ $ make jj40
|
|||||||
$ bootloadHID -r jj40_default.hex
|
$ bootloadHID -r jj40_default.hex
|
||||||
```
|
```
|
||||||
|
|
||||||
|
For Windows 10:
|
||||||
|
Windows sometimes doesn't recognize the jj40. The easiest way of flashing a new layout is probably using [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash).
|
||||||
|
1. Go to Windows Device Manager and find the keyboard (plug it in while holding down `Backspace` (`Top Right Key`)). It can be found under Human Interface Devices or under Keyboards.
|
||||||
|
2. Go to properties and the Details tab to find the hardware ID. You want the VID and the PID (code after the underscore). Plug them into HIDBootFlash and hit Find Device.
|
||||||
|
3. Use `make jj40:<keymap-name>` to generate the .hex file in the qmk basis folder. Select the .hex file in HIDBootFlash and press Flash Device.
|
||||||
|
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
1. Try plugging the board in while pressing `Backspace` (`Top Right Key`). This will force it
|
1. Try plugging the board in while pressing `Backspace` (`Top Right Key`). This will force it
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Kitten Paw",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"width": 22.5,
|
||||||
|
"height": 6.5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"key_count": 105,
|
||||||
|
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Num Lock", "x":18.5, "y":1.5}, {"label":"/", "x":19.5, "y":1.5}, {"label":"*", "x":20.5, "y":1.5}, {"label":"-", "x":21.5, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"7", "x":18.5, "y":2.5}, {"label":"8", "x":19.5, "y":2.5}, {"label":"9", "x":20.5, "y":2.5}, {"label":"+", "x":21.5, "y":2.5, "h":2}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"4", "x":18.5, "y":3.5}, {"label":"5", "x":19.5, "y":3.5}, {"label":"6", "x":20.5, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"KC_NUBS", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"1", "x":18.5, "y":4.5}, {"label":"2", "x":19.5, "y":4.5}, {"label":"3", "x":20.5, "y":4.5}, {"label":"Enter", "x":21.5, "y":4.5, "h":2}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}, {"label":"0", "x":18.5, "y":5.5, "w":2}, {"label":".", "x":20.5, "y":5.5}]
|
||||||
|
},
|
||||||
|
|
||||||
|
"LAYOUT_fullsize_ansi": {
|
||||||
|
"key_count": 104,
|
||||||
|
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Num Lock", "x":18.5, "y":1.5}, {"label":"/", "x":19.5, "y":1.5}, {"label":"*", "x":20.5, "y":1.5}, {"label":"-", "x":21.5, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"7", "x":18.5, "y":2.5}, {"label":"8", "x":19.5, "y":2.5}, {"label":"9", "x":20.5, "y":2.5}, {"label":"+", "x":21.5, "y":2.5, "h":2}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"4", "x":18.5, "y":3.5}, {"label":"5", "x":19.5, "y":3.5}, {"label":"6", "x":20.5, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"1", "x":18.5, "y":4.5}, {"label":"2", "x":19.5, "y":4.5}, {"label":"3", "x":20.5, "y":4.5}, {"label":"Enter", "x":21.5, "y":4.5, "h":2}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}, {"label":"0", "x":18.5, "y":5.5, "w":2}, {"label":".", "x":20.5, "y":5.5}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
#include "kitten_paw.h"
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
enum layers {
|
enum layers {
|
||||||
DEFAULT,
|
DEFAULT,
|
||||||
};
|
};
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[DEFAULT] = KEYMAP(\
|
[DEFAULT] = LAYOUT(\
|
||||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \
|
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_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_INS,KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC,KC_BSLS, KC_DEL, KC_END,KC_PGDN, KC_P7, KC_P8, KC_P9,KC_PPLS, \
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC,KC_BSLS, KC_DEL, KC_END,KC_PGDN, KC_P7, KC_P8, KC_P9,KC_PPLS, \
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#include "kitten_paw.h"
|
#include QMK_KEYBOARD_H
|
||||||
#include "mousekey.h"
|
#include "mousekey.h"
|
||||||
|
|
||||||
#define _______ KC_TRNS
|
#define _______ KC_TRNS
|
||||||
@@ -38,7 +38,7 @@ enum macro_id {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[DEFAULT] = KEYMAP(\
|
[DEFAULT] = LAYOUT(\
|
||||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \
|
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_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_INS,KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC,KC_BSLS, KC_DEL, KC_END,KC_PGDN, KC_P7, KC_P8, KC_P9,KC_PPLS, \
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC,KC_BSLS, KC_DEL, KC_END,KC_PGDN, KC_P7, KC_P8, KC_P9,KC_PPLS, \
|
||||||
@@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
F(8),KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, F(9), KC_UP, KC_P1, KC_P2, KC_P3,KC_PENT, \
|
F(8),KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, F(9), KC_UP, KC_P1, KC_P2, KC_P3,KC_PENT, \
|
||||||
F(1),KC_LGUI, F(3), LT(MISC, KC_SPC), F(4), F(5), MEDAPP, F(2), KC_LEFT,KC_DOWN,KC_RGHT, KC_P0,KC_PDOT),
|
F(1),KC_LGUI, F(3), LT(MISC, KC_SPC), F(4), F(5), MEDAPP, F(2), KC_LEFT,KC_DOWN,KC_RGHT, KC_P0,KC_PDOT),
|
||||||
/* Layer 1: Programming Layer 1, emulating US l ayout */
|
/* Layer 1: Programming Layer 1, emulating US l ayout */
|
||||||
[PROG1] = KEYMAP(\
|
[PROG1] = LAYOUT(\
|
||||||
KC_ESC,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
|
KC_ESC,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
|
||||||
M(GRV),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_SLSH, S(0),_______, _______,_______,_______, _______,_______,_______,_______, \
|
M(GRV),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_SLSH, S(0),_______, _______,_______,_______, _______,_______,_______,_______, \
|
||||||
_______,_______,_______,_______,_______,_______, KC_Z,_______,_______,_______,_______, RA(8), RA(9),RA(MINS), _______,_______,_______, _______,_______,_______,_______, \
|
_______,_______,_______,_______,_______,_______, KC_Z,_______,_______,_______,_______, RA(8), RA(9),RA(MINS), _______,_______,_______, _______,_______,_______,_______, \
|
||||||
@@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
/* Layer 2: programming layer 2
|
/* Layer 2: programming layer 2
|
||||||
all keys that are not FN keys are sent as LSFT+key on this layer
|
all keys that are not FN keys are sent as LSFT+key on this layer
|
||||||
*/
|
*/
|
||||||
[PROG2] = KEYMAP(\
|
[PROG2] = LAYOUT(\
|
||||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
|
||||||
RA(RBRC),_______, RA(Q),KC_BSLS,_______,_______,M(CFLEX), S(6),S(RBRC), S(8), S(9),S(SLSH),KC_RBRC,_______, _______,_______,_______, _______,_______,_______,_______, \
|
RA(RBRC),_______, RA(Q),KC_BSLS,_______,_______,M(CFLEX), S(6),S(RBRC), S(8), S(9),S(SLSH),KC_RBRC,_______, _______,_______,_______, _______,_______,_______,_______, \
|
||||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, RA(7), RA(0),RA(NUBS), _______,_______,_______, _______,_______,_______,_______, \
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, RA(7), RA(0),RA(NUBS), _______,_______,_______, _______,_______,_______,_______, \
|
||||||
@@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
_______,S(NUBS),_______,_______,_______,_______,_______,_______,_______,KC_NUBS,S(NUBS),S(MINS), _______, _______, _______,_______,_______,_______, \
|
_______,S(NUBS),_______,_______,_______,_______,_______,_______,_______,KC_NUBS,S(NUBS),S(MINS), _______, _______, _______,_______,_______,_______, \
|
||||||
_______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______),
|
_______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______),
|
||||||
/* Layer 3: media layer */
|
/* Layer 3: media layer */
|
||||||
[MEDIA] = KEYMAP(\
|
[MEDIA] = LAYOUT(\
|
||||||
KC_PWR,KC_SLEP,KC_WAKE,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX, \
|
KC_PWR,KC_SLEP,KC_WAKE,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX, \
|
||||||
XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_MPRV,KC_MPLY,KC_MNXT, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \
|
XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_MPRV,KC_MPLY,KC_MNXT, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \
|
||||||
XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_VOLD,KC_MUTE,KC_VOLU, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \
|
XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_VOLD,KC_MUTE,KC_VOLU, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \
|
||||||
@@ -72,7 +72,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, KC_EJCT, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \
|
XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, KC_EJCT, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \
|
||||||
XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX,_______,XXXXXXX, KC_MRWD,KC_MSTP,KC_MFFD, XXXXXXX,XXXXXXX),
|
XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX,_______,XXXXXXX, KC_MRWD,KC_MSTP,KC_MFFD, XXXXXXX,XXXXXXX),
|
||||||
/* Layer 4: Mouse layer */
|
/* Layer 4: Mouse layer */
|
||||||
[MOUSE1] = KEYMAP(\
|
[MOUSE1] = LAYOUT(\
|
||||||
F(6),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
|
F(6),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
|
||||||
_______,KC_ACL0,KC_ACL1,KC_ACL2,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
|
_______,KC_ACL0,KC_ACL1,KC_ACL2,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
|
||||||
_______,KC_BTN4,KC_WH_D,KC_MS_U,KC_WH_U,_______, C(Z),_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
|
_______,KC_BTN4,KC_WH_D,KC_MS_U,KC_WH_U,_______, C(Z),_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
|
||||||
@@ -80,7 +80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
MO(MOUSE2),_______, C(Y), C(X), C(C), C(V),_______,KC_BTN2,KC_BTN3,C(PGUP),C(PGDN),_______, KC_RSFT, _______, _______,_______,_______,_______, \
|
MO(MOUSE2),_______, C(Y), C(X), C(C), C(V),_______,KC_BTN2,KC_BTN3,C(PGUP),C(PGDN),_______, KC_RSFT, _______, _______,_______,_______,_______, \
|
||||||
KC_LCTL,_______,KC_LALT, KC_BTN1, KC_RALT,KC_RGUI, KC_APP,KC_RCTL, _______,_______,_______, _______,_______),
|
KC_LCTL,_______,KC_LALT, KC_BTN1, KC_RALT,KC_RGUI, KC_APP,KC_RCTL, _______,_______,_______, _______,_______),
|
||||||
/* Layer 5: Mouse layer 2*/
|
/* Layer 5: Mouse layer 2*/
|
||||||
[MOUSE2] = KEYMAP(\
|
[MOUSE2] = LAYOUT(\
|
||||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
|
||||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
|
||||||
_______,_______,KC_BTN2,KC_WH_U,KC_BTN3,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
|
_______,_______,KC_BTN2,KC_WH_U,KC_BTN3,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
|
||||||
@@ -88,7 +88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______,_______,_______, \
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______,_______,_______, \
|
||||||
_______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______),
|
_______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______),
|
||||||
/* Layer 6: Misc layer */
|
/* Layer 6: Misc layer */
|
||||||
[MISC] = KEYMAP(\
|
[MISC] = LAYOUT(\
|
||||||
_______, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______,_______,_______, \
|
_______, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______,_______,_______, \
|
||||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
|
||||||
_______,KC_SLCT, C(W), KC_UP,_______,_______,_______,_______,KC_BSPC, KC_DEL,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
|
_______,KC_SLCT, C(W), KC_UP,_______,_______,_______,_______,KC_BSPC, KC_DEL,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
|
||||||
|
|||||||
@@ -14,6 +14,14 @@ void matrix_scan_kb(void) {
|
|||||||
matrix_scan_user();
|
matrix_scan_user();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
void matrix_init_user(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
void matrix_scan_user(void) {
|
||||||
|
}
|
||||||
|
|
||||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||||
// put your per-action keyboard code here
|
// put your per-action keyboard code here
|
||||||
// runs for every action, just before processing by the firmware
|
// runs for every action, just before processing by the firmware
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
// The second converts the arguments into a two-dimensional array
|
// The second converts the arguments into a two-dimensional array
|
||||||
/*
|
/*
|
||||||
Matrix col/row mapping
|
Matrix col/row mapping
|
||||||
|
|
||||||
,----. ,-------------------. ,-------------------. ,-------------------. ,--------------.
|
,----. ,-------------------. ,-------------------. ,-------------------. ,--------------.
|
||||||
| J6 | | I4 | H4 | H2 | H6 | | A7 | E6 | D2 | D4 | | B4 | B7 | B6 | B0 | | C7 | C5 | A5 |
|
| J6 | | I4 | H4 | H2 | H6 | | A7 | E6 | D2 | D4 | | B4 | B7 | B6 | B0 | | C7 | C5 | A5 |
|
||||||
`----' `-------------------' `-------------------' `-------------------' `--------------'
|
`----' `-------------------' `-------------------' `-------------------' `--------------'
|
||||||
@@ -30,13 +30,13 @@
|
|||||||
|-------------------------------------------------------------------------| '--------------' |-------------- |
|
|-------------------------------------------------------------------------| '--------------' |-------------- |
|
||||||
| O5 | J3 | I3 | H3 | G3 | G6 | F6 | F3 | E3 | D3 | R3 | R6 | B1 | | K2 | L2 | Q2 | |
|
| O5 | J3 | I3 | H3 | G3 | G6 | F6 | F3 | E3 | D3 | R3 | R6 | B1 | | K2 | L2 | Q2 | |
|
||||||
|-------------------------------------------------------------------------| ,----. |-------------------|
|
|-------------------------------------------------------------------------| ,----. |-------------------|
|
||||||
| N2 | J1 | I1 | H1 | G1 | G0 | F0 | F1 | E1 | D1 | R0 | N3 | | O6 | | K3 | L3 | Q3 | O3 |
|
| N2 | I6 | J1 | I1 | H1 | G1 | G0 | F0 | F1 | E1 | D1 | R0 | N3 | | O6 | | K3 | L3 | Q3 | O3 |
|
||||||
|-------------------------------------------------------------------------| ,--------------. |-------------- |
|
|-------------------------------------------------------------------------| ,--------------. |-------------- |
|
||||||
| A4 | P2 | C6 | K6 | C0 | M3 | D0 | A1 | | O0 | K0 | L0 | | L6 | Q6 | |
|
| A4 | P2 | C6 | K6 | C0 | M3 | D0 | A1 | | O0 | K0 | L0 | | L6 | Q6 | |
|
||||||
`-------------------------------------------------------------------------' `--------------' `-------------------'
|
`-------------------------------------------------------------------------' `--------------' `-------------------'
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define KEYMAP( \
|
#define LAYOUT( \
|
||||||
KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
|
KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
|
||||||
KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, KK1, KL1, KQ1, KQ0, \
|
KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, KK1, KL1, KQ1, KQ0, \
|
||||||
KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, KK5, KL5, KQ5, KO5, \
|
KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, KK5, KL5, KQ5, KO5, \
|
||||||
@@ -55,4 +55,23 @@
|
|||||||
{ KA7, KB7, KC7, KD7, KE7, KF7, KG7, KH7, KI7, KJ7,KC_NO,KC_NO,KC_NO,KC_NO, KO7,KC_NO, KQ7, KR7} \
|
{ KA7, KB7, KC7, KD7, KE7, KF7, KG7, KH7, KI7, KJ7,KC_NO,KC_NO,KC_NO,KC_NO, KO7,KC_NO, KQ7, KR7} \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_fullsize_ansi( \
|
||||||
|
KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
|
||||||
|
KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, KK1, KL1, KQ1, KQ0, \
|
||||||
|
KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, KK5, KL5, KQ5, KO5, \
|
||||||
|
KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, KK2, KL2, KQ2, \
|
||||||
|
KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, KK3, KL3, KQ3, KO3, \
|
||||||
|
KA4, KP2, KC6, KK6, KC0, KM3, KD0, KA1, KO0, KK0, KL0, KL6, KQ6 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{KC_NO, KB0, KC0, KD0,KC_NO, KF0, KG0,KC_NO,KC_NO,KC_NO, KK0, KL0,KC_NO,KC_NO, KO0,KC_NO, KQ0, KR0}, \
|
||||||
|
{ KA1, KB1,KC_NO, KD1, KE1, KF1, KG1, KH1, KI1, KJ1, KK1, KL1,KC_NO,KC_NO,KC_NO,KC_NO, KQ1,KC_NO}, \
|
||||||
|
{KC_NO, KB2,KC_NO, KD2, KE2, KF2, KG2, KH2, KI2, KJ2, KK2, KL2,KC_NO, KN2,KC_NO, KP2, KQ2, KR2}, \
|
||||||
|
{KC_NO, KB3,KC_NO, KD3, KE3, KF3, KG3, KH3, KI3, KJ3, KK3, KL3, KM3, KN3, KO3,KC_NO, KQ3, KR3}, \
|
||||||
|
{ KA4, KB4,KC_NO, KD4, KE4, KF4, KG4, KH4, KI4, KJ4, KK4, KL4,KC_NO,KC_NO, KO4,KC_NO, KQ4, KR4}, \
|
||||||
|
{ KA5,KC_NO, KC5, KD5, KE5, KF5, KG5, KH5, KI5, KJ5, KK5, KL5,KC_NO,KC_NO, KO5,KC_NO, KQ5, KR5}, \
|
||||||
|
{KC_NO, KB6, KC6,KC_NO, KE6, KF6, KG6, KH6, KC_NO,KJ6, KK6, KL6,KC_NO,KC_NO, KO6,KC_NO, KQ6, KR6}, \
|
||||||
|
{ KA7, KB7, KC7, KD7, KE7, KF7, KG7, KH7, KI7, KJ7,KC_NO,KC_NO,KC_NO,KC_NO, KO7,KC_NO, KQ7, KR7} \
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -5,8 +5,8 @@ This is the firmware for the 2016 revision of the Kitten Paw controller by Bathr
|
|||||||
|
|
||||||
NKRO doesn't work at the moment, I don't know if I will take the time to find out how to fix this, so far 6KRO is enough for me.
|
NKRO doesn't work at the moment, I don't know if I will take the time to find out how to fix this, so far 6KRO is enough for me.
|
||||||
|
|
||||||
Keyboard Maintainer: QMK Community
|
Keyboard Maintainer: QMK Community
|
||||||
Hardware Supported: Kitten Paw PCB
|
Hardware Supported: Kitten Paw PCB
|
||||||
Hardware Availability: https://geekhack.org/index.php?topic=46700.0
|
Hardware Availability: https://geekhack.org/index.php?topic=46700.0
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|||||||
@@ -70,3 +70,5 @@ AUDIO_ENABLE = no # Audio output on port C6
|
|||||||
|
|
||||||
CUSTOM_MATRIX = yes
|
CUSTOM_MATRIX = yes
|
||||||
SRC += matrix.c
|
SRC += matrix.c
|
||||||
|
|
||||||
|
LAYOUTS = fullsize_ansi
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
"width": 3,
|
"width": 3,
|
||||||
"height": 2,
|
"height": 2,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"KEYMAP": {
|
"LAYOUT": {
|
||||||
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}]
|
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#include "laplace.h"
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
#define _BASE 0
|
#define _BASE 0
|
||||||
#define _FN1 1
|
#define _FN1 1
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
#define KC_RVAD RGB_VAD
|
#define KC_RVAD RGB_VAD
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_BASE] = KC_KEYMAP(
|
[_BASE] = LAYOUT_kc(
|
||||||
//,----+----+----+----+----+----+----+----+----+----+----+----+----.
|
//,----+----+----+----+----+----+----+----+----+----+----+----+----.
|
||||||
ESC , Q , W , E , R , T , Y , U , I , O , P ,DEL ,BSPC,
|
ESC , Q , W , E , R , T , Y , U , I , O , P ,DEL ,BSPC,
|
||||||
//|----`----`----`----`----`----`----`----`----`----`----`----`----+
|
//|----`----`----`----`----`----`----`----`----`----`----`----`----+
|
||||||
@@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
//`-----+----+-----+----+--------+--------+-----+-----+-----+------'
|
//`-----+----+-----+----+--------+--------+-----+-----+-----+------'
|
||||||
),
|
),
|
||||||
|
|
||||||
[_FN1] = KC_KEYMAP(
|
[_FN1] = LAYOUT_kc(
|
||||||
//,----+----+----+----+----+----+----+----+----+----+----+----+----.
|
//,----+----+----+----+----+----+----+----+----+----+----+----+----.
|
||||||
GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL ,
|
GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL ,
|
||||||
//|----`----`----`----`----`----`----`----`----`----`----`----`----+
|
//|----`----`----`----`----`----`----`----`----`----`----`----`----+
|
||||||
@@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
//`-----+----+-----+----+--------+--------+-----+-----+-----+------'
|
//`-----+----+-----+----+--------+--------+-----+-----+-----+------'
|
||||||
),
|
),
|
||||||
|
|
||||||
[_FN2] = KC_KEYMAP(
|
[_FN2] = LAYOUT_kc(
|
||||||
//,----+----+----+----+----+----+----+----+----+----+----+----+----.
|
//,----+----+----+----+----+----+----+----+----+----+----+----+----.
|
||||||
TILD,EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN,UNDS,PLUS,
|
TILD,EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN,UNDS,PLUS,
|
||||||
//|----`----`----`----`----`----`----`----`----`----`----`----`----+
|
//|----`----`----`----`----`----`----`----`----`----`----`----`----+
|
||||||
|
|||||||
@@ -1,63 +1,39 @@
|
|||||||
#include "laplace.h"
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
#define _BASE 0
|
#define _BASE 0
|
||||||
#define _FN1 1
|
#define _FN1 1
|
||||||
#define _FN2 2
|
#define _FN2 2
|
||||||
|
|
||||||
#define KC_ KC_TRNS
|
|
||||||
#define _______ KC_TRNS
|
#define _______ KC_TRNS
|
||||||
#define XXXXXXX KC_NO
|
#define XXXXXXX KC_NO
|
||||||
#define KC_FN1 MO(_FN1)
|
|
||||||
#define KC_FN2 MO(_FN2)
|
#define FN1 MO(_FN1)
|
||||||
#define KC_SPFN1 LT(_FN1, KC_SPACE)
|
#define FN2 MO(_FN2)
|
||||||
#define KC_SPFN2 LT(_FN2, KC_SPACE)
|
#define SP_FN1 LT(_FN1, KC_SPACE)
|
||||||
#define KC_BSFN1 LT(_FN1, KC_BSPC)
|
#define SP_FN2 LT(_FN2, KC_SPACE)
|
||||||
#define KC_BSFN2 LT(_FN2, KC_BSPC)
|
#define BS_FN1 LT(_FN1, KC_BSPC)
|
||||||
#define KC_RST RESET
|
#define BS_FN2 LT(_FN2, KC_BSPC)
|
||||||
#define KC_DBUG DEBUG
|
|
||||||
#define KC_RTOG RGB_TOG
|
|
||||||
#define KC_RMOD RGB_MOD
|
|
||||||
#define KC_RHUI RGB_HUI
|
|
||||||
#define KC_RHUD RGB_HUD
|
|
||||||
#define KC_RSAI RGB_SAI
|
|
||||||
#define KC_RSAD RGB_SAD
|
|
||||||
#define KC_RVAI RGB_VAI
|
|
||||||
#define KC_RVAD RGB_VAD
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_BASE] = KC_KEYMAP(
|
|
||||||
//,----+----+----+----+----+----|----+----+----+----+----+----+----.
|
[_BASE] = LAYOUT(
|
||||||
ESC , Q , W , E , R , T , Y , U , I , O , P ,DEL ,BSPC,
|
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC,
|
||||||
//|----`----`----`----`----`----`----`----`----`----`----`----`----+
|
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT,
|
||||||
TAB , A , S , D , F , G , H , J , K , L ,QUOT, ENTER ,
|
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_LALT, KC_LGUI, FN1, SP_FN1, BS_FN2, KC_RGUI, KC_RALT, FN2, KC_RCTL
|
||||||
LSFT , Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, RSFT ,
|
|
||||||
//|-------`----`----`----`----`----`----`----`----`----`----`------|
|
|
||||||
LCTL ,LALT,LGUI ,FN1 , SPFN1 , BSFN2 ,RGUI ,RALT , FN2 , RCTL
|
|
||||||
//`-----+----+-----+----+--------`--------+-----+-----+-----+------'
|
|
||||||
),
|
),
|
||||||
|
|
||||||
[_FN1] = KC_KEYMAP(
|
[_FN1] = LAYOUT(
|
||||||
//,----+----+----+----+----+----+----+----+----+----+----+----+----.
|
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,
|
||||||
GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL ,
|
RESET, RGB_HUI, RGB_SAI, RGB_VAI, KC_VOLU, KC_LBRC, KC_RBRC, KC_4, KC_5, KC_6, KC_SCLN, _______,
|
||||||
//|----`----`----`----`----`----`----`----`----`----`----`----`----+
|
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_VOLD, KC_LCBR, KC_RCBR, KC_1, KC_2, KC_3, KC_UP, _______,
|
||||||
RST ,RHUI,RSAI,RVAI,VOLU,LBRC,RBRC, 4 , 5 , 6 ,SCLN, ,
|
RGB_TOG, _______, _______, _______, _______, KC_DEL, KC_0, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
//|-----`----`----`----`----`----`----`----`----`----`----`--------+
|
|
||||||
RMOD ,RHUD,RSAD,RVAD,VOLD,LCBR,RCBR, 1 , 2 , 3 , UP , ,
|
|
||||||
//|-------`----`----`----`----`----`----`----`----`----`----`------+
|
|
||||||
RTOG , , , , , DEL , 0 ,LEFT ,DOWN , RGHT
|
|
||||||
//`-----+----+-----+----+--------+--------+-----+-----+-----+------'
|
|
||||||
),
|
),
|
||||||
|
|
||||||
[_FN2] = KC_KEYMAP(
|
[_FN2] = LAYOUT(
|
||||||
//,----+----+----+----+----+----+----+----+----+----+----+----+----.
|
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, KC_PLUS,
|
||||||
TILD,EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN,UNDS,PLUS,
|
_______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______, _______, _______, _______, KC_COLN, _______,
|
||||||
//|----`----`----`----`----`----`----`----`----`----`----`----`----+
|
_______, _______, _______, KC_DEL, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______,
|
||||||
, , ,INS ,PGUP,HOME, , , , ,COLN, ,
|
_______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______
|
||||||
//|-----`----`----`----`----`----`----`----`----`----`----`--------+
|
|
||||||
, , ,DEL ,PGDN,END , , , , , , ,
|
|
||||||
//|-------`----`----`----`----`----`----`----`----`----`----`------+
|
|
||||||
, , , , DEL , , , , ,
|
|
||||||
//`-----+----+-----+----+--------+--------+-----+-----+-----+------'
|
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#define KEYMAP( \
|
#define LAYOUT( \
|
||||||
A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, \
|
A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, \
|
||||||
B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B13, \
|
B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B13, \
|
||||||
C1, C2, C3, C4, C5, C6, C7, C9, C10, C11, C12, C13, \
|
C1, C2, C3, C4, C5, C6, C7, C9, C10, C11, C12, C13, \
|
||||||
@@ -20,13 +20,13 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Used to create a keymap using only KC_ prefixed keys
|
// Used to create a keymap using only KC_ prefixed keys
|
||||||
#define KC_KEYMAP( \
|
#define LAYOUT_kc( \
|
||||||
A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, \
|
A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, \
|
||||||
B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B13, \
|
B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B13, \
|
||||||
C1, C2, C3, C4, C5, C6, C7, C9, C10, C11, C12, C13, \
|
C1, C2, C3, C4, C5, C6, C7, C9, C10, C11, C12, C13, \
|
||||||
D1, D2, D3, D4, D5, D7, D10, D11, D12, D13 \
|
D1, D2, D3, D4, D5, D7, D10, D11, D12, D13 \
|
||||||
) \
|
) \
|
||||||
KEYMAP( \
|
LAYOUT( \
|
||||||
KC_##A1, KC_##A2, KC_##A3, KC_##A4, KC_##A5, KC_##A6, KC_##A7, KC_##A8, KC_##A9, KC_##A10, KC_##A11, KC_##A12, KC_##A13, \
|
KC_##A1, KC_##A2, KC_##A3, KC_##A4, KC_##A5, KC_##A6, KC_##A7, KC_##A8, KC_##A9, KC_##A10, KC_##A11, KC_##A12, KC_##A13, \
|
||||||
KC_##B1, KC_##B2, KC_##B3, KC_##B4, KC_##B5, KC_##B6, KC_##B7, KC_##B8, KC_##B9, KC_##B10, KC_##B11, KC_##B13, \
|
KC_##B1, KC_##B2, KC_##B3, KC_##B4, KC_##B5, KC_##B6, KC_##B7, KC_##B8, KC_##B9, KC_##B10, KC_##B11, KC_##B13, \
|
||||||
KC_##C1, KC_##C2, KC_##C3, KC_##C4, KC_##C5, KC_##C6, KC_##C7, KC_##C9, KC_##C10, KC_##C11, KC_##C12, KC_##C13, \
|
KC_##C1, KC_##C2, KC_##C3, KC_##C4, KC_##C5, KC_##C6, KC_##C7, KC_##C9, KC_##C10, KC_##C11, KC_##C12, KC_##C13, \
|
||||||
|
|||||||
+201
-162
@@ -1,168 +1,207 @@
|
|||||||
#ifndef SEND_STRING_KEYCODES
|
#ifndef SEND_STRING_KEYCODES
|
||||||
#define SEND_STRING_KEYCODES
|
#define SEND_STRING_KEYCODES
|
||||||
|
|
||||||
#define X_NO 00
|
#define X_NO 00
|
||||||
#define X_ROLL_OVER 01
|
#define X_ROLL_OVER 01
|
||||||
#define X_POST_FAIL 02
|
#define X_POST_FAIL 02
|
||||||
#define X_UNDEFINED 03
|
#define X_UNDEFINED 03
|
||||||
#define X_A 04
|
#define X_A 04
|
||||||
#define X_B 05
|
#define X_B 05
|
||||||
#define X_C 06
|
#define X_C 06
|
||||||
#define X_D 07
|
#define X_D 07
|
||||||
#define X_E 08
|
#define X_E 08
|
||||||
#define X_F 09
|
#define X_F 09
|
||||||
#define X_G 0A
|
#define X_G 0a
|
||||||
#define X_H 0B
|
#define X_H 0b
|
||||||
#define X_I 0C
|
#define X_I 0c
|
||||||
#define X_J 0D
|
#define X_J 0d
|
||||||
#define X_K 0E
|
#define X_K 0e
|
||||||
#define X_L 0F
|
#define X_L 0f
|
||||||
#define X_M 10
|
#define X_M 10
|
||||||
#define X_N 11
|
#define X_N 11
|
||||||
#define X_O 12
|
#define X_O 12
|
||||||
#define X_P 13
|
#define X_P 13
|
||||||
#define X_Q 14
|
#define X_Q 14
|
||||||
#define X_R 15
|
#define X_R 15
|
||||||
#define X_S 16
|
#define X_S 16
|
||||||
#define X_T 17
|
#define X_T 17
|
||||||
#define X_U 18
|
#define X_U 18
|
||||||
#define X_V 19
|
#define X_V 19
|
||||||
#define X_W 1A
|
#define X_W 1a
|
||||||
#define X_X 1B
|
#define X_X 1b
|
||||||
#define X_Y 1C
|
#define X_Y 1c
|
||||||
#define X_Z 1D
|
#define X_Z 1d
|
||||||
#define X_1 1E
|
#define X_1 1e
|
||||||
#define X_2 1F
|
#define X_2 1f
|
||||||
#define X_3 20
|
#define X_3 20
|
||||||
#define X_4 21
|
#define X_4 21
|
||||||
#define X_5 22
|
#define X_5 22
|
||||||
#define X_6 23
|
#define X_6 23
|
||||||
#define X_7 24
|
#define X_7 24
|
||||||
#define X_8 25
|
#define X_8 25
|
||||||
#define X_9 26
|
#define X_9 26
|
||||||
#define X_0 27
|
#define X_0 27
|
||||||
#define X_ENTER 28
|
#define X_ENTER 28
|
||||||
#define X_ESCAPE 29
|
#define X_ESCAPE 29
|
||||||
#define X_BSPACE 2A
|
#define X_BSPACE 2a
|
||||||
#define X_TAB 2B
|
#define X_TAB 2b
|
||||||
#define X_SPACE 2C
|
#define X_SPACE 2c
|
||||||
#define X_MINUS 2D
|
#define X_MINUS 2d
|
||||||
#define X_EQUAL 2E
|
#define X_EQUAL 2e
|
||||||
#define X_LBRACKET 2F
|
#define X_LBRACKET 2f
|
||||||
#define X_RBRACKET 30
|
#define X_RBRACKET 30
|
||||||
#define X_BSLASH 31
|
#define X_BSLASH 31
|
||||||
#define X_NONUS_HASH 32
|
#define X_NONUS_HASH 32
|
||||||
#define X_SCOLON 33
|
#define X_SCOLON 33
|
||||||
#define X_QUOTE 34
|
#define X_QUOTE 34
|
||||||
#define X_GRAVE 35
|
#define X_GRAVE 35
|
||||||
#define X_COMMA 36
|
#define X_COMMA 36
|
||||||
#define X_DOT 37
|
#define X_DOT 37
|
||||||
#define X_SLASH 38
|
#define X_SLASH 38
|
||||||
#define X_CAPSLOCK 39
|
#define X_CAPSLOCK 39
|
||||||
#define X_F1 3A
|
#define X_F1 3a
|
||||||
#define X_F2 3B
|
#define X_F2 3b
|
||||||
#define X_F3 3C
|
#define X_F3 3c
|
||||||
#define X_F4 3D
|
#define X_F4 3d
|
||||||
#define X_F5 3E
|
#define X_F5 3e
|
||||||
#define X_F6 3F
|
#define X_F6 3f
|
||||||
#define X_F7 40
|
#define X_F7 40
|
||||||
#define X_F8 41
|
#define X_F8 41
|
||||||
#define X_F9 42
|
#define X_F9 42
|
||||||
#define X_F10 43
|
#define X_F10 43
|
||||||
#define X_F11 44
|
#define X_F11 44
|
||||||
#define X_F12 45
|
#define X_F12 45
|
||||||
#define X_PSCREEN 46
|
#define X_PSCREEN 46
|
||||||
#define X_SCROLLLOCK 47
|
#define X_SCROLLLOCK 47
|
||||||
#define X_PAUSE 48
|
#define X_PAUSE 48
|
||||||
#define X_INSERT 49
|
#define X_INSERT 49
|
||||||
#define X_HOME 4A
|
#define X_HOME 4a
|
||||||
#define X_PGUP 4B
|
#define X_PGUP 4b
|
||||||
#define X_DELETE 4C
|
#define X_DELETE 4c
|
||||||
#define X_END 4D
|
#define X_END 4d
|
||||||
#define X_PGDOWN 4E
|
#define X_PGDOWN 4e
|
||||||
#define X_RIGHT 4F
|
#define X_RIGHT 4f
|
||||||
#define X_LEFT 50
|
#define X_LEFT 50
|
||||||
#define X_DOWN 51
|
#define X_DOWN 51
|
||||||
#define X_UP 52
|
#define X_UP 52
|
||||||
#define X_NUMLOCK 53
|
#define X_NUMLOCK 53
|
||||||
#define X_KP_SLASH 54
|
#define X_KP_SLASH 54
|
||||||
#define X_KP_ASTERISK 55
|
#define X_KP_ASTERISK 55
|
||||||
#define X_KP_MINUS 56
|
#define X_KP_MINUS 56
|
||||||
#define X_KP_PLUS 57
|
#define X_KP_PLUS 57
|
||||||
#define X_KP_ENTER 58
|
#define X_KP_ENTER 58
|
||||||
#define X_KP_1 59
|
#define X_KP_1 59
|
||||||
#define X_KP_2 5A
|
#define X_KP_2 5a
|
||||||
#define X_KP_3 5B
|
#define X_KP_3 5b
|
||||||
#define X_KP_4 5C
|
#define X_KP_4 5c
|
||||||
#define X_KP_5 5D
|
#define X_KP_5 5d
|
||||||
#define X_KP_6 5E
|
#define X_KP_6 5e
|
||||||
#define X_KP_7 5F
|
#define X_KP_7 5f
|
||||||
#define X_KP_8 60
|
#define X_KP_8 60
|
||||||
#define X_KP_9 61
|
#define X_KP_9 61
|
||||||
#define X_KP_0 62
|
#define X_KP_0 62
|
||||||
#define X_KP_DOT 63
|
#define X_KP_DOT 63
|
||||||
#define X_NONUS_BSLASH 64
|
#define X_NONUS_BSLASH 64
|
||||||
#define X_APPLICATION 65
|
#define X_APPLICATION 65
|
||||||
#define X_POWER 66
|
#define X_POWER 66
|
||||||
#define X_KP_EQUAL 67
|
#define X_KP_EQUAL 67
|
||||||
#define X_F13 68
|
#define X_F13 68
|
||||||
#define X_F14 69
|
#define X_F14 69
|
||||||
#define X_F15 6A
|
#define X_F15 6a
|
||||||
#define X_F16 6B
|
#define X_F16 6b
|
||||||
#define X_F17 6C
|
#define X_F17 6c
|
||||||
#define X_F18 6D
|
#define X_F18 6d
|
||||||
#define X_F19 6E
|
#define X_F19 6e
|
||||||
#define X_F20 6F
|
#define X_F20 6f
|
||||||
#define X_F21 70
|
#define X_F21 70
|
||||||
#define X_F22 71
|
#define X_F22 71
|
||||||
#define X_F23 72
|
#define X_F23 72
|
||||||
#define X_F24 73
|
#define X_F24 73
|
||||||
#define X_EXECUTE 74
|
#define X_EXECUTE 74
|
||||||
#define X_HELP 75
|
#define X_HELP 75
|
||||||
#define X_MENU 76
|
#define X_MENU 76
|
||||||
#define X_SELECT 77
|
#define X_SELECT 77
|
||||||
#define X_STOP 78
|
#define X_STOP 78
|
||||||
#define X_AGAIN 79
|
#define X_AGAIN 79
|
||||||
#define X_UNDO 7A
|
#define X_UNDO 7a
|
||||||
#define X_CUT 7B
|
#define X_CUT 7b
|
||||||
#define X_COPY 7C
|
#define X_COPY 7c
|
||||||
#define X_PASTE 7D
|
#define X_PASTE 7d
|
||||||
#define X_FIND 7E
|
#define X_FIND 7e
|
||||||
#define X__MUTE 7F
|
#define X__MUTE 7f
|
||||||
#define X__VOLUP 80
|
#define X__VOLUP 80
|
||||||
#define X__VOLDOWN 81
|
#define X__VOLDOWN 81
|
||||||
#define X_LOCKING_CAPS 82
|
#define X_LOCKING_CAPS 82
|
||||||
#define X_LOCKING_NUM 83
|
#define X_LOCKING_NUM 83
|
||||||
#define X_LOCKING_SCROLL 84
|
#define X_LOCKING_SCROLL 84
|
||||||
#define X_KP_COMMA 85
|
#define X_KP_COMMA 85
|
||||||
#define X_KP_EQUAL_AS400 86
|
#define X_KP_EQUAL_AS400 86
|
||||||
#define X_INT1 87
|
#define X_INT1 87
|
||||||
#define X_INT2 88
|
#define X_INT2 88
|
||||||
#define X_INT3 89
|
#define X_INT3 89
|
||||||
#define X_INT4 8A
|
#define X_INT4 8a
|
||||||
#define X_INT5 8B
|
#define X_INT5 8b
|
||||||
#define X_INT6 8C
|
#define X_INT6 8c
|
||||||
#define X_INT7 8D
|
#define X_INT7 8d
|
||||||
#define X_INT8 8E
|
#define X_INT8 8e
|
||||||
#define X_INT9 8F
|
#define X_INT9 8f
|
||||||
#define X_LANG1 90
|
#define X_LANG1 90
|
||||||
#define X_LANG2 91
|
#define X_LANG2 91
|
||||||
#define X_LANG3 92
|
#define X_LANG3 92
|
||||||
#define X_LANG4 93
|
#define X_LANG4 93
|
||||||
#define X_LANG5 94
|
#define X_LANG5 94
|
||||||
#define X_LANG6 95
|
#define X_LANG6 95
|
||||||
#define X_LANG7 96
|
#define X_LANG7 96
|
||||||
#define X_LANG8 97
|
#define X_LANG8 97
|
||||||
#define X_LANG9 98
|
#define X_LANG9 98
|
||||||
|
#define X_ALT_ERASE 99
|
||||||
|
#define X_SYSREQ 9a
|
||||||
|
#define X_CANCEL 9b
|
||||||
|
#define X_CLEAR 9c
|
||||||
|
#define X_PRIOR 9d
|
||||||
|
#define X_RETURN 9e
|
||||||
|
#define X_SEPARATOR 9f
|
||||||
|
#define X_OUT a0
|
||||||
|
#define X_OPER a1
|
||||||
|
#define X_CLEAR_AGAIN a2
|
||||||
|
#define X_CRSEL a3
|
||||||
|
#define X_EXSEL a4
|
||||||
|
|
||||||
/* Modifiers */
|
/* Modifiers */
|
||||||
#define X_LCTRL e0
|
#define X_LCTRL e0
|
||||||
#define X_LSHIFT e1
|
#define X_LSHIFT e1
|
||||||
#define X_LALT e2
|
#define X_LALT e2
|
||||||
#define X_LGUI e3
|
#define X_LGUI e3
|
||||||
#define X_RCTRL e4
|
#define X_RCTRL e4
|
||||||
#define X_RSHIFT e5
|
#define X_RSHIFT e5
|
||||||
#define X_RALT e6
|
#define X_RALT e6
|
||||||
#define X_RGUI e7
|
#define X_RGUI e7
|
||||||
|
|
||||||
#endif
|
/* System Control */
|
||||||
|
#define X_SYSTEM_POWER a5
|
||||||
|
#define X_SYSTEM_SLEEP a6
|
||||||
|
#define X_SYSTEM_WAKE a7
|
||||||
|
|
||||||
|
/* Media Control */
|
||||||
|
#define X_AUDIO_MUTE a8
|
||||||
|
#define X_AUDIO_VOL_UP a9
|
||||||
|
#define X_AUDIO_VOL_DOWN aa
|
||||||
|
#define X_MEDIA_NEXT_TRACK ab
|
||||||
|
#define X_MEDIA_PREV_TRACK ac
|
||||||
|
#define X_MEDIA_STOP ad
|
||||||
|
#define X_MEDIA_PLAY_PAUSE ae
|
||||||
|
#define X_MEDIA_SELECT af
|
||||||
|
#define X_MEDIA_EJECT b0
|
||||||
|
#define X_MAIL b1
|
||||||
|
#define X_CALCULATOR b2
|
||||||
|
#define X_MY_COMPUTER b3
|
||||||
|
#define X_WWW_SEARCH b4
|
||||||
|
#define X_WWW_HOME b5
|
||||||
|
#define X_WWW_BACK b6
|
||||||
|
#define X_WWW_FORWARD b7
|
||||||
|
#define X_WWW_STOP b8
|
||||||
|
#define X_WWW_REFRESH b9
|
||||||
|
#define X_WWW_FAVORITES ba
|
||||||
|
#define X_MEDIA_FAST_FORWARD bb
|
||||||
|
#define X_MEDIA_REWIND bc
|
||||||
|
#endif
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
#include "audio.h"
|
#include "audio.h"
|
||||||
#endif /* AUDIO_ENABLE */
|
#endif /* AUDIO_ENABLE */
|
||||||
|
|
||||||
#ifdef RGBLIGHT_SLEEP
|
#if defined(RGBLIGHT_SLEEP) && defined(RGBLIGHT_ENABLE)
|
||||||
#include "rgblight.h"
|
#include "rgblight.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ static void power_down(uint8_t wdto)
|
|||||||
// This sometimes disables the start-up noise, so it's been disabled
|
// This sometimes disables the start-up noise, so it's been disabled
|
||||||
// stop_all_notes();
|
// stop_all_notes();
|
||||||
#endif /* AUDIO_ENABLE */
|
#endif /* AUDIO_ENABLE */
|
||||||
#ifdef RGBLIGHT_SLEEP
|
#if defined(RGBLIGHT_SLEEP) && defined(RGBLIGHT_ENABLE)
|
||||||
#ifdef RGBLIGHT_ANIMATIONS
|
#ifdef RGBLIGHT_ANIMATIONS
|
||||||
rgblight_timer_disable();
|
rgblight_timer_disable();
|
||||||
#endif
|
#endif
|
||||||
@@ -188,7 +188,7 @@ void suspend_wakeup_init(void)
|
|||||||
backlight_init();
|
backlight_init();
|
||||||
#endif
|
#endif
|
||||||
led_set(host_keyboard_leds());
|
led_set(host_keyboard_leds());
|
||||||
#ifdef RGBLIGHT_SLEEP
|
#if defined(RGBLIGHT_SLEEP) && defined(RGBLIGHT_ENABLE)
|
||||||
rgblight_enable_noeeprom();
|
rgblight_enable_noeeprom();
|
||||||
#ifdef RGBLIGHT_ANIMATIONS
|
#ifdef RGBLIGHT_ANIMATIONS
|
||||||
rgblight_timer_enable();
|
rgblight_timer_enable();
|
||||||
|
|||||||
Reference in new issue
Block a user