Compare commits

...
5 Commits
Author SHA1 Message Date
QMK Bot 09370a95db format code according to conventions [skip ci] 2020-01-25 22:04:42 +00:00
George Harris e9ffc53476 Fix unaligned access with LTO (#7801)
Forces 4 byte alignment for USB input & output buffers to prevent unaligned accesses by chibios with LTO enabled
2020-01-25 13:35:39 -08:00
fauxpark 480a391929 [Keyboard] Daisy refactor (#7985) 2020-01-25 12:43:43 -08:00
yohewi 154336ee27 [Keyboard] numatreus (#7929)
* Add files via upload

* Delete NumAtreus

* 20190405

* 20190405

* Delete keymap.c

* Delete config.h

* Delete keymap.c

* Delete rules.mk

* Delete rules_default.mk

* Delete readme.md

* Delete NumAtreus.c

* Delete NumAtreus.h

* Delete config.h

* Delete info.json

* 20190404

* Add files via upload

* Add files via upload

* 20190405

* Delete NumAtreus

* 20190406

* 20190407

* 20190408

* 20190408

* 20190410

* Update readme.md

* Update readme.md

* Add files via upload

大文字小文字の修正をしました。

* Update readme.md

* Update readme.md

* Update readme.md

* Delete NumAtreus.c

* Delete NumAtreus.h

* Add files via upload

* 20200118

* 20200118_default

* update

* readme

* Delete rules.mk

* Delete readme.md

* Delete numatreus.h

* Delete config.h

* Delete info.json

* Delete info.json_txt

* Delete numatreus.c

* Delete config.h

* Delete keymap.c

* Delete rules.mk

* Delete keymap.c

* Delete keymap.c

* del

* update

* update

* Update keyboards/numatreus/config.h

* Update keyboards/numatreus/config.h

* Update keyboards/numatreus/config.h

* Update keyboards/numatreus/keymaps/hdbx/keymap.c

* Update keyboards/numatreus/rules.mk

* Update keyboards/numatreus/rules.mk

* Update keyboards/numatreus/rules.mk

* Update keyboards/numatreus/rules.mk

* Update keyboards/numatreus/keymaps/hdbx/keymap.c

* Update keyboards/numatreus/keymaps/like_jis/config.h

* Update keyboards/numatreus/keymaps/like_jis/keymap.c

* Update keyboards/numatreus/readme.md

* Update keyboards/numatreus/readme.md

* Update keyboards/numatreus/readme.md

* Update keyboards/numatreus/readme.md

* Update keyboards/numatreus/readme.md

* Update keyboards/numatreus/readme.md

* 20190119_Modified

* 20200119_Modified

* 20200119_uranuma

* Update keyboards/numatreus/keymaps/hdbx/keymap.c

* Update keyboards/numatreus/keymaps/default/keymap.c

* Update keyboards/numatreus/keymaps/default/keymap.c

* Update keyboards/numatreus/rules.mk

* Update keyboards/numatreus/rules.mk

* Update keyboards/numatreus/rules.mk

* Delete info.json_txt

* 20200121_Modified

* 20200121_Modified

* 20200121_Modified

* 20200121_Modified

* 20200122

* Update keyboards/numatreus/config.h

* 20200122_Modified

* Update keyboards/uranuma/rules.mk

* Update keyboards/numatreus/keymaps/like_jis/keymap.c

* Update keyboards/uranuma/rules.mk

* Update keyboards/uranuma/rules.mk

* Update keyboards/uranuma/rules.mk

* Update keyboards/uranuma/rules.mk

* Update keyboards/numatreus/keymaps/like_jis/keymap.c

* Update keyboards/numatreus/keymaps/like_jis/keymap.c

* Update keyboards/numatreus/keymaps/like_jis/keymap.c

* Update keyboards/numatreus/keymaps/like_jis/keymap.c

* Update keyboards/numatreus/keymaps/like_jis/keymap.c

* Update keyboards/numatreus/keymaps/like_jis/keymap.c

* Update keyboards/uranuma/config.h

* Update keyboards/uranuma/readme.md

* Update keyboards/uranuma/readme.md

* Update keyboards/uranuma/readme.md

* 20200122

* Delete config.h

* Delete uranuma.h

* Delete uranuma.c

* Delete rules.mk

* Delete readme.md

* Delete keymap.c

* Delete info.json

* Update keyboards/numatreus/rules.mk
2020-01-24 19:33:04 -08:00
Joel Challis d4ccb2e0e6 Fix printf buffer overflow when cols>16 (#7998) 2020-01-24 21:57:30 -05:00
23 changed files with 1242 additions and 243 deletions

No files matched your search

+106 -23
View File
@@ -1,13 +1,29 @@
#ifndef CONFIG_H /*
#define CONFIG_H Copyright 2020
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h" #include "config_common.h"
/* USB Device descriptor parameter */ /* USB Device descriptor parameter */
#define VENDOR_ID 0x1209 #define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x2328 #define PRODUCT_ID 0x7169
#define DEVICE_VER 0x501 #define DEVICE_VER 0x0501
#define MANUFACTURER K.T.E.C. #define MANUFACTURER KTEC
#define PRODUCT Daisy #define PRODUCT Daisy
#define DESCRIPTION qmk port for Daisy #define DESCRIPTION qmk port for Daisy
@@ -32,22 +48,59 @@
/* COL2ROW, ROW2COL*/ /* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW #define DIODE_DIRECTION COL2ROW
/*
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
*/
//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
#define BACKLIGHT_PIN D0 #define BACKLIGHT_PIN D0
// #define BACKLIGHT_BREATHING
#define BACKLIGHT_LEVELS 6 #define BACKLIGHT_LEVELS 6
#define RGB_DI_PIN C7
#ifdef RGB_DI_PIN
# define RGBLED_NUM 8
# define RGBLIGHT_HUE_STEP 12
# define RGBLIGHT_SAT_STEP 25
# define RGBLIGHT_VAL_STEP 12
// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
// /*== all animations enable ==*/
# define RGBLIGHT_ANIMATIONS
// /*== or choose animations ==*/
// #define RGBLIGHT_EFFECT_BREATHING
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
// #define RGBLIGHT_EFFECT_SNAKE
// #define RGBLIGHT_EFFECT_KNIGHT
// #define RGBLIGHT_EFFECT_CHRISTMAS
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
// #define RGBLIGHT_EFFECT_RGB_TEST
// #define RGBLIGHT_EFFECT_ALTERNATING
// /*== customize breathing effect ==*/
// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
// /*==== use exp() and sin() ====*/
// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
#endif
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5 #define DEBOUNCE 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */ /* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST //#define MATRIX_HAS_GHOST
/* number of backlight levels */
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE #define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */ /* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE #define LOCKING_RESYNC_ENABLE
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
*/
// #define GRAVE_ESC_CTRL_OVERRIDE
/* /*
* Force NKRO * Force NKRO
* *
@@ -81,6 +134,10 @@
* *
*/ */
/* key combination for magic key command */
/* defined by default; to change, uncomment and set to the combination you want */
// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
/* control how magic key switches layers */ /* control how magic key switches layers */
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true //#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true //#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
@@ -90,8 +147,8 @@
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS //#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS //#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM //#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
//#define MAGIC_KEY_HELP1 H //#define MAGIC_KEY_HELP H
//#define MAGIC_KEY_HELP2 SLASH //#define MAGIC_KEY_HELP_ALT SLASH
//#define MAGIC_KEY_DEBUG D //#define MAGIC_KEY_DEBUG D
//#define MAGIC_KEY_DEBUG_MATRIX X //#define MAGIC_KEY_DEBUG_MATRIX X
//#define MAGIC_KEY_DEBUG_KBD K //#define MAGIC_KEY_DEBUG_KBD K
@@ -99,9 +156,8 @@
//#define MAGIC_KEY_VERSION V //#define MAGIC_KEY_VERSION V
//#define MAGIC_KEY_STATUS S //#define MAGIC_KEY_STATUS S
//#define MAGIC_KEY_CONSOLE C //#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_LAYER0 0
//#define MAGIC_KEY_LAYER0_ALT GRAVE
//#define MAGIC_KEY_LAYER1 1 //#define MAGIC_KEY_LAYER1 1
//#define MAGIC_KEY_LAYER2 2 //#define MAGIC_KEY_LAYER2 2
//#define MAGIC_KEY_LAYER3 3 //#define MAGIC_KEY_LAYER3 3
@@ -111,9 +167,11 @@
//#define MAGIC_KEY_LAYER7 7 //#define MAGIC_KEY_LAYER7 7
//#define MAGIC_KEY_LAYER8 8 //#define MAGIC_KEY_LAYER8 8
//#define MAGIC_KEY_LAYER9 9 //#define MAGIC_KEY_LAYER9 9
//#define MAGIC_KEY_BOOTLOADER PAUSE //#define MAGIC_KEY_BOOTLOADER B
//#define MAGIC_KEY_BOOTLOADER_ALT ESC
//#define MAGIC_KEY_LOCK CAPS //#define MAGIC_KEY_LOCK CAPS
//#define MAGIC_KEY_EEPROM E //#define MAGIC_KEY_EEPROM E
//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
//#define MAGIC_KEY_NKRO N //#define MAGIC_KEY_NKRO N
//#define MAGIC_KEY_SLEEP_LED Z //#define MAGIC_KEY_SLEEP_LED Z
@@ -132,17 +190,12 @@
//#define NO_ACTION_LAYER //#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING //#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT //#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
// ws2812 options
#define RGB_DI_PIN C7 // pin the DI on the ws2812 is hooked-up to
#define RGBLIGHT_ANIMATIONS // run RGB animations
#define RGBLED_NUM 8 // number of LEDs
#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue
#define RGBLIGHT_SAT_STEP 25 // units to step when in/decresing saturation
#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness)
/* disable these deprecated features by default */
#ifndef LINK_TIME_OPTIMIZATION_ENABLE
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION
#endif
/* /*
* MIDI options * MIDI options
*/ */
@@ -166,4 +219,34 @@
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1 //#define MIDI_TONE_KEYCODE_OCTAVES 1
/*
* HD44780 LCD Display Configuration
*/
/*
#define LCD_LINES 2 //< number of visible lines of the display
#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
#if LCD_IO_MODE
#define LCD_PORT PORTB //< port for the LCD lines
#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
#define LCD_RS_PORT LCD_PORT //< port for RS line
#define LCD_RS_PIN 3 //< pin for RS line
#define LCD_RW_PORT LCD_PORT //< port for RW line
#define LCD_RW_PIN 2 //< pin for RW line
#define LCD_E_PORT LCD_PORT //< port for Enable line
#define LCD_E_PIN 1 //< pin for Enable line
#endif #endif
*/
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
+33 -13
View File
@@ -1,15 +1,35 @@
/* Copyright 2020
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "daisy.h" #include "daisy.h"
void led_set_kb(uint8_t usb_led) { void keyboard_pre_init_kb(void) {
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here led_init_ports();
if (usb_led & (1<<USB_LED_CAPS_LOCK)) { keyboard_pre_init_user();
// output low }
DDRC |= (1<<PC6);
PORTC &= ~(1<<PC6); void led_init_ports(void) {
} else { setPinOutput(C6);
// Hi-Z writePinHigh(C6);
DDRC &= ~(1<<PC6); }
PORTC &= ~(1<<PC6);
} bool led_update_kb(led_t led_state) {
led_set_user(usb_led); if (led_update_user(led_state)) {
} writePin(C6, !led_state.caps_lock);
}
return true;
}
+45 -13
View File
@@ -1,19 +1,51 @@
#ifndef DAISY_H /* Copyright 2020
#define DAISY_H *
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "quantum.h" #include "quantum.h"
/* This is a shortcut to help you visually see your layout.
*
* The first section contains all of the arguments representing the physical
* layout of the board and position of the keys.
*
* The second converts the arguments into a two-dimensional array which
* represents the switch matrix.
*/
#define LAYOUT( \ #define LAYOUT( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K3A, \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K3A, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
K30, K31, K32, K34, K35, K37, K38, K39 \ K30, K31, K32, K34, K35, K37, K38, K39 \
) \ ) { \
{ \ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A }, \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A }, \ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A }, \ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A }, \ { K30, K31, K32, KC_NO, K34, K35, KC_NO, K37, K38, K39, K3A } \
{ K30, K31, K32, KC_NO, K34, K35, KC_NO, K37, K38, K39, K3A } \
} }
#endif #define LAYOUT_625_space( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K3A, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
K30, K31, K32, K35, K38, K39 \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A }, \
{ K30, K31, K32, KC_NO, KC_NO, K35, KC_NO, KC_NO, K38, K39, K3A } \
}
+103 -14
View File
@@ -1,18 +1,107 @@
{ {
"keyboard_name": "Daisy", "keyboard_name": "Daisy",
"url": "", "url": "",
"maintainer": "qmk", "maintainer": "qmk",
"width": 12, "width": 12,
"height": 4, "height": 4,
"layouts": { "layouts": {
"LAYOUT": { "LAYOUT": {
"key_count": 42, "key_count": 42,
"layout": [{"label": "K00", "x": 0, "y": 0}, {"label": "K01", "x": 1, "y": 0}, {"label": "K02", "x": 2, "y": 0}, {"label": "K03", "x": 3, "y": 0}, {"label": "K04", "x": 4, "y": 0}, {"label": "K05", "x": 5, "y": 0}, {"label": "K06", "x": 6, "y": 0}, {"label": "K07", "x": 7, "y": 0}, {"label": "K08", "x": 8, "y": 0}, {"label": "K09", "x": 9, "y": 0}, {"label": "K0A", "x": 10, "y": 0}, {"label": "K3A", "x": 11, "y": 0}, {"label": "K10", "x": 0, "y": 1, "w": 1.25}, {"label": "K11", "x": 1.25, "y": 1}, {"label": "K12", "x": 2.25, "y": 1}, {"label": "K13", "x": 3.25, "y": 1}, {"label": "K14", "x": 4.25, "y": 1}, {"label": "K15", "x": 5.25, "y": 1}, {"label": "K16", "x": 6.25, "y": 1}, {"label": "K17", "x": 7.25, "y": 1}, {"label": "K18", "x": 8.25, "y": 1}, {"label": "K19", "x": 9.25, "y": 1}, {"label": "K1A", "x": 10.25, "y": 1, "w": 1.75}, {"label": "K20", "x": 0, "y": 2, "w": 1.75}, {"label": "K21", "x": 1.75, "y": 2}, {"label": "K22", "x": 2.75, "y": 2}, {"label": "K23", "x": 3.75, "y": 2}, {"label": "K24", "x": 4.75, "y": 2}, {"label": "K25", "x": 5.75, "y": 2}, {"label": "K26", "x": 6.75, "y": 2}, {"label": "K27", "x": 7.75, "y": 2}, {"label": "K28", "x": 8.75, "y": 2}, {"label": "K29", "x": 9.75, "y": 2}, {"label": "K2A", "x": 10.75, "y": 2, "w": 1.25}, {"label": "K30", "x": 0, "y": 3, "w": 1.25}, {"label": "K31", "x": 1.25, "y": 3}, {"label": "K32", "x": 2.25, "y": 3, "w": 1.25}, {"label": "K34", "x": 3.5, "y": 3, "w": 2.25}, {"label": "K35", "x": 5.75, "y": 3, "w": 2.75}, {"label": "K37", "x": 8.5, "y": 3, "w": 1.25}, {"label": "K38", "x": 9.75, "y": 3}, {"label": "K39", "x": 10.75, "y": 3, "w": 1.25}] "layout": [
}, {"x": 0, "y": 0},
{"x": 1, "y": 0},
{"x": 2, "y": 0},
{"x": 3, "y": 0},
{"x": 4, "y": 0},
{"x": 5, "y": 0},
{"x": 6, "y": 0},
{"x": 7, "y": 0},
{"x": 8, "y": 0},
{"x": 9, "y": 0},
{"x": 10, "y": 0},
{"x": 11, "y": 0},
"LAYOUT_625_space": { {"x": 0, "y": 1, "w": 1.25},
"key_count": 40, {"x": 1.25, "y": 1},
"layout": [{"label": "K00", "x": 0, "y": 0}, {"label": "K01", "x": 1, "y": 0}, {"label": "K02", "x": 2, "y": 0}, {"label": "K03", "x": 3, "y": 0}, {"label": "K04", "x": 4, "y": 0}, {"label": "K05", "x": 5, "y": 0}, {"label": "K06", "x": 6, "y": 0}, {"label": "K07", "x": 7, "y": 0}, {"label": "K08", "x": 8, "y": 0}, {"label": "K09", "x": 9, "y": 0}, {"label": "K0A", "x": 10, "y": 0}, {"label": "K3A", "x": 11, "y": 0}, {"label": "K10", "x": 0, "y": 1, "w": 1.25}, {"label": "K11", "x": 1.25, "y": 1}, {"label": "K12", "x": 2.25, "y": 1}, {"label": "K13", "x": 3.25, "y": 1}, {"label": "K14", "x": 4.25, "y": 1}, {"label": "K15", "x": 5.25, "y": 1}, {"label": "K16", "x": 6.25, "y": 1}, {"label": "K17", "x": 7.25, "y": 1}, {"label": "K18", "x": 8.25, "y": 1}, {"label": "K19", "x": 9.25, "y": 1}, {"label": "K1A", "x": 10.25, "y": 1, "w": 1.75}, {"label": "K20", "x": 0, "y": 2, "w": 1.75}, {"label": "K21", "x": 1.75, "y": 2}, {"label": "K22", "x": 2.75, "y": 2}, {"label": "K23", "x": 3.75, "y": 2}, {"label": "K24", "x": 4.75, "y": 2}, {"label": "K25", "x": 5.75, "y": 2}, {"label": "K26", "x": 6.75, "y": 2}, {"label": "K27", "x": 7.75, "y": 2}, {"label": "K28", "x": 8.75, "y": 2}, {"label": "K29", "x": 9.75, "y": 2}, {"label": "K2A", "x": 10.75, "y": 2, "w": 1.25}, {"label": "K30", "x": 0, "y": 3, "w": 1.25}, {"label": "K31", "x": 1.25, "y": 3}, {"label": "K32", "x": 2.25, "y": 3}, {"x": 3.25, "y": 3, "w": 6.25}, {"label": "K38", "x": 9.5, "y": 3, "w": 1.25}, {"label": "K39", "x": 10.75, "y": 3, "w": 1.25}] {"x": 2.25, "y": 1},
{"x": 3.25, "y": 1},
{"x": 4.25, "y": 1},
{"x": 5.25, "y": 1},
{"x": 6.25, "y": 1},
{"x": 7.25, "y": 1},
{"x": 8.25, "y": 1},
{"x": 9.25, "y": 1},
{"x": 10.25, "y": 1, "w": 1.75},
{"x": 0, "y": 2, "w": 1.75},
{"x": 1.75, "y": 2},
{"x": 2.75, "y": 2},
{"x": 3.75, "y": 2},
{"x": 4.75, "y": 2},
{"x": 5.75, "y": 2},
{"x": 6.75, "y": 2},
{"x": 7.75, "y": 2},
{"x": 8.75, "y": 2},
{"x": 9.75, "y": 2},
{"x": 10.75, "y": 2, "w": 1.25},
{"x": 0, "y": 3, "w": 1.25},
{"x": 1.25, "y": 3},
{"x": 2.25, "y": 3, "w": 1.25},
{"x": 3.5, "y": 3, "w": 2.25},
{"x": 5.75, "y": 3, "w": 2.75},
{"x": 8.5, "y": 3, "w": 1.25},
{"x": 9.75, "y": 3},
{"x": 10.75, "y": 3, "w": 1.25}
]
},
"LAYOUT_625_space": {
"key_count": 40,
"layout": [
{"x": 0, "y": 0},
{"x": 1, "y": 0},
{"x": 2, "y": 0},
{"x": 3, "y": 0},
{"x": 4, "y": 0},
{"x": 5, "y": 0},
{"x": 6, "y": 0},
{"x": 7, "y": 0},
{"x": 8, "y": 0},
{"x": 9, "y": 0},
{"x": 10, "y": 0},
{"x": 11, "y": 0},
{"x": 0, "y": 1, "w": 1.25},
{"x": 1.25, "y": 1},
{"x": 2.25, "y": 1},
{"x": 3.25, "y": 1},
{"x": 4.25, "y": 1},
{"x": 5.25, "y": 1},
{"x": 6.25, "y": 1},
{"x": 7.25, "y": 1},
{"x": 8.25, "y": 1},
{"x": 9.25, "y": 1},
{"x": 10.25, "y": 1, "w": 1.75},
{"x": 0, "y": 2, "w": 1.75},
{"x": 1.75, "y": 2},
{"x": 2.75, "y": 2},
{"x": 3.75, "y": 2},
{"x": 4.75, "y": 2},
{"x": 5.75, "y": 2},
{"x": 6.75, "y": 2},
{"x": 7.75, "y": 2},
{"x": 8.75, "y": 2},
{"x": 9.75, "y": 2},
{"x": 10.75, "y": 2, "w": 1.25},
{"x": 0, "y": 3, "w": 1.25},
{"x": 1.25, "y": 3},
{"x": 2.25, "y": 3},
{"x": 3.25, "y": 3, "w": 6.25},
{"x": 9.5, "y": 3, "w": 1.25},
{"x": 10.75, "y": 3, "w": 1.25}
]
}
} }
}
} }
+75 -84
View File
@@ -1,92 +1,83 @@
/* Copyright 2020
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
// Defines names for use in layer keycodes and the keymap
// Layer shorthand enum layer_names {
#define _BL 0 _BL,
#define _LW 1 _LW,
#define _RS 2 _RS
enum layer_keycodes {
QWERTY = SAFE_RANGE, LOWER, RAISE
}; };
#define LOWER MO(_LW)
#define RAISE MO(_RS)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base Layer
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
* │Esc│ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ \ │
* ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
* │Tab │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Enter│
* ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
* │Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │  / │
* ├────┬─┴─┬─┴──┬┴───┴───┼───┴───┴──┬┴───┼───┼────┤
* │Ctrl│GUI│Alt │        │ Backspace│Lowr│Rse│ Alt│
* └────┴───┴────┴────────┴──────────┴────┴───┴────┘
*/
[_BL] = LAYOUT(
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_BSPC, LOWER, RAISE, KC_RALT
),
/* Base Layer /* Function Layer 1 (Lower)
* .-----------------------------------------------------------------------. * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
* | ESC | Q | W | E | R | T | Y | U | I | O | P | \| | * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │
* |-----------------------------------------------------------------------| * └───┴┬──┴┬──┴┬──┴───┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴───┘
* | TAB | A | S | D | F | G | H | J | K | L | ENTER | * │    │ = │ ▴ │   │   │   │ [ │ ] │ ; │ ' │      │
* |-----------------------------------------------------------------------| * ├────└─┬─┴─┬─┴─┬───┐─┴─┬─└───┴───┴───┴───┘─┬────┤
* | LSHIFT | Z | X | C | V | B | N | M | ,< | .> | /? | * │      │ ◂ │ ▾ │ ▸ │   │   │   │   │   │   │    │
* |-----------------------------------------------------------------------| * ├────┬─└───┴───┴───┘───┌──────────┐┴───┼───┼────┤
* | LCTRL | LGUI | LALT | SPACE | BACKSPACE | LW | RS | RALT | * │    │   │    │        │   Delete │    │   │    │
* '-----------------------------------------------------------------------' * └────┴───┴────┴────────└──────────┘────┴───┴────┘
*/ */
[_BL] = LAYOUT( [_LW] = LAYOUT(
GRAVE_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, 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_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, _______, KC_EQL, KC_UP, _______, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT, _______,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_BSPC, LOWER, RAISE, KC_RALT _______, _______, _______, _______, KC_DEL, _______, _______, _______
), ),
/* Function Layer
* .-----------------------------------------------------------------------.
* | GRV | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | -_ |
* |-----------------------------------------------------------------------|
* | | =+ | UP | | | | [{ | ]} | ;: | '" | |
* |-----------------------------------------------------------------------|
* | | LEFT| DOWN |RIGHT| | | | | | | |
* |-----------------------------------------------------------------------|
* | | | | | DELETE | | | |
* '-----------------------------------------------------------------------'
*/
[_LW] = 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_TRNS, KC_EQL, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT, KC_TRNS,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_LCTL, KC_LGUI, KC_LALT, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS
),
/* Second Function Layer
* .-----------------------------------------------------------------------.
* | RST | F1 | F2 | F3 | F4 | F5 | F6 | | HOME| PGUP| | |
* |-----------------------------------------------------------------------|
* | | F7 | F8 | F9 | F10 | F11 | F12 | | END | PGDN| |
* |-----------------------------------------------------------------------|
* | |RGBtog|RGBmod|RGBhud|RGBhui|RGBvad|RGBvai|RGBsad|RGBsai|BL| |
* |-----------------------------------------------------------------------|
* | | | | | | | | |
* '-----------------------------------------------------------------------'
*/
[_RS] = LAYOUT(
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS,
KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_END, KC_PGDN, KC_TRNS,
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_VAD, RGB_VAI, RGB_SAD, RGB_SAI, BL_STEP, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
}; /* Function Layer 2 (Raise)
* ┌───┬───┬───┬───┬───┬───┬───┐───┌───┬───┐───┬───┐
bool process_record_user(uint16_t keycode, keyrecord_t *record) { * │Rst│F1 │F2 │F3 │F4 │F5 │F6 │   │Hom│PgU│   │   │
switch (keycode) { * └───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐──└┬──┴┬──┴┐──┴───┤
case LOWER: * │    │F7 │F8 │F9 │F10│F11│F12│   │ ; │ ' │      │
if(record->event.pressed){ * ├────└─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴───┴───┴───┴─┐────┤
layer_on(_LW); * │      │RGB│Mod│HuD│HuI│VaD│VaI│SaD│SaI│BLS│    │
} else { * ├────┬─└───┴───┴───┴───┴───┴───┴───┴───┴───┘────┤
layer_off(_LW); * │    │   │    │        │          │    │   │    │
} * └────┴───┴────┴────────┴──────────┴────┴───┴────┘
return false; */
break; [_RS] = LAYOUT(
case RAISE: RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_HOME, KC_PGUP, _______, _______,
if(record->event.pressed){ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_END, KC_PGDN, _______,
layer_on(_RS); _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_VAD, RGB_VAI, RGB_SAD, RGB_SAI, BL_STEP, _______,
} else { _______, _______, _______, _______, _______, _______, _______, _______
layer_off(_RS); )
}
return false;
break;
}
return true;
}; };
+1 -5
View File
@@ -1,5 +1 @@
![Daisy Layout Image](https://imgur.com/9mSF0yf) # The default keymap for Daisy
# Default Daisy Layout
This is the default layout as offered by KPRepublic's TMK firmware for the Daisy with a few minor tweaks for usability made by me.
+7 -21
View File
@@ -1,29 +1,15 @@
# Daisy # Daisy
A 40% keyboard kit sold by KPRepublic. ![Daisy PCB](https://cdn.shopify.com/s/files/1/2711/4238/products/HTB1Pj1UggMPMeJjy1Xcq6xpppXa7_1024x1024.jpg)
Keyboard Maintainer: westfoxtrot (https://github.com/westfoxtrot) A 40% keyboard kit sold by KPrepublic.
Hardware Supported: Daisy PCB Rev.1, Daisy PCB Rev.2
Hardware Availability: http://tinyurl.com/yc26lq22 * Keyboard Maintainer: [westfoxtrot](https://github.com/westfoxtrot)
* Hardware Supported: Daisy PCB Rev.1, Daisy PCB Rev.2
* Hardware Availability: [KPrepublic](https://kprepublic.com/products/daisy-40-custom-keyboard-pcb)
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make daisy:default make daisy:default
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
# Other Keymaps
The "default" keymap included is the layout I personally use on the Daisy and the one I have found the most comfortable.
A printable picture showing this layout is available here: https://imgur.com/9mSF0yf
```
$ make daisy:[default|<name>]
```
# Bootloader
I personally had issues with the bootloader on my Daisy PCB and was unable to flash a firmware to the board after the first time. I replaced the bootloader with the one available in the repository at ../../util/bootloader_atmega32u4_1_0_0.hex
+16 -14
View File
@@ -11,20 +11,22 @@ MCU = atmega32u4
# ATmega328P USBasp # ATmega328P USBasp
BOOTLOADER = atmel-dfu BOOTLOADER = atmel-dfu
# QMK Build Options # Build Options
# change to "no" to disable the options, or define them in the Makefile in # change yes to no to disable
# the appropriate keymap folder that will get included automatically
# #
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
MOUSEKEY_ENABLE = no # Mouse keys(+4700) MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug(+400) CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration 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 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
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.
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+100
View File
@@ -0,0 +1,100 @@
/*
Copyright 2019 yohei <[email protected]>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0xE80A
#define DEVICE_VER 0x0001
#define MANUFACTURER yohewi
#define PRODUCT NumAtreus
#define DESCRIPTION QMK keyboard firmware for NumAtreus
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 11
// wiring of each half
#define MATRIX_ROW_PINS { C6, D7, E6, B4 }
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, D2, D1, D0, D4 }
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION ROW2COL
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
/* number of backlight levels */
//#define BACKLIGHT_LEVELS 3
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
/* 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
/* ws2812 RGB LED */
#define RGB_DI_PIN D3
// keyboard RGB LED support
//#define RGBLIGHT_ANIMATIONS : see ./rules.mk: LED_ANIMATIONS = yes or no
// see ./rules.mk: LED_BACK_ENABLE or LED_UNDERGLOW_ENABLE set yes
#define RGBLED_NUM 6
#define RGBLIGHT_LIMIT_VAL 200
#define RGBLIGHT_VAL_STEP 17
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#if defined(RGBLIGHT_ENABLE)
// USB_MAX_POWER_CONSUMPTION value for stonehenge30 keyboard
// 120 RGBoff, OLEDoff
// 120 OLED
// 330 RGB 6
// 300 RGB 32
// 310 OLED & RGB 32
#define USB_MAX_POWER_CONSUMPTION 400
#else
// fix iPhone and iPad power adapter issue
// iOS device need lessthan 100
#define USB_MAX_POWER_CONSUMPTION 100
#endif
/*
* 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
+12
View File
@@ -0,0 +1,12 @@
{
"keyboard_name": "numatreus",
"url": "",
"maintainer": "qmk",
"width": 13,
"height": 4.7,
"layouts": {
"LAYOUT": {
"layout": [{"x":0, "y":0.6}, {"x":1, "y":0.35}, {"x":2, "y":0}, {"x":3, "y":0.35}, {"x":4, "y":0.7}, {"x":8, "y":0.7}, {"x":9, "y":0.35}, {"x":10, "y":0}, {"x":11, "y":0.35}, {"x":12, "y":0.6}, {"x":0, "y":1.6}, {"x":1, "y":1.35}, {"x":2, "y":1}, {"x":3, "y":1.35}, {"x":4, "y":1.7}, {"x":8, "y":1.7}, {"x":9, "y":1.35}, {"x":10, "y":1}, {"x":11, "y":1.35}, {"x":12, "y":1.6}, {"x":0, "y":2.6}, {"x":1, "y":2.35}, {"x":2, "y":2}, {"x":3, "y":2.35}, {"x":4, "y":2.7}, {"x":8, "y":2.7}, {"x":9, "y":2.35}, {"x":10, "y":2}, {"x":11, "y":2.35}, {"x":12, "y":2.6}, {"x":0, "y":3.6}, {"x":1, "y":3.35}, {"x":2, "y":3}, {"x":3, "y":3.35}, {"x":4, "y":3.7}, {"x":5, "y":2.95, "h":1.5}, {"x":7, "y":2.95, "h":1.5}, {"x":8, "y":3.7}, {"x":9, "y":3.35}, {"x":10, "y":3}, {"x":11, "y":3.35}, {"x":12, "y":3.6}]
}
}
}
@@ -0,0 +1,60 @@
#include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
enum layer_number {
_QWERTY,
_LOWER,
_RAISE,
};
enum custom_keycodes {
QWERTY = SAFE_RANGE,
LOWER,
RAISE,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT( /* Qwerty */
/*
* Q W E R T || Y U I O P
* A S D F G || H J K L ;
* Z X C V B || N M , . /
* SFT TAB CTL LW space bksp||ALT Ent RS - ' =
*/
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P ,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN ,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH ,
KC_LSFT, KC_TAB, KC_LCTL, MO(_LOWER), KC_SPC, KC_BSPC, KC_LALT, KC_ENT, MO(_RAISE), KC_MINS, KC_QUOT, KC_PEQL
),
/*
* 1 2 3 4 5 || 6 7 8 9 0
* F1 F2 F3 F4 F5 || F6 F7 F8 F9 F10
* F11 F12 ( ) & || ` [ ] + \
* lower insert super shift space bksp|| alt Ent fn . - =
*/
[_RAISE] = LAYOUT( /* [> RAISE <] */
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0 ,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 ,
KC_F11, KC_F12, KC_LPRN, KC_RPRN, KC_AMPR, KC_GRV, KC_LBRC, KC_RBRC, KC_PSLS, KC_BSLS ,
KC_NO, KC_INS, KC_LGUI, KC_LSFT, KC_SPC, KC_BSPC, KC_LALT, KC_ENT, KC_TRNS, KC_DOT, KC_PMNS, KC_EQL ),
/*
* ! @ # $ % || ^ & * ( )
* DEL ESC || PGDN PGUP PSCR
* CAPS volup ENT reset || UP
* voldn super shift space bspc|| alt ent LEFT DOWN RGHT
*/
[_LOWER] = LAYOUT( /* [> LOWER <] */
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN ,
KC_DELT, KC_ESC, KC_NO, KC_NO, KC_NO, KC_PGDN, KC_PGUP, KC_PSCR, KC_NO, KC_NO,
KC_CAPS, KC_VOLU, KC_NO, KC_ENT, RESET, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO ,
KC_NO, KC_VOLD, KC_LGUI, KC_LSFT, KC_SPC, KC_BSPC, KC_LALT, KC_ENT, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT )
};
+230
View File
@@ -0,0 +1,230 @@
// WindowsでJIS配列として認識しているときに、オシャレなUS配列用キーキャップを使うためのキーマップです。
// Google日本語入力の場合、以下のキー設定を行うとLower,Raiseのタップでそれぞれ半角入力と全角入力を切り替えできるようになります。
// ・Henkan(入力文字なし/直接入力)に「IMEを有効化」を割り当て
// ・Muhenkan(入力文字なし/直接入力)に「IMEを無効化」を割り当て
#include QMK_KEYBOARD_H
#include "keymap_jp.h" // qmk_firmware-master/quantum/keymap_extras/keymap_jp.h 日本語キーボード設定用
#include <sendstring_jis.h> // macro sendstring for jis keyboard マクロ文字列送信時に日本語キーボード設定での文字化け回避
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
enum layer_number {
_QWERTY,
_HDBX,
_LOWER,
_RAISE,
_GAME,
_ADJUST
};
enum custom_keycodes {
QWERTY = SAFE_RANGE,
HDBX,
MCR1, // マクロ1
MCR2, // マクロ2
MCR3, // マクロ3
MCR4, // マクロ4
MCR5, // マクロ5
WN_SCLN, // タップでJISの「:」 シフトでJISの「;」 (Windows)
DM_PLY1,
DM_PLY2,
DM_REC1,
DM_REC2,
DM_RSTP,
};
// Use Dynamic macro
// Fillers to make layering more clear
#define LOWER LT(_LOWER, KC_MHEN) // タップで無変換 ホールドでLower
#define RAISE LT(_RAISE, KC_HENK) // タップで変換 ホールドでRaise
#define GUI_ESC GUI_T(KC_ESC) // タップでESC ホールドでGUI
#define SFT_BS SFT_T(KC_BSPC) // タップでBackSpace ホールドでSHIFT
#define CTL_ENT CTL_T(KC_ENT) // タップでEnter ホールドでCTRL
#define CTL_TAB CTL_T(KC_TAB) // タップでTAB ホールドでCTRL
#define SFT_DEL SFT_T(KC_DEL) // タップでDELETE ホールドでSHIFT
#define ALT_LBR ALT_T(JP_LBRC) // タップで[ ホールドでALT
#define SFT_RBR SFT_T(JP_RBRC) // タップで] ホールドでSHIFT
#define SFT_SPC S(KC_SPC) // Shift + Space
#define WN_CAPS S(KC_CAPS) // Caps Lock (Windows)
#define GAME TO(_GAME) // _GAMEレイヤーへ移動
#define ADJUST TO(_ADJUST) // _ADJUSTレイヤーへ移動
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty配列
* ,----------------------------------. ,----------------------------------.
* | Q | W | E | R | T | | Y | U | I | O | P |
* |------+------+------+------+------| |------+------+------+------+------|
* | A | S | D | F | G | | H | J | K | L | ; |
* |------+------+------+------+------| |------+------+------+------+------|
* | Z | X | C | V | B | | N | M | , | . | / |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* |Alt/[ |WINESC| ~ |Sft/Bs|Lower |CtlEnt|Space |Raise |CtrlTb| - | ' |Sft/] |
* `-----------------------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, WN_SCLN,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
ALT_LBR, GUI_ESC, JP_TILD, SFT_BS, LOWER, CTL_ENT, KC_SPC, RAISE, CTL_TAB, KC_MINS, JP_QUOT, SFT_RBR
),
/* HDBX配列 デフォルトレイヤーをこの配列にしたい場合は、AdjustレイヤーでK (Lower + Raise + K)
* ,----------------------------------. ,----------------------------------.
* | Q | W | E | , | . | | Y | D | P | F | : |
* |------+------+------+------+------| |------+------+------+------+------|
* | A | I | O | U | G | | M | N | T | R | S |
* |------+------+------+------+------| |------+------+------+------+------|
* | Z | X | C | V | B | | H | J | K | L | / |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* |Alt/[ |WINESC| ~ |Sft/Bs|Lower |CtlEnt|Space |Raise |CtrlTb| - | ' |Sft/] |
* `-----------------------------------------------------------------------------------'
*/
[_HDBX] = LAYOUT(
KC_Q, KC_W, KC_E, KC_COMM, KC_DOT, KC_Y, KC_D, KC_P, KC_F, WN_SCLN,
KC_A, KC_I, KC_O, KC_U, KC_G, KC_M, KC_N, KC_T, KC_R, KC_S,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_H, KC_J, KC_K, KC_L, KC_SLSH,
ALT_LBR, GUI_ESC, JP_TILD, SFT_BS, LOWER, CTL_ENT, KC_SPC, RAISE, CTL_TAB, KC_MINS, JP_QUOT, SFT_RBR
),
/* Lower
* ,----------------------------------. ,----------------------------------.
* | F1 | F2 | F3 | F4 | F5 | | 7 | 8 | 9 | . | Bspc |
* |------+------+------+------+------| |------+------+------+------+------|
* | F6 | F7 | F8 | F9 | F10 | | 4 | 5 | 6 | + | * |
* |------+------+------+------+------| |------+------+------+------+------|
* |Zen/Ha|ScLock|Pause | F11 | F12 | | 1 | 2 | 3 | - | / |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Alt | WIN | ` |SftDel|Lower | Ctrl |SftSpc|Raise | 0 | , | = |Enter |
* `-----------------------------------------------------------------------------------'
*/
[_LOWER] = LAYOUT(
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_7, KC_8, KC_9, KC_DOT, KC_BSPC,
KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_4, KC_5, KC_6, KC_PPLS, KC_PAST,
KC_ZKHK, KC_SLCK, KC_PAUS, KC_F11, KC_F12, KC_1, KC_2, KC_3, KC_PMNS, KC_PSLS,
KC_LALT, KC_LGUI, JP_GRV, SFT_DEL, _______, KC_LCTL, SFT_SPC, _______, KC_0, KC_COMM, JP_EQL, KC_ENT
),
/* Raise
* ,----------------------------------. ,----------------------------------.
* | ! | @ | # | $ | % | | Home | App | Ins | Calc |PrtScr|
* |------+------+------+------+------| |------+------+------+------+------|
* | ^ | & | * | \ | | | | Left | Down | Up |Right | ; |
* |------+------+------+------+------| |------+------+------+------+------|
* | ` | { | } | < | > | | End | Mute | ( | ) | ? |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Alt | WIN | ` | Del |Lower | Ctrl | Caps |Raise | Ctrl | _ | " |Shift |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = LAYOUT(
KC_EXLM, JP_AT, KC_HASH, KC_DLR, KC_PERC, KC_HOME, KC_APP, KC_INS, KC_CALC, KC_PSCR,
JP_CIRC, JP_AMPR, JP_ASTR, JP_YEN, JP_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_SCLN,
JP_GRV, JP_LCBR, JP_RCBR, KC_LT, KC_GT, KC_END, KC_MUTE, JP_LPRN, JP_RPRN, KC_QUES,
KC_LALT, KC_LGUI, JP_GRV, KC_DEL, _______, KC_LCTL, WN_CAPS, _______, KC_RCTL, JP_UNDS, JP_DQT, KC_RSFT
),
/* GAME ゲームやテンキー固定で使用するレイヤーです。AdjustレイヤーでGを押下して遷移。戻るときはtoBaseから。
* ,----------------------------------. ,----------------------------------.
* | Q | Up | E | R | T | | 7 | 8 | 9 | . | Bspc |
* |------+------+------+------+------| |------+------+------+------+------|
* | Left | Down |Right | F | G | | 4 | 5 | 6 | + | * |
* |------+------+------+------+------| |------+------+------+------+------|
* | Z | X | C | V | B | | 1 | 2 | 3 | - | / |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Alt | Esc | Tab |Shift |Space | Ctrl |toBase| \ | 0 | , | = |Enter |
* `-----------------------------------------------------------------------------------'
*/
[_GAME] = LAYOUT(
KC_Q, KC_UP, KC_E, KC_R, KC_T, KC_7, KC_8, KC_9, KC_DOT, KC_BSPC,
KC_LEFT, KC_DOWN, KC_RGHT, KC_F, KC_G, KC_4, KC_5, KC_6, KC_PPLS, KC_PAST,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_1, KC_2, KC_3, KC_PMNS, KC_PSLS,
KC_LALT, KC_ESC, KC_TAB, KC_LSFT, KC_SPC, KC_LCTL, ADJUST, JP_YEN, KC_0, KC_COMM, JP_EQL, KC_ENT
),
/* Adjust (Lower + Raise)
* ,----------------------------------. ,----------------------------------.
* | MCR1 | MCR2 | MCR3 | MCR4 | MCR5 | |DyMcr1|DyMcr2|RcMcr1|RcMcr2|StpRec|
* |------+------+------+------+------| |------+------+------+------+------|
* | | | | |ToGAME| | |Qwerty| HDBX | | |
* |------+------+------+------+------| |------+------+------+------+------|
* | | | | | | | | | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* |RESET | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = LAYOUT(
MCR1, MCR2, MCR3, MCR4, MCR5, DM_PLY1, DM_PLY2, DM_REC1, DM_REC2, DM_RSTP,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, GAME, XXXXXXX, QWERTY, HDBX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
RESET, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
)
};
layer_state_t layer_state_set_user(layer_state_t state) {
state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
return state;
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY);
}
return false;
break;
case HDBX:
if (record->event.pressed) {
set_single_persistent_default_layer(_HDBX);
}
return false;
break;
static bool lshift = false;
case WN_SCLN: // コロン「;:」
if (record->event.pressed) {
lshift = get_mods() & MOD_BIT(KC_LSFT);
if (lshift) {
unregister_code(KC_LSFT);
tap_code(JP_SCLN);
} else {
tap_code(JP_SCLN);
}
}
return false;
break;
case MCR1:
if (record->event.pressed) {
SEND_STRING("0123456789"); // 送信文字列
}
return false;
break;
case MCR2:
if (record->event.pressed) {
SEND_STRING("hogehoge\n"); // 送信文字列
}
return false;
break;
case MCR3:
if (record->event.pressed) {
SEND_STRING("[email protected]"); // 送信文字列
}
return false;
break;
case MCR4:
if (record->event.pressed) {
SEND_STRING("\"\""SS_TAP(X_LEFT)); // 送信文字列
}
return false;
break;
case MCR5:
if (record->event.pressed) {
SEND_STRING("<>"SS_TAP(X_LEFT)); // 送信文字列
}
return false;
break;
}
return true;
}
@@ -0,0 +1,3 @@
MOUSEKEY_ENABLE = no
EXTRAKEY_ENABLE = yes
DYNAMIC_MACRO_ENABLE = yes
@@ -0,0 +1,59 @@
/*
This is the c configuration file for the keymap
Copyright 2012 Jun Wako <[email protected]>
Copyright 2015 Jack Humbert
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
// place overrides here
#ifdef TAPPING_TERM
#undef TAPPING_TERM
#endif
#define TAPPING_TERM 225
#define IGNORE_MOD_TAP_INTERRUPT
#ifdef MOUSEKEY_ENABLE
#undef MOUSEKEY_INTERVAL
#define MOUSEKEY_INTERVAL 1
#undef MOUSEKEY_TIME_TO_MAX
#define MOUSEKEY_TIME_TO_MAX 150
#undef MOUSEKEY_MAX_SPEED
#define MOUSEKEY_MAX_SPEED 3
#undef MOUSEKEY_MOVE_DELTA
#define MOUSEKEY_MOVE_DELTA 4
#undef MOUSEKEY_DELAY
#define MOUSEKEY_DELAY 0
#endif
// Selection of RGBLIGHT MODE to use.
#if defined(LED_ANIMATIONS)
//#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
//#define RGBLIGHT_EFFECT_SNAKE
#define RGBLIGHT_EFFECT_KNIGHT
//#define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
//#define RGBLIGHT_EFFECT_RGB_TEST
//#define RGBLIGHT_EFFECT_ALTERNATING
#endif
@@ -0,0 +1,196 @@
#include QMK_KEYBOARD_H
#include "keymap_jp.h"
#ifdef RGBLIGHT_ENABLE
//Following line allows macro to read current RGB settings
extern rgblight_config_t rgblight_config;
#endif
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
enum layer_number {
_BASE = 0,
_NUMPAD,
_LOWER,
_RAISE,
_ADJUST,
};
enum custom_keycodes {
BASE = SAFE_RANGE,
NUMPAD,
KANJI,
LOWER,
RAISE,
ADJUST,
RGBRST
};
enum tapdances{
TD_CODO = 0,
// TD_MNUB,
};
// Layer Mode aliases
#define KC_LOWER LOWER
#define KC_RAISE RAISE
#define KC_ADJST ADJUST
#define KC_DLNP NUMPAD //DF(_NUMPAD)
#define KC_DLBS BASE //DF(_BASE)
#define KC_ZSFT LSFT_T(KC_Z)
#define KC_MNSF LSFT_T(KC_MINS)
#define KC_ESCT LCTL_T(KC_ESC)
#define KC_TBAL LALT_T(KC_TAB)
#define KC_11SF LSFT_T(KC_F11)
#define KC_ALAP LALT_T(KC_APP)
#define KC_JEQL LSFT(KC_MINS)
#define KC_WLCK LALT(KC_L)
#define KC_SFEQ LSFT(KC_MINS)
#define KC_SFPL LSFT(KC_SCLN)
#define KC_SFAS LSFT(KC_QUOT)
#define KC_CODO TD(TD_CODO)
// #define KC_MNUB TD(TD_MNUB)
qk_tap_dance_action_t tap_dance_actions[] = {
[TD_CODO] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_DOT),
// [TD_MNUB] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, LSFT(KC_RO)),
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT(
//,----------------------------------. ,----------------------------------.
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
//|------+------+------+------+------| |------+------+------+------+------|
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
//|------+------+------+------+------| |------+------+------+------+------|
KC_ZSFT, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_CODO, KC_UP, KC_MNSF,
//|------+------+------+------+------|------+------+------+------+------+------+------|
KC_ESCT, KC_TBAL, KC_LGUI, KC_LOWER, KC_BSPC, KC_BSPC, KC_SPC, KC_SPC, KC_RAISE, KC_LEFT, KC_DOWN, KC_RGHT
//|------+------+------+------+-------------+------+------+------+------+------+------|
),
[_NUMPAD] = LAYOUT(
//,----------------------------------. ,----------------------------------.
KC_P7, KC_P8, KC_P9, KC_PAST, KC_NLCK, KC_P7, KC_P8, KC_P9, KC_PAST, KC_NLCK,
//|------+------+------+------+------| |------+------+------+------+------|
KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PSLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PSLS,
//|------+------+------+------+------| |------+------+------+------+------|
KC_P1, KC_P2, KC_P3, KC_PPLS, KC_QUOT, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_QUOT,
//|------+------+------+------+------|------+------+------+------+------+------+------|
KC_DLBS, KC_P0, KC_PDOT, KC_SFEQ, KC_SPC, KC_DEL, KC_SPC, KC_DLBS, KC_P0, KC_PDOT, KC_SFEQ, KC_BSPC
//|------+------+------+------+-------------+------+------+------+------+------+------|
),
[_LOWER] = LAYOUT(
//,----------------------------------. ,----------------------------------.
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MINS, KC_EQL, KC_JYEN, KC_LBRC, KC_RBRC,
//|------+------+------+------+------| |------+------+------+------+------|
KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_BSLS,
//|------+------+------+------+------| |------+------+------+------+------|
KC_11SF, KC_F12, KC_DLNP, KANJI, KC_ENT, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, KC_RO,
//|------+------+------+------+------|------+------+------+------+------+------+------|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
//|------+------+------+------+-------------+------+------+------+------+------+------|
),
[_RAISE] = LAYOUT(
//,----------------------------------. ,----------------------------------.
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
//|------+------+------+------+------| |------+------+------+------+------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_QUOT, KC_4, KC_5, KC_6, KC_MINS,
//|------+------+------+------+------| |------+------+------+------+------|
KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLSH, KC_1, KC_2, KC_3, KC_PPLS,
//|------+------+------+------+------|------+------+------+------+------+------+------|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WLCK, KC_TRNS, KC_0, KC_DOT, KC_JEQL
//|------+------+------+------+-------------+------+------+------+------+------+------|
),
[_ADJUST] = LAYOUT(
//,----------------------------------. ,----------------------------------.
RESET, RGBRST, AG_NORM, AG_SWAP, KC_CAPS, XXXXXXX, KC_WH_L, KC_WH_U, KC_HOME, KC_PGUP,
//|------+------+------+------+------| |------+------+------+------+------|
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, KC_SLCK, XXXXXXX, KC_WH_R, KC_WH_D, KC_END, KC_PGDN,
//|------+------+------+------+------| |------+------+------+------+------|
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NLCK, XXXXXXX, KC_BTN1, KC_BTN2, KC_MS_U, XXXXXXX,
//|------+------+------+------+------|------+------+------+------+------+------+------|
KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R
//|------+------+------+------+-------------+------+------+------+------+------+------|
)
};
#define L_BASE _BASE
#define L_NUMPAD (1<<_NUMPAD)
static inline void update_change_layer(bool pressed, uint8_t layer1, uint8_t layer2, uint8_t layer3) {
pressed ? layer_on(layer1) : layer_off(layer1);
IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2) ? layer_on(layer3) : layer_off(layer3);
}
int RGB_current_mode;
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
bool result = false;
switch (keycode) {
case BASE:
if (record->event.pressed) {
default_layer_set(L_BASE);
}
break;
case NUMPAD:
if (record->event.pressed) {
default_layer_set(L_NUMPAD);
}
break;
case LOWER:
update_change_layer(record->event.pressed, _LOWER, _RAISE, _ADJUST);
break;
case RAISE:
update_change_layer(record->event.pressed, _RAISE, _LOWER, _ADJUST);
break;
case KANJI:
if (record->event.pressed) {
if (keymap_config.swap_lalt_lgui == false) {
register_code(KC_LANG2);
} else {
tap_code16(A(KC_GRV));
}
} else {
unregister_code(KC_LANG2);
}
break;
#ifdef RGBLIGHT_ENABLE
//led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released
case RGB_MOD:
if (record->event.pressed) {
rgblight_mode(RGB_current_mode);
rgblight_step();
RGB_current_mode = rgblight_config.mode;
}
break;
case RGBRST:
if (record->event.pressed) {
eeconfig_update_rgblight_default();
rgblight_enable();
RGB_current_mode = rgblight_config.mode;
}
break;
#endif
default:
result = true;
break;
}
return result;
}
void matrix_init_user(void) {
#ifdef RGBLIGHT_ENABLE
RGB_current_mode = rgblight_config.mode;
#endif
}
@@ -0,0 +1,8 @@
MOUSEKEY_ENABLE = yes
TAP_DANCE_ENABLE = yes
RGBLIGHT_ENABLE = yes
LED_ANIMATIONS = yes
ifeq ($(strip $(LED_ANIMATIONS)), yes)
OPT_DEFS += -DLED_ANIMATIONS
endif
@@ -0,0 +1,61 @@
#include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
enum layer_number {
_QWERTY,
_LOWER,
_RAISE,
};
enum custom_keycodes {
BASE = SAFE_RANGE,
LOWER,
RAISE,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* q w e r t || y u i o p
* a s d f g || h j k l ;
* z x c v b || n m , . \
* esc tab ctl lw spc bspc|| GRV ent RS / alt -
*/
[_QWERTY] = LAYOUT( /* Qwerty */
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P ,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN ,
SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_BSLS) ,
KC_ESC, KC_TAB, KC_LCTL, MO(_LOWER), KC_SPC, KC_BSPC, LALT(KC_GRV), KC_ENT, MO(_RAISE), KC_DOT, KC_RALT, KC_MINS ),
/*
* 1 2 3 4 5 || 6 7 8 9 0
* # < > = - || _ + ENT
* [ ] ( ) & || ` . UP \
* TRANS TRANS TRANS TRANS TRANS TRANS|| TRANS TRANS RS LEFT DPWM RGHT
*/
[_RAISE] = LAYOUT( /* [> RAISE <] */
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0 ,
KC_HASH, KC_LABK, KC_RABK, KC_EQL, KC_MINS, KC_UNDS, KC_PLUS, KC_TRNS, KC_TRNS, KC_ENT ,
KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR, KC_GRV, KC_TRNS, KC_DOT, KC_UP, KC_BSLS ,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT ),
/*
* ! @ # $ % || ^ & * ( )
* F1 F2 F3 F4 F5 || F6 F7 F8 F9 F10
* F11 F12 reset || , UP \
* TRNS TRNS TRNS TRNS TRNS TRNS||TRNS TRNS TRNS LEFT DPWM RGHT
*/
[_LOWER] = LAYOUT( /* [> LOWER <] */
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN ,
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_NO, KC_NO, RESET, KC_TRNS, KC_TRNS, KC_QUOT, KC_UP, KC_BSLS ,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT, TO(_QWERTY), KC_LEFT, KC_DOWN, KC_RGHT )
};
+1
View File
@@ -0,0 +1 @@
#include "numatreus.h"
+20
View File
@@ -0,0 +1,20 @@
#pragma once
#include "quantum.h"
// This a shortcut to help you visually see your layout.
// The first section contains all of the arguements
// The second converts the arguments into a two-dimensional array
#define LAYOUT( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
) \
{ \
{ k00, k01, k02, k03, k04, KC_NO, k05, k06, k07, k08, k09 }, \
{ k10, k11, k12, k13, k14, KC_NO, k15, k16, k17, k18, k19 }, \
{ k20, k21, k22, k23, k24, k35, k25, k26, k27, k28, k29 }, \
{ k30, k31, k32, k33, k34, k36, k37, k38, k39, k3a, k3b } \
}
+13
View File
@@ -0,0 +1,13 @@
# NumAtreus
A small mechanical keyboard that is based around the shape of the human hand.
* Keyboard Maintainer: yohewi(yohewi@gmail.com)
* Hardware Supported: NumAtreus, PCB
* Hardware Availability: [Case Data](https://github.com/yohewi/NumAtreuscase)
Make example for this keyboard (after setting up your build environment):
make numatreus:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+36
View File
@@ -0,0 +1,36 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
# Teensy halfkay
# Pro Micro caterina
# Atmel DFU atmel-dfu
# LUFA DFU lufa-dfu
# QMK DFU qmk-dfu
# ATmega32A bootloadHID
# ATmega328P USBasp
BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = no # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
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 = no # Enable keyboard backlight functionality
#MIDI_ENABLE = no # MIDI controls
UNICODE_ENABLE = yes # Unicode
#BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
#TAP_DANCE_ENABLE = yes
RGBLIGHT_ENABLE = no
LED_ANIMATIONS = no
ifeq ($(strip $(LED_ANIMATIONS)), yes)
OPT_DEFS += -DLED_ANIMATIONS
endif
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+2 -1
View File
@@ -120,7 +120,8 @@ static void putchw(void* putp, putcf putf, int n, char z, char* bf) {
} }
void tfp_format(void* putp, putcf putf, char* fmt, va_list va) { void tfp_format(void* putp, putcf putf, char* fmt, va_list va) {
char bf[12]; // This used to handle max of 12, but binary support jumps this to at least 32
char bf[36];
char ch; char ch;
+55 -55
View File
@@ -175,61 +175,61 @@ typedef struct {
} usb_driver_config_t; } usb_driver_config_t;
/* Reusable initialization structure - see USBEndpointConfig comment at top of file */ /* Reusable initialization structure - see USBEndpointConfig comment at top of file */
#define QMK_USB_DRIVER_CONFIG(stream, notification, fixedsize) \ #define QMK_USB_DRIVER_CONFIG(stream, notification, fixedsize) \
{ \ { \
.queue_capacity_in = stream##_IN_CAPACITY, .queue_capacity_out = stream##_OUT_CAPACITY, \ .queue_capacity_in = stream##_IN_CAPACITY, .queue_capacity_out = stream##_OUT_CAPACITY, \
.in_ep_config = \ .in_ep_config = \
{ \ { \
stream##_IN_MODE, /* Interrupt EP */ \ stream##_IN_MODE, /* Interrupt EP */ \
NULL, /* SETUP packet notification callback */ \ NULL, /* SETUP packet notification callback */ \
qmkusbDataTransmitted, /* IN notification callback */ \ qmkusbDataTransmitted, /* IN notification callback */ \
NULL, /* OUT notification callback */ \ NULL, /* OUT notification callback */ \
stream##_EPSIZE, /* IN maximum packet size */ \ stream##_EPSIZE, /* IN maximum packet size */ \
0, /* OUT maximum packet size */ \ 0, /* OUT maximum packet size */ \
NULL, /* IN Endpoint state */ \ NULL, /* IN Endpoint state */ \
NULL, /* OUT endpoint state */ \ NULL, /* OUT endpoint state */ \
2, /* IN multiplier */ \ 2, /* IN multiplier */ \
NULL /* SETUP buffer (not a SETUP endpoint) */ \ NULL /* SETUP buffer (not a SETUP endpoint) */ \
}, \ }, \
.out_ep_config = \ .out_ep_config = \
{ \ { \
stream##_OUT_MODE, /* Interrupt EP */ \ stream##_OUT_MODE, /* Interrupt EP */ \
NULL, /* SETUP packet notification callback */ \ NULL, /* SETUP packet notification callback */ \
NULL, /* IN notification callback */ \ NULL, /* IN notification callback */ \
qmkusbDataReceived, /* OUT notification callback */ \ qmkusbDataReceived, /* OUT notification callback */ \
0, /* IN maximum packet size */ \ 0, /* IN maximum packet size */ \
stream##_EPSIZE, /* OUT maximum packet size */ \ stream##_EPSIZE, /* OUT maximum packet size */ \
NULL, /* IN Endpoint state */ \ NULL, /* IN Endpoint state */ \
NULL, /* OUT endpoint state */ \ NULL, /* OUT endpoint state */ \
2, /* IN multiplier */ \ 2, /* IN multiplier */ \
NULL, /* SETUP buffer (not a SETUP endpoint) */ \ NULL, /* SETUP buffer (not a SETUP endpoint) */ \
}, \ }, \
.int_ep_config = \ .int_ep_config = \
{ \ { \
USB_EP_MODE_TYPE_INTR, /* Interrupt EP */ \ USB_EP_MODE_TYPE_INTR, /* Interrupt EP */ \
NULL, /* SETUP packet notification callback */ \ NULL, /* SETUP packet notification callback */ \
qmkusbInterruptTransmitted, /* IN notification callback */ \ qmkusbInterruptTransmitted, /* IN notification callback */ \
NULL, /* OUT notification callback */ \ NULL, /* OUT notification callback */ \
CDC_NOTIFICATION_EPSIZE, /* IN maximum packet size */ \ CDC_NOTIFICATION_EPSIZE, /* IN maximum packet size */ \
0, /* OUT maximum packet size */ \ 0, /* OUT maximum packet size */ \
NULL, /* IN Endpoint state */ \ NULL, /* IN Endpoint state */ \
NULL, /* OUT endpoint state */ \ NULL, /* OUT endpoint state */ \
2, /* IN multiplier */ \ 2, /* IN multiplier */ \
NULL, /* SETUP buffer (not a SETUP endpoint) */ \ NULL, /* SETUP buffer (not a SETUP endpoint) */ \
}, \ }, \
.config = { \ .config = { \
.usbp = &USB_DRIVER, \ .usbp = &USB_DRIVER, \
.bulk_in = stream##_IN_EPNUM, \ .bulk_in = stream##_IN_EPNUM, \
.bulk_out = stream##_OUT_EPNUM, \ .bulk_out = stream##_OUT_EPNUM, \
.int_in = notification, \ .int_in = notification, \
.in_buffers = stream##_IN_CAPACITY, \ .in_buffers = stream##_IN_CAPACITY, \
.out_buffers = stream##_OUT_CAPACITY, \ .out_buffers = stream##_OUT_CAPACITY, \
.in_size = stream##_EPSIZE, \ .in_size = stream##_EPSIZE, \
.out_size = stream##_EPSIZE, \ .out_size = stream##_EPSIZE, \
.fixed_size = fixedsize, \ .fixed_size = fixedsize, \
.ib = (uint8_t[BQ_BUFFER_SIZE(stream##_IN_CAPACITY, stream##_EPSIZE)]){}, \ .ib = (__attribute__((aligned(4))) uint8_t[BQ_BUFFER_SIZE(stream##_IN_CAPACITY, stream##_EPSIZE)]){}, \
.ob = (uint8_t[BQ_BUFFER_SIZE(stream##_OUT_CAPACITY, stream##_EPSIZE)]){}, \ .ob = (__attribute__((aligned(4))) uint8_t[BQ_BUFFER_SIZE(stream##_OUT_CAPACITY, stream##_EPSIZE)]){}, \
} \ } \
} }
typedef struct { typedef struct {