From f9881793e3c9d521cc8c5e632114261d1be9f421 Mon Sep 17 00:00:00 2001 From: Danny Nguyen Date: Tue, 31 Oct 2017 12:03:31 -0400 Subject: [PATCH] Add hexwire keymap for Eco --- keyboards/eco/eco.h | 17 +++- keyboards/eco/keymaps/hexwire/keymap.c | 120 +++++++++++++++++++++++++ keyboards/eco/keymaps/hexwire/rules.mk | 25 ++++++ 3 files changed, 160 insertions(+), 2 deletions(-) create mode 100644 keyboards/eco/keymaps/hexwire/keymap.c create mode 100644 keyboards/eco/keymaps/hexwire/rules.mk diff --git a/keyboards/eco/eco.h b/keyboards/eco/eco.h index 4f8cfabd8..2615ac1ae 100644 --- a/keyboards/eco/eco.h +++ b/keyboards/eco/eco.h @@ -8,7 +8,20 @@ #include "rev2.h" #endif - #include "quantum.h" -#endif \ No newline at end of file +// Used to create a keymap using only KC_ prefixed keys +#define KC_KEYMAP( \ + k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, k013, k014, \ + k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114, \ + k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, k214, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, k314 \ + ) \ + { \ + { KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k010, KC_##k011, KC_##k012, KC_##k013, KC_##k014 }, \ + { KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k110, KC_##k111, KC_##k112, KC_##k113, KC_##k114 }, \ + { KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k210, KC_##k211, KC_##k212, KC_##k213, KC_##k214 }, \ + { KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k310, KC_##k311, KC_##k312, KC_##k313, KC_##k314 } \ + } + +#endif diff --git a/keyboards/eco/keymaps/hexwire/keymap.c b/keyboards/eco/keymaps/hexwire/keymap.c new file mode 100644 index 000000000..c20d45c2b --- /dev/null +++ b/keyboards/eco/keymaps/hexwire/keymap.c @@ -0,0 +1,120 @@ + +// Default ECO Layout +// KLE here : http://www.keyboard-layout-editor.com/#/gists/0733eca6b4cb88ff9d7de746803f4039 + +#include "eco.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _LOWER 1 +#define _RAISE 2 +#define _FN3 3 + +enum eco_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, +}; + +// Fillers to make layering more clear +#define KC_ KC_TRNS +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +#define KC_RST RESET +#define KC_DBUG DEBUG +#define KC_LOWR MO(_LOWER) +#define KC_RASE MO(_RAISE) +#define KC_ENTS MT(MOD_LSFT, KC_ENT) +#define KC_ESCC MT(MOD_LCTL, KC_ESC) +#define KC_GRVF LT(_FN3, KC_GRV) +#define KC_CAPW LGUI(LSFT(KC_3)) // Capture whole screen +#define KC_CPYW LGUI(LSFT(LCTL(KC_3))) // Copy whole screen +#define KC_CAPP LGUI(LSFT(KC_4)) // Capture portion of screen +#define KC_CPYP LGUI(LSFT(LCTL(KC_4))) // Copy portion of screen +#define KC_RTOG RGB_TOG +#define KC_RMOD RGB_MOD +#define KC_RHUI RGB_HUI +#define KC_RHUD RGB_HUD +#define KC_RSAI RGB_SAI +#define KC_RSAD RGB_SAD +#define KC_RVAI RGB_VAI +#define KC_RVAD RGB_VAD + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----+----+----+----+----. + TAB , Q , W , E , R , T ,LPRN,RPRN, Y , U , I , O , P ,MINS, + //|----+----+----+----+----+----+----+----+----+----+----+----+----+----| + ESCC, A , S , D , F , G ,LBRC,RBRC, H , J , K , L ,SCLN,QUOT, + //|----+----+----+----+----+----+----+----+----+----+----+----+----+----| + LSFT, Z , X , C , V , B ,LCBR,RCBR, N , M ,COMM,DOT ,SLSH,ENTS, + //|----+----+----+----+----+----+----+----+----+----+----+----+----+----| + GRVF,LCTL,LALT,LGUI,LOWR,SPC ,SPC ,BSPC,BSPC,RASE,LEFT,DOWN, UP ,RGHT + //`----+----+----+----+----+----+----+----+----+----+----+----+----+----' + ), + + + [_LOWER] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----+----+----+----+----. + , 1 , 2 , 3 , 4 , 5 ,LPRN,RPRN, 6 , 7 , 8 , 9 , 0 , , + //|----+----+----+----+----+----+----+----+----+----+----+----+----+----| + DEL ,CAPP,LEFT,RGHT, UP ,LBRC,LBRC,RBRC,RBRC, P4 , P5 , P6 ,PLUS,PIPE, + //|----+----+----+----+----+----+----+----+----+----+----+----+----+----| + ,CPYP, , ,DOWN,LCBR,LCBR,RCBR,RCBR, P1 , P2 , P3 ,MINS, , + //|----+----+----+----+----+----+----+----+----+----+----+----+----+----| + , , , , , , ,DEL ,DEL , , P0 ,PDOT, , + //`----+----+----+----+----+----+----+----+----+----+----+----+----+----' + ), + + [_RAISE] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----+----+----+----+----. + ,EXLM, AT ,HASH,DLR ,PERC, , ,CIRC,AMPR,ASTR,LPRN,RPRN, , + //|----+----+----+----+----+----+----+----+----+----+----+----+----+----| + DEL ,MPRV,MNXT,VOLU,PGUP,UNDS, , ,EQL ,HOME, , , ,BSLS, + //|----+----+----+----+----+----+----+----+----+----+----+----+----+----| + MUTE,MSTP,MPLY,VOLD,PGDN,MINS, , ,PLUS,END , , , , , + //|----+----+----+----+----+----+----+----+----+----+----+----+----+----| + , , , , , , , , , , , , , + //`----+----+----+----+----+----+----+----+----+----+----+----+----+----' + ), + + [_FN3] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----+----+----+----+----. + F12 , F1 , F2 , F3 , F4 , F5 , , , F6 , F7 , F8 , F9 ,F10 ,F11 , + //|----+----+----+----+----+----+----+----+----+----+----+----+----+----| + RTOG,RMOD,RHUI,RSAI,RVAI, , , , , , , , , , + //|----+----+----+----+----+----+----+----+----+----+----+----+----+----| + RST ,DBUG,RHUD,RSAD,RVAD, , , , , , , , , , + //|----+----+----+----+----+----+----+----+----+----+----+----+----+----| + , , , , , , , , , , , , , + //`----+----+----+----+----+----+----+----+----+----+----+----+----+----' + ), + +}; + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + } + return true; +} + diff --git a/keyboards/eco/keymaps/hexwire/rules.mk b/keyboards/eco/keymaps/hexwire/rules.mk new file mode 100644 index 000000000..7dab97942 --- /dev/null +++ b/keyboards/eco/keymaps/hexwire/rules.mk @@ -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 = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +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. + +# 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 -- 2.39.2