Merge branch 'master' into promethium
commit
e52d793c79
|
@ -1,6 +1,6 @@
|
||||||
<!-- -*- mode: markdown; fill-column: 8192 -*- -->
|
<!-- -*- mode: markdown; fill-column: 8192 -*- -->
|
||||||
|
|
||||||
Mnemes Swedish Bonaza
|
Mnemes Swedish Bonanza
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
My Layout in process, most of the code is shamelessly stolen from [algernons][algernon] excellent layout
|
My Layout in process, most of the code is shamelessly stolen from [algernons][algernon] excellent layout
|
||||||
|
@ -33,6 +33,8 @@ It's for Windows (current work forces me to) and Swedish (matter of birth) so ym
|
||||||
- `LEAD s l` : `λ`.
|
- `LEAD s l` : `λ`.
|
||||||
- `LEAD s s` : `¯\_(ツ)_/¯`
|
- `LEAD s s` : `¯\_(ツ)_/¯`
|
||||||
- `LEAD s f` : `凸(ツ)凸`
|
- `LEAD s f` : `凸(ツ)凸`
|
||||||
|
- `LEAD u l` : Set unicode input mode to linux.
|
||||||
|
- `LEAD s w` : Set unicode input mode to windows.
|
||||||
- `LEAD a *` : Application switching based on position in start menu. Very specific to my computer.
|
- `LEAD a *` : Application switching based on position in start menu. Very specific to my computer.
|
||||||
|
|
||||||
|
|
||||||
|
@ -42,7 +44,7 @@ It's for Windows (current work forces me to) and Swedish (matter of birth) so ym
|
||||||
|
|
||||||
Basic navigation on the right hand and modifiers close
|
Basic navigation on the right hand and modifiers close
|
||||||
by for the left. The latter because I tend to use `ctrl+arrows` quite a lot.
|
by for the left. The latter because I tend to use `ctrl+arrows` quite a lot.
|
||||||
|
|
||||||
## Sym layer
|
## Sym layer
|
||||||
|
|
||||||
![Sym layer](img/sym.png)
|
![Sym layer](img/sym.png)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#define ONESHOT_TIMEOUT 3000
|
#define ONESHOT_TIMEOUT 3000
|
||||||
#define TAPPING_TERM 200
|
#define TAPPING_TERM 200
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
#define PREVENT_STUCK_MODIFIERS
|
||||||
|
#define FORCE_NKRO
|
||||||
#define LEADER_TIMEOUT 1000
|
#define LEADER_TIMEOUT 1000
|
||||||
|
|
||||||
#include "../../config.h"
|
#include "../../config.h"
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 448 KiB After Width: | Height: | Size: 446 KiB |
Binary file not shown.
Before Width: | Height: | Size: 420 KiB After Width: | Height: | Size: 415 KiB |
Binary file not shown.
Before Width: | Height: | Size: 423 KiB After Width: | Height: | Size: 423 KiB |
|
@ -7,43 +7,47 @@
|
||||||
/*
|
/*
|
||||||
*WINDOWS SWEDISH
|
*WINDOWS SWEDISH
|
||||||
*/
|
*/
|
||||||
#define KN_HALF KC_GRV // 1/2
|
/*
|
||||||
#define KN_PLUS KC_MINS // +
|
*WINDOWS SWEDISH
|
||||||
#define KN_ACUT KC_EQL // ´
|
*/
|
||||||
#define KN_AO KC_LBRC // Å
|
#define KN_HALF KC_GRV // 1/2
|
||||||
#define KN_UMLA KC_RBRC // ¨
|
#define KN_PLUS KC_MINS // +
|
||||||
#define KN_OE KC_SCLN // Ö
|
#define KN_ACUT KC_EQL // ´
|
||||||
#define KN_AE KC_QUOT // Ä
|
#define KN_AO KC_LBRC // Å
|
||||||
#define KN_QUOT KC_NUHS // '
|
#define KN_UMLA KC_RBRC // ¨
|
||||||
#define KN_LABK KC_NUBS // <
|
#define KN_OE KC_SCLN // Ö
|
||||||
#define KN_MINS KC_SLSH // -
|
#define KN_AE KC_QUOT // Ä
|
||||||
#define KN_EXLM LSFT(KC_1) // !
|
#define KN_QUOT KC_NUHS // '
|
||||||
#define KN_DQT LSFT(KC_2) // "
|
#define KN_LABK KC_NUBS // <
|
||||||
#define KN_AT RALT(KC_2) // @
|
#define KN_MINS KC_SLSH // -
|
||||||
#define KN_HASH LSFT(KC_3) // #
|
#define KN_EXLM LSFT(KC_1) // !
|
||||||
#define KN_DLR RALT(KC_4) // $
|
#define KN_DQT LSFT(KC_2) // "
|
||||||
#define KN_PERC LSFT(KC_5) // %
|
#define KN_AT RALT(KC_2) // @
|
||||||
#define KN_AMPR LSFT(KC_6) // &
|
#define KN_HASH LSFT(KC_3) // #
|
||||||
#define KN_SLSH LSFT(KC_7) // /
|
#define KN_EUR LSFT(KC_4) // €
|
||||||
#define KN_LPRN LSFT(KC_8) // (
|
#define KN_DLR RALT(KC_4) // $
|
||||||
#define KN_RPRN LSFT(KC_9) // )
|
#define KN_PERC LSFT(KC_5) // %
|
||||||
#define KN_EQL LSFT(KC_0) // =
|
#define KN_AMPR LSFT(KC_6) // &
|
||||||
#define KN_UNDS LSFT(KN_MINS) // _
|
#define KN_SLSH LSFT(KC_7) // /
|
||||||
#define KN_QUES LSFT(KN_PLUS) // ?
|
#define KN_LPRN LSFT(KC_8) // (
|
||||||
#define KN_GRAV LSFT(KN_ACUT) // `
|
#define KN_RPRN LSFT(KC_9) // )
|
||||||
#define KN_LCBR RALT(KC_7) // {
|
#define KN_EQL LSFT(KC_0) // =
|
||||||
#define KN_RCBR RALT(KC_0) // }
|
#define KN_UNDS LSFT(KN_MINS) // _
|
||||||
#define KN_LBRC RALT(KC_8) // [
|
#define KN_QUES LSFT(KN_PLUS) // ?
|
||||||
#define KN_RBRC RALT(KC_9) // ]
|
#define KN_GRAV LSFT(KN_ACUT) // `
|
||||||
#define KN_RABK LSFT(KN_LABK) // <
|
#define KN_LCBR RALT(KC_7) // {
|
||||||
#define KN_COLN LSFT(KC_DOT) // :
|
#define KN_RCBR RALT(KC_0) // }
|
||||||
#define KN_SCLN LSFT(KC_COMM) // :
|
#define KN_LBRC RALT(KC_8) // [
|
||||||
#define KN_PIPE RALT(KN_LABK) // |
|
#define KN_RBRC RALT(KC_9) // ]
|
||||||
#define KN_QUES LSFT(KN_PLUS) // ?
|
#define KN_RABK LSFT(KN_LABK) // <
|
||||||
#define KN_CIRC LSFT(KN_UMLA) // ^
|
#define KN_COLN LSFT(KC_DOT) // :
|
||||||
#define KN_ASTR LSFT(KN_QUOT) // *
|
#define KN_SCLN LSFT(KC_COMM) // :
|
||||||
#define KN_TILD RALT(KN_UMLA) // ~
|
#define KN_PIPE RALT(KN_LABK) // |
|
||||||
#define KN_BSLS RALT(KN_PLUS) //
|
#define KN_QUES LSFT(KN_PLUS) // ?
|
||||||
|
#define KN_CIRC LSFT(KN_UMLA) // ^
|
||||||
|
#define KN_ASTR LSFT(KN_QUOT) // *
|
||||||
|
#define KN_TILD RALT(KN_UMLA) // ~
|
||||||
|
#define KN_BSLS RALT(KN_PLUS) //
|
||||||
|
|
||||||
#define OSM_LCTL OSM(MOD_LCTL)
|
#define OSM_LCTL OSM(MOD_LCTL)
|
||||||
#define OSM_LALT OSM(MOD_LALT)
|
#define OSM_LALT OSM(MOD_LALT)
|
||||||
|
@ -85,32 +89,26 @@ enum {
|
||||||
TD_EQ
|
TD_EQ
|
||||||
};
|
};
|
||||||
|
|
||||||
//Custom keycodes
|
|
||||||
enum {
|
|
||||||
PLACEHOLDER = SAFE_RANGE
|
|
||||||
};
|
|
||||||
|
|
||||||
//State and timers
|
//State and timers
|
||||||
uint16_t kf_timers[12];
|
uint16_t kf_timers[12];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
[BASE] = {
|
[BASE] = {
|
||||||
|
|
||||||
{ M(KF_11) ,M(KF_1) ,M(KF_2) ,M(KF_3) ,M(KF_4) ,M(KF_5) ,KC_NO ,M(KF_6) ,M(KF_7) ,M(KF_8) ,M(KF_9) ,M(KF_10) ,M(KF_12) },
|
{ M(KF_11) ,M(KF_1) ,M(KF_2) ,M(KF_3) ,M(KF_4) ,M(KF_5) ,KC_NO ,M(KF_6) ,M(KF_7) ,M(KF_8) ,M(KF_9) ,M(KF_10) ,M(KF_12) },
|
||||||
{ KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_NO ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KN_AO },
|
{ KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_NO ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KN_AO },
|
||||||
{ OSM_LCTL ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_NO ,KC_H ,KC_J ,KC_K ,KC_L ,KN_OE ,KN_AE },
|
{ OSM_LCTL ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_NO ,KC_H ,KC_J ,KC_K ,KC_L ,KN_OE ,KN_AE },
|
||||||
{ OSM_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_DELT ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KN_MINS ,OSM_LSFT },
|
{ OSM_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_DELT ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KN_MINS ,OSM_LSFT },
|
||||||
{ MO(NAV) ,OSM_LCTL ,OSM_LALT ,KC_LGUI ,KC_SPC ,LT(SYM,KC_BSPC) ,KC_HYP ,LT(SYM,KC_ENT) ,KC_SPC ,KC_LEAD ,KC_LALT ,KC_LCTRL ,MO(NAV) }
|
{ MO(NAV) ,OSM_LCTL ,OSM_LALT ,KC_LGUI ,MO(SYM) ,KC_BSPC ,KC_ENT ,KC_SPC ,MO(SYM) ,KC_LEAD ,KC_LALT ,KC_LCTRL ,KC_HYP }
|
||||||
|
|
||||||
},
|
},
|
||||||
[NAV] = {
|
[NAV] = {
|
||||||
|
|
||||||
{ KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS },
|
{ KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS },
|
||||||
{ KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_NO ,KC_PGUP ,KC_HOME ,KC_UP ,KC_END ,KC_TRNS ,KC_TRNS },
|
{ KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_NO ,KC_HOME ,KC_PGDN ,KC_PGUP ,KC_END ,KC_TRNS ,KC_TRNS },
|
||||||
{ KC_TRNS ,KC_LSFT ,KC_LCTL ,KC_LALT ,KC_L ,KC_TRNS ,KC_NO ,KC_PGDN ,KC_LEFT ,KC_DOWN ,KC_RIGHT ,KC_TRNS ,KC_TRNS },
|
{ KC_TRNS ,KC_LSFT ,KC_LCTL ,KC_LALT ,KC_L ,KC_TRNS ,KC_NO ,KC_LEFT ,KC_DOWN ,KC_UP ,KC_RIGHT ,KC_TRNS ,KC_TRNS },
|
||||||
{ KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS },
|
{ KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS },
|
||||||
{ KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_VOLD ,KC_VOLU }
|
{ KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_VOLD ,KC_VOLU }
|
||||||
|
|
||||||
|
@ -119,8 +117,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
{ KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,TD(TD_EQ) ,KC_NO ,TD(TD_FUN) ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS },
|
{ KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,TD(TD_EQ) ,KC_NO ,TD(TD_FUN) ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS },
|
||||||
{ KC_TRNS ,KN_LABK ,KN_RABK ,KN_LCBR ,KN_RCBR ,KN_PLUS ,KC_NO ,KN_AT ,KN_DQT ,KN_QUOT ,KN_GRAV ,KN_SLSH ,KC_TRNS },
|
{ KC_TRNS ,KN_LABK ,KN_RABK ,KN_LCBR ,KN_RCBR ,KN_PLUS ,KC_NO ,KN_AT ,KN_DQT ,KN_QUOT ,KN_GRAV ,KN_SLSH ,KC_TRNS },
|
||||||
{ KC_TRNS ,KN_EXLM ,KN_EQL ,KN_LPRN ,KN_RPRN ,KN_MINS ,KC_NO ,KN_UNDS ,KN_SCLN ,KN_COLN ,KN_AMPR ,KN_PIPE ,KC_TRNS },
|
{ KC_TRNS ,KN_EXLM ,KN_EQL ,KN_LPRN ,KN_RPRN ,KN_MINS ,KC_NO ,KN_UNDS ,KN_CIRC ,KN_DLR ,KN_AMPR ,KN_PIPE ,KC_TRNS },
|
||||||
{ KC_TRNS ,KN_DLR ,KN_PERC ,KN_LBRC ,KN_RBRC ,KN_ASTR ,KC_TRNS ,KN_HASH ,KC_COMM ,KC_DOT ,KN_QUES ,KN_BSLS ,KC_TRNS },
|
{ KC_TRNS ,KN_EUR ,KN_PERC ,KN_LBRC ,KN_RBRC ,KN_ASTR ,KC_TRNS ,KN_HASH ,KN_SCLN ,KN_COLN ,KN_QUES ,KN_BSLS ,KC_TRNS },
|
||||||
{ KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS }
|
{ KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -302,6 +300,15 @@ void matrix_scan_user(void) {
|
||||||
register_code (KC_LGUI); TAP_ONCE (KC_7); unregister_code (KC_LGUI);
|
register_code (KC_LGUI); TAP_ONCE (KC_7); unregister_code (KC_LGUI);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SEQ_TWO_KEYS (KC_U, KC_L) {
|
||||||
|
set_unicode_input_mode(UC_LNX);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SEQ_TWO_KEYS (KC_U, KC_W) {
|
||||||
|
set_unicode_input_mode(UC_WINC);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
SEQ_TWO_KEYS (KC_S, KC_S) {
|
SEQ_TWO_KEYS (KC_S, KC_S) {
|
||||||
// ¯\_(ツ)_/¯
|
// ¯\_(ツ)_/¯
|
||||||
|
|
|
@ -8,7 +8,7 @@ Beginner's keymap emulates standard QWERTY keyboard for beginners. Once you get
|
||||||
* Easy on beginners. It has everything you need for your day to day usage.
|
* Easy on beginners. It has everything you need for your day to day usage.
|
||||||
|
|
||||||
#### Cons
|
#### Cons
|
||||||
* Keys are not ergonomically placed to take full advantage of Ergodox-EZ. Take a look at this [Default Keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/ergodox_ez/keymaps/default/readme.md)
|
* Keys are not ergonomically placed to take full advantage of Ergodox-EZ. Take a look at this [Default Keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/ergodox/keymaps/default/readme.md)
|
||||||
* While multiple layers are possible, beginner's keymap only uses one additional layer for mouse, function and volume keys.
|
* While multiple layers are possible, beginner's keymap only uses one additional layer for mouse, function and volume keys.
|
||||||
|
|
||||||
#### Notes
|
#### Notes
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
ifndef MAKEFILE_INCLUDED
|
||||||
|
include ../../Makefile
|
||||||
|
endif
|
|
@ -0,0 +1,43 @@
|
||||||
|
#ifndef CONFIG_H
|
||||||
|
#define CONFIG_H
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xFEED
|
||||||
|
#define PRODUCT_ID 0x6060
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER GON
|
||||||
|
#define PRODUCT NerD
|
||||||
|
#define DESCRIPTION QMK port for the GON Nerd PCB
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 10
|
||||||
|
#define MATRIX_COLS 9
|
||||||
|
|
||||||
|
/* backlight */
|
||||||
|
#define BACKLIGHT_PIN B7
|
||||||
|
#define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
|
/* matrix pins */
|
||||||
|
#define MATRIX_ROW_PINS { B4, E2, F4, F7, F1, F6, C6, F5, D7, C7 }
|
||||||
|
#define MATRIX_COL_PINS { E6, B0, B1, B2, B3, F0, D0, D5, D1 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW or ROW2COL */
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCING_DELAY 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
|
||||||
|
|
||||||
|
/* key combination for magic key command */
|
||||||
|
#define IS_COMMAND() ( \
|
||||||
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||||
|
)
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1 @@
|
||||||
|
#include "gonnerd.h"
|
|
@ -0,0 +1,42 @@
|
||||||
|
#ifndef GONNERD_H
|
||||||
|
#define GONNERD_H
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define KEYMAP_TKL( \
|
||||||
|
K08, K09, K18, K19, K28, K29, K38, K39, K48, K49, K58, K59, K68, K69, K88, K89, \
|
||||||
|
K00, K01, K10, K11, K20, K21, K30, K31, K40, K41, K50, K51, K60, K61, K80, K81, K84, \
|
||||||
|
K02, K03, K12, K13, K22, K23, K32, K33, K42, K43, K52, K53, K62, K63, K82, K83, K85, \
|
||||||
|
K04, K14, K15, K24, K25, K34, K35, K44, K45, K54, K55, K64, K71, K65, \
|
||||||
|
K07, K79, K16, K17, K26, K27, K36, K37, K46, K47, K56, K57, K66, K67, K86, \
|
||||||
|
K06, K05, K78, K70, K72, K73, K74, K75, K76, K77, K87 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ K00, K10, K20, K30, K40, K50, K60, K70, K80 }, \
|
||||||
|
{ K01, K11, K21, K31, K41, K51, K61, K71, K81 }, \
|
||||||
|
{ K02, K12, K22, K32, K42, K52, K62, K72, K82 }, \
|
||||||
|
{ K03, K13, K23, K33, K43, K53, K63, K73, K83 }, \
|
||||||
|
{ K04, K14, K24, K34, K44, K54, K64, K74, K84 }, \
|
||||||
|
{ K05, K15, K25, K35, K45, K55, K65, K75, K85 }, \
|
||||||
|
{ K06, K16, K26, K36, K46, K56, K66, K76, K86 }, \
|
||||||
|
{ K07, K17, K27, K37, K47, K57, K67, K77, K87 }, \
|
||||||
|
{ K08, K18, K28, K38, K48, K58, K68, K78, K88 }, \
|
||||||
|
{ K09, K19, K29, K39, K49, K59, K69, K79, K89 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define KEYMAP_60( \
|
||||||
|
K08, K01, K10, K11, K20, K21, K30, K31, K40, K41, K50, K51, K60, K61, \
|
||||||
|
K02, K03, K12, K13, K22, K23, K32, K33, K42, K43, K52, K53, K62, K63, \
|
||||||
|
K04, K14, K15, K24, K25, K34, K35, K44, K45, K54, K55, K64, K71, K65, \
|
||||||
|
K07, K79, K16, K17, K26, K27, K36, K37, K46, K47, K56, K57, K66, K67, \
|
||||||
|
K06, K05, K78, K70, K72, K73, K74, K75 \
|
||||||
|
) KEYMAP_TKL( \
|
||||||
|
K08, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
|
||||||
|
KC_NO, K01, K10, K11, K20, K21, K30, K31, K40, K41, K50, K51, K60, K61, KC_NO, KC_NO, KC_NO, \
|
||||||
|
K02, K03, K12, K13, K22, K23, K32, K33, K42, K43, K52, K53, K62, K63, KC_NO, KC_NO, KC_NO, \
|
||||||
|
K04, K14, K15, K24, K25, K34, K35, K44, K45, K54, K55, K64, K71, K65, \
|
||||||
|
K07, K79, K16, K17, K26, K27, K36, K37, K46, K47, K56, K57, K66, K67, KC_NO, \
|
||||||
|
K06, K05, K78, K70, K72, K73, K74, K75, KC_NO, KC_NO, KC_NO \
|
||||||
|
)
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,21 @@
|
||||||
|
# Build Options
|
||||||
|
# change to "no" to disable the options, or define them in the Makefile in
|
||||||
|
# the appropriate keymap folder that will get included automatically
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||||
|
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
MIDI_ENABLE = no # MIDI controls
|
||||||
|
AUDIO_ENABLE = no # Audio output on port C6
|
||||||
|
UNICODE_ENABLE = no # Unicode
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
|
||||||
|
ifndef QUANTUM_DIR
|
||||||
|
include ../../../../Makefile
|
||||||
|
endif
|
|
@ -0,0 +1,16 @@
|
||||||
|
#include "gonnerd.h"
|
||||||
|
|
||||||
|
// Keymap layers
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = KEYMAP_60( /* Base */
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC,\
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS,\
|
||||||
|
KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_NO, KC_ENT, \
|
||||||
|
KC_LSFT,KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,KC_NO, \
|
||||||
|
KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI,MO(1), KC_RCTL),
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM fn_actions[] = {
|
||||||
|
|
||||||
|
};
|
|
@ -0,0 +1,21 @@
|
||||||
|
# Build Options
|
||||||
|
# change to "no" to disable the options, or define them in the Makefile in
|
||||||
|
# the appropriate keymap folder that will get included automatically
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||||
|
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
MIDI_ENABLE = no # MIDI controls
|
||||||
|
AUDIO_ENABLE = no # Audio output on port C6
|
||||||
|
UNICODE_ENABLE = no # Unicode
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
|
||||||
|
ifndef QUANTUM_DIR
|
||||||
|
include ../../../../Makefile
|
||||||
|
endif
|
|
@ -0,0 +1,78 @@
|
||||||
|
#include "gonnerd.h"
|
||||||
|
|
||||||
|
// Keymap layers
|
||||||
|
#define BASE_LAYER 0
|
||||||
|
#define FUNCTION_LAYER 1
|
||||||
|
#define SYSTEM_LAYER 2
|
||||||
|
|
||||||
|
// Key aliases
|
||||||
|
#define __x__ KC_NO
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/* Layer 0: Default Layer
|
||||||
|
* ,-----------------------------------------------------------.
|
||||||
|
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| = | BSp |
|
||||||
|
* |-----------------------------------------------------------|
|
||||||
|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
|
||||||
|
* |-----------------------------------------------------------|
|
||||||
|
* |Funct | A| S| D| F| G| H| J| K| L| ;| '|Enter |
|
||||||
|
* |-----------------------------------------------------------|
|
||||||
|
* |Shift | Z| X| C| V| B| N| M| ,| .| /| Shift |
|
||||||
|
* |-----------------------------------------------------------'
|
||||||
|
* | Ctl|Alt|Gui | Space |Gui |Alt| F2| Ctl |
|
||||||
|
* `-----------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[BASE_LAYER] = KEYMAP_60(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||||
|
MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, __x__, KC_ENT, \
|
||||||
|
KC_LSFT, __x__, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, __x__, \
|
||||||
|
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(3), KC_RCTL \
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Layer 1: Function Layer
|
||||||
|
* ,-----------------------------------------------------------.
|
||||||
|
* | | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11| F12| Del |
|
||||||
|
* |-----------------------------------------------------------|
|
||||||
|
* | |Prv|Ply|Nxt| | |Pg^|Hme|Up |End| |Br-|Br+| |
|
||||||
|
* |-----------------------------------------------------------|
|
||||||
|
* |Hold |Mte|Vl-|Vl+| | |Pgv|Lft|Dwn|Rgt| | | |
|
||||||
|
* |-----------------------------------------------------------|
|
||||||
|
* | | | | | | | | | | | | |
|
||||||
|
* |-----------------------------------------------------------'
|
||||||
|
* | | | | | | | | |
|
||||||
|
* `-----------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[FUNCTION_LAYER] = KEYMAP_60(
|
||||||
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
|
||||||
|
__x__, KC_MPRV, KC_MPLY, KC_MNXT, __x__, __x__, KC_PGUP, KC_HOME, KC_UP, KC_END, __x__, KC_SLCK, KC_PAUS, __x__, \
|
||||||
|
KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, __x__, __x__, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, __x__, __x__, __x__, __x__, \
|
||||||
|
KC_LSFT, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
|
||||||
|
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, __x__, __x__, __x__, __x__ \
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Layer 2: System Layer
|
||||||
|
* ,-----------------------------------------------------------.
|
||||||
|
* |Reset| | | | | | | | | | | | | |
|
||||||
|
* |-----------------------------------------------------------|
|
||||||
|
* | | | | | | | | | | | | | | |
|
||||||
|
* |-----------------------------------------------------------|
|
||||||
|
* | | | | | | | | | | | | | |
|
||||||
|
* |-----------------------------------------------------------|
|
||||||
|
* | | | | | | | | | | | | |
|
||||||
|
* |-----------------------------------------------------------'
|
||||||
|
* | | | | | | | | |
|
||||||
|
* `-----------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[SYSTEM_LAYER] = KEYMAP_60(
|
||||||
|
RESET, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
|
||||||
|
__x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
|
||||||
|
__x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
|
||||||
|
__x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
|
||||||
|
__x__, __x__, __x__, __x__, __x__, __x__, KC_TRNS, __x__ \
|
||||||
|
),
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM fn_actions[] = {
|
||||||
|
|
||||||
|
};
|
|
@ -0,0 +1,5 @@
|
||||||
|
# Mauin's keymap for the GON NerD
|
||||||
|
|
||||||
|
This layout is based on a Pok3r style layout with a standard base layer.
|
||||||
|
|
||||||
|
Function layers provide access to navigation and media keys.
|
|
@ -0,0 +1,34 @@
|
||||||
|
GON NerD keyboard firmware
|
||||||
|
======================
|
||||||
|
|
||||||
|
## Changing Bootloader
|
||||||
|
|
||||||
|
It's not possible to simply flash this firmware on the GON NerD keyboard as the original bootloader does not support DFU connections.
|
||||||
|
|
||||||
|
It is possible to change the bootloader of the GON NerD with an ISP programmer. A guide on how to change the bootloader on your GON NerD can be found here:
|
||||||
|
[Converting NerD60 to TMK](https://deskthority.net/wiki/Converting_NerD60_to_TMK). After changing the bootloader you can flash your QMK keymap onto the keyboard.
|
||||||
|
|
||||||
|
_After changing the bootloader on your GON NerD PCB you will not be able to go back to the original firmware and the official configuration software will
|
||||||
|
not work anymore. You will lose your warranty and official support from GON!_
|
||||||
|
|
||||||
|
## Building
|
||||||
|
|
||||||
|
Download or clone the whole firmware and navigate to the keyboards/gonnerd folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
|
||||||
|
|
||||||
|
Depending on which keymap you would like to use, you will have to compile slightly differently.
|
||||||
|
|
||||||
|
### Default
|
||||||
|
|
||||||
|
To build with the default keymap, simply run `make default`.
|
||||||
|
|
||||||
|
### Other Keymaps
|
||||||
|
|
||||||
|
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files.
|
||||||
|
|
||||||
|
To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ make [default|jack|<name>]
|
||||||
|
```
|
||||||
|
|
||||||
|
Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
|
|
@ -0,0 +1,66 @@
|
||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Processor frequency.
|
||||||
|
# This will define a symbol, F_CPU, in all source code files equal to the
|
||||||
|
# processor frequency in Hz. You can then use this symbol in your source code to
|
||||||
|
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
||||||
|
# automatically to create a 32-bit value in your source code.
|
||||||
|
#
|
||||||
|
# This will be an integer division of F_USB below, as it is sourced by
|
||||||
|
# F_USB after it has run through any CPU prescalers. Note that this value
|
||||||
|
# does not *change* the processor frequency - it should merely be updated to
|
||||||
|
# reflect the processor speed set externally so that the code can use accurate
|
||||||
|
# software delays.
|
||||||
|
F_CPU = 8000000
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# LUFA specific
|
||||||
|
#
|
||||||
|
# Target architecture (see library "Board Types" documentation).
|
||||||
|
ARCH = AVR8
|
||||||
|
|
||||||
|
# Input clock frequency.
|
||||||
|
# This will define a symbol, F_USB, in all source code files equal to the
|
||||||
|
# input clock frequency (before any prescaling is performed) in Hz. This value may
|
||||||
|
# differ from F_CPU if prescaling is used on the latter, and is required as the
|
||||||
|
# raw input clock is fed directly to the PLL sections of the AVR for high speed
|
||||||
|
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
|
||||||
|
# at the end, this will be done automatically to create a 32-bit value in your
|
||||||
|
# source code.
|
||||||
|
#
|
||||||
|
# If no clock division is performed on the input clock inside the AVR (via the
|
||||||
|
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
||||||
|
F_USB = $(F_CPU)
|
||||||
|
|
||||||
|
# Interrupt driven control endpoint task(+60)
|
||||||
|
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
||||||
|
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||||
|
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE ?= no # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE ?= no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality on B7 by default
|
||||||
|
MIDI_ENABLE ?= no # MIDI controls
|
||||||
|
UNICODE_ENABLE ?= no # Unicode
|
||||||
|
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
AUDIO_ENABLE ?= no # Audio output on port C6
|
|
@ -6,8 +6,11 @@
|
||||||
#define _SYMB 1// Symbol layer
|
#define _SYMB 1// Symbol layer
|
||||||
#define _MOUSE 2//
|
#define _MOUSE 2//
|
||||||
#define _TRANS 3//
|
#define _TRANS 3//
|
||||||
|
#define _SYMB2 4// old symbol level, more ergodox like
|
||||||
|
|
||||||
|
// Fillers to make layering more clear
|
||||||
|
#define _______ KC_TRNS
|
||||||
|
#define XXXXXXX KC_NO
|
||||||
|
|
||||||
/* Macros */
|
/* Macros */
|
||||||
enum {
|
enum {
|
||||||
|
@ -20,44 +23,44 @@ enum {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// Why so many gui keys, why not just map all the OS X stuff to buttons? Good question.
|
// Train out of using uncomfortable esc and GUI keys.
|
||||||
/****************************************************************************************************
|
/****************************************************************************************************
|
||||||
*
|
*
|
||||||
* Keymap: Default Layer in Qwerty
|
* Keymap: Default Layer in Qwerty
|
||||||
*
|
*
|
||||||
* ,-------------------------------------------------------------------------------------------------------------------.
|
* ,-------------------------------------------------------------------------------------------------------------------.
|
||||||
* | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F8 | F9 | F10 | F12 | FN0 | FN1 | FN2 | | bOOT |
|
* | no | F1 | F2 | F3 | F4 | F5 | F6 | F8 | F9 | F10 | F12 | FN0 | FN1 | FN2 | | bOOT |
|
||||||
* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
|
||||||
* | =+ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | -_ |
|
* | `~ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | -_ |
|
||||||
* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
|
||||||
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| |
|
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| |
|
||||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||||
* |MouseFN0| A | S | D | F | G | | H | J | K | L | ;: | '" |
|
* |MouseFN0| A | S | D | F | G | | H | J | K | L | ;: | '" |
|
||||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||||
* | Shift | Z | X | C | V | B | | N | M | ,. | .> | /? | Shift |
|
* | Shift | Z | X | C | V | B | | N | M | ,< | .> | /? | Shift |
|
||||||
* `--------+------+------+------+------+------- `------+------+------+------+------+--------'
|
* `--------+------+------+------+------+------- `------+------+------+------+------+--------'
|
||||||
* | ~` | ESC |GUI/L |L1/RT | | L1/UP|GUI/DN| [{ | ]} |
|
* | ~` | ESC |GUI/L |L1/RT | | L1/UP|GUI/DN| [{ | ]} |
|
||||||
* `---------------------------' `---------------------------'
|
* `---------------------------' `---------------------------'
|
||||||
* ,-------------. ,-------------.
|
* ,-------------. ,-------------.
|
||||||
* | CTRL | GUI | | ALT | GUI |
|
* | CTRL | ALT | | ALT | GUI |
|
||||||
* ,------|------|------| |------+------+------.
|
* ,------|------|------| |------+------+------.
|
||||||
* | | | Home | | PgUp | | |
|
* | | | Del | | PgUp | | |
|
||||||
* | BkSp | Del |------| |------|Return| Space|
|
* | BkSp | BkSp |------| |------|Return| Space|
|
||||||
* | | | End | | PgDn | | |
|
* | | | FN0 | | PgDn | | |
|
||||||
* `--------------------' `--------------------'
|
* `--------------------' `--------------------'
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_QWERTY] = KEYMAP(
|
[_QWERTY] = KEYMAP(
|
||||||
KC_ESC, KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8,
|
XXXXXXX, KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8,
|
||||||
KC_EQL, KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,
|
KC_GRAVE, KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,
|
||||||
KC_TAB, KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,
|
KC_TAB, KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,
|
||||||
KC_FN0 ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,
|
KC_FN0 ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,
|
||||||
KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,
|
KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,
|
||||||
KC_GRAVE, KC_ESC, KC_FN4, KC_FN5,
|
KC_GRAVE, KC_ESC, KC_FN4, KC_FN5,
|
||||||
KC_LCTL,KC_LGUI,
|
KC_LCTL,KC_LALT,
|
||||||
KC_HOME,
|
KC_DEL,
|
||||||
KC_BSPC,KC_DEL ,KC_FN0 ,
|
KC_BSPC, KC_DEL ,KC_FN0 ,
|
||||||
KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,KC_FN0 ,KC_FN1 ,KC_FN2, KC_NO, RESET,
|
KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,KC_FN0 ,KC_FN1 ,KC_FN2, KC_NO, RESET,
|
||||||
KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS,
|
KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS,
|
||||||
KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS,
|
KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS,
|
||||||
|
@ -68,52 +71,102 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
KC_PGUP,
|
KC_PGUP,
|
||||||
KC_PGDN,KC_ENTER ,KC_SPC
|
KC_PGDN,KC_ENTER ,KC_SPC
|
||||||
),
|
),
|
||||||
|
|
||||||
/* _SYMBol level
|
|
||||||
|
/* _SYMB level, more planck like. Much work to make sequences into multi-finger rolls. eg ([1,0]), !=0
|
||||||
|
* Also sorted by frequency / strength of finger.
|
||||||
*
|
*
|
||||||
* ,-------------------------------------------------------------------------------------------------------------------.
|
* ,-------------------------------------------------------------------------------------------------------------------.
|
||||||
* | | | | | | | | | | | | | | | | bOOT |
|
* | | | | | | | | | | | | | | | | |
|
||||||
* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
|
||||||
* | | | * | # | | | | | | | | | |
|
* | | | | | | | | | | | | | |
|
||||||
* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
|
||||||
* | | / | [ | ] | | | | | | | | | |
|
* | | ^ | { | } | @ | % | | & | [ | ( | ) | _ | \ |
|
||||||
|
* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
|
||||||
|
* | | ! | # | 0 | = | ~ | | * | + | 1 | - | ] | ` |
|
||||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||||
* | | | { | } | | | | | | | | | |
|
* | | 6 | 7 | 8 | 9 | pipe | | $ | 2 | 3 | 4 | 5 | |
|
||||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
|
||||||
* | | = | ( | ) | | | | | | | | | |
|
|
||||||
* `--------+------+------+------+------+------- `------+------+------+------+------+--------'
|
* `--------+------+------+------+------+------- `------+------+------+------+------+--------'
|
||||||
* | | |GUI/L |L1/RT | | L1/UP|GUI/DN| { | } |
|
* | | : |GUI/L |L1/RT | | L1/UP|GUI/DN| \ | |
|
||||||
* `---------------------------' `---------------------------'
|
* `---------------------------' `---------------------------'
|
||||||
* ,-------------. ,-------------.
|
* ,-------------. ,-------------.
|
||||||
* | CTRL | GUI | | ALT | GUI |
|
* | CTRL | | | ALT | GUI |
|
||||||
* ,------|------|------| |------+------+------.
|
* ,------|------|------| |------+------+------.
|
||||||
* | | | Home | | PgUp | | |
|
* | | | | | | | |
|
||||||
* | BkSp | Del |------| |------|Mouse1|Mouse2|
|
* | Cut | Paste|------| |------| | |
|
||||||
* | | | End | | PgDn |LClick|Rclick|
|
* | | |Reset | | | | |
|
||||||
* `--------------------' `--------------------'
|
* `--------------------' `--------------------'
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[_SYMB] = KEYMAP(
|
[_SYMB] = KEYMAP(
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_ASTR, KC_HASH, KC_TRNS, KC_TRNS,
|
_______, _______, _______, _______, _______, _______,
|
||||||
KC_TRNS, KC_SLSH, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS,
|
_______, KC_CIRC, KC_LCBR, KC_RCBR, KC_AT, KC_PERC,
|
||||||
KC_TRNS, KC_TRNS, RSFT(KC_LBRC), RSFT(KC_RBRC), KC_TRNS, KC_TRNS,
|
_______, KC_EXLM, KC_HASH, KC_0, KC_EQL, KC_TILD,
|
||||||
KC_TRNS, KC_EQL, RSFT(KC_9), RSFT(KC_0), KC_TRNS, KC_TRNS,
|
_______, KC_6, KC_7, KC_8, KC_9, KC_PIPE,
|
||||||
KC_TRNS, KC_TRNS, KC_FN4, KC_FN5,
|
_______, KC_COLON, KC_FN4, KC_FN5,
|
||||||
KC_TRNS, KC_TRNS,
|
_______, _______,
|
||||||
KC_TRNS,
|
_______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
_______, _______, RESET,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_FN0, KC_2,
|
_______, _______, _______, _______, _______, _______, _______, KC_FN0, KC_2,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
_______, _______, _______, _______, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_AMPR, KC_LBRC, KC_LPRN, KC_RPRN, KC_UNDS, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_ASTR, KC_PLUS, KC_1, KC_MINS, KC_RBRC, KC_GRV,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_DLR, KC_2, KC_3, KC_4, KC_5, XXXXXXX,
|
||||||
KC_FN6, KC_FN7, KC_TRNS, KC_TRNS,
|
KC_FN6, KC_FN7, KC_BSLS, XXXXXXX,
|
||||||
KC_TRNS, KC_TRNS,
|
_______, _______,
|
||||||
KC_TRNS,
|
_______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS
|
_______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
|
/* _SYMB2ol level, more ergodox like
|
||||||
|
*
|
||||||
|
* ,-------------------------------------------------------------------------------------------------------------------.
|
||||||
|
* | | | | | | | | | | | | | | | | |
|
||||||
|
* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
|
||||||
|
* | | | * | # | | | | | | | | | |
|
||||||
|
* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
|
||||||
|
* | | / | < | > | | | | | | + | * | | |
|
||||||
|
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||||
|
* | | | { | } | | | | | | = | - | | |
|
||||||
|
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||||
|
* | | = | ( | ) | | | | | | | | | | |
|
||||||
|
* `--------+------+------+------+------+------- `------+------+------+------+------+--------'
|
||||||
|
* | | |GUI/L |L1/RT | | L1/UP|GUI/DN| { | } |
|
||||||
|
* `---------------------------' `---------------------------'
|
||||||
|
* ,-------------. ,-------------.
|
||||||
|
* | CTRL | | | ALT | GUI |
|
||||||
|
* ,------|------|------| |------+------+------.
|
||||||
|
* | | | | | | | |
|
||||||
|
* | BkSp | Del |------| |------|Mouse1|Mouse2|
|
||||||
|
* | | |Reset | | |LClick|Rclick|
|
||||||
|
* `--------------------' `--------------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[_SYMB2] = KEYMAP(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, KC_ASTR, KC_HASH, _______, _______,
|
||||||
|
_______, KC_SLSH, RSFT(KC_COMM), RSFT(KC_DOT), _______, _______,
|
||||||
|
_______, _______, RSFT(KC_LBRC), RSFT(KC_RBRC), _______, _______,
|
||||||
|
_______, KC_EQL, RSFT(KC_9), RSFT(KC_0), _______, _______,
|
||||||
|
_______, _______, KC_FN4, KC_FN5,
|
||||||
|
_______, _______,
|
||||||
|
_______,
|
||||||
|
_______, _______, RESET,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, KC_FN0, KC_2,
|
||||||
|
_______, _______, _______, KC_ASTR, _______, _______,
|
||||||
|
_______, _______, KC_PLUS, KC_MINS, _______, _______,
|
||||||
|
_______, _______, KC_EQL, KC_PIPE, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
KC_FN6, KC_FN7, _______, _______,
|
||||||
|
_______, _______,
|
||||||
|
_______,
|
||||||
|
_______, _______, _______
|
||||||
),
|
),
|
||||||
/* Keymap: Movement and function layer
|
/* Keymap: Movement and function layer
|
||||||
*
|
*
|
||||||
|
@ -122,11 +175,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
|
||||||
* | =+ | ! | @ | # | $ | % | | ^ | & | * | ( | ) |MS Fast |
|
* | =+ | ! | @ | # | $ | % | | ^ | & | * | ( | ) |MS Fast |
|
||||||
* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
|
||||||
* | Tab | | | Up | |PgUp | | MwU |MS_UL | MS_U |MS_UR | | Ms Norm|
|
* | Tab | | | | |PgUp | | MwU |MS_UL | MS_U |MS_UR | | Ms Norm|
|
||||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||||
* |MouseFN1| C^A | Left | Down |Right | C^E | | | MS_L |Mouse1| MS_R | |MS Slow |
|
* |MouseFN1|GUI_V |GUI X |GUI C |GUI_V | | | | MS_L |Mouse1| MS_R | |MS Slow |
|
||||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||||
* | | GuiZ | GUI X| GUI C| GUI_V|PgDown| | MWD | MDown|MS Dwn|MS_DR | ? | |
|
* | | | | | |PgDown| | MWD | MDown|MS Dwn|MS_DR | ? | |
|
||||||
* `--------+------+------+------+------+------- `------+------+------+------+------+--------'
|
* `--------+------+------+------+------+------- `------+------+------+------+------+--------'
|
||||||
* | `~ | ESC | | | | | | { | } |
|
* | `~ | ESC | | | | | | { | } |
|
||||||
* `---------------------------' `---------------------------'
|
* `---------------------------' `---------------------------'
|
||||||
|
@ -141,24 +194,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
|
||||||
[_MOUSE] = KEYMAP(
|
[_MOUSE] = KEYMAP(
|
||||||
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
KC_TRNS, KC_EXLM ,KC_AT, KC_HASH, KC_DLR ,KC_PERC ,
|
_______, KC_EXLM ,KC_AT, KC_HASH, KC_DLR ,KC_PERC ,
|
||||||
KC_TRNS, KC_NO, KC_NO, KC_UP, KC_NO, KC_PGUP,
|
_______, KC_NO, KC_NO, KC_UP, KC_NO, KC_PGUP,
|
||||||
KC_FN1, LCTL(KC_A),KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_E),
|
KC_FN1, LGUI(KC_Z),LGUI(KC_X),LGUI(KC_C),LGUI(KC_V), KC_NO,
|
||||||
KC_TRNS, LGUI(KC_Z),LGUI(KC_X),LGUI(KC_C),LGUI(KC_V),KC_PGDN,
|
_______, KC_NO, KC_NO, KC_UP, KC_NO, KC_PGDN,
|
||||||
KC_TRNS, KC_TRNS, KC_NO, KC_NO,
|
_______, _______, KC_NO, KC_NO,
|
||||||
KC_TRNS, KC_TRNS,
|
_______, _______,
|
||||||
KC_TRNS,
|
_______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
_______, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_FN0,RESET,
|
_______, _______, _______, _______, _______, _______, _______, KC_FN0,RESET,
|
||||||
KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_ACL2,
|
KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_ACL2,
|
||||||
KC_WH_U, M(A_MUL), KC_MS_U, M(A_MUR), KC_NO, KC_ACL1,
|
KC_WH_U, M(A_MUL), KC_MS_U, M(A_MUR), KC_NO, KC_ACL1,
|
||||||
KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_ACL0,
|
KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_ACL0,
|
||||||
KC_WH_D, M(A_MDL), KC_MS_D, M(A_MDR), RSFT(KC_LBRC), RSFT(KC_RBRC),
|
KC_WH_D, M(A_MDL), KC_MS_D, M(A_MDR), RSFT(KC_LBRC), RSFT(KC_RBRC),
|
||||||
KC_LCBR, KC_RCBR, KC_NO, KC_NO,
|
KC_LCBR, KC_RCBR, KC_NO, KC_NO,
|
||||||
KC_TRNS, KC_TRNS,
|
_______, _______,
|
||||||
KC_TRNS,
|
_______,
|
||||||
KC_TRNS, KC_BTN1, KC_BTN2
|
_______, KC_BTN1, KC_BTN2
|
||||||
),
|
),
|
||||||
|
|
||||||
|
|
||||||
|
@ -190,24 +243,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
|
||||||
[_TRANS] = KEYMAP(
|
[_TRANS] = KEYMAP(
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
_______, _______, _______, _______, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
_______, _______, _______, _______, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
_______, _______, _______, _______, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_FN10, KC_FN11, KC_TRNS, KC_TRNS,
|
_______, _______, _______, _______, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
_______, _______, _______, _______,
|
||||||
KC_TRNS, KC_TRNS,
|
_______, _______,
|
||||||
KC_TRNS,
|
_______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
_______, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_FN0, KC_2,
|
_______, _______, _______, _______, _______, _______, _______, KC_FN0, KC_2,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
_______, _______, _______, _______, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
_______, _______, _______, _______, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
_______, _______, _______, _______, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
_______, _______, _______, _______, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
_______, _______, _______, _______,
|
||||||
KC_TRNS, KC_TRNS,
|
_______, _______,
|
||||||
KC_TRNS,
|
_______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS
|
_______, _______, _______
|
||||||
),
|
),
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -46,11 +46,11 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
# Boot Section Size in *bytes*
|
||||||
# Teensy halfKay 512
|
# Teensy halfKay 512
|
||||||
# Teensy++ halfKay 1024
|
# Teensy++ halfKay 2048
|
||||||
# Atmel DFU loader 4096
|
# Atmel DFU loader 4096
|
||||||
# LUFA bootloader 4096
|
# LUFA bootloader 4096
|
||||||
# USBaspLoader 2048
|
# USBaspLoader 2048
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=1024
|
OPT_DEFS += -DBOOTLOADER_SIZE=2048
|
||||||
|
|
||||||
|
|
||||||
# Build Options
|
# Build Options
|
||||||
|
|
|
@ -1,20 +1,16 @@
|
||||||
# Please remove if no longer applicable
|
|
||||||
$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
|
|
||||||
$(warning Please disable some options in the Makefile to resolve)
|
|
||||||
|
|
||||||
# Build Options
|
# Build Options
|
||||||
# change to "no" to disable the options, or define them in the Makefile in
|
# change to "no" to disable the options, or define them in the Makefile in
|
||||||
# the appropriate keymap folder that will get included automatically
|
# the appropriate keymap folder that will get included automatically
|
||||||
#
|
#
|
||||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||||
COMMAND_ENABLE = yes # 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
|
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
MIDI_ENABLE = no # MIDI controls
|
MIDI_ENABLE = no # MIDI controls
|
||||||
AUDIO_ENABLE = yes # Audio output on port C6
|
AUDIO_ENABLE = no # Audio output on port C6
|
||||||
UNICODE_ENABLE = no # Unicode
|
UNICODE_ENABLE = no # Unicode
|
||||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
#ifndef CONFIG_USER_H
|
#ifndef CONFIG_USER_H
|
||||||
#define CONFIG_USER_H
|
#define CONFIG_USER_H
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "../../config.h"
|
#include "../../config.h"
|
||||||
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
#define PREVENT_STUCK_MODIFIERS
|
||||||
|
|
||||||
|
#endif
|
|
@ -7,11 +7,12 @@
|
||||||
// for intellisense, has to be commented for building
|
// for intellisense, has to be commented for building
|
||||||
/*
|
/*
|
||||||
#include "..\..\..\..\quantum\keymap_extras\keymap_german.h"
|
#include "..\..\..\..\quantum\keymap_extras\keymap_german.h"
|
||||||
#include "..\..\..\..\quantum\keymap_common.h"
|
|
||||||
#include "..\..\..\..\tmk_core\common\keycode.h"
|
#include "..\..\..\..\tmk_core\common\keycode.h"
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#define _______ KC_TRNS
|
#define _______ KC_TRNS
|
||||||
|
#define XXXXXXX KC_NO
|
||||||
|
|
||||||
/* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout.
|
/* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout.
|
||||||
It has "üäöß" as it is optimized for a mix of German & English.
|
It has "üäöß" as it is optimized for a mix of German & English.
|
||||||
|
@ -23,11 +24,11 @@ Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/* Bone2
|
/* Bone2 (adapted)
|
||||||
* ,-----------------------------------------------------------------------------------.
|
* ,-----------------------------------------------------------------------------------.
|
||||||
* | Q | J | D | U | A | X | P | H | L | M | W | ẞ |
|
* | ß | J | D | U | A | X | P | H | L | M | W | Q |
|
||||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
* |M1/Tab| C | T | I | E | O | B | N | R | S | G |M1/Ent| //hold for M1, tap for Tab/Enter
|
* | M1 | C | T | I | E | O | B | N | R | S | G |M1/Ent| //hold for M1, tap for Enter
|
||||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
* | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift |
|
* | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift |
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
@ -35,20 +36,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
* `-----------------------------------------------------------------------------------'
|
* `-----------------------------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[0] = {
|
[0] = {
|
||||||
{ DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS },
|
{ DE_SS, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_Q },
|
||||||
{ LT(1,KC_TAB), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, LT(1,KC_ENT) },
|
//{ LT(1,KC_TAB), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, LT(1,KC_ENT) },
|
||||||
|
{ MO(1), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, LT(1,KC_ENT) },
|
||||||
{ KC_LSFT, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, KC_LSFT },
|
{ KC_LSFT, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, KC_LSFT },
|
||||||
{ KC_LCTL, KC_RGUI, KC_LALT, MO(4), MO(2), KC_SPC, KC_SPC, MO(2), MO(4), KC_RALT, KC_ESC, KC_RCTL }
|
{ KC_LCTL, KC_RGUI, KC_LALT, MO(4), MO(2), KC_SPC, KC_SPC, MO(2), MO(4), KC_RALT, KC_ESC, KC_RCTL }
|
||||||
},
|
},
|
||||||
|
|
||||||
/* M1 Special Characters
|
/* M1 Special Characters
|
||||||
very ergonomic placement for coding
|
* very ergonomic placement for coding
|
||||||
* ,-----------------------------------------------------------------------------------.
|
* ,-----------------------------------------------------------------------------------.
|
||||||
* | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | ´ |
|
* | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | ´ |
|
||||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
* |M1/Tab| \ | / | { | } | * | ? | ( | ) | - | : |M1/Ent| //hold for M1, tap for Tab/Enter
|
* | M1 | \ | / | { | } | * | ? | ( | ) | - | : |M1/Ent| //hold for M1, tap for Enter
|
||||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
* | Shift| # | $ | | | ~ | € | + | % | " | ' | ; |Shift |
|
* | Shift| # | ~ | | | $ | € | + | % | " | ' | ; |Shift |
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
* | Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl |
|
* | Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl |
|
||||||
* `-----------------------------------------------------------------------------------'
|
* `-----------------------------------------------------------------------------------'
|
||||||
|
@ -56,56 +58,55 @@ very ergonomic placement for coding
|
||||||
[1] = {
|
[1] = {
|
||||||
{ DE_RING, DE_AT, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, DE_ACUT },
|
{ DE_RING, DE_AT, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, DE_ACUT },
|
||||||
{ _______, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, _______ },
|
{ _______, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, _______ },
|
||||||
{ _______, DE_HASH, DE_DLR, DE_PIPE, DE_TILD, DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, _______ },
|
{ _______, DE_HASH, DE_TILD, DE_PIPE, DE_DLR, DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, _______ },
|
||||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
|
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
|
||||||
},
|
},
|
||||||
|
|
||||||
/* Navigation & Number Blocks
|
/* M2 Navigation & Number Blocks
|
||||||
very easy to get used to & intuituve placement
|
* very easy to get used to & intuituve placement
|
||||||
* ,-----------------------------------------------------------------------------------.
|
* ,-----------------------------------------------------------------------------------.
|
||||||
* | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | Ins |
|
* | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | Ins |
|
||||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
* | Tab | Home | Lft | Down | Right| End | . | 4 | 5 | 6 | , | Enter|
|
* | Tab | Home | Lft | Down | Right| End | | 4 | 5 | 6 | . | Enter|
|
||||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
* | Shift| | Tab | | Enter| | 0 | 1 | 2 | 3 | ; |Shift |
|
* | Shift| | Tab | | Enter| | 0 | 1 | 2 | 3 | , |Shift |
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
* | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Alt | Esc | Ctrl |
|
* | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Alt | Esc | Ctrl |
|
||||||
* `-----------------------------------------------------------------------------------'
|
* `-----------------------------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[2] = {
|
[2] = {
|
||||||
{ KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_INS },
|
{ XXXXXXX, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, XXXXXXX, DE_7, DE_8, DE_9, XXXXXXX, KC_INS },
|
||||||
{ KC_TAB, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_ENT },
|
{ KC_TAB, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, XXXXXXX, DE_4, DE_5, DE_6, DE_DOT, KC_ENT },
|
||||||
{ _______, KC_NO, KC_TAB, KC_NO, KC_ENT, KC_NO, DE_0, DE_1, DE_2, DE_3, DE_SCLN, _______ },
|
{ _______, XXXXXXX, KC_TAB, XXXXXXX, KC_ENT, XXXXXXX, DE_0, DE_1, DE_2, DE_3, DE_COMM, _______ },
|
||||||
{ _______, _______, _______, MO(3), _______, _______, _______, _______, MO(3), _______, _______, _______ }
|
{ _______, _______, _______, MO(3), _______, _______, _______, _______, MO(3), _______, _______, _______ }
|
||||||
},
|
},
|
||||||
|
|
||||||
/* Flipped Navigation & Number Blocks for one handed use
|
/* M3 Switched Navigation & Number Blocks for one handed use
|
||||||
accessed by sliding from M2 to M3 with thumb
|
* accessed by sliding from M2 to M3 with thumb
|
||||||
* ,-----------------------------------------------------------------------------------.
|
* ,-----------------------------------------------------------------------------------.
|
||||||
* | Ins | | 7 | 8 | 9 | | PgUp | Bksp | Up | DEL | PgDn | |
|
* | Ins | | 7 | 8 | 9 | | PgUp | Bksp | Up | DEL | PgDn | |
|
||||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
* | Tab | . | 4 | 5 | 6 | , | Home | Left | Down | Right| End | Enter|
|
* | Tab | | 4 | 5 | 6 | . | Home | Left | Down | Right| End | Enter|
|
||||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
* | Shift| 0 | 1 | 2 | 3 | ; | | Tab | Ins | Enter| |Shift |
|
* | Shift| 0 | 1 | 2 | 3 | , | | Tab | | Enter| |Shift |
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
* | Ctrl | GUI | Alt | M3 | | Space | | M3 | Alt | Esc | Ctrl |
|
* | Ctrl | GUI | Alt | M3 | | Space | | M3 | Alt | Esc | Ctrl |
|
||||||
* `-----------------------------------------------------------------------------------'
|
* `-----------------------------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
|
|
||||||
[3] = {
|
[3] = {
|
||||||
{ KC_INS, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO },
|
{ KC_INS, XXXXXXX, DE_7, DE_8, DE_9, XXXXXXX, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, XXXXXXX },
|
||||||
{ _______, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______ },
|
{ _______, XXXXXXX, DE_4, DE_5, DE_6, DE_DOT, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______ },
|
||||||
{ _______, DE_0, DE_1, DE_2, DE_3, DE_SCLN, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, _______ },
|
{ _______, DE_0, DE_1, DE_2, DE_3, DE_COMM, XXXXXXX, KC_TAB, XXXXXXX, KC_ENT, XXXXXXX, _______ },
|
||||||
{ _______, _______, _______, _______, KC_NO, _______, _______, KC_NO, _______, _______, _______, _______ }
|
{ _______, _______, _______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______, _______, _______ }
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
/* Function & Media Keys
|
/* M4 Function & Media Keys
|
||||||
slide from m4 to m5 to access flipped version
|
|
||||||
* ,-----------------------------------------------------------------------------------.
|
* ,-----------------------------------------------------------------------------------.
|
||||||
* | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | |
|
* | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | |
|
||||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
* | | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | |
|
* | Tab | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | Enter|
|
||||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
* | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift |
|
* | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift |
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
@ -113,18 +114,19 @@ slide from m4 to m5 to access flipped version
|
||||||
* `-----------------------------------------------------------------------------------'
|
* `-----------------------------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[4] = {
|
[4] = {
|
||||||
{ KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO },
|
{ XXXXXXX, XXXXXXX, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F12, XXXXXXX },
|
||||||
{ KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO },
|
{ KC_TAB, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_ENT },
|
||||||
{ _______, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, _______ },
|
{ _______, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, _______ },
|
||||||
{ _______, _______, _______, _______, MO(5), _______, _______, MO(5), _______, _______, _______, _______ }
|
{ _______, _______, _______, _______, MO(5), _______, _______, MO(5), _______, _______, _______, _______ }
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
/* flipped Function & Media Keys
|
/* M5 Switched Function & Media Keys|
|
||||||
|
* accessed by sliding from M4 to M5 with thumb
|
||||||
* ,-----------------------------------------------------------------------------------.
|
* ,-----------------------------------------------------------------------------------.
|
||||||
* | | | F7 | F8 | F9 | F12 | | Print|Scroll| Pause| | |
|
* | | | F7 | F8 | F9 | F12 | | Print|Scroll| Pause| | |
|
||||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
* | | ³ | F4 | F5 | F6 | F11 | | Mute | Vol- | Vol+ | | |
|
* | Tab | ³ | F4 | F5 | F6 | F11 | | Mute | Vol- | Vol+ | | Enter|
|
||||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
* | Shift| ² | F1 | F2 | F3 | F10 | | Prev | Play | Next | |Shift |
|
* | Shift| ² | F1 | F2 | F3 | F10 | | Prev | Play | Next | |Shift |
|
||||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
@ -132,13 +134,14 @@ slide from m4 to m5 to access flipped version
|
||||||
* `-----------------------------------------------------------------------------------'
|
* `-----------------------------------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
[5] = {
|
[5] = {
|
||||||
{ KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO },
|
{ XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F12, XXXXXXX, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX },
|
||||||
{ KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO },
|
{ _______, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, _______ },
|
||||||
{ _______, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, _______ },
|
{ _______, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, _______ },
|
||||||
{ _______, _______, _______, KC_NO, _______, _______, _______, _______, KC_NO, _______, _______, _______ }
|
{ _______, _______, _______, XXXXXXX, _______, _______, _______, _______, XXXXXXX, _______, _______, _______ }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
const uint16_t PROGMEM fn_actions[] = {
|
const uint16_t PROGMEM fn_actions[] = {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,8 +1,96 @@
|
||||||
check keymap.c to the layers
|
Bone2Planck
|
||||||
|
=====================================
|
||||||
|
|
||||||
This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout.
|
This layout tries to emulate the Bone2 variant of Neo2, and is intended to be used with a German QWERTZ softwarelayout.
|
||||||
It has "üäöß" as it is optimized for a mix of German & English.
|
It has "üäöß" as it is optimized for a mix of German & English.
|
||||||
My favourite features are the placement of the special characters often used for programming right on the home row
|
The special character layer and the navigation & number block layer are inspired by the Neo2 layers,
|
||||||
and the number & navigation block combo, so you never have to move your hands from their home position.
|
designed to keep the fingers near the home row.
|
||||||
|
|
||||||
Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone
|
Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone
|
||||||
|
|
||||||
|
To build, run "make" from within the \bone2planck folder.
|
||||||
|
|
||||||
|
## Bone2 (adapted) Base Layer
|
||||||
|
```
|
||||||
|
,-----------------------------------------------------------------------------------.
|
||||||
|
| ß | J | D | U | A | X | P | H | L | M | W | Q |
|
||||||
|
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
|
| M1 | C | T | I | E | O | B | N | R | S | G |M1/Ent| hold: M1, tap: Enter
|
||||||
|
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
|
| Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift |
|
||||||
|
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
| Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl |
|
||||||
|
`-----------------------------------------------------------------------------------'
|
||||||
|
```
|
||||||
|
|
||||||
|
## M1 Special Characters
|
||||||
|
very ergonomic placement for coding
|
||||||
|
```
|
||||||
|
,-----------------------------------------------------------------------------------.
|
||||||
|
| ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | ´ |
|
||||||
|
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
|
| M1 | \ | / | { | } | * | ? | ( | ) | - | : |M1/Ent| hold: M1, tap: Enter
|
||||||
|
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
|
| Shift| # | ~ | | | $ | € | + | % | " | ' | ; |Shift |
|
||||||
|
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
| Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl |
|
||||||
|
`-----------------------------------------------------------------------------------'
|
||||||
|
```
|
||||||
|
|
||||||
|
## M2 Navigation & Number Blocks
|
||||||
|
very easy to get used to & intuituve placement
|
||||||
|
```
|
||||||
|
,-----------------------------------------------------------------------------------.
|
||||||
|
| | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | Ins |
|
||||||
|
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
|
| Tab | Home | Lft | Down | Right| End | | 4 | 5 | 6 | . | Enter|
|
||||||
|
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
|
| Shift| | Tab | | Enter| | 0 | 1 | 2 | 3 | , |Shift |
|
||||||
|
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
| Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Alt | Esc | Ctrl |
|
||||||
|
`-----------------------------------------------------------------------------------'
|
||||||
|
```
|
||||||
|
|
||||||
|
## M4 Function & Media Keys
|
||||||
|
```
|
||||||
|
,-----------------------------------------------------------------------------------.
|
||||||
|
| | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | |
|
||||||
|
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
|
| Tab | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | Enter|
|
||||||
|
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
|
| Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift |
|
||||||
|
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
| Ctrl | GUI | Alt | M4 | M5 | Space | M5 | M4 | Alt | Esc | Ctrl |
|
||||||
|
`-----------------------------------------------------------------------------------'
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
##Switched layers for one handed access:
|
||||||
|
|
||||||
|
### M3 Switched Navigation & Number Blocks
|
||||||
|
accessed by sliding from M2 to M3 with thumb
|
||||||
|
```
|
||||||
|
,-----------------------------------------------------------------------------------.
|
||||||
|
| Ins | | 7 | 8 | 9 | | PgUp | Bksp | Up | DEL | PgDn | |
|
||||||
|
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
|
| Tab | | 4 | 5 | 6 | . | Home | Left | Down | Right| End | Enter|
|
||||||
|
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
|
| Shift| 0 | 1 | 2 | 3 | , | | Tab | | Enter| |Shift |
|
||||||
|
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
| Ctrl | GUI | Alt | M3 | | Space | | M3 | Alt | Esc | Ctrl |
|
||||||
|
`-----------------------------------------------------------------------------------'
|
||||||
|
```
|
||||||
|
|
||||||
|
### M5 Switched Function & Media Keys
|
||||||
|
accessed by sliding from M4 to M5 with thumb
|
||||||
|
```
|
||||||
|
,-----------------------------------------------------------------------------------.
|
||||||
|
| | | F7 | F8 | F9 | F12 | | Print|Scroll| Pause| | |
|
||||||
|
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||||
|
| Tab | ³ | F4 | F5 | F6 | F11 | | Mute | Vol- | Vol+ | | Enter|
|
||||||
|
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||||
|
| Shift| ² | F1 | F2 | F3 | F10 | | Prev | Play | Next | |Shift |
|
||||||
|
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
| Ctrl | GUI | Alt | | M5 | Space | M5 | | Alt | Esc | Ctrl |
|
||||||
|
`-----------------------------------------------------------------------------------'
|
||||||
|
```
|
|
@ -39,6 +39,7 @@ These keyboards are part of the QMK repository, but their manufacturers are not
|
||||||
* [Bantam44](/keyboards/bantam44) — It is a 44-key 40% staggered keyboard.
|
* [Bantam44](/keyboards/bantam44) — It is a 44-key 40% staggered keyboard.
|
||||||
* [Ergodox Infinity](/keyboards/ergodox) - Ergonomic Split Keyboard by Input Club.
|
* [Ergodox Infinity](/keyboards/ergodox) - Ergonomic Split Keyboard by Input Club.
|
||||||
* [GH60](/keyboards/gh60) — A 60% Geekhack community-driven project.
|
* [GH60](/keyboards/gh60) — A 60% Geekhack community-driven project.
|
||||||
|
* [GON NerD](/keyboards/gonnerd) — Korean custom 60% PCB
|
||||||
* [Happy Hacking Keyboard](/keyboards/hhkb) — The Happy Hacking keyboard can be hacked with a custom controller to run QMK.
|
* [Happy Hacking Keyboard](/keyboards/hhkb) — The Happy Hacking keyboard can be hacked with a custom controller to run QMK.
|
||||||
* [Infinity 60%](/keyboards/infinity60) - — Compact community keyboard by Input Club.
|
* [Infinity 60%](/keyboards/infinity60) - — Compact community keyboard by Input Club.
|
||||||
* [JD45](/keyboards/jd45) — Another Geekhack community project, designed by jdcarpe.
|
* [JD45](/keyboards/jd45) — Another Geekhack community project, designed by jdcarpe.
|
||||||
|
|
|
@ -120,7 +120,7 @@ action_t action_for_key(uint8_t layer, keypos_t key)
|
||||||
action.code = ACTION_MODS_ONESHOT(mod);
|
action.code = ACTION_MODS_ONESHOT(mod);
|
||||||
break;
|
break;
|
||||||
case QK_MOD_TAP ... QK_MOD_TAP_MAX:
|
case QK_MOD_TAP ... QK_MOD_TAP_MAX:
|
||||||
action.code = ACTION_MODS_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF);
|
action.code = ACTION_MODS_TAP_KEY((keycode >> 0x8) & 0x1F, keycode & 0xFF);
|
||||||
break;
|
break;
|
||||||
#ifdef BACKLIGHT_ENABLE
|
#ifdef BACKLIGHT_ENABLE
|
||||||
case BL_0 ... BL_15:
|
case BL_0 ... BL_15:
|
||||||
|
|
|
@ -139,7 +139,7 @@ void unicode_map_input_error() {}
|
||||||
bool process_unicode_map(uint16_t keycode, keyrecord_t *record) {
|
bool process_unicode_map(uint16_t keycode, keyrecord_t *record) {
|
||||||
if ((keycode & QK_UNICODE_MAP) == QK_UNICODE_MAP && record->event.pressed) {
|
if ((keycode & QK_UNICODE_MAP) == QK_UNICODE_MAP && record->event.pressed) {
|
||||||
const uint32_t* map = unicode_map;
|
const uint32_t* map = unicode_map;
|
||||||
uint16_t index = keycode & 0x7FF;
|
uint16_t index = keycode - QK_UNICODE_MAP;
|
||||||
uint32_t code = pgm_read_dword_far(&map[index]);
|
uint32_t code = pgm_read_dword_far(&map[index]);
|
||||||
if (code > 0xFFFF && code <= 0x10ffff && input_mode == UC_OSX) {
|
if (code > 0xFFFF && code <= 0x10ffff && input_mode == UC_OSX) {
|
||||||
// Convert to UTF-16 surrogate pair
|
// Convert to UTF-16 surrogate pair
|
||||||
|
|
|
@ -594,34 +594,45 @@ static const uint8_t backlight_pin = BACKLIGHT_PIN;
|
||||||
# define COM1x1 COM1A1
|
# define COM1x1 COM1A1
|
||||||
# define OCR1x OCR1A
|
# define OCR1x OCR1A
|
||||||
#else
|
#else
|
||||||
# error "Backlight pin not supported - use B5, B6, or B7"
|
# define NO_BACKLIGHT_CLOCK
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef BACKLIGHT_ON_STATE
|
||||||
|
#define BACKLIGHT_ON_STATE 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
__attribute__ ((weak))
|
__attribute__ ((weak))
|
||||||
void backlight_init_ports(void)
|
void backlight_init_ports(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
// Setup backlight pin as output and output low.
|
// Setup backlight pin as output and output to on state.
|
||||||
// DDRx |= n
|
// DDRx |= n
|
||||||
_SFR_IO8((backlight_pin >> 4) + 1) |= _BV(backlight_pin & 0xF);
|
_SFR_IO8((backlight_pin >> 4) + 1) |= _BV(backlight_pin & 0xF);
|
||||||
// PORTx &= ~n
|
#if BACKLIGHT_ON_STATE == 0
|
||||||
_SFR_IO8((backlight_pin >> 4) + 2) &= ~_BV(backlight_pin & 0xF);
|
// PORTx &= ~n
|
||||||
|
_SFR_IO8((backlight_pin >> 4) + 2) &= ~_BV(backlight_pin & 0xF);
|
||||||
|
#else
|
||||||
|
// PORTx |= n
|
||||||
|
_SFR_IO8((backlight_pin >> 4) + 2) |= _BV(backlight_pin & 0xF);
|
||||||
|
#endif
|
||||||
|
|
||||||
// Use full 16-bit resolution.
|
#ifndef NO_BACKLIGHT_CLOCK
|
||||||
ICR1 = 0xFFFF;
|
// Use full 16-bit resolution.
|
||||||
|
ICR1 = 0xFFFF;
|
||||||
|
|
||||||
// I could write a wall of text here to explain... but TL;DW
|
// I could write a wall of text here to explain... but TL;DW
|
||||||
// Go read the ATmega32u4 datasheet.
|
// Go read the ATmega32u4 datasheet.
|
||||||
// And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on
|
// And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on
|
||||||
|
|
||||||
// Pin PB7 = OCR1C (Timer 1, Channel C)
|
// Pin PB7 = OCR1C (Timer 1, Channel C)
|
||||||
// Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0
|
// Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0
|
||||||
// (i.e. start high, go low when counter matches.)
|
// (i.e. start high, go low when counter matches.)
|
||||||
// WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0
|
// WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0
|
||||||
// Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1
|
// Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1
|
||||||
|
|
||||||
TCCR1A = _BV(COM1x1) | _BV(WGM11); // = 0b00001010;
|
TCCR1A = _BV(COM1x1) | _BV(WGM11); // = 0b00001010;
|
||||||
TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001;
|
TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001;
|
||||||
|
#endif
|
||||||
|
|
||||||
backlight_init();
|
backlight_init();
|
||||||
#ifdef BACKLIGHT_BREATHING
|
#ifdef BACKLIGHT_BREATHING
|
||||||
|
@ -633,24 +644,43 @@ __attribute__ ((weak))
|
||||||
void backlight_set(uint8_t level)
|
void backlight_set(uint8_t level)
|
||||||
{
|
{
|
||||||
// Prevent backlight blink on lowest level
|
// Prevent backlight blink on lowest level
|
||||||
// PORTx &= ~n
|
#if BACKLIGHT_ON_STATE == 0
|
||||||
_SFR_IO8((backlight_pin >> 4) + 2) &= ~_BV(backlight_pin & 0xF);
|
// PORTx &= ~n
|
||||||
|
_SFR_IO8((backlight_pin >> 4) + 2) &= ~_BV(backlight_pin & 0xF);
|
||||||
|
#else
|
||||||
|
// PORTx |= n
|
||||||
|
_SFR_IO8((backlight_pin >> 4) + 2) |= _BV(backlight_pin & 0xF);
|
||||||
|
#endif
|
||||||
|
|
||||||
if ( level == 0 ) {
|
if ( level == 0 ) {
|
||||||
// Turn off PWM control on backlight pin, revert to output low.
|
#ifndef NO_BACKLIGHT_CLOCK
|
||||||
TCCR1A &= ~(_BV(COM1x1));
|
// Turn off PWM control on backlight pin, revert to output low.
|
||||||
OCR1x = 0x0;
|
TCCR1A &= ~(_BV(COM1x1));
|
||||||
} else if ( level == BACKLIGHT_LEVELS ) {
|
OCR1x = 0x0;
|
||||||
// Turn on PWM control of backlight pin
|
#else
|
||||||
TCCR1A |= _BV(COM1x1);
|
#if BACKLIGHT_ON_STATE == 0
|
||||||
// Set the brightness
|
// PORTx |= n
|
||||||
OCR1x = 0xFFFF;
|
_SFR_IO8((backlight_pin >> 4) + 2) |= _BV(backlight_pin & 0xF);
|
||||||
} else {
|
#else
|
||||||
// Turn on PWM control of backlight pin
|
// PORTx &= ~n
|
||||||
TCCR1A |= _BV(COM1x1);
|
_SFR_IO8((backlight_pin >> 4) + 2) &= ~_BV(backlight_pin & 0xF);
|
||||||
// Set the brightness
|
#endif
|
||||||
OCR1x = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2));
|
#endif
|
||||||
}
|
}
|
||||||
|
#ifndef NO_BACKLIGHT_CLOCK
|
||||||
|
else if ( level == BACKLIGHT_LEVELS ) {
|
||||||
|
// Turn on PWM control of backlight pin
|
||||||
|
TCCR1A |= _BV(COM1x1);
|
||||||
|
// Set the brightness
|
||||||
|
OCR1x = 0xFFFF;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Turn on PWM control of backlight pin
|
||||||
|
TCCR1A |= _BV(COM1x1);
|
||||||
|
// Set the brightness
|
||||||
|
OCR1x = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef BACKLIGHT_BREATHING
|
#ifdef BACKLIGHT_BREATHING
|
||||||
breathing_intensity_default();
|
breathing_intensity_default();
|
||||||
|
|
|
@ -39,14 +39,14 @@ enum quantum_keycodes {
|
||||||
QK_CHORDING = 0x5600,
|
QK_CHORDING = 0x5600,
|
||||||
QK_CHORDING_MAX = 0x56FF,
|
QK_CHORDING_MAX = 0x56FF,
|
||||||
#endif
|
#endif
|
||||||
QK_MOD_TAP = 0x6000,
|
QK_TAP_DANCE = 0x5700,
|
||||||
QK_MOD_TAP_MAX = 0x6FFF,
|
QK_TAP_DANCE_MAX = 0x57FF,
|
||||||
QK_TAP_DANCE = 0x7100,
|
|
||||||
QK_TAP_DANCE_MAX = 0x71FF,
|
|
||||||
#ifdef UNICODEMAP_ENABLE
|
#ifdef UNICODEMAP_ENABLE
|
||||||
QK_UNICODE_MAP = 0x7800,
|
QK_UNICODE_MAP = 0x5800,
|
||||||
QK_UNICODE_MAP_MAX = 0x7FFF,
|
QK_UNICODE_MAP_MAX = 0x5BFF,
|
||||||
#endif
|
#endif
|
||||||
|
QK_MOD_TAP = 0x6000,
|
||||||
|
QK_MOD_TAP_MAX = 0x7FFF,
|
||||||
#ifdef UNICODE_ENABLE
|
#ifdef UNICODE_ENABLE
|
||||||
QK_UNICODE = 0x8000,
|
QK_UNICODE = 0x8000,
|
||||||
QK_UNICODE_MAX = 0xFFFF,
|
QK_UNICODE_MAX = 0xFFFF,
|
||||||
|
@ -54,7 +54,7 @@ enum quantum_keycodes {
|
||||||
|
|
||||||
// Loose keycodes - to be used directly
|
// Loose keycodes - to be used directly
|
||||||
|
|
||||||
RESET = 0x7000,
|
RESET = 0x5C00,
|
||||||
DEBUG,
|
DEBUG,
|
||||||
MAGIC_SWAP_CONTROL_CAPSLOCK,
|
MAGIC_SWAP_CONTROL_CAPSLOCK,
|
||||||
MAGIC_CAPSLOCK_TO_CONTROL,
|
MAGIC_CAPSLOCK_TO_CONTROL,
|
||||||
|
@ -298,15 +298,29 @@ enum quantum_keycodes {
|
||||||
#define OSM(mod) (mod | QK_ONE_SHOT_MOD)
|
#define OSM(mod) (mod | QK_ONE_SHOT_MOD)
|
||||||
|
|
||||||
// M-od, T-ap - 256 keycode max
|
// M-od, T-ap - 256 keycode max
|
||||||
#define MT(mod, kc) (kc | QK_MOD_TAP | ((mod & 0xF) << 8))
|
#define MT(mod, kc) (kc | QK_MOD_TAP | ((mod & 0x1F) << 8))
|
||||||
|
|
||||||
#define CTL_T(kc) MT(MOD_LCTL, kc)
|
#define CTL_T(kc) MT(MOD_LCTL, kc)
|
||||||
|
#define LCTL_T(kc) MT(MOD_LCTL, kc)
|
||||||
|
#define RCTL_T(kc) MT(MOD_RCTL, kc)
|
||||||
|
|
||||||
#define SFT_T(kc) MT(MOD_LSFT, kc)
|
#define SFT_T(kc) MT(MOD_LSFT, kc)
|
||||||
|
#define LSFT_T(kc) MT(MOD_LSFT, kc)
|
||||||
|
#define RSFT_T(kc) MT(MOD_RSFT, kc)
|
||||||
|
|
||||||
#define ALT_T(kc) MT(MOD_LALT, kc)
|
#define ALT_T(kc) MT(MOD_LALT, kc)
|
||||||
|
#define LALT_T(kc) MT(MOD_LALT, kc)
|
||||||
|
#define RALT_T(kc) MT(MOD_RALT, kc)
|
||||||
#define ALGR_T(kc) MT(MOD_RALT, kc) // dual-function AltGR
|
#define ALGR_T(kc) MT(MOD_RALT, kc) // dual-function AltGR
|
||||||
|
|
||||||
#define GUI_T(kc) MT(MOD_LGUI, kc)
|
#define GUI_T(kc) MT(MOD_LGUI, kc)
|
||||||
|
#define LGUI_T(kc) MT(MOD_LGUI, kc)
|
||||||
|
#define RGUI_T(kc) MT(MOD_RGUI, kc)
|
||||||
|
|
||||||
#define C_S_T(kc) MT((MOD_LCTL | MOD_LSFT), kc) // Control + Shift e.g. for gnome-terminal
|
#define C_S_T(kc) MT((MOD_LCTL | MOD_LSFT), kc) // Control + Shift e.g. for gnome-terminal
|
||||||
#define MEH_T(kc) MT((MOD_LCTL | MOD_LSFT | MOD_LALT), kc) // Meh is a less hyper version of the Hyper key -- doesn't include Win or Cmd, so just alt+shift+ctrl
|
#define MEH_T(kc) MT((MOD_LCTL | MOD_LSFT | MOD_LALT), kc) // Meh is a less hyper version of the Hyper key -- doesn't include Win or Cmd, so just alt+shift+ctrl
|
||||||
#define LCAG_T(kc) MT((MOD_LCTL | MOD_LALT | MOD_LGUI), kc) // Left control alt and gui
|
#define LCAG_T(kc) MT((MOD_LCTL | MOD_LALT | MOD_LGUI), kc) // Left control alt and gui
|
||||||
|
#define RCAG_T(kc) MT((MOD_RCTL | MOD_RALT | MOD_RGUI), kc) // Right control alt and gui
|
||||||
#define ALL_T(kc) MT((MOD_LCTL | MOD_LSFT | MOD_LALT | MOD_LGUI), kc) // see http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/
|
#define ALL_T(kc) MT((MOD_LCTL | MOD_LSFT | MOD_LALT | MOD_LGUI), kc) // see http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/
|
||||||
#define SCMD_T(kc) MT((MOD_LGUI | MOD_LSFT), kc)
|
#define SCMD_T(kc) MT((MOD_LGUI | MOD_LSFT), kc)
|
||||||
#define SWIN_T(kc) SCMD_T(kc)
|
#define SWIN_T(kc) SCMD_T(kc)
|
||||||
|
|
|
@ -11,7 +11,7 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then
|
||||||
make all-keyboards AUTOGEN="true"
|
make all-keyboards AUTOGEN="true"
|
||||||
: $((exit_code = $exit_code + $?))
|
: $((exit_code = $exit_code + $?))
|
||||||
else
|
else
|
||||||
MKB=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -oP '(?<=keyboards\/)([a-zA-Z0-9_]+)' | sort -u)
|
MKB=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -oP '(?<=keyboards\/)([a-zA-Z0-9_]+)(?=\/)' | sort -u)
|
||||||
for KB in $MKB ; do
|
for KB in $MKB ; do
|
||||||
echo "Making all keymaps for $KB"
|
echo "Making all keymaps for $KB"
|
||||||
make "$KB" AUTOGEN=true
|
make "$KB" AUTOGEN=true
|
||||||
|
|
Loading…
Reference in New Issue