aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/gh60/keymaps/dbroqua/Makefile2
-rw-r--r--keyboards/gh60/keymaps/dbroqua/config.h187
-rw-r--r--keyboards/gh60/keymaps/dbroqua/keymap.c109
3 files changed, 288 insertions, 10 deletions
diff --git a/keyboards/gh60/keymaps/dbroqua/Makefile b/keyboards/gh60/keymaps/dbroqua/Makefile
index b9bbb669d..f1644a8e4 100644
--- a/keyboards/gh60/keymaps/dbroqua/Makefile
+++ b/keyboards/gh60/keymaps/dbroqua/Makefile
@@ -104,7 +104,7 @@ NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: ht
104# MIDI_ENABLE ?= YES # MIDI controls 104# MIDI_ENABLE ?= YES # MIDI controls
105# UNICODE_ENABLE ?= YES # Unicode 105# UNICODE_ENABLE ?= YES # Unicode
106# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID 106# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
107# RGBLIGHT_ENABLE ?= yes # Enable RGB Underglow 107RGBLIGHT_ENABLE ?= yes # Enable RGB Underglow
108 108
109ifndef QUANTUM_DIR 109ifndef QUANTUM_DIR
110 include ../../../../Makefile 110 include ../../../../Makefile
diff --git a/keyboards/gh60/keymaps/dbroqua/config.h b/keyboards/gh60/keymaps/dbroqua/config.h
new file mode 100644
index 000000000..75ccec097
--- /dev/null
+++ b/keyboards/gh60/keymaps/dbroqua/config.h
@@ -0,0 +1,187 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#ifndef CONFIG_H
19#define CONFIG_H
20
21#include "config_common.h"
22
23/* USB Device descriptor parameter */
24#define VENDOR_ID 0xFEED
25#define PRODUCT_ID 0x6060
26#define DEVICE_VER 0x0001
27#define MANUFACTURER geekhack
28#define PRODUCT GH60
29#define DESCRIPTION t.m.k. keyboard firmware for GH60
30
31/* key matrix size */
32#define MATRIX_ROWS 5
33#define MATRIX_COLS 14
34
35/*
36 * Keyboard Matrix Assignments
37 *
38 * Change this to how you wired your keyboard
39 * COLS: AVR pins used for columns, left to right
40 * ROWS: AVR pins used for rows, top to bottom
41 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
42 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
43 *
44*/
45#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
46#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 }
47#define UNUSED_PINS
48
49/* COL2ROW or ROW2COL */
50#define DIODE_DIRECTION COL2ROW
51
52/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
53#define DEBOUNCING_DELAY 5
54
55/* define if matrix has ghost (lacks anti-ghosting diodes) */
56//#define MATRIX_HAS_GHOST
57
58/* number of backlight levels */
59#define BACKLIGHT_LEVELS 3
60
61/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
62#define LOCKING_SUPPORT_ENABLE
63/* Locking resynchronize hack */
64#define LOCKING_RESYNC_ENABLE
65
66/*
67 * Force NKRO
68 *
69 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
70 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
71 * makefile for this to work.)
72 *
73 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
74 * until the next keyboard reset.
75 *
76 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
77 * fully operational during normal computer usage.
78 *
79 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
80 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
81 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
82 * power-up.
83 *
84 */
85//#define FORCE_NKRO
86
87/*
88 * Magic Key Options
89 *
90 * Magic keys are hotkey commands that allow control over firmware functions of
91 * the keyboard. They are best used in combination with the HID Listen program,
92 * found here: https://www.pjrc.com/teensy/hid_listen.html
93 *
94 * The options below allow the magic key functionality to be changed. This is
95 * useful if your keyboard/keypad is missing keys and you want magic key support.
96 *
97 */
98
99/* key combination for magic key command */
100#define IS_COMMAND() ( \
101 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
102)
103
104/* control how magic key switches layers */
105//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
106//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
107//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
108
109/* override magic key keymap */
110//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
111//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
112//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
113//#define MAGIC_KEY_HELP1 H
114//#define MAGIC_KEY_HELP2 SLASH
115//#define MAGIC_KEY_DEBUG D
116//#define MAGIC_KEY_DEBUG_MATRIX X
117//#define MAGIC_KEY_DEBUG_KBD K
118//#define MAGIC_KEY_DEBUG_MOUSE M
119//#define MAGIC_KEY_VERSION V
120//#define MAGIC_KEY_STATUS S
121//#define MAGIC_KEY_CONSOLE C
122//#define MAGIC_KEY_LAYER0_ALT1 ESC
123//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
124//#define MAGIC_KEY_LAYER0 0
125//#define MAGIC_KEY_LAYER1 1
126//#define MAGIC_KEY_LAYER2 2
127//#define MAGIC_KEY_LAYER3 3
128//#define MAGIC_KEY_LAYER4 4
129//#define MAGIC_KEY_LAYER5 5
130//#define MAGIC_KEY_LAYER6 6
131//#define MAGIC_KEY_LAYER7 7
132//#define MAGIC_KEY_LAYER8 8
133//#define MAGIC_KEY_LAYER9 9
134//#define MAGIC_KEY_BOOTLOADER PAUSE
135//#define MAGIC_KEY_LOCK CAPS
136//#define MAGIC_KEY_EEPROM E
137//#define MAGIC_KEY_NKRO N
138//#define MAGIC_KEY_SLEEP_LED Z
139
140/*
141 * Feature disable options
142 * These options are also useful to firmware size reduction.
143 */
144
145/* disable debug print */
146//#define NO_DEBUG
147
148/* disable print */
149//#define NO_PRINT
150
151/* disable action features */
152//#define NO_ACTION_LAYER
153//#define NO_ACTION_TAPPING
154//#define NO_ACTION_ONESHOT
155//#define NO_ACTION_MACRO
156//#define NO_ACTION_FUNCTION
157
158/*
159 * RGB Underglow
160 * These settings are for the F4 by default:
161 *
162 *
163 * #define ws2812_PORTREG PORTF
164 * #define ws2812_DDRREG DDRF
165 * #define ws2812_pin PF4
166 * #define RGBLED_NUM 14 // Number of LEDs
167 * #define RGBLIGHT_HUE_STEP 10
168 * #define RGBLIGHT_SAT_STEP 17
169 * #define RGBLIGHT_VAL_STEP 17
170 *
171 * The firmware supports 5 different light effects, and the color (hue, saturation, brightness) can be customized in most effects.
172 * To control the underglow, you need to modify your keymap file to assign those functions to some keys/key combinations.
173 * For details, please check this keymap. keyboard/planck/keymaps/yang/keymap.c
174*/
175
176/* Deprecated code below
177#define ws2812_PORTREG PORTF
178#define ws2812_DDRREG DDRF
179#define ws2812_pin PF4
180*/
181#define RGB_DI_PIN F4
182#define RGBLIGHT_ANIMATIONS
183#define RGBLED_NUM 11 // Number of LEDs
184#define RGBLIGHT_HUE_STEP 8
185#define RGBLIGHT_SAT_STEP 8
186#define RGBLIGHT_VAL_STEP 8
187#endif
diff --git a/keyboards/gh60/keymaps/dbroqua/keymap.c b/keyboards/gh60/keymaps/dbroqua/keymap.c
index 3c16baa22..be88edc09 100644
--- a/keyboards/gh60/keymaps/dbroqua/keymap.c
+++ b/keyboards/gh60/keymaps/dbroqua/keymap.c
@@ -1,9 +1,11 @@
1#include "gh60.h" 1#include "gh60.h"
2#include "action_layer.h" 2#include "action_layer.h"
3#include "rgblight.h"
3 4
4#define _DEFAULT 0 5#define _DEFAULT 0
5#define _FN 1 6#define _FN 1
6#define _WASD 2 7#define _WASD 2
8#define _SFX 3
7 9
8//bool esc_led_on; 10//bool esc_led_on;
9 11
@@ -50,11 +52,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50 * `-----------------------------------------------------------------' 52 * `-----------------------------------------------------------------'
51 */ 53 */
52 [_FN] = KEYMAP_HHKB( /* Layer 1 */ 54 [_FN] = KEYMAP_HHKB( /* Layer 1 */
53 ______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \ 55 TG(_SFX),KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \
54 KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, ______, \ 56 KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, ______, \
55 ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,______, \ 57 ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,______, \
56 ______, KC_MPRV, KC_MPLY, KC_MNXT, ______, ______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, ______, ______, \ 58 ______, KC_MPRV, KC_MPLY, KC_MNXT, ______, ______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, ______, ______, \
57 ______, ______, ______, KC_FN1, KC_MSTP, ______, ______, ______ \ 59 ______, ______, ______, TG(_WASD), KC_MSTP, ______, ______, ______ \
58 ), 60 ),
59 61
60/* WASD Layer 62/* WASD Layer
@@ -71,11 +73,32 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
71 * `-----------------------------------------------------------------' 73 * `-----------------------------------------------------------------'
72 */ 74 */
73 [_WASD] = KEYMAP_HHKB( /* Layer 2 */ 75 [_WASD] = KEYMAP_HHKB( /* Layer 2 */
74 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ 76 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
75 ______, ______, KC_UP, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ 77 ______, ______, KC_UP, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
76 ______, KC_LEFT, KC_DOWN, KC_RGHT, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ 78 ______, KC_LEFT, KC_DOWN,KC_RGHT,______, ______, ______, ______, ______, ______, ______, ______, ______, \
77 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,______, \ 79 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,______, \
78 ______, ______, ______, ______, ______, ______, ______, ______ \ 80 ______, ______, ______, ______, ______, ______, ______, ______ \
81 ),
82
83/* SFX Layer
84 * ,-----------------------------------------------------------------------------------------.
85 * | | | | | | | | | | | | | | | |
86 * |-----------------------------------------------------------------------------------------+
87 * | | BL- | BL+ | BL | | | | | | | | | | |
88 * |-----------------------------------------------------------------------------------------+
89 * | | RGBT| RGBM| | | | | | | | | | |
90 * |-----------------------------------------------------------------------------------------+
91 * | | Hue+| Hue-| Sat+| Sat-| Val+| Val-| | | | | | |
92 * |-----------------------------------------------------------------------------------------+
93 * | | | | | |
94 * `-----------------------------------------------------------------'
95 */
96 [_SFX] = KEYMAP_HHKB(
97 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
98 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
99 ______, F(0), F(1), ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
100 ______, F(2), F(3), F(4), F(5), F(6), F(7), ______, ______, ______, ______, ______, ______, \
101 ______, ______, ______, ______, ______, ______, ______, ______ \
79 ) 102 )
80}; 103};
81 104
@@ -85,11 +108,73 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
85 return MACRO_NONE; 108 return MACRO_NONE;
86}; 109};
87 110
111enum function_id {
112 RGBLED_TOGGLE,
113 RGBLED_STEP_MODE,
114 RGBLED_INCREASE_HUE,
115 RGBLED_DECREASE_HUE,
116 RGBLED_INCREASE_SAT,
117 RGBLED_DECREASE_SAT,
118 RGBLED_INCREASE_VAL,
119 RGBLED_DECREASE_VAL
120};
121
88const uint16_t PROGMEM fn_actions[] = { 122const uint16_t PROGMEM fn_actions[] = {
89 [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay 123 [0] = ACTION_FUNCTION(RGBLED_TOGGLE),
90 [1] = ACTION_LAYER_TOGGLE(2), // toggle wasd overlay 124 [1] = ACTION_FUNCTION(RGBLED_STEP_MODE),
125 [2] = ACTION_FUNCTION(RGBLED_INCREASE_HUE),
126 [3] = ACTION_FUNCTION(RGBLED_DECREASE_HUE),
127 [4] = ACTION_FUNCTION(RGBLED_INCREASE_SAT),
128 [5] = ACTION_FUNCTION(RGBLED_DECREASE_SAT),
129 [6] = ACTION_FUNCTION(RGBLED_INCREASE_VAL),
130 [7] = ACTION_FUNCTION(RGBLED_DECREASE_VAL)
91}; 131};
92 132
133void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
134 switch (id) {
135 case RGBLED_TOGGLE:
136 if (record->event.pressed) {
137 rgblight_toggle();
138 }
139 break;
140 case RGBLED_INCREASE_HUE:
141 if (record->event.pressed) {
142 rgblight_increase_hue();
143 }
144 break;
145 case RGBLED_DECREASE_HUE:
146 if (record->event.pressed) {
147 rgblight_decrease_hue();
148 }
149 break;
150 case RGBLED_INCREASE_SAT:
151 if (record->event.pressed) {
152 rgblight_increase_sat();
153 }
154 break;
155 case RGBLED_DECREASE_SAT:
156 if (record->event.pressed) {
157 rgblight_decrease_sat();
158 }
159 break;
160 case RGBLED_INCREASE_VAL:
161 if (record->event.pressed) {
162 rgblight_increase_val();
163 }
164 break;
165 case RGBLED_DECREASE_VAL:
166 if (record->event.pressed) {
167 rgblight_decrease_val();
168 }
169 break;
170 case RGBLED_STEP_MODE:
171 if (record->event.pressed) {
172 rgblight_step();
173 }
174 break;
175 }
176}
177
93void matrix_scan_user(void) { 178void matrix_scan_user(void) {
94 uint32_t layer = layer_state; 179 uint32_t layer = layer_state;
95 180
@@ -104,4 +189,10 @@ void matrix_scan_user(void) {
104 } else { 189 } else {
105 gh60_wasd_leds_off(); 190 gh60_wasd_leds_off();
106 } 191 }
192
193 if (layer & (1<<3)) {
194 gh60_esc_led_on();
195 } else {
196 gh60_esc_led_off();
197 }
107}; \ No newline at end of file 198}; \ No newline at end of file