From cef1d19a6ceb2ce6adad1b336946bf357dbb487f Mon Sep 17 00:00:00 2001
From: Christian Eiden <christian@eiden.ch>
Date: Thu, 13 May 2021 20:07:42 +0200
Subject: [Keymap] Own/dactyl (#12624)

---
 .../dactyl_manuform/5x6_5/keymaps/cykedev/config.h |  59 ++++++++
 .../dactyl_manuform/5x6_5/keymaps/cykedev/keymap.c | 153 +++++++++++++++++++++
 .../dactyl_manuform/5x6_5/keymaps/cykedev/rules.mk |   6 +
 3 files changed, 218 insertions(+)
 create mode 100644 keyboards/handwired/dactyl_manuform/5x6_5/keymaps/cykedev/config.h
 create mode 100644 keyboards/handwired/dactyl_manuform/5x6_5/keymaps/cykedev/keymap.c
 create mode 100644 keyboards/handwired/dactyl_manuform/5x6_5/keymaps/cykedev/rules.mk

(limited to 'keyboards/handwired/dactyl_manuform/5x6_5')

diff --git a/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/cykedev/config.h b/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/cykedev/config.h
new file mode 100644
index 0000000000..0a38c8aefb
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/cykedev/config.h
@@ -0,0 +1,59 @@
+// Copyright 2021 Christian Eiden, cykedev
+//
+// 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
+
+#undef SOFT_SERIAL_PIN
+#undef DIODE_DIRECTION
+#undef MATRIX_ROW_PINS
+#undef MATRIX_COL_PINS
+#undef BOOTMAGIC_LITE_ROW
+#undef BOOTMAGIC_LITE_COLUMN
+#undef BOOTMAGIC_LITE_ROW_RIGHT
+#undef BOOTMAGIC_LITE_COLUMN_RIGHT
+
+
+#define USE_SERIAL
+#define SOFT_SERIAL_PIN D2
+#define EE_HANDS
+#define SPLIT_USB_DETECT
+
+// wiring of each half
+// ../../../../docs/proton_c_conversion.md
+#define MATRIX_ROW_PINS { B6, B2, B3, B1, F7, F6, F5 }
+#define MATRIX_COL_PINS { B5, B4, E6, D7, C6, D4 }
+
+#define DIODE_DIRECTION ROW2COL
+
+#define BOOTMAGIC_LITE_ROW 0
+#define BOOTMAGIC_LITE_COLUMN 0
+
+#define BOOTMAGIC_LITE_ROW_RIGHT 0
+#define BOOTMAGIC_LITE_COLUMN_RIGHT 5
+
+#define TAPPING_TERM 200
+
+// Prevent normal rollover on alphas from accidentally triggering mods.
+// #define IGNORE_MOD_TAP_INTERRUPT
+
+// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
+// #define TAPPING_FORCE_HOLD
+
+// Apply the modifier on keys that are tapped during a short hold of a modtap
+// #define PERMISSIVE_HOLD
+
+#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
+
+#define FORCE_NKRO
diff --git a/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/cykedev/keymap.c b/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/cykedev/keymap.c
new file mode 100644
index 0000000000..0d8fd05425
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/cykedev/keymap.c
@@ -0,0 +1,153 @@
+// Copyright 2021 Christian Eiden, cykedev
+//
+// 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/>.
+
+#include QMK_KEYBOARD_H
+
+#define CM_SPAL  LGUI_T(KC_SPC)
+#define CM_SPAR  RGUI_T(KC_SPC)
+
+#define SH_ENL  LSFT_T(KC_ENT)
+#define SH_ENR  RSFT_T(KC_ENT)
+
+#define SYM     MO(_SYMBOL)
+#define ADJ     MO(_ADJUST)
+
+#define QWERT   DF(_QWERTY)
+#define COLEM   DF(_COLEMAK)
+
+enum layer_names {
+  _QWERTY,
+  _COLEMAK,
+  _SYMBOL,
+  _ADJUST
+};
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+  [_QWERTY] = LAYOUT_5x6_5(
+  /* QWERTY
+   * .-----------------------------------------.                                  .-----------------------------------------.
+   * | Esc  |   1  |   2  |   3  |   4  |   5  |                                  |   6  |   7  |   8  |   9  |   0  |  Bsp |
+   * |------+------+------+------+------+------|                                  |------+------+------+------+------+------|
+   * | Tab  |   Q  |   W  |   E  |   R  |   T  |                                  |   Y  |   U  |   I  |   O  |   P  |  \   |
+   * |------+------+------+------+------+------|                                  |------+------+------+------+------+------|
+   * | Ctrl |   A  |   S  |   D  |   F  |   G  |                                  |   H  |   J  |   K  |   L  |   ;  |  '   |
+   * |------+------+------+------+------+------|                                  |------+------+------+------+------+------|
+   * | Shft |   Z  |   X  |   C  |   V  |   B  |                                  |   N  |   M  |   ,  |   .  |   /  | Shft |
+   * '-----------------------------------------/                                  \-----------------------------------------'
+   *               |  ADJ |   -  |    /  SYM  /---------------.    .---------------\  SYM  \    |  +   | ADJ  |
+   *               |      |      |   /       /  Cmd  / Shift /      \ Shift \  Cmd  \       \   |      |      |
+   *               '-------------'  '-------/ Space / Enter /        \ Enter \ Space \-------'  '-------------'
+   *                                       /---------------/          \---------------\
+   *                                      /  Alt  / Ctrl  /            \  Ctrl \  Alt  \
+   *                                     /       /       /              \       \       \
+   *                                    '---------------'                '---------------'
+   */
+   KC_GESC, KC_1   , KC_2   , KC_3   , KC_4   , KC_5   ,                                     KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , 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_BSLS,
+   KC_LCTL, KC_A   , KC_S   , KC_D   , KC_F   , KC_G   ,                                     KC_H   , KC_J   , KC_K   , KC_L   , KC_SCLN, KC_QUOT,
+   KC_LSFT, KC_Z   , KC_X   , KC_C   , KC_V   , KC_B   ,                                     KC_N   , KC_M   , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT,
+                     ADJ    , KC_MINS,          SYM    , CM_SPAL, SH_ENL , SH_ENR , CM_SPAR, SYM    ,          KC_EQL , ADJ    ,
+                                                         KC_LALT, KC_LCTL, KC_RCTL, KC_RALT
+   ),
+  [_COLEMAK] = LAYOUT_5x6_5(
+  /* COLEMAK
+   * .-----------------------------------------.                                  .-----------------------------------------.
+   * | Esc  |   1  |   2  |   3  |   4  |   5  |                                  |   6  |   7  |   8  |   9  |   0  |  Bsp |
+   * |------+------+------+------+------+------|                                  |------+------+------+------+------+------|
+   * | Tab  |   Q  |   W  |   F  |   P  |   G  |                                  |   J  |   L  |   U  |   Y  |   ;  |  \   |
+   * |------+------+------+------+------+------|                                  |------+------+------+------+------+------|
+   * | Ctrl |   A  |   R  |   S  |   T  |   D  |                                  |   H  |   N  |   E  |   I  |   O  |  '   |
+   * |------+------+------+------+------+------|                                  |------+------+------+------+------+------|
+   * | Shft |   Z  |   X  |   C  |   V  |   B  |                                  |   K  |   M  |   ,  |   .  |   /  | Shft |
+   * '-----------------------------------------/                                  \-----------------------------------------'
+   *               |  ADJ |   -  |    /  SYM  /---------------.    .---------------\  SYM  \    |   +  | ADJ  |
+   *               |      |      |   /       /  Cmd  / Shift /      \ Shift \  Cmd  \       \   |      |      |
+   *               '-------------'  '-------/ Space / Enter /        \ Enter \ Space \-------'  '-------------'
+   *                                       /---------------/          \---------------\
+   *                                      /  Alt  / Ctrl  /            \  Ctrl \  Alt  \
+   *                                     /       /       /              \       \       \
+   *                                    '---------------'                '---------------'
+   */
+   KC_GESC, KC_1   , KC_2   , KC_3   , KC_4   , KC_5   ,                                     KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , KC_BSPC,
+   KC_TAB , KC_Q   , KC_W   , KC_F   , KC_P   , KC_G   ,                                     KC_J   , KC_L   , KC_U   , KC_Y   , KC_SCLN, KC_BSLS,
+   KC_LCTL, KC_A   , KC_R   , KC_S   , KC_T   , KC_D   ,                                     KC_H   , KC_N   , KC_E   , KC_I   , KC_O   , KC_QUOT,
+   KC_LSFT, KC_Z   , KC_X   , KC_C   , KC_V   , KC_B   ,                                     KC_K   , KC_M   , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT,
+                     ADJ    , KC_MINS,          SYM    , CM_SPAL, SH_ENL , SH_ENR , CM_SPAR, SYM    ,          KC_EQL , ADJ    ,
+                                                         KC_LALT, KC_LCTL, KC_RCTL, KC_RALT
+   ),
+  [_SYMBOL] = LAYOUT_5x6_5(
+  /* SYMBOL
+   * .-----------------------------------------.                                  .-----------------------------------------.
+   * |   `  |  F1  |  F2  |  F3  |  F4  |  F5  |                                  |  F6  |  F7  |  F8  |  F9  |  F10 |  F11 |
+   * |------+------+------+------+------+------|                                  |------+------+------+------+------+------|
+   * |      |   !  |   @  |   [  |   ]  |   +  |                                  |      |      |  up  |      |      |  F12 |
+   * |------+------+------+------+------+------|                                  |------+------+------+------+------+------|
+   * |      |   &  |   |  |   (  |   )  |   -  |                                  |      | left | down | right|  ?   |      |
+   * |------+------+------+------+------+------|                                  |------+------+------+------+------+------|
+   * |      |   *  |   /  |   {  |   }  |   =  |                                  |      |      |      |      |      |      |
+   * '-----------------------------------------/                                  \-----------------------------------------'
+   *               |      |      |    /       /---------------.    .---------------\       \    |      |      |
+   *               |      |      |   /       /       /       /      \       \       \       \   |      |      |
+   *               '-------------'  '-------/       /       /        \       \       \-------'  '-------------'
+   *                                       /---------------/          \---------------\
+   *                                      /       /       /            \       \       \
+   *                                     /       /       /              \       \       \
+   *                                    '---------------'                '---------------'
+   */
+   KC_GRV , KC_F1  , KC_F2  , KC_F3  , KC_F4  , KC_F5  ,                                     KC_F6  , KC_F7  , KC_F8  , KC_F9  , KC_F10 , KC_F11 ,
+   XXXXXXX, KC_EXLM, KC_AT  , KC_LBRC, KC_RBRC, KC_PPLS,                                     XXXXXXX, XXXXXXX, KC_UP  , XXXXXXX, XXXXXXX, KC_F12 ,
+   _______, KC_AMPR, KC_PIPE, KC_LPRN, KC_RPRN, KC_MINS,                                     XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_QUES, XXXXXXX,
+   _______, KC_ASTR, KC_SLSH, KC_LCBR, KC_RCBR, KC_PEQL,                                     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
+                     XXXXXXX, XXXXXXX,          _______, _______, _______, _______, _______, _______,          XXXXXXX, XXXXXXX,
+                                                         _______, _______, _______, _______
+   ),
+  [_ADJUST] = LAYOUT_5x6_5(
+  /* ADJUST
+   * .-----------------------------------------.                                  .-----------------------------------------.
+   * |  RST |      |      |      |      | QWERT|                                  |COLEM |      |      |      |      | RST  |
+   * |------+------+------+------+------+------|                                  |------+------+------+------+------+------|
+   * |      |      |      |      |      |   +  |                                  |  B + |      |      |      |      |      |
+   * |------+------+------+------+------+------|                                  |------+------+------+------+------+------|
+   * |      |      |      |      |      |   -  |                                  |  B - |  <<  | play |  >>  |      |      |
+   * |------+------+------+------+------+------|                                  |------+------+------+------+------+------|
+   * |      |      |      |      |      |   =  |                                  |      |      |      |      |      |      |
+   * '-----------------------------------------/                                  \-----------------------------------------'
+   *               |      |      |    /       /---------------.    .---------------\       \    |      |      |
+   *               |      |      |   /       /       /       /      \       \       \       \   |      |      |
+   *               '-------------'  '-------/       /       /        \       \       \-------'  '-------------'
+   *                                       /---------------/          \---------------\
+   *                                      /       /       /            \       \       \
+   *                                     /       /       /              \       \       \
+   *                                    '---------------'                '---------------'
+   */
+   RESET  , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QWERT  ,                                     COLEM  , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET  ,
+   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU,                                     KC_BRIU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD,                                     KC_BRID, KC_MRWD, KC_MPLY, KC_MFFD, XXXXXXX, XXXXXXX,
+   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE,                                     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+                     _______, XXXXXXX,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,          XXXXXXX, _______,
+                                                         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
+   )
+};
+
+bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
+  switch (keycode) {
+    case CM_SPAR:
+      return true;
+    default:
+      return false;
+  }
+}
diff --git a/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/cykedev/rules.mk b/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/cykedev/rules.mk
new file mode 100644
index 0000000000..5a8c85453a
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/cykedev/rules.mk
@@ -0,0 +1,6 @@
+BOOTMAGIC_ENABLE = lite
+EXTRAKEY_ENABLE  = yes
+COMMAND_ENABLE   = yes
+MOUSEKEY_ENABLE  = no
+LTO_ENABLE       = no
+NKRO_ENABLE      = yes
-- 
cgit v1.2.3