aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny <nooges@users.noreply.github.com>2018-05-22 15:12:06 -0400
committerDrashna Jaelre <drashna@live.com>2018-05-22 12:12:06 -0700
commitdef0ff48c09e8eae0e00fcd6049358f5ed0ea816 (patch)
tree642b65ccff26a15ed6ed6dd2767fdc3c5fbf5bd0
parent5018892fa80ae1f68ea1b8924b840b7b160adad1 (diff)
downloadqmk_firmware-def0ff48c09e8eae0e00fcd6049358f5ed0ea816.tar.gz
qmk_firmware-def0ff48c09e8eae0e00fcd6049358f5ed0ea816.zip
Add mike808 Viterbi layout (#3019)
-rw-r--r--keyboards/viterbi/keymaps/mike808/config.h43
-rw-r--r--keyboards/viterbi/keymaps/mike808/keymap.c158
-rw-r--r--keyboards/viterbi/keymaps/mike808/rules.mk1
3 files changed, 202 insertions, 0 deletions
diff --git a/keyboards/viterbi/keymaps/mike808/config.h b/keyboards/viterbi/keymaps/mike808/config.h
new file mode 100644
index 000000000..bfca915f2
--- /dev/null
+++ b/keyboards/viterbi/keymaps/mike808/config.h
@@ -0,0 +1,43 @@
1/*
2Copyright 2018 Danny Nguyen <danny@keeb.io>
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_USER_H
19#define CONFIG_USER_H
20
21#include QMK_KEYBOARD_CONFIG_H
22
23/* Use I2C or Serial, not both */
24
25#define USE_SERIAL
26// #define USE_I2C
27
28/* Select hand configuration */
29
30#define MASTER_LEFT
31// #define MASTER_RIGHT
32// #define EE_HANDS
33
34#define TAPPING_TERM 150
35
36#undef RGBLED_NUM
37#define RGBLIGHT_ANIMATIONS
38#define RGBLED_NUM 2
39#define RGBLIGHT_HUE_STEP 8
40#define RGBLIGHT_SAT_STEP 8
41#define RGBLIGHT_VAL_STEP 8
42
43#endif
diff --git a/keyboards/viterbi/keymaps/mike808/keymap.c b/keyboards/viterbi/keymaps/mike808/keymap.c
new file mode 100644
index 000000000..c7e48b135
--- /dev/null
+++ b/keyboards/viterbi/keymaps/mike808/keymap.c
@@ -0,0 +1,158 @@
1#include QMK_KEYBOARD_H
2
3#define _DVORAK 0
4#define _QWERTY 1
5#define _FN1 2
6#define _MOUSE 3
7
8enum custom_keycodes {
9 DVORAK = SAFE_RANGE,
10 QWERTY,
11};
12
13#define KC_ KC_TRNS
14#define _______ KC_TRNS
15
16#define KC_DVOR DVORAK
17#define KC_QWER QWERTY
18#define KC_FN1 MO(_FN1)
19
20// Tap-Hold keys (QWERTY)
21#define KC_S_C MT(MOD_LCTL, KC_S)
22#define KC_D_A MT(MOD_LALT, KC_D)
23#define KC_F_G MT(MOD_LGUI, KC_F)
24#define KC_J_G MT(MOD_RGUI, KC_J)
25#define KC_K_A MT(MOD_RALT, KC_K)
26#define KC_L_C MT(MOD_RCTL, KC_L)
27
28// Tap-Hold keys (Dvorak)
29#define KC_O_C MT(MOD_LCTL, KC_O)
30#define KC_E_A MT(MOD_LALT, KC_E)
31#define KC_U_G MT(MOD_LGUI, KC_U)
32#define KC_H_G MT(MOD_RGUI, KC_H)
33#define KC_T_A MT(MOD_RALT, KC_T)
34#define KC_N_C MT(MOD_RCTL, KC_N)
35
36#define KC_G_A LGUI(KC_A)
37#define KC_G_C LGUI(KC_C)
38#define KC_G_V LGUI(KC_V)
39#define KC_G_X LGUI(KC_X)
40#define KC_G_Z LGUI(KC_Z)
41#define KC_G_BL LGUI(KC_BSLS)
42#define KC_G_TB LGUI(KC_TAB)
43#define KC_G_SP LGUI(KC_SPC)
44
45#define KC_ENTM LT(_MOUSE, KC_ENT)
46
47const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
48
49 [_QWERTY] = LAYOUT_kc(
50 //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----.
51 DVOR,ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,PGUP,
52 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
53 G_A ,TAB , Q , W , E , R , T , Y , U , I , O , P ,BSLS,PGDN,
54 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
55 G_X ,CAPS, A ,S_C ,D_A ,F_G , G , H ,J_G ,K_A ,L_C ,SCLN,QUOT, UP ,
56 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
57 G_C ,LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH,RSFT,DOWN,
58 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
59 G_V ,FN1 ,G_TB,G_SP,BSPC,SPC ,SPC , ENTM,ENTM,G_Z ,GRV ,EQL ,LEFT,RGHT
60 //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----'
61 ),
62
63 [_DVORAK] = LAYOUT_kc(
64 //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----.
65 QWER,ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,EQL ,PGUP,
66 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
67 G_A ,TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,SLSH,PGDN,
68 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
69 G_X ,CAPS, A ,O_C ,E_A ,U_G , I , D ,H_G ,T_A ,N_C , S ,MINS, UP ,
70 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
71 G_C ,LSFT,SCLN, Q , J , K , X , B , M , W , V , Z ,RSFT,DOWN,
72 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
73 G_V ,FN1 ,G_TB,G_SP,BSPC,SPC ,SPC , ENTM,ENTM,G_Z ,GRV ,BSLS,LEFT,RGHT
74 //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----'
75 ),
76
77 [_FN1] = LAYOUT_kc(
78 //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----.
79 , , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , ,
80 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
81 , ,EXLM, AT ,LCBR,RCBR,PIPE, , P7 , P8 , P9 ,ASTR,F12 , ,
82 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
83 , ,HASH,DLR ,LPRN,RPRN,GRV , , P4 , P5 , P6 ,PLUS,MINS, ,
84 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
85 , ,PERC,CIRC,LBRC,RBRC,TILD, AMPR, P1 , P2 , P3 ,SLSH, , ,
86 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
87 , , , , , , , , ,PDOT, P0 ,EQL , ,
88 //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----'
89 ),
90
91 [_MOUSE] = LAYOUT_kc(
92 //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----.
93 , , , , , , , , , , , , , ,
94 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
95 , , , ,MS_U, , , , , , , , , ,
96 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
97 , , ,MS_L,MS_D,MS_R, , , , , , , , ,
98 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
99 , , , , , , , , , , , , , ,
100 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
101 , , , ,BTN1,BTN2, , , , , , , ,
102 //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----'
103 )
104};
105
106#ifdef AUDIO_ENABLE
107float tone_qwerty[][2] = SONG(QWERTY_SOUND);
108float tone_dvorak[][2] = SONG(DVORAK_SOUND);
109#endif
110
111void update_rgblight(uint16_t layer) {
112 if (layer & (1UL << _DVORAK)) {
113 rgblight_sethsv_green();
114 } else if (layer & (1UL << _QWERTY)) {
115 rgblight_sethsv_goldenrod();
116 }
117}
118
119void persistent_default_layer_set(uint16_t default_layer) {
120 eeconfig_update_default_layer(default_layer);
121 default_layer_set(default_layer);
122 #ifdef RGBLIGHT_ENABLE
123 update_rgblight(default_layer);
124 #endif // RGBLIGHT_ENABLE
125}
126
127bool process_record_user(uint16_t keycode, keyrecord_t *record) {
128 switch (keycode) {
129 case QWERTY:
130 if (record->event.pressed) {
131 #ifdef AUDIO_ENABLE
132 PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
133 #endif
134 persistent_default_layer_set(1UL << _QWERTY);
135 }
136 return false;
137 break;
138 case DVORAK:
139 if (record->event.pressed) {
140 #ifdef AUDIO_ENABLE
141 PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
142 #endif
143 persistent_default_layer_set(1UL << _DVORAK);
144 }
145 return false;
146 break;
147 }
148 return true;
149}
150
151
152void matrix_init_user(void) {
153 #ifdef RGBLIGHT_ENABLE
154 rgblight_enable();
155 uint8_t default_layer = eeconfig_read_default_layer();
156 update_rgblight(default_layer);
157 #endif
158}
diff --git a/keyboards/viterbi/keymaps/mike808/rules.mk b/keyboards/viterbi/keymaps/mike808/rules.mk
new file mode 100644
index 000000000..1e3cebb14
--- /dev/null
+++ b/keyboards/viterbi/keymaps/mike808/rules.mk
@@ -0,0 +1 @@
RGBLIGHT_ENABLE = yes