summaryrefslogtreecommitdiffstats
path: root/keyboards/m10a/keymaps/gam3cat/keymap.c
diff options
context:
space:
mode:
authorGam3cat <31171909+Gam3cat@users.noreply.github.com>2018-02-28 13:44:27 -0800
committerJack Humbert <jack.humb@gmail.com>2018-02-28 16:44:27 -0500
commit2b8a82fb9defa95ca679672322e7f43052fdc44f (patch)
treec9a73b4d29b13024f4e416ec3bebbb77b4594395 /keyboards/m10a/keymaps/gam3cat/keymap.c
parent8e99fbc884d8599a18327f1bae82433fe11e9b7a (diff)
M10-A, M65-A, GonNerd keymaps (#2418)
* adding my keymap * update keymap * adding gamecat keymap for jc65 keyboard * updating jc65-gamecat keymap * updating jc65-gamecat keymap * updating jc65-gamecat keymap * updating jc65-gamecat keymap * M10a keymap and M65a updates * keymap updates * keymap updates * M10a/M65a keymap updates * M10a/M65a keymap updates * Delete test.txt * M65 keymap update * M65 keymap update * M65 keymap update * M65/M10 keymap updates * M65 keymap update * M65 keymap update * M65 keymap update * M65 keymap update * M65 keymap update * M65/M10 keymap update * M65 keymap update * M65 keymap update * M65 keymap update * M65 keymap update * M65 keymap update * Set theme jekyll-theme-cayman * Set theme jekyll-theme-slate * M65 keymap update * M10a/M65a keymap updates * M10a keymap update * M65a keymap update * M65a keymap update * M65a keymap update * M65a readme update * M65a/M10a updates * M65a readme updates * M65a/M10a updates * M65A update * M65A update * M65A update * M65A update * M65A/M10A keymap update * M10A keymap update * Set theme jekyll-theme-tactile * M10A keymap update * M65A keymap.c update * M65 keymap added LED backlight toggle, inc/dec to adjust layer. * M65 keymap/readme updates. * M65 keymap fix * M65 keymap update * remove theme * fix comments/readme * update keymap * LED backlight update, guess based on reading atmega32u4 documentation for DDRB/PORTB regs, believe DDRB should only be written to once not every time CAPS is hit, but really not too sure. * LED backlight update, guess based on reading atmega32u4 documentation for DDRB/PORTB regs, believe DDRB should only be written to once not every time CAPS is hit, but really not too sure. * M65 keymap update * Updated M65, M10, and gonNerd keymaps. * update * del * keymap updates M65, M10, gonnerd * update keymaps * adding back readme that somehow got removed.
Diffstat (limited to 'keyboards/m10a/keymaps/gam3cat/keymap.c')
-rw-r--r--keyboards/m10a/keymaps/gam3cat/keymap.c161
1 files changed, 161 insertions, 0 deletions
diff --git a/keyboards/m10a/keymaps/gam3cat/keymap.c b/keyboards/m10a/keymaps/gam3cat/keymap.c
new file mode 100644
index 0000000000..8f4c878da5
--- /dev/null
+++ b/keyboards/m10a/keymaps/gam3cat/keymap.c
@@ -0,0 +1,161 @@
+#include "m10a.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+#include "version.h"
+
+extern keymap_config_t keymap_config;
+
+enum layers {
+ _L0 = 0,
+ _L1,
+ _L2,
+ _L3,
+ _L4,
+ _L5,
+ _L6,
+ _L7,
+ _L8,
+ _L9
+};
+
+enum m10a_keycodes {
+ DYNAMIC_MACRO_RANGE = SAFE_RANGE,
+};
+
+#include "dynamic_macro.h"
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+#define FN_ZERO LT(_L9, KC_0)
+#define KC_DMR1 DYN_REC_START1
+#define KC_DMR2 DYN_REC_START2
+#define KC_DMP1 DYN_MACRO_PLAY1
+#define KC_DMP2 DYN_MACRO_PLAY2
+#define KC_DMRS DYN_REC_STOP
+
+static uint8_t current_layer;
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* .-----------. .-----------. .-----------. .-----------. .-----------.
+ * | 7| 8| 9| | +| -| *| | ^| &| !| |VLU|Ver|WFD| |VLU|NXT|FFD|
+ * |-----------| |-----------| |-----------| |-----------| |-----------|
+ * | 4| 5| 6| | /| %| ,| | D| E| F| |MUT|C-W|CHR| |MUT|STP|PLY|
+ * |-----------| |-----------| |-----------| |-----------| |-----------|
+ * | 1| 2| 3| | .| =|Ent| | A| B| C| |VLD|CMP|WBK| |VLD|PRV|RWD|
+ * |-----------| |-----------| |-----------| |-----------| |-----------|
+ * |L0 | _L9/0| |L1 | _L9 | |L2 | _L9 | |L3 | _L9 | |L4 | _L9 |
+ * *-----------* *-----------* *-----------* *-----------* *-----------*
+ * .-----------. .-----------. .-----------. .-----------. .-----------.
+ * | | | | | | | | |MP1| |MP2| | | |RST| |_L6|_L7|_L8|
+ * |-----------| |-----------| |-----------| |-----------| |-----------|
+ * | | | | | | | | | |MRS| | | | | | |_L3|_L4|_L5|
+ * |-----------| |-----------| |-----------| |-----------| |-----------|
+ * | | | | | | | | |MR1| |MR2| | | | | |_L0|_L1|_L2|
+ * |-----------| |-----------| |-----------| |-----------| |-----------|
+ * |L5 | _L9 | |L6 | _L9 | |L7 | _L9 | |L8 | _L9 | |L9 | |
+ * *-----------* *-----------* *-----------* *-----------* *-----------*
+ */
+ [_L0] = {{KC_7, KC_8, KC_9 }, {KC_4, KC_5, KC_6 }, {KC_1, KC_2, KC_3 }, {XXXXXXX, XXXXXXX, FN_ZERO}},
+ [_L1] = {{KC_PPLS, KC_PMNS, KC_PAST}, {KC_PSLS, KC_PERC, KC_COMM}, {KC_PDOT, KC_EQL, KC_PENT}, {XXXXXXX, XXXXXXX, MO(_L9)}},
+ [_L2] = {{KC_CIRC, KC_AMPR, KC_EXLM}, {S(KC_D), S(KC_E), S(KC_F)}, {S(KC_A), S(KC_B), S(KC_C)}, {XXXXXXX, XXXXXXX, MO(_L9)}},
+ [_L3] = {{KC_VOLU, F(0), KC_WFWD}, {KC_MUTE, M(1), M(0) }, {KC_VOLD, KC_MYCM, KC_WBAK}, {XXXXXXX, XXXXXXX, MO(_L9)}},
+ [_L4] = {{KC_VOLU, KC_MNXT, KC_MFFD}, {KC_MUTE, KC_MSTP, KC_MPLY}, {KC_VOLD, KC_MPRV, KC_MRWD}, {XXXXXXX, XXXXXXX, MO(_L9)}},
+ [_L5] = {{_______, _______, _______}, {_______, _______, _______}, {_______, _______, _______}, {XXXXXXX, XXXXXXX, MO(_L9)}},
+ [_L6] = {{_______, _______, _______}, {_______, _______, _______}, {_______, _______, _______}, {XXXXXXX, XXXXXXX, MO(_L9)}},
+ [_L7] = {{KC_DMP1, _______, KC_DMP2}, {_______, KC_DMRS, _______}, {KC_DMR1, _______, KC_DMR2}, {XXXXXXX, XXXXXXX, MO(_L9)}},
+ [_L8] = {{_______, _______, RESET }, {_______, _______, _______}, {_______, _______, _______}, {XXXXXXX, XXXXXXX, MO(_L9)}},
+ [_L9] = {{DF(_L6), DF(_L7), DF(_L8)}, {DF(_L3), DF(_L4), DF(_L5)}, {DF(_L0), DF(_L1), DF(_L2)}, {XXXXXXX, XXXXXXX, _______}},
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ return MACRO(I(10), D(LGUI), T(R), U(LGUI), END);
+ }
+ else {
+ SEND_STRING("chrome.exe\n");
+ return false;
+ }
+ break;
+ case 1:
+ if (record->event.pressed) {
+ return MACRO(I(10), D(LCTL), T(W), U(LCTL), END);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_FUNCTION(0),
+};
+
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ switch (id) {
+ case 0:
+ if (record->event.pressed) {
+ SEND_STRING ("[Keyboard: " QMK_KEYBOARD "] -- [QMK Version: " QMK_VERSION "] -- [Keymap: " QMK_KEYMAP "]");
+ }
+ break;
+ }
+}
+
+void matrix_init_user(void) {
+ #ifdef BACKLIGHT_ENABLE
+ backlight_level(0);
+ #endif
+}
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+ uint8_t layer = biton32(layer_state);
+
+ if (current_layer == layer) {
+ }
+ else {
+ current_layer = layer;
+ switch (layer) {
+ case 0:
+ backlight_level(0);
+ break;
+ case 1:
+ backlight_level(1);
+ break;
+ case 2:
+ backlight_level(2);
+ break;
+ case 3:
+ backlight_level(3);
+ break;
+ case 4:
+ backlight_level(4);
+ break;
+ case 5:
+ backlight_level(5);
+ break;
+ case 6:
+ backlight_level(6);
+ break;
+ case 7:
+ backlight_level(6);
+ break;
+ case 8:
+ backlight_level(6);
+ break;
+ case 9:
+ backlight_level(0);
+ break;
+ default:
+ backlight_level(0);
+ break;
+ }
+ }
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ // Enable Dynamic Macros.
+ if (!process_record_dynamic_macro(keycode, record)) {
+ return false;
+ }
+ return true;
+}