Переглянути джерело

Keyboard: Added dactyl-manuform 4x6 and keymap. (#4058)

* Added dactyl-manuform 4x6 and keymap.

* Did changes recommended by drashna.
Filip Sund 6 роки тому
батько
коміт
d55468c18d

+ 1 - 4
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

+ 1 - 4
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

+ 14 - 0
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();
+};
+

+ 36 - 0
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 } \
+\
+   }

+ 40 - 0
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

+ 31 - 0
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

+ 87 - 0
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);
+}
+

+ 21 - 0
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
+

+ 6 - 4
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);