From 56f86413e0d7606030cad68257a5d6287c9fd35f Mon Sep 17 00:00:00 2001 From: Elliot DeNolf <denolfe@gmail.com> Date: Thu, 11 Aug 2016 09:54:02 -0600 Subject: [PATCH] Add denolfe satan keymap --- keyboards/satan/keymaps/denolfe/Makefile | 20 ++ keyboards/satan/keymaps/denolfe/README.md | 12 ++ .../satan/keymaps/denolfe/keyboard-layout.png | Bin 0 -> 31762 bytes keyboards/satan/keymaps/denolfe/keymap.c | 171 ++++++++++++++++++ 4 files changed, 203 insertions(+) create mode 100644 keyboards/satan/keymaps/denolfe/Makefile create mode 100644 keyboards/satan/keymaps/denolfe/README.md create mode 100644 keyboards/satan/keymaps/denolfe/keyboard-layout.png create mode 100644 keyboards/satan/keymaps/denolfe/keymap.c diff --git a/keyboards/satan/keymaps/denolfe/Makefile b/keyboards/satan/keymaps/denolfe/Makefile new file mode 100644 index 000000000..c4adab737 --- /dev/null +++ b/keyboards/satan/keymaps/denolfe/Makefile @@ -0,0 +1,20 @@ + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= no # 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 # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +RGBLIGHT_ENABLE ?= no # Enable keyboard underlight functionality (+4870) +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality (+1150) +MIDI_ENABLE ?= no # MIDI controls +AUDIO_ENABLE ?= no +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/satan/keymaps/denolfe/README.md b/keyboards/satan/keymaps/denolfe/README.md new file mode 100644 index 000000000..30b94fcdd --- /dev/null +++ b/keyboards/satan/keymaps/denolfe/README.md @@ -0,0 +1,12 @@ +# denolfe's Layout +Customized Satan keymap + + + +## Programming Instructions: +`cd` into keymap directory, `make dfu` + +## Features +- Movement keys with <kbd>CapsLock</kbd> + <kbd>h</kbd>, <kbd>j</kbd>, <kbd>k</kbd>, <kbd>l</kbd> +- Media Keys +- Backlight control diff --git a/keyboards/satan/keymaps/denolfe/keyboard-layout.png b/keyboards/satan/keymaps/denolfe/keyboard-layout.png new file mode 100644 index 0000000000000000000000000000000000000000..d6d6ad57fb5b180334aefc429430fa867258cd6a GIT binary patch literal 31762 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 G4gDXMykHps literal 0 HcmV?d00001 diff --git a/keyboards/satan/keymaps/denolfe/keymap.c b/keyboards/satan/keymaps/denolfe/keymap.c new file mode 100644 index 000000000..2f6c8d8f4 --- /dev/null +++ b/keyboards/satan/keymaps/denolfe/keymap.c @@ -0,0 +1,171 @@ +#include "satan.h" + +#ifdef RGBLIGHT_ENABLE +#include "rgblight.h" +#endif + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// 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 _BL 0 +#define _FL 1 +#define _SL 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,-----------------------------------------------------------. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | + * |-----------------------------------------------------------| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl | + * `-----------------------------------------------------------' + */ +[_BL] = KEYMAP( + F(0), 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(_FL), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RGUI, KC_RCTL), + + /* Keymap _FL: Function Layer + * ,-----------------------------------------------------------. + * | | | | | | | | | | | | | | RESET| + * |-----------------------------------------------------------| + * | | | | | | | | | | | |BL-|BL+|BL | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | F1|F2 | F3|F4 | F5| F6| F7| F8| | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ +[_FL] = KEYMAP( + #ifdef RGBLIGHT_ENABLE + KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \ + 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, F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + #else + 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, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, KC_END, KC_MPRV, KC_MNXT, KC_MPLY, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, KC_HOME, LCTL(KC_LEFT), LCTL(KC_END), LCTL(KC_RIGHT), KC_TRNS, RESET, \ + KC_TRNS, KC_TRNS, F(9), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + #endif + +[_SL] = KEYMAP( + 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, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, LSFT(KC_END), KC_MPRV, KC_MNXT, KC_MPLY, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_LEFT), LSFT(KC_DOWN), LSFT(KC_UP), LSFT(KC_RIGHT), KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, LSFT(KC_HOME), LCTL(LSFT(KC_LEFT)), LCTL(LSFT(KC_END)), LCTL(LSFT(KC_RIGHT)), KC_TRNS, RESET, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; + +enum function_id { + SHIFT_ESC, + #ifdef RGBLIGHT_ENABLE + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL + #endif +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), + #ifdef RGBLIGHT_ENABLE + [1] = ACTION_FUNCTION(RGBLED_TOGGLE), + [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), + #endif + [9] = ACTION_LAYER_MODS(2, MOD_LSFT) +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + //led operations + #ifdef RGBLIGHT_ENABLE + case RGBLED_TOGGLE: + if (record->event.pressed) { + rgblight_toggle(); + } + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + #endif + } +}