]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
[Keymap] Added keymap for user jasondunsmore (#6023)
authorJason Dunsmore <jasondunsmore@gmail.com>
Fri, 31 May 2019 00:13:29 +0000 (19:13 -0500)
committerDrashna Jaelre <drashna@live.com>
Fri, 31 May 2019 00:13:29 +0000 (17:13 -0700)
keyboards/keebio/iris/keymaps/jasondunsmore/config.h [new file with mode: 0644]
keyboards/keebio/iris/keymaps/jasondunsmore/keymap.c [new file with mode: 0644]
keyboards/keebio/iris/keymaps/jasondunsmore/readme.md [new file with mode: 0644]
keyboards/keebio/iris/keymaps/jasondunsmore/rules.mk [new file with mode: 0644]

diff --git a/keyboards/keebio/iris/keymaps/jasondunsmore/config.h b/keyboards/keebio/iris/keymaps/jasondunsmore/config.h
new file mode 100644 (file)
index 0000000..8aa4be3
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+Copyright 2017 Danny Nguyen <danny@keeb.io>
+
+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 <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+/* Use I2C or Serial, not both */
+#define USE_SERIAL
+// #define USE_I2C
+
+/* Select hand configuration */
+#define MASTER_LEFT
+
+#define TAPPING_TERM 200
diff --git a/keyboards/keebio/iris/keymaps/jasondunsmore/keymap.c b/keyboards/keebio/iris/keymaps/jasondunsmore/keymap.c
new file mode 100644 (file)
index 0000000..5f93076
--- /dev/null
@@ -0,0 +1,147 @@
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+// Layers
+#define _QWERTY 0 // Base layer
+#define _NUMB 1
+#define _NAVI 2
+
+// Keys
+#define KC_NUMB MO(_NUMB)
+#define KC_NAVI MO(_NAVI)
+#define KC_AGRV LALT_T(KC_GRAVE)
+#define KC_GUIE LGUI_T(KC_ESC)
+#define KC_REST RESET
+#define KC_DBUG DEBUG
+
+// Tap Dance Declarations
+enum {
+  TD_LALT_GRV_BSLS = 0,
+  TD_LSFT_LBRC,
+  TD_RSFT_RBRC,
+};
+
+void alt_grave_backslash(qk_tap_dance_state_t *state, void *user_data) {
+    if (state->count == 1) {
+      if (!state->pressed) {
+        register_code(KC_GRAVE);
+      } else {
+        register_code(KC_LALT);
+      }
+    } else if (state->count == 2) {
+      register_code(KC_BSLASH);
+    }
+}
+
+void alt_grave_backslash_reset(qk_tap_dance_state_t *state, void *user_data) {
+    if (state->count == 1) {
+      unregister_code(KC_GRAVE);
+      unregister_code(KC_LALT);
+    } else if (state->count == 2) {
+      unregister_code(KC_BSLASH);
+    }
+}
+
+void left_brackets(qk_tap_dance_state_t *state, void *user_data) {
+  if (state->count == 1) {
+    if (!state->pressed) {
+      register_code(KC_LSFT);
+      register_code(KC_9);
+    } else {
+      register_code(KC_LSFT);
+    }
+  } else if (state->count == 2) {
+    register_code(KC_LBRC);
+  }
+}
+
+void left_brackets_reset(qk_tap_dance_state_t *state, void *user_data) {
+    if (state->count == 1) {
+      unregister_code(KC_LSFT);
+      unregister_code(KC_9);
+    } else if (state->count == 2) {
+      unregister_code(KC_LBRC);
+    }
+}
+
+void right_brackets(qk_tap_dance_state_t *state, void *user_data) {
+    if (state->count == 1) {
+      if (!state->pressed) {
+        register_code(KC_RSFT);
+        register_code(KC_0);
+      } else {
+        register_code(KC_RSFT);
+      }
+    } else if (state->count == 2) {
+      register_code(KC_RBRC);
+    }
+}
+
+void right_brackets_reset(qk_tap_dance_state_t *state, void *user_data) {
+    if (state->count == 1) {
+        unregister_code(KC_RSFT);
+        unregister_code(KC_0);
+    } else if (state->count == 2) {
+      unregister_code(KC_RBRC);
+    }
+}
+
+
+// Tap Dance Definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+  // Tap once for KC_SLSH, twice for KC_BSLS
+  [TD_LALT_GRV_BSLS]  = ACTION_TAP_DANCE_FN_ADVANCED(NULL, alt_grave_backslash, alt_grave_backslash_reset),
+  [TD_LSFT_LBRC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, left_brackets, left_brackets_reset),
+  [TD_RSFT_RBRC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, right_brackets, right_brackets_reset)
+};
+
+// Tap Dance Keys
+#define KC_AGRB TD(TD_LALT_GRV_BSLS)
+#define KC_LSBK TD(TD_LSFT_LBRC)
+#define KC_RSBK TD(TD_RSFT_RBRC)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+  [_QWERTY] = LAYOUT_kc(
+//,----+----+----+----+----+----.              ,----+----+----+----+----+----.
+   GUIE, 1,   2,   3,   4,   5,                  6,   7,   8,   9,   0,  DEL,
+//|----+----+----+----+----+----|              |----+----+----+----+----+----|
+   TAB,  Q,   W,   E,   R,   T,                  Y,   U,   I,   O,   P,  BSPC,
+//|----+----+----+----+----+----|              |----+----+----+----+----+----|
+   AGRB, A,   S,   D,   F,   G,                  H,   J,   K,   L,  SCLN,QUOT,
+//|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
+   LSBK, Z,   X,   C,   V,   B,  MINS,     EQL,  N,   M,  COMM,DOT, SLSH,RSBK,
+//`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
+                     NUMB,LCTL,SPC,          ENT, RCTL,NAVI
+//                  `----+----+----'        `----+----+----'
+     ),
+
+  [_NUMB] = LAYOUT_kc(
+//,----+----+----+----+----+----.              ,----+----+----+----+----+----.
+   F12,  F1,  F2,  F3,  F4,  F5,                 F6,  F7,  F8,  F9, F10, F11,
+//|----+----+----+----+----+----|              |----+----+----+----+----+----|
+    NO, F17, F18, F19, F20,  NO,                 NO,  7,   8,   9,   0,  TRNS,
+//|----+----+----+----+----+----|              |----+----+----+----+----+----|
+   TRNS,F13, F14, F15, F16,  NO,                ASTR, 4,   5,   6,  PLUS,TRNS,
+//|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
+   TRNS,F21, F22, F23, F24,  NO, TRNS,     TRNS,SLSH, 1,   2,   3,  MINS,TRNS,
+//`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
+                     TRNS,TRNS,TRNS,         TRNS,DOT, TRNS
+//                  `----+----+----'        `----+----+----'
+      ),
+
+ [_NAVI] = LAYOUT_kc(
+//,----+----+----+----+----+----.              ,----+----+----+----+----+----.
+   PWR, MUTE,VOLD,VOLU,BRID,BRIU,               REST,DBUG, NO,  NO,  NO, TRNS,
+//|----+----+----+----+----+----|              |----+----+----+----+----+----|
+   WAKE,HOME,PGUP, UP, PGDN,TRNS,                NO,  NO,  NO,  NO,  NO, TRNS,
+//|----+----+----+----+----+----|              |----+----+----+----+----+----|
+   TRNS,END, LEFT,DOWN,RGHT,TRNS,               PAUS,CAPS,PSCR,SLCK,INS, TRNS,
+//|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
+   TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,     TRNS, NO,  NO,  NO,  NO,  NO, TRNS,
+//`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
+                     TRNS,TRNS,TRNS,         TRNS,TRNS,TRNS
+//                  `----+----+----'        `----+----+----'
+     )
+};
diff --git a/keyboards/keebio/iris/keymaps/jasondunsmore/readme.md b/keyboards/keebio/iris/keymaps/jasondunsmore/readme.md
new file mode 100644 (file)
index 0000000..0817b5e
--- /dev/null
@@ -0,0 +1,7 @@
+# jasondunsmore's iris layout
+
+_QWERTY is the default layer, from which all letters, symbols and
+numbers can be accessed. The _NUMB layer contains a numberpad,
+operators, and function keys. The _NAVI layer contains navigation
+keys, some hardware adjustment keys, lock keys, and RESET/DEBUG for
+QMK.
diff --git a/keyboards/keebio/iris/keymaps/jasondunsmore/rules.mk b/keyboards/keebio/iris/keymaps/jasondunsmore/rules.mk
new file mode 100644 (file)
index 0000000..d58c21f
--- /dev/null
@@ -0,0 +1,2 @@
+TAP_DANCE_ENABLE = yes
+COMMAND_ENABLE = no