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 
+
+![Layout](keyboard-layout.png "Practical 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
+  }
+}