summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilip Sund <filip.sund@gmail.com>2018-10-03 21:04:01 +0200
committerDrashna Jaelre <drashna@live.com>2018-10-03 12:04:01 -0700
commitd55468c18d666870cfe095d32153e5e503e50649 (patch)
treed7f3a12b1314270ad84adc5cefede25cb8a52c89
parentf01133d08918b3d1dd7b349309b02ffd37273f5c (diff)
downloadqmk_firmware-d55468c18d666870cfe095d32153e5e503e50649.tar.gz
qmk_firmware-d55468c18d666870cfe095d32153e5e503e50649.zip
Keyboard: Added dactyl-manuform 4x6 and keymap. (#4058)
* Added dactyl-manuform 4x6 and keymap. * Did changes recommended by drashna.
-rw-r--r--keyboards/handwired/dactyl_manuform/4x5/keymaps/default/config.h5
-rw-r--r--keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/config.h5
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/4x6.c14
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/4x6.h36
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/config.h40
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/keymaps/default/config.h31
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/keymaps/default/keymap.c87
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/rules.mk21
-rw-r--r--keyboards/handwired/dactyl_manuform/dactyl_manuform.h10
9 files changed, 237 insertions, 12 deletions
diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/default/config.h b/keyboards/handwired/dactyl_manuform/4x5/keymaps/default/config.h
index 216917ed71..682c7a868b 100644
--- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/default/config.h
+++ b/keyboards/handwired/dactyl_manuform/4x5/keymaps/default/config.h
@@ -18,8 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
+#pragma once
#include "../../config.h"
@@ -33,5 +32,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_LEFT
// #define MASTER_RIGHT
#define EE_HANDS
-
-#endif
diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/config.h b/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/config.h
index 216917ed71..682c7a868b 100644
--- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/config.h
+++ b/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/config.h
@@ -18,8 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
+#pragma once
#include "../../config.h"
@@ -33,5 +32,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_LEFT
// #define MASTER_RIGHT
#define EE_HANDS
-
-#endif
diff --git a/keyboards/handwired/dactyl_manuform/4x6/4x6.c b/keyboards/handwired/dactyl_manuform/4x6/4x6.c
new file mode 100644
index 0000000000..1d305c8541
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/4x6/4x6.c
@@ -0,0 +1,14 @@
+#include "4x6.h"
+
+
+#ifdef SSD1306OLED
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+ led_set_user(usb_led);
+}
+#endif
+
+void matrix_init_kb(void) {
+ matrix_init_user();
+};
+
diff --git a/keyboards/handwired/dactyl_manuform/4x6/4x6.h b/keyboards/handwired/dactyl_manuform/4x6/4x6.h
new file mode 100644
index 0000000000..25741be57b
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/4x6/4x6.h
@@ -0,0 +1,36 @@
+#pragma once
+
+#include "dactyl_manuform.h"
+#include "quantum.h"
+
+#ifdef USE_I2C
+#include <stddef.h>
+#ifdef __AVR__
+ #include <avr/io.h>
+ #include <avr/interrupt.h>
+#endif
+#endif
+
+#define LAYOUT(\
+ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
+ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
+ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
+ L32, L33, R32, R33, \
+ L34, L35, R30, R31, \
+ L44, L45, R40, R41, \
+ L42, L43, R42, R43 \
+ ) \
+ { \
+ { L00, L01, L02, L03, L04, L05 }, \
+ { L10, L11, L12, L13, L14, L15 }, \
+ { L20, L21, L22, L23, L24, L25 }, \
+ { KC_NO, KC_NO, L32, L33, L34, L35 }, \
+ { KC_NO, KC_NO, L42, L43, L44, L45 }, \
+\
+ { R00, R01, R02, R03, R04, R05 }, \
+ { R10, R11, R12, R13, R14, R15 }, \
+ { R20, R21, R22, R23, R24, R25 }, \
+ { R30, R31, R32, R33, KC_NO, KC_NO }, \
+ { R40, R41, R42, R43, KC_NO, KC_NO } \
+\
+ }
diff --git a/keyboards/handwired/dactyl_manuform/4x6/config.h b/keyboards/handwired/dactyl_manuform/4x6/config.h
new file mode 100644
index 0000000000..d4a1922876
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/4x6/config.h
@@ -0,0 +1,40 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x3060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER tshort
+#define DESCRIPTION A split keyboard for the cheap makers
+
+/* key matrix size */
+// Rows are doubled-up
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 6
+
+// row-driven
+#define MATRIX_ROW_PINS { F7, B1, B3, B2, B6 }
+#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 }
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/default/config.h b/keyboards/handwired/dactyl_manuform/4x6/keymaps/default/config.h
new file mode 100644
index 0000000000..1fc2c617f6
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/4x6/keymaps/default/config.h
@@ -0,0 +1,31 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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 MASTER_RIGHT
+#define EE_HANDS
diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/4x6/keymaps/default/keymap.c
new file mode 100644
index 0000000000..ad23beef5c
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/4x6/keymaps/default/keymap.c
@@ -0,0 +1,87 @@
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+#define _BASE 0
+#define _RAISE 1
+#define _LOWER 2
+
+// Fillers to make layering more clear
+
+#define ____ KC_TRNS
+
+#define SFT_ESC SFT_T(KC_ESC)
+#define CTL_BSPC CTL_T(KC_BSPC)
+#define ALT_SPC ALT_T(KC_SPC)
+#define SFT_ENT SFT_T(KC_ENT)
+
+#define KC_ML KC_MS_LEFT
+#define KC_MR KC_MS_RIGHT
+#define KC_MU KC_MS_UP
+#define KC_MD KC_MS_DOWN
+#define KC_MB1 KC_MS_BTN1
+#define KC_MB2 KC_MS_BTN1
+
+#define RAISE MO(_RAISE)
+#define LOWER MO(_LOWER)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Base (qwerty)
+ * +-----------------------------------------+ +-----------------------------------------+
+ * | ESC | q | w | e | r | t | | y | u | i | o | p | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | TAB | a | s | d | f | g | | h | j | k | l | ; | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | SHFT | z | x | c | v | b | | n | m | , | . | / | |
+ * +------+------+------+------+-------------+ +-------------+------+------+------+------+
+ * | [ | ] | | | |
+ * +-------------+-------------+ +-------------+-------------+
+ * | | | | | |
+ * |------+------| |------+------|
+ * | | | | | |
+ * +-------------+ +-------------+
+ * +-------------+ +-------------+
+ * | | | | | |
+ * |------+------| |------+------|
+ * | | | | | |
+ * +-------------+ +-------------+
+ */
+
+[_BASE] = LAYOUT( \
+ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, \
+ KC_TAB, 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_BSLASH, \
+ KC_LBRC,KC_RBRC, KC_PLUS,KC_EQL, \
+ RAISE, KC_SPC, KC_ENT, LOWER, \
+ KC_TAB, KC_HOME, KC_END, KC_DEL, \
+ KC_BSPC,KC_GRV, KC_LGUI,KC_LALT \
+),
+
+[_LOWER] = LAYOUT(
+ _______,_______,_______,_______,_______,KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, RESET, KC_PLUS, \
+ _______,KC_HOME,KC_PGUP,KC_PGDN,KC_END ,KC_LPRN, KC_RPRN, KC_P4, KC_P5, KC_P6, KC_MINS,KC_PIPE, \
+ _______,_______,_______,_______,_______,_______, _______, KC_P1, KC_P2, KC_P3, KC_EQL, KC_UNDS, \
+ _______,KC_PSCR, _______, KC_P0, \
+ _______,_______, _______,_______, \
+ _______,_______, _______,_______, \
+ _______,_______, _______,_______ \
+),
+
+[_RAISE] = LAYOUT(
+ _______,RESET, _______,_______,_______,KC_LBRC, KC_RBRC,_______,KC_NLCK,KC_INS, KC_SLCK,KC_MUTE, \
+ _______,KC_LEFT,KC_UP ,KC_DOWN,KC_RGHT,KC_LPRN, KC_RPRN,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_VOLU, \
+ _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,KC_VOLD, \
+ _______,_______, KC_EQL, _______, \
+ _______,_______, _______,_______, \
+ _______,_______, _______,_______, \
+ _______,_______, _______,_______ \
+)
+};
+
+
+void persistent_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
diff --git a/keyboards/handwired/dactyl_manuform/4x6/rules.mk b/keyboards/handwired/dactyl_manuform/4x6/rules.mk
new file mode 100644
index 0000000000..14b6e1e4e3
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/4x6/rules.mk
@@ -0,0 +1,21 @@
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
diff --git a/keyboards/handwired/dactyl_manuform/dactyl_manuform.h b/keyboards/handwired/dactyl_manuform/dactyl_manuform.h
index 8b60097bc2..eea0757d59 100644
--- a/keyboards/handwired/dactyl_manuform/dactyl_manuform.h
+++ b/keyboards/handwired/dactyl_manuform/dactyl_manuform.h
@@ -1,13 +1,15 @@
#pragma once
-#ifdef KEYBOARD_handwired_dactyl_manuform_6x6
- #include "6x6.h"
+#ifdef KEYBOARD_handwired_dactyl_manuform_4x5
+ #include "4x5.h"
+#elif KEYBOARD_handwired_dactyl_manuform_4x6
+ #include "4x6.h"
#elif KEYBOARD_handwired_dactyl_manuform_5x6
#include "5x6.h"
-#elif KEYBOARD_handwired_dactyl_manuform_4x5
- #include "4x5.h"
#elif KEYBOARD_handwired_dactyl_manuform_5x7
#include "5x7.h"
+#elif KEYBOARD_handwired_dactyl_manuform_6x6
+ #include "6x6.h"
#endif
//void promicro_bootloader_jmp(bool program);