From a10e100bd5e8bad73e1b04f54639a4cec36e4b9e Mon Sep 17 00:00:00 2001 From: coderkun Date: Sun, 2 Oct 2016 09:55:38 +0200 Subject: [PATCH 01/19] Add double arrow Unicode characters to FMU layer --- keyboards/ergodox/keymaps/coderkun_neo2/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c index 0eedecf3dd..238971e81e 100644 --- a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c +++ b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c @@ -141,7 +141,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ * │ │ ├ │ ┼ │ ┤ │ ✓ │ ✕ ├─────┤ ├─────┤ │ F5 │ F6 │ F7 │ F8 │ │ * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ - * │ │ └ │ ┴ │ ┘ │ │ │ │ │ │ │ F1 │ F2 │ F3 │ F4 │ │ + * │ │ └ │ ┴ │ ┘ │ ↔ │ ⇔ │ │ │ │ │ F1 │ F2 │ F3 │ F4 │ │ * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ * │ │ │(MO1)│ │(MO4)│ │(MO4)│ │(MO1)│ │ │ * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ @@ -157,7 +157,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, UC(0x250C),UC(0x252C),UC(0x2510),UC(0x2500),UC(0x2502),KC_TRNS, KC_TRNS, UC(0x251C),UC(0x253C),UC(0x2524),UC(0x2713),UC(0x2715), - KC_TRNS, UC(0x2514),UC(0x2534),UC(0x2518),KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, UC(0x2514),UC(0x2534),UC(0x2518),UC(0x2194),UC(0x21D4),KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_MS_L, KC_MS_U, KC_BTN1, From 8dd69a1b05770be3131f6e5917e2552ec6579519 Mon Sep 17 00:00:00 2001 From: coderkun Date: Mon, 3 Oct 2016 16:36:21 +0200 Subject: [PATCH 02/19] Overwrite method hex_to_unicode() for make it compatible with Neo --- .../ergodox/keymaps/coderkun_neo2/keymap.c | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c index 238971e81e..b62b14449f 100644 --- a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c +++ b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c @@ -290,3 +290,28 @@ void unicode_input_start (void) { unregister_code(KC_LSFT); unregister_code(KC_LCTL); }; + +// Override method to use NEO_A instead of KC_A +uint16_t hex_to_keycode(uint8_t hex) +{ + if (hex == 0x0) { + return KC_0; + } else if (hex < 0xA) { + return KC_1 + (hex - 0x1); + } else { + switch(hex) { + case 0xA: + return NEO_A; + case 0xB: + return NEO_B; + case 0xC: + return NEO_C; + case 0xD: + return NEO_D; + case 0xE: + return NEO_E; + case 0xF: + return NEO_F; + } + } +} From 1048a588c750e27ff0f900cd6aaf670e034086d0 Mon Sep 17 00:00:00 2001 From: npoirey Date: Fri, 7 Oct 2016 17:15:11 +0200 Subject: [PATCH 03/19] Add Altgr combination for non US layouts --- quantum/keymap.h | 1 + 1 file changed, 1 insertion(+) diff --git a/quantum/keymap.h b/quantum/keymap.h index 98ddfd0c53..4b2192cb2e 100644 --- a/quantum/keymap.h +++ b/quantum/keymap.h @@ -191,6 +191,7 @@ enum quantum_keycodes { #define HYPR(kc) (kc | QK_LCTL | QK_LSFT | QK_LALT | QK_LGUI) #define MEH(kc) (kc | QK_LCTL | QK_LSFT | QK_LALT) #define LCAG(kc) (kc | QK_LCTL | QK_LALT | QK_LGUI) +#define ALTG(kc) (kc | QK_RCTL | QK_RALT) #define MOD_HYPR 0xf #define MOD_MEH 0x7 From 628a48c7887e20a69b5a8c84cff956ba2ec7fed2 Mon Sep 17 00:00:00 2001 From: npoirey Date: Fri, 7 Oct 2016 17:18:19 +0200 Subject: [PATCH 04/19] Updated Readme to help windows users use docker for build --- readme.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/readme.md b/readme.md index a7320202b2..db118f9a38 100644 --- a/readme.md +++ b/readme.md @@ -140,6 +140,9 @@ If this is a bit complex for you, Docker might be the turn-key solution you need docker run -e keymap=gwen -e keyboard=ergodox --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware +# On windows docker seems to have issue with VOLUME tag in Dockerfile, and $('pwd') won't print a windows compliant path, use full path instead like this +docker run -e keymap=default -e keyboard=ergobop --rm -v D:/Users/Sacapuces/Documents/Repositories/qmk:/qmk:rw edasque/qmk_firmware + ``` This will compile the targetted keyboard/keymap and leave it in your QMK directory for you to flash. From 2d7b549e2172b6ffadcaf852055864e6213cfa72 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Oct 2016 01:38:55 +0300 Subject: [PATCH 05/19] Add keymap with audio disabled but RGB effects enabled --- .../cluecard/keymaps/rgb_effects/Makefile | 21 ++++++++++++++++ .../cluecard/keymaps/rgb_effects/config.h | 9 +++++++ .../cluecard/keymaps/rgb_effects/keymap.c | 25 +++++++++++++++++++ .../cluecard/keymaps/rgb_effects/readme.md | 3 +++ 4 files changed, 58 insertions(+) create mode 100644 keyboards/cluecard/keymaps/rgb_effects/Makefile create mode 100644 keyboards/cluecard/keymaps/rgb_effects/config.h create mode 100644 keyboards/cluecard/keymaps/rgb_effects/keymap.c create mode 100644 keyboards/cluecard/keymaps/rgb_effects/readme.md diff --git a/keyboards/cluecard/keymaps/rgb_effects/Makefile b/keyboards/cluecard/keymaps/rgb_effects/Makefile new file mode 100644 index 0000000000..00670c0cf4 --- /dev/null +++ b/keyboards/cluecard/keymaps/rgb_effects/Makefile @@ -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 = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/cluecard/keymaps/rgb_effects/config.h b/keyboards/cluecard/keymaps/rgb_effects/config.h new file mode 100644 index 0000000000..441db52d96 --- /dev/null +++ b/keyboards/cluecard/keymaps/rgb_effects/config.h @@ -0,0 +1,9 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here +#define RGBLIGHT_TIMER + +#endif diff --git a/keyboards/cluecard/keymaps/rgb_effects/keymap.c b/keyboards/cluecard/keymaps/rgb_effects/keymap.c new file mode 100644 index 0000000000..3b68558254 --- /dev/null +++ b/keyboards/cluecard/keymaps/rgb_effects/keymap.c @@ -0,0 +1,25 @@ +#include "cluecard.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = KEYMAP( + RGB_TOG, RGB_SAI, RGB_VAI, \ + RGB_HUD, RGB_HUI, \ + RGB_MOD, RGB_SAD, RGB_VAD, \ + BL_STEP, \ + KC_NO, KC_NO, KC_NO \ + ) +}; + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { +} diff --git a/keyboards/cluecard/keymaps/rgb_effects/readme.md b/keyboards/cluecard/keymaps/rgb_effects/readme.md new file mode 100644 index 0000000000..fa710b4641 --- /dev/null +++ b/keyboards/cluecard/keymaps/rgb_effects/readme.md @@ -0,0 +1,3 @@ +# RGB effect test keymap for cluecard + +This keymap has audio disabled, and the RGB mode button does not go through the different effects From 70f32842e5d94f14d05c1f9adcb1b1144a25a132 Mon Sep 17 00:00:00 2001 From: Wojciech Siewierski Date: Sun, 9 Oct 2016 12:52:39 +0200 Subject: [PATCH 06/19] Reduce the default dynamic macro buffer There have been reports of it leaving not enough free memory preventing the keyboard from working properly. --- quantum/dynamic_macro.h | 9 +++++++-- readme.md | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/quantum/dynamic_macro.h b/quantum/dynamic_macro.h index a3ad61bc7e..e6dbc5b9c1 100644 --- a/quantum/dynamic_macro.h +++ b/quantum/dynamic_macro.h @@ -8,8 +8,13 @@ /* May be overridden with a custom value. Be aware that the effective * macro length is half of this value: each keypress is recorded twice * because of the down-event and up-event. This is not a bug, it's the - * intended behavior. */ -#define DYNAMIC_MACRO_SIZE 256 + * intended behavior. + * + * Usually it should be fine to set the macro size to at least 256 but + * there have been reports of it being too much in some users' cases, + * so 128 is considered a safe default. + */ +#define DYNAMIC_MACRO_SIZE 128 #endif /* DYNAMIC_MACRO_RANGE must be set as the last element of user's diff --git a/readme.md b/readme.md index a7320202b2..d28d7c3ff3 100644 --- a/readme.md +++ b/readme.md @@ -823,7 +823,7 @@ And then, to assign this macro to a key on your keyboard layout, you just use `M ## Dynamic macros: record and replay macros in runtime -In addition to the static macros described above, you may enable the dynamic macros which you may record while writing. They are forgotten as soon as the keyboard is unplugged. Only two such macros may be stored at the same time, with the total length of 128 keypresses. +In addition to the static macros described above, you may enable the dynamic macros which you may record while writing. They are forgotten as soon as the keyboard is unplugged. Only two such macros may be stored at the same time, with the total length of 64 keypresses (by default). To enable them, first add a new element to the `planck_keycodes` enum -- `DYNAMIC_MACRO_RANGE`: @@ -864,7 +864,7 @@ Add the following code to the very beginning of your `process_record_user()` fun To start recording the macro, press either `DYN_REC_START1` or `DYN_REC_START2`. To finish the recording, press the `_DYN` layer button. The handler awaits specifically for the `MO(_DYN)` keycode as the "stop signal" so please don't use any fancy ways to access this layer, use the regular `MO()` modifier. To replay the macro, press either `DYN_MACRO_PLAY1` or `DYN_MACRO_PLAY2`. -If the LED-s start blinking during the recording with each keypress, it means there is no more space for the macro in the macro buffer. To fit the macro in, either make the other macro shorter (they share the same buffer) or increase the buffer size by setting the `DYNAMIC_MACRO_SIZE` preprocessor macro (default value: 256; please read the comments for it in the header). +If the LED-s start blinking during the recording with each keypress, it means there is no more space for the macro in the macro buffer. To fit the macro in, either make the other macro shorter (they share the same buffer) or increase the buffer size by setting the `DYNAMIC_MACRO_SIZE` preprocessor macro (default value: 128; please read the comments for it in the header). For the details about the internals of the dynamic macros, please read the comments in the `dynamic_macro.h` header. From 26759e126eec922cd642052baa3e43a3c62c4a7c Mon Sep 17 00:00:00 2001 From: Wojciech Siewierski Date: Sun, 9 Oct 2016 13:34:17 +0200 Subject: [PATCH 07/19] New Planck keymap: vifon --- keyboards/planck/keymaps/vifon/Makefile | 25 ++++ keyboards/planck/keymaps/vifon/config.h | 91 ++++++++++++ keyboards/planck/keymaps/vifon/keymap.c | 187 ++++++++++++++++++++++++ 3 files changed, 303 insertions(+) create mode 100644 keyboards/planck/keymaps/vifon/Makefile create mode 100644 keyboards/planck/keymaps/vifon/config.h create mode 100644 keyboards/planck/keymaps/vifon/keymap.c diff --git a/keyboards/planck/keymaps/vifon/Makefile b/keyboards/planck/keymaps/vifon/Makefile new file mode 100644 index 0000000000..838cb4e885 --- /dev/null +++ b/keyboards/planck/keymaps/vifon/Makefile @@ -0,0 +1,25 @@ + + +# 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 = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/planck/keymaps/vifon/config.h b/keyboards/planck/keymaps/vifon/config.h new file mode 100644 index 0000000000..9cb0634fb3 --- /dev/null +++ b/keyboards/planck/keymaps/vifon/config.h @@ -0,0 +1,91 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define MANUFACTURER Ortholinear Keyboards +#define PRODUCT The Planck Keyboard +#define DESCRIPTION A compact ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* Planck PCB default pin-out */ +#define MATRIX_ROW_PINS { D0, D5, B5, B6 } +#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define UNUSED_PINS + +#define BACKLIGHT_PIN B7 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* 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 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 command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* + * 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 + +/* prevent the modifiers from being stuck, sacrificing some memory */ +#define PREVENT_STUCK_MODIFIERS + +#ifdef SUBPROJECT_rev3 + #include "rev3/config.h" +#endif +#ifdef SUBPROJECT_rev4 + #include "rev4/config.h" +#endif + +#endif diff --git a/keyboards/planck/keymaps/vifon/keymap.c b/keyboards/planck/keymaps/vifon/keymap.c new file mode 100644 index 0000000000..80c4a516c3 --- /dev/null +++ b/keyboards/planck/keymaps/vifon/keymap.c @@ -0,0 +1,187 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE +# include "backlight.h" +#endif +#include "timer.h" +#include + +// 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 userlayer { + _QW = 0, + _CM, + _PP, + _PPG, + _NM, + _LW, + _RS, + _DL, + _DYN, +}; + +enum planck_keycodes { + KM_LW = SAFE_RANGE, + KM_RS, + KM_SHLK, /* ShiftLock */ + KM_RST, /* Reset */ + KM_NUM, /* Numeric layer */ + KM_SLP, /* Sleep 250 ms */ + KM_PPLR, /* Pure Pro layer */ + DYNAMIC_MACRO_RANGE, +}; + +#include "dynamic_macro.h" + +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_FN0 }, + {KC_LCTL, MO(_DYN),KC_LGUI, KC_LALT, KM_LW, KC_SPC, KC_SPC, KM_RS, KC_RALT, KC_DOWN, KC_UP, KC_RCTL} +}, +[_CM] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_FN0 }, + {KC_LCTL, MO(_DYN),KC_LGUI, KC_LALT, KM_LW, KC_SPC, KC_SPC, KM_RS, KC_RALT, KC_DOWN, KC_UP, KC_RCTL} +}, +[_PP] = { /* Pure Pro */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT }, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_RSFT, KC_UP, KC_RCTL}, + {KC_LCTL, MO(_DYN),KC_LGUI, KC_LALT, KM_LW, KC_SPC, KC_SPC, KM_RS, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT} +}, +[_PPG] = { /* Pure Pro: Gaming */ + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, DF(_RS), _______, _______}, + {_______, _______, XXXXXXX, _______, KM_RS , _______, _______, KM_LW , _______, _______, _______, _______}, +}, +[_NM] = { /* Numeric */ + {KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {KC_LSFT, _______, _______, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, _______, KC_FN0 }, + {_______, _______, _______, _______, _______, KC_SPC, KC_SPC, _______, _______, _______, _______, _______} +}, +[_LW]= { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_ESC, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), KM_NUM, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, LGUI(KC_6), LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), LGUI(KC_0), KM_SLP, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_ENT }, + {_______, BL_TOGG, _______, _______, _______, KC_BTN1, KC_BTN1, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_RS]= { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, + {KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), KM_PPLR, KM_RST, KC_ENT }, + {_______, BL_STEP, _______, _______, _______, KC_BTN2, KC_BTN2, _______, KC_MPLY, KC_VOLD, KC_VOLU, _______} +}, +[_DL]= { /* DUAL */ + {_______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, _______, KC_APP, KC_INS, _______, KC_PSCR, _______}, + {_______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ACL0, KC_ACL2}, + {_______, _______, KC_BTN2, KC_BTN3, KC_BTN1, KC_WWW_BACK, KC_WWW_FORWARD, KC_MUTE, _______, _______, _______, _______}, + {_______, _______, KC_LGUI, KC_LALT, _______, _______, _______, _______, _______, _______, _______, _______} +}, +[_DYN]= { /* special */ + {_______, DYN_REC_START1, DYN_MACRO_PLAY1, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_PAUS}, + {_______, DYN_REC_START2, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______, _______, KC_CAPS, KC_SLCK, KC_NLCK}, + {KM_SHLK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, +}; + +#undef _______ + +const uint16_t PROGMEM fn_actions[] = { + ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), +}; + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + static uint16_t key_timer; + + if (!process_record_dynamic_macro(keycode, record)) { + return false; + } + + switch (keycode) { + case KM_LW: + if (record->event.pressed) { + layer_on(_LW); + } else { + layer_off(_LW); + } + update_tri_layer(_LW, _RS, _DL); + return false; + break; + case KM_RS: + if (record->event.pressed) { + layer_on(_RS); + } else { + layer_off(_RS); + } + update_tri_layer(_LW, _RS, _DL); + return false; + break; + case KM_SHLK: + register_code(KC_LSFT); + break; + case KM_RST: + if (record->event.pressed) { + key_timer = timer_read(); + } else { + if (timer_elapsed(key_timer) >= 500) { + clear_keyboard(); + backlight_toggle(); + _delay_ms(250); + backlight_toggle(); + bootloader_jump(); + } + } + break; + case KM_PPLR: + if (record->event.pressed) { + key_timer = timer_read(); + } else { + if (timer_elapsed(key_timer) >= 250) { + default_layer_set((1UL << _PP) | (1UL << _PPG)); + backlight_toggle(); + _delay_ms(100); + backlight_toggle(); + } else { + default_layer_set(1UL << _PP); + } + } + break; + case KM_NUM: + layer_on(_NM); + break; + case KM_SLP: + if (record->event.pressed) { + _delay_ms(250); + } + break; + } + + + if (record->event.pressed + && IS_LAYER_ON(_NM) + && keymap_key_to_keycode(_NM, record->event.key) == KC_TRNS) { + + layer_off(_NM); + } + + return true; +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + return MACRO_NONE; +} From 0ae07ae64d3549d34c021f70b4a9877e5cd9ced9 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Oct 2016 19:11:52 +0300 Subject: [PATCH 08/19] Tune the snake and knight effect parameters for Cluecard --- keyboards/cluecard/keymaps/rgb_effects/config.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/keyboards/cluecard/keymaps/rgb_effects/config.h b/keyboards/cluecard/keymaps/rgb_effects/config.h index 441db52d96..e88847df4d 100644 --- a/keyboards/cluecard/keymaps/rgb_effects/config.h +++ b/keyboards/cluecard/keymaps/rgb_effects/config.h @@ -5,5 +5,8 @@ // place overrides here #define RGBLIGHT_TIMER +#define RGBLIGHT_EFFECT_SNAKE_LENGTH 3 +#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 +#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 2 #endif From 9b0e21f87f446935f29254bb623c2cfe29472b6e Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Oct 2016 19:26:16 +0300 Subject: [PATCH 09/19] Tunable RGB light intervals --- quantum/rgblight.c | 6 ++++++ quantum/rgblight.h | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/quantum/rgblight.c b/quantum/rgblight.c index f82e3ec558..9eac87a207 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -42,10 +42,16 @@ const uint8_t RGBLED_BREATHING_TABLE[] PROGMEM = { 37, 35, 33, 31, 29, 27, 25, 23, 21, 20, 18, 17, 15, 14, 12, 11, 10, 9, 7, 6, 5, 5, 4, 3, 2, 2, 1, 1, 1, 0, 0, 0 }; + +__attribute__ ((weak)) const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {30, 20, 10, 5}; +__attribute__ ((weak)) const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {120, 60, 30}; +__attribute__ ((weak)) const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {100, 50, 20}; +__attribute__ ((weak)) const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20}; +__attribute__ ((weak)) const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {100, 50, 20}; rgblight_config_t rgblight_config; diff --git a/quantum/rgblight.h b/quantum/rgblight.h index def26c428c..17f04ffcf2 100644 --- a/quantum/rgblight.h +++ b/quantum/rgblight.h @@ -40,6 +40,12 @@ #include "eeconfig.h" #include "light_ws2812.h" +extern const uint8_t RGBLED_BREATHING_INTERVALS[4] PROGMEM; +extern const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[3] PROGMEM; +extern const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[3] PROGMEM; +extern const uint8_t RGBLED_SNAKE_INTERVALS[3] PROGMEM; +extern const uint8_t RGBLED_KNIGHT_INTERVALS[3] PROGMEM; + typedef union { uint32_t raw; struct { From 02c9a992157d15c4988b9dc46cfa2f76bfea655c Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Oct 2016 19:27:11 +0300 Subject: [PATCH 10/19] Tune snake and knight intervals for Cluecard --- keyboards/cluecard/keymaps/rgb_effects/keymap.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/keyboards/cluecard/keymaps/rgb_effects/keymap.c b/keyboards/cluecard/keymaps/rgb_effects/keymap.c index 3b68558254..74c95ce8a8 100644 --- a/keyboards/cluecard/keymaps/rgb_effects/keymap.c +++ b/keyboards/cluecard/keymaps/rgb_effects/keymap.c @@ -10,6 +10,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; +const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {255, 170, 85}; +const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {255, 170, 85}; + void matrix_init_user(void) { } From db4dce731216cb6cdac65cb528329fd0caca5aa3 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Oct 2016 19:37:47 +0300 Subject: [PATCH 11/19] Update the Cluecard readme files --- keyboards/cluecard/keymaps/default/readme.md | 4 ++++ keyboards/cluecard/keymaps/rgb_effects/readme.md | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/keyboards/cluecard/keymaps/default/readme.md b/keyboards/cluecard/keymaps/default/readme.md index 9e3b97beac..fa4e8ccad4 100644 --- a/keyboards/cluecard/keymaps/default/readme.md +++ b/keyboards/cluecard/keymaps/default/readme.md @@ -1 +1,5 @@ # The default keymap for cluecard + +Note that this keymap has audio enabled, so the RGB mode button does not go through the different effects. +So the LEDs will still show a static light, that is configurable with the hue, staturation and brightness +buttons. You can of course also turn them on and off with the on/off button. diff --git a/keyboards/cluecard/keymaps/rgb_effects/readme.md b/keyboards/cluecard/keymaps/rgb_effects/readme.md index fa710b4641..949cac394e 100644 --- a/keyboards/cluecard/keymaps/rgb_effects/readme.md +++ b/keyboards/cluecard/keymaps/rgb_effects/readme.md @@ -1,3 +1,7 @@ # RGB effect test keymap for cluecard -This keymap has audio disabled, and the RGB mode button does not go through the different effects +This keymap is made for testing the RGB effects. Audio is disabled and the mode buttons goes through each +effect. If you run HID-listen you will be able to see which effect is active. For a list of effects, check +the `rgblight.c` file. + +The hue, saturation and brightness buttons will work depending on which effect is active. From 92a3a96849aee708753a6623b0db228023e3baf8 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Oct 2016 19:47:05 +0300 Subject: [PATCH 12/19] Apply the dim curve to the RGB output Just like it's supposed to be used. It now looks much better. --- quantum/rgblight.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/quantum/rgblight.c b/quantum/rgblight.c index f82e3ec558..b36a1fda0e 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -55,13 +55,8 @@ uint8_t rgblight_inited = 0; void sethsv(uint16_t hue, uint8_t sat, uint8_t val, struct cRGB *led1) { - // Convert hue, saturation, and value (HSV/HSB) to RGB. DIM_CURVE is used only - // on value and saturation (inverted). This looks the most natural. uint8_t r = 0, g = 0, b = 0, base, color; - val = pgm_read_byte(&DIM_CURVE[val]); - sat = 255 - pgm_read_byte(&DIM_CURVE[255 - sat]); - if (sat == 0) { // Acromatic color (gray). Hue doesn't mind. r = val; g = val; @@ -103,6 +98,9 @@ void sethsv(uint16_t hue, uint8_t sat, uint8_t val, struct cRGB *led1) { break; } } + r = pgm_read_byte(&DIM_CURVE[r]); + g = pgm_read_byte(&DIM_CURVE[g]); + b = pgm_read_byte(&DIM_CURVE[b]); setrgb(r, g, b, led1); } From ffae9d84c5279b463da112ee15568d536649b819 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Oct 2016 19:53:41 +0300 Subject: [PATCH 13/19] CIE 1931 dim curve --- quantum/rgblight.c | 47 +++++++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/quantum/rgblight.c b/quantum/rgblight.c index b36a1fda0e..9ddc243b2a 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -6,24 +6,37 @@ #include "rgblight.h" #include "debug.h" +// Lightness curve using the CIE 1931 lightness formula +//Generated by the python script provided in http://jared.geek.nz/2013/feb/linear-led-pwm const uint8_t DIM_CURVE[] PROGMEM = { - 0, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, - 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, - 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, - 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, - 15, 15, 16, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, - 20, 20, 21, 21, 22, 22, 22, 23, 23, 24, 24, 25, 25, 25, 26, 26, - 27, 27, 28, 28, 29, 29, 30, 30, 31, 32, 32, 33, 33, 34, 35, 35, - 36, 36, 37, 38, 38, 39, 40, 40, 41, 42, 43, 43, 44, 45, 46, 47, - 48, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 68, 69, 70, 71, 73, 74, 75, 76, 78, 79, 81, 82, - 83, 85, 86, 88, 90, 91, 93, 94, 96, 98, 99, 101, 103, 105, 107, 109, - 110, 112, 114, 116, 118, 121, 123, 125, 127, 129, 132, 134, 136, 139, 141, 144, - 146, 149, 151, 154, 157, 159, 162, 165, 168, 171, 174, 177, 180, 183, 186, 190, - 193, 196, 200, 203, 207, 211, 214, 218, 222, 226, 230, 234, 238, 242, 248, 255 -}; + 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, + 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, + 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, + 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, + 13, 14, 14, 15, 15, 15, 16, 16, 17, 17, + 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, + 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, + 28, 28, 29, 29, 30, 31, 31, 32, 32, 33, + 34, 34, 35, 36, 37, 37, 38, 39, 39, 40, + 41, 42, 43, 43, 44, 45, 46, 47, 47, 48, + 49, 50, 51, 52, 53, 54, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 70, 71, 72, 73, 74, 75, 76, 77, 79, + 80, 81, 82, 83, 85, 86, 87, 88, 90, 91, + 92, 94, 95, 96, 98, 99, 100, 102, 103, 105, + 106, 108, 109, 110, 112, 113, 115, 116, 118, 120, + 121, 123, 124, 126, 128, 129, 131, 132, 134, 136, + 138, 139, 141, 143, 145, 146, 148, 150, 152, 154, + 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, + 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, + 196, 198, 200, 202, 204, 207, 209, 211, 214, 216, + 218, 220, 223, 225, 228, 230, 232, 235, 237, 240, + 242, 245, 247, 250, 252, 255, + }; + const uint8_t RGBLED_BREATHING_TABLE[] PROGMEM = { 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 5, 5, 6, 7, 9, 10, 11, 12, 14, 15, 17, 18, 20, 21, 23, 25, 27, 29, 31, 33, 35, From e95c1e3f2c5137b114aa947f875c52e4a5c74b5d Mon Sep 17 00:00:00 2001 From: Nathan Johnson Date: Sat, 8 Oct 2016 13:20:36 -0500 Subject: [PATCH 14/19] Adding whiskey_tango_foxtrot_capslock ergodox keymap --- .../keymap.c | 231 ++++++++++++++++++ .../osx_whiskey_tango_foxtrot_capslock.png | Bin 0 -> 185064 bytes .../readme.md | 38 +++ 3 files changed, 269 insertions(+) create mode 100644 keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/keymap.c create mode 100644 keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/osx_whiskey_tango_foxtrot_capslock.png create mode 100644 keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/readme.md diff --git a/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/keymap.c b/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/keymap.c new file mode 100644 index 0000000000..98d2836ab2 --- /dev/null +++ b/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/keymap.c @@ -0,0 +1,231 @@ +/* + * This is built out of frustration with OSX / Sierra caps lock delay. + * Fake it till you make it! + */ + +#include "ergodox.h" +#include "debug.h" +#include "action_layer.h" +#include "timer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +#define BLINK_BASE 150U // timer threshold for blinking on MDIA layer + +typedef enum onoff_t {OFF, ON} onoff; + +#define caps_led_on ergodox_right_led_2_on +#define caps_led_off ergodox_right_led_2_off + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | | ` | 7 | 8 | 9 | 0 | - | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | CapsL | A | S | D | F | G |------| |------| H | J | K | L | ; | " | + * |--------+------+------+------+------+------| ~L1 | | ~L1 |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Ctrl | Opt | Cmd | Left | Right| | Down | Up | Ctrl | Cmd | Opt | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | L1 | | Alt | Ctrl ] + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * |Backsp| Del |------| |------| Enter | Spc | + * | | | End | | PgDn | | | + * `--------------------' `----------------------' + */ + + [BASE] = KEYMAP( // layer 0 : default + // left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, + KC_TAB, M(KC_Q), M(KC_W), M(KC_E), M(KC_R), M(KC_T), KC_LBRC, + M(KC_CAPS), M(KC_A), M(KC_S), M(KC_D), M(KC_F), M(KC_G), + KC_LSFT, M(KC_Z), M(KC_X), M(KC_C), M(KC_V), M(KC_B), KC_FN0, + KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT, KC_RGHT, + KC_TRNS, KC_FN1, + KC_HOME, + KC_BSPC, KC_DEL, KC_END, + // right hand + KC_GRV, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, + KC_RBRC, M(KC_Y), M(KC_U), M(KC_I), M(KC_O), M(KC_P), KC_BSLS, + M(KC_H), M(KC_J), M(KC_K), M(KC_L), KC_SCLN, KC_QUOT, + KC_FN0, M(KC_N), M(KC_M), KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_DOWN, KC_UP, KC_RCTL, KC_RGUI, KC_RALT, + KC_RALT, KC_RCTL, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | F1 | F2 | F3 | F4 | F5 | F6 | | | F7 | F8 | F9 | F10 | F11 | F12 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | L0 | L2 | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS + [SYMB] = KEYMAP( + // left hand + KC_GRV ,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + 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_FN3, KC_FN2, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + 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 + ), +/* Keymap 2: Media and tenkey + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | BOOTL | | Mute | Vol- | Vol+ | F14 | F15 | | | | NumLk| / | * | - | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | 7 | 8 | 9 | + | | + * |--------+------+------+------+------+------| | | |------+-----+-------+------+------+--------| + * | | | | | | |------| |------| | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | 1 | 2 | 3 | Enter| | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | 0 | 0 | . | Enter| | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | L1 | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + // MEDIA AND TENKEY + [MDIA] = KEYMAP( + KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_F14, KC_F15, + KC_TRNS, 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_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, + KC_FN4, KC_NO, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_NO, KC_NO, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_NO, + KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_NO, + KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_NO, + KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_PENT, KC_NO, + KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_NO, + KC_NO, KC_NO, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + ACTION_LAYER_MOMENTARY(SYMB), // FN0 - Momentary Layer 1 (Symbols) + ACTION_LAYER_ON(SYMB,ON_RELEASE), // FN1 - Enable Layer 1 (Symbols) + ACTION_LAYER_ON(MDIA,ON_RELEASE), // FN2 - Enable Layer 2 (Media) + ACTION_LAYER_OFF(SYMB,ON_RELEASE), // FN3 - Disable Layer 1 (Symbols) + ACTION_LAYER_OFF(MDIA,ON_RELEASE), // FN4 - Disable Layer 2 (MMedia) + ACTION_LAYER_MOMENTARY(MDIA) // FN5 - Momentary Layer 2 (Mdia) +}; + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + static onoff caps_state = OFF; + switch(id) { + case KC_CAPS: + if (record->event.pressed) { + // Toggle caps state; + if (caps_state == OFF) { + // Turn it on then! + caps_led_on(); + caps_state = ON; + } else { + caps_led_off(); + caps_state = OFF; + } + } + break; + default: + if (record->event.pressed) { + bool shifted = false; + if (caps_state == ON && get_mods() == 0) { + register_code(KC_LSFT); + shifted = true; + } + register_code(id); + if(shifted) { + unregister_code(KC_LSFT); + } + } else { + unregister_code(id); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +} +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + static onoff board_led_state = OFF; + static uint16_t dt = 0; + static uint8_t oldlayer = 0; + + if(oldlayer != layer) { + // Layer was just toggled. + if(layer == BASE) { + ergodox_board_led_off(); + board_led_state = OFF; + } else { + ergodox_board_led_on(); + board_led_state = ON; + } + } else if (layer >= MDIA) { + // We need to do blinking. + if(timer_elapsed(dt) > BLINK_BASE) { + // toggle + dt = timer_read(); + if(board_led_state == OFF) { + ergodox_board_led_on(); + board_led_state = ON; + } else { + ergodox_board_led_off(); + board_led_state = OFF; + } + } + } + oldlayer = layer; +} diff --git a/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/osx_whiskey_tango_foxtrot_capslock.png b/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/osx_whiskey_tango_foxtrot_capslock.png new file mode 100644 index 0000000000000000000000000000000000000000..8d49e5e61d8bb06bcfd0fb80ec12891027ff5b31 GIT binary patch literal 185064 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 Date: Tue, 20 Sep 2016 11:38:45 +0200 Subject: [PATCH 15/19] init keymap --- keyboards/ergodox/keymaps/pvinis/Makefile | 9 + keyboards/ergodox/keymaps/pvinis/keymap.c | 429 ++++++++++++++++++++++ 2 files changed, 438 insertions(+) create mode 100644 keyboards/ergodox/keymaps/pvinis/Makefile create mode 100644 keyboards/ergodox/keymaps/pvinis/keymap.c diff --git a/keyboards/ergodox/keymaps/pvinis/Makefile b/keyboards/ergodox/keymaps/pvinis/Makefile new file mode 100644 index 0000000000..7ceb51ce4c --- /dev/null +++ b/keyboards/ergodox/keymaps/pvinis/Makefile @@ -0,0 +1,9 @@ +CONSOLE_ENABLE = no # for debugging + +SLEEP_LED_ENABLE = no # no led blinking while sleeping +NKRO_ENABLE = yes # disable for windows +TAP_DANCE_ENABLE = yes # tap-tap-tap + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/ergodox/keymaps/pvinis/keymap.c b/keyboards/ergodox/keymaps/pvinis/keymap.c new file mode 100644 index 0000000000..fce78772a0 --- /dev/null +++ b/keyboards/ergodox/keymaps/pvinis/keymap.c @@ -0,0 +1,429 @@ +// pvinis' ergodox keymap + +#include "ergodox.h" +#include "mousekey.h" + +// easier name for left ctrl-alt-gui +#define ALLM(kc) LCAG(kc) + +// layers +enum { + BASE = 0, + BEGIN, + QWERTY, + CARPALX, + SYSCTL, +}; + +// extra keys +enum { + NONE = 0, + + // mouse + MS_UL, // up left + MS_UR, // up right + MS_DL, // down left + MS_DR, // down right + + // tap dance + TD_FLSH, // flash keyboard +}; + +// application selection +// this is sending ctrl-alt-gui-, and this is picked up by hammerspoon +#define AP_SLCK ALLM(KC_S) +#define AP_XCOD ALLM(KC_X) + +// keymaps +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* BASE + * the base of the keyboard. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * |4x FLASH| | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |BEGIN |QWERTY| |SYSCTL| | + * ,------|------|------| |------+--------+------. + * | | |CARPAL| |Slack | | | + * |Backsp|LShift|------| |------| Enter |Space | + * | | |SYSCTL| |Xcode | | | + * `--------------------' `----------------------' + */ +[BASE] = KEYMAP( + TD(TD_FLSH) ,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 ,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 + + ,TG(BEGIN) ,TG(QWERTY) + ,TG(CARPALX) + ,KC_BSPC ,KC_LSFT ,TG(SYSCTL) + + ,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 ,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 + + ,TG(SYSCTL) ,KC_NO + ,AP_SLCK + ,AP_XCOD ,KC_ENT ,KC_SPC +), + +/* BEGIN + * a beginner's keymap i currently use. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | 6 | | 6 | 7 | 8 | 9 | 0 | - | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Esc/Ctrl| A | S | D | F | G |------| |------| H | J | K | L | ; | Enter | + * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | ` | Cmd | | Cmd | | | | | ' | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+--------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `----------------------' + */ +[BEGIN] = KEYMAP( + KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 +,KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC +,CTL_T(KC_ESC) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G +,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LPRN +,KC_TRNS ,KC_GRV ,KC_LGUI ,KC_LEFT ,KC_RIGHT + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS ,KC_EQL + ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS + ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_ENT + ,KC_RPRN ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT + ,KC_UP ,KC_DOWN ,KC_TRNS ,KC_QUOT ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS +), + +/* QWERTY + * the default qwerty keymap. not really used, but i'll keep it here for now. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | 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 | , | . | / | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+--------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `----------------------' + */ +[QWERTY] = KEYMAP( + KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_TRNS +,KC_TRNS ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_TRNS +,KC_TRNS ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G +,KC_TRNS ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,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_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_TRNS + ,KC_TRNS ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_TRNS + ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_TRNS + ,KC_TRNS ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS +), + +/* CARPALX + * the keymap i would like to transition to. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | | | RIGHT| 6 | 7 | 8 | 9 | 0 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | Q | G | M | L | W | | | L1 | Y | F | U | B | ; | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | D | S | T | N | R |------| |------| I | A | E | O | H | | + * |--------+------+------+------+------+------| | | Meh |------+------+------+------+------+--------| + * | | Z | X | C | V | J | | | | K | P | , | . | / | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | Up | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[CARPALX] = KEYMAP( + KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_TRNS +,KC_TRNS ,KC_Q ,KC_G ,KC_M ,KC_L ,KC_W ,KC_TRNS +,KC_TRNS ,KC_D ,KC_S ,KC_T ,KC_N ,KC_R +,KC_TRNS ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_J ,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_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_TRNS + ,KC_TRNS ,KC_Y ,KC_F ,KC_U ,KC_B ,KC_SCLN ,KC_TRNS + ,KC_I ,KC_A ,KC_E ,KC_O ,KC_H ,KC_TRNS + ,KC_TRNS ,KC_K ,KC_P ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS +), + + +/* SYSCTL + * a keymap to control my system. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | Mute |VolDn |VolUp | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | |MsUpL | MsUp |MsUpR | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| |MsLeft| MsDn |MsRght| | Lock | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | |MsDnL | MsDn | | | Sleep | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | Power| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | |MidClk| + * ,------|------|------| |------+------+------. + * | | | | | |Left |Right | + * | | |------| |------| Click| Click| + * | | | | | | | | + * `--------------------' `--------------------' + */ +[SYSCTL] = KEYMAP( + KC_TRNS ,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 ,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 ,KC_NO + ,KC_NO + ,KC_NO ,KC_NO ,KC_NO + + /*,KC_POP*/,KC_NO ,KC_NO ,KC_NO ,KC_MUTE ,KC_VOLD ,KC_VOLU ,KC_NO + /*,KC_PTRN*/,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,LCTL(LSFT(KC_PWR)) + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_SLEP + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_PWR + + ,KC_NO ,KC_NO + ,KC_NO + ,KC_NO ,KC_NO ,KC_NO +), + +/* TEMPLATE + * keymap template with transparent and non-transparent keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+--------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `----------------------' + */ +/* +[TEMPLATE] = 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_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_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS +), +[TEMPLATE] = KEYMAP( + 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 ,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 + + ,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 ,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 ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_NO ,KC_NO + ,KC_NO + ,KC_NO ,KC_NO ,KC_NO +), +*/ +}; + +// keyboard initialization +void matrix_init_user() { + ergodox_led_all_on(); + for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { + ergodox_led_all_set(i); + _delay_ms(5); + } + _delay_ms(1000); + for (int i = LED_BRIGHTNESS_LO; i > 0; i--) { + ergodox_led_all_set(i); + _delay_ms(10); + } + ergodox_led_all_off(); +} + +// extra keys +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + + // mouse + case MS_UL: + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_LEFT); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_LEFT); + } + break; + case MS_UR: + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_RIGHT); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_RIGHT); + } + break; + case MS_DL: + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_LEFT); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_LEFT); + } + break; + case MS_DR: + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_RIGHT); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_RIGHT); + } + break; + } + return MACRO_NONE; +} + +// tap dances + +// flash keyboard on 4x tap, with leds +void flash_each_tap(qk_tap_dance_state_t *state, void *user_data) { + switch (state->count) { + case 1: + ergodox_right_led_3_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + case 3: + ergodox_right_led_1_on(); + break; + case 4: + ergodox_right_led_3_off(); + _delay_ms(50); + ergodox_right_led_2_off(); + _delay_ms(50); + ergodox_right_led_1_off(); + break; + } +} + +void flash_dance_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count >= 4) { + reset_keyboard(); + reset_tap_dance(state); + } +} + +void flash_dance_reset(qk_tap_dance_state_t *state, void *user_data) { + ergodox_right_led_1_off(); + _delay_ms(50); + ergodox_right_led_2_off(); + _delay_ms(50); + ergodox_right_led_3_off(); +} + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED( flash_each_tap, flash_dance_finished, flash_dance_reset ), +}; From bcc0fa5c81e2a1725379c86b095bd627fb89d29d Mon Sep 17 00:00:00 2001 From: Pavlos Vinieratos Date: Thu, 22 Sep 2016 11:12:27 +0200 Subject: [PATCH 16/19] add messenger --- keyboards/ergodox/keymaps/pvinis/keymap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/keyboards/ergodox/keymaps/pvinis/keymap.c b/keyboards/ergodox/keymaps/pvinis/keymap.c index fce78772a0..8e16114543 100644 --- a/keyboards/ergodox/keymaps/pvinis/keymap.c +++ b/keyboards/ergodox/keymaps/pvinis/keymap.c @@ -33,6 +33,7 @@ enum { // this is sending ctrl-alt-gui-, and this is picked up by hammerspoon #define AP_SLCK ALLM(KC_S) #define AP_XCOD ALLM(KC_X) +#define AP_MSGR ALLM(KC_M) // keymaps const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -55,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,------|------|------| |------+--------+------. * | | |CARPAL| |Slack | | | * |Backsp|LShift|------| |------| Enter |Space | - * | | |SYSCTL| |Xcode | | | + * | | |SYSCTL| |Msngr | | | * `--------------------' `----------------------' */ [BASE] = KEYMAP( @@ -77,7 +78,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,TG(SYSCTL) ,KC_NO ,AP_SLCK - ,AP_XCOD ,KC_ENT ,KC_SPC + ,AP_MSGR ,KC_ENT ,KC_SPC ), /* BEGIN From 538cdda78ec2e79a965205d0df974dfa5855c68e Mon Sep 17 00:00:00 2001 From: Pavlos Vinieratos Date: Thu, 22 Sep 2016 11:38:17 +0200 Subject: [PATCH 17/19] use wait_ms instead of _delay_ms --- keyboards/ergodox/keymaps/pvinis/keymap.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/keyboards/ergodox/keymaps/pvinis/keymap.c b/keyboards/ergodox/keymaps/pvinis/keymap.c index 8e16114543..df906201a8 100644 --- a/keyboards/ergodox/keymaps/pvinis/keymap.c +++ b/keyboards/ergodox/keymaps/pvinis/keymap.c @@ -331,12 +331,12 @@ void matrix_init_user() { ergodox_led_all_on(); for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { ergodox_led_all_set(i); - _delay_ms(5); + wait_ms(5); } - _delay_ms(1000); + wait_ms(1000); for (int i = LED_BRIGHTNESS_LO; i > 0; i--) { ergodox_led_all_set(i); - _delay_ms(10); + wait_ms(10); } ergodox_led_all_off(); } @@ -402,9 +402,9 @@ void flash_each_tap(qk_tap_dance_state_t *state, void *user_data) { break; case 4: ergodox_right_led_3_off(); - _delay_ms(50); + wait_ms(50); ergodox_right_led_2_off(); - _delay_ms(50); + wait_ms(50); ergodox_right_led_1_off(); break; } @@ -419,9 +419,9 @@ void flash_dance_finished(qk_tap_dance_state_t *state, void *user_data) { void flash_dance_reset(qk_tap_dance_state_t *state, void *user_data) { ergodox_right_led_1_off(); - _delay_ms(50); + wait_ms(50); ergodox_right_led_2_off(); - _delay_ms(50); + wait_ms(50); ergodox_right_led_3_off(); } From 0853227edecf256a398347fb292a9fda74f242cb Mon Sep 17 00:00:00 2001 From: Pavlos Vinieratos Date: Tue, 11 Oct 2016 10:32:34 +0200 Subject: [PATCH 18/19] add readme --- keyboards/ergodox/keymaps/pvinis/Changelog.md | 7 ++ keyboards/ergodox/keymaps/pvinis/Readme.md | 65 +++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 keyboards/ergodox/keymaps/pvinis/Changelog.md create mode 100644 keyboards/ergodox/keymaps/pvinis/Readme.md diff --git a/keyboards/ergodox/keymaps/pvinis/Changelog.md b/keyboards/ergodox/keymaps/pvinis/Changelog.md new file mode 100644 index 0000000000..e5816200b8 --- /dev/null +++ b/keyboards/ergodox/keymaps/pvinis/Changelog.md @@ -0,0 +1,7 @@ +## v0.3 + +*2016-10-11* + +### Starting point + +* The starting point of this keymap. A beginner layout, and a couple placeholders. diff --git a/keyboards/ergodox/keymaps/pvinis/Readme.md b/keyboards/ergodox/keymaps/pvinis/Readme.md new file mode 100644 index 0000000000..2a4a0c8f3d --- /dev/null +++ b/keyboards/ergodox/keymaps/pvinis/Readme.md @@ -0,0 +1,65 @@ +pvinis' keymap +============== + +This is a getting-used-to keymap for the [ErgoDox EZ][ez]. It's very much a work in progress. + +[ez]: https://ergodox-ez.com/ + +## Table of Contents + +* [Todo](#todo) +* [Layouts](#layouts) + - [Base layer](#base-layer) + - [Beginner layer](#beginner-layer) + - [QWERTY layer](#qwerty-layer) + - [CARPALX layer](#carpalx-layer) + - [System Control layer](#system-control-layer) + - [Template layers](#template-layers) +* [Building](#building) + +# Todo + +- [ ] Generate images from keymap +- [ ] Implement algernon's heatmap +- [ ] Implement `KC_POP` + +# Layouts + +## Base layer + +This is the base layer that contains the common buttons of all keymaps. Right now, it has the top left button as a `flash` button when it's tapped 4 times, and the two thumb islands. The islands contain the `space` and `enter` keys on the right, the `backspace` and `shift` on the left, and all the 1x1 keys are just layer switches. +Every time I connect the keyboard, I press the `BEGIN` layer switch, and then start typing. +Recently, I added a few application "shortcuts", that basically call `ctrl`+`alt`+`cmd`+``, and `` is `S` for Slack, `X` for Xcode, `M` for Messenger. Using [Hammerspoon][hammerspoon], I show/hide the application. + +[hammerspoon]: http://www.hammerspoon.org/ + +## Beginner layer + +This is a basic keymap I use right now until I'm comfortable typing on the Ergodox. Currently uses a QWERTY layout, and the `([{}])` on the middle keys. Not a perfect layout, and its going to go away at some point, but for now thats my daily driver. + +## QWERTY layer + +This is basically the same as the `BEGIN` layer, but it might go away. I'm not using it, but I should have a QWERTY layout on the keyboard, in case someone else wants to try it out, or if I completely forget how keyboards work! At some point, this and the `BEGIN` layer will become one. + +## CARPALX layer + +This is here as a placeholder. I want to transition to [Carpalx QGMLWY][carpalx] or [White][white] at some point. They both look very interesting and more comfortable to type on, but after I'm confident with typing on the Ergodox. + +[carpalx]: http://mkweb.bcgsc.ca/carpalx/?full_optimization +[white]: https://github.com/mw8/white_keyboard_layout + +## System Control layer + +This one is a layer that, in time, will have controls like mouse movement, volume up/down, mute, sleep, restart, shutdown, etc. + +## Template layers + +I have two commented out layers that are just templates, so I can easily create a new layer. + +# Building + +``` +$ git clone https://github.com/jackhumbert/qmk_firmware.git +$ cd qmk_firmware/keyboards/ergodox/keymaps/pvinis +$ make +``` From e27a754b70434de88a37c4a572e4ca5f7730ff58 Mon Sep 17 00:00:00 2001 From: Jack & Erez Date: Wed, 12 Oct 2016 22:18:27 -0400 Subject: [PATCH 19/19] [Jack & Erez] Simplifies and documents TO --- keyboards/ergodox/keymaps/dave/keymap.c | 12 ++++++------ quantum/keymap.h | 5 ++++- readme.md | 2 ++ 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/keyboards/ergodox/keymaps/dave/keymap.c b/keyboards/ergodox/keymaps/dave/keymap.c index 32c70097b0..23c4e04906 100644 --- a/keyboards/ergodox/keymaps/dave/keymap.c +++ b/keyboards/ergodox/keymaps/dave/keymap.c @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_H, CTL_T(KC_GRV),KC_NUBS,KC_NO, KC_NO, KC_LALT, KC_PSCREEN, KC_PSCREEN, - TO(PROG, ON_PRESS), + TO(PROG), KC_SPC, MO(NAVI), KC_LGUI, // right hand KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, @@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_RALT,KC_LBRC,KC_RBRC,KC_NO, CTL_T(KC_QUOT), MT(0x5, KC_NO), MT(0x5, KC_NO), - TO(PROG, ON_PRESS), + TO(PROG), KC_RGUI, MO(PROG), KC_SPC ), @@ -81,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - TO(NAVI, ON_PRESS), + TO(NAVI), KC_TRNS, KC_TRNS, KC_TRNS, // right hand KC_TRNS, KC_TRNS, KC_NO, KC_PSLS, KC_PAST, KC_PMNS, KC_EQUAL, @@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PENT, KC_TRNS, KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_TRNS, KC_TRNS, KC_TRNS, - TO(NAVI, ON_PRESS), + TO(NAVI), KC_TRNS, KC_TRNS, KC_TRNS ), @@ -123,7 +123,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, - TO(BASE, ON_PRESS), + TO(BASE), KC_TRNS, KC_TRNS, KC_TRNS, // right hand KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, @@ -132,7 +132,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - TO(BASE, ON_PRESS), + TO(BASE), KC_TRNS, KC_TRNS, KC_TRNS ), }; diff --git a/quantum/keymap.h b/quantum/keymap.h index 4b2192cb2e..85c090972d 100644 --- a/quantum/keymap.h +++ b/quantum/keymap.h @@ -296,7 +296,10 @@ enum quantum_keycodes { // ON_PRESS = 1 // ON_RELEASE = 2 // Unless you have a good reason not to do so, prefer ON_PRESS (1) as your default. -#define TO(layer, when) (layer | QK_TO | (when << 0x4)) +// In fact, we changed it to assume ON_PRESS for sanity/simplicity. If needed, you can add your own +// keycode modeled after the old version, kept below for this. +/* #define TO(layer, when) (layer | QK_TO | (when << 0x4)) */ +#define TO(layer) (layer | QK_TO | (ON_PRESS << 0x4)) // Momentary switch layer - 256 layer max #define MO(layer) (layer | QK_MOMENTARY) diff --git a/readme.md b/readme.md index f20ab41b16..80f0a3ab27 100644 --- a/readme.md +++ b/readme.md @@ -379,6 +379,8 @@ Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - `TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. +`TO(layer)` - Goes to a layer. This code is special, because it lets you go either up or down the stack -- just goes directly to the layer you want. So while other codes only let you go _up_ the stack (from layer 0 to layer 3, for example), `TO(2)` is going to get you to layer 2, no matter where you activate it from -- even if you're currently on layer 5. This gets activated on keydown (as soon as the key is pressed). + ### Fun with modifier keys