aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVM <mateescu.victor@gmail.com>2019-02-26 00:30:26 -0500
committerDrashna Jaelre <drashna@live.com>2019-02-25 21:30:26 -0800
commit80ddb344152e4ef6663f9b079677b8154fcffbec (patch)
tree216fe58640099addff61ab588b734d30a317e204
parent7a89b39aadc347a9bbb73601b52ac65704f09da8 (diff)
downloadqmk_firmware-80ddb344152e4ef6663f9b079677b8154fcffbec.tar.gz
qmk_firmware-80ddb344152e4ef6663f9b079677b8154fcffbec.zip
[Keymap] adding my Levinson keymap (#5177)
* [keymap] adding my Levinson keymap pretty self explanatory, added the readme, just in case tested it just now, seems to work fine for my needs * Update keymap.c removing the deprecated persistent layer function as Drashna kindly reminded me * Apply suggestions from code review incorporated the suggestions, and thanks again for taking care of me with my silly changes :) Co-Authored-By: OMGVee <mateescu.victor@gmail.com> * Fix up audio calls
-rw-r--r--keyboards/keebio/levinson/keymaps/omgvee/config.h26
-rw-r--r--keyboards/keebio/levinson/keymaps/omgvee/keymap.c185
-rw-r--r--keyboards/keebio/levinson/keymaps/omgvee/readme.md21
-rw-r--r--keyboards/keebio/levinson/keymaps/omgvee/rules.mk11
4 files changed, 243 insertions, 0 deletions
diff --git a/keyboards/keebio/levinson/keymaps/omgvee/config.h b/keyboards/keebio/levinson/keymaps/omgvee/config.h
new file mode 100644
index 000000000..ba005c0b2
--- /dev/null
+++ b/keyboards/keebio/levinson/keymaps/omgvee/config.h
@@ -0,0 +1,26 @@
1#pragma once
2
3/* Use I2C or Serial, not both */
4
5#define USE_SERIAL
6// #define USE_I2C
7
8/* Select hand configuration */
9
10#define MASTER_LEFT
11// #define MASTER_RIGHT
12// #define EE_HANDS
13
14#define TAPPING_TERM 150
15
16#undef RGBLED_NUM
17#define RGBLIGHT_ANIMATIONS
18#define RGBLED_NUM 12
19#define RGBLIGHT_LIMIT_VAL 120
20#define RGBLIGHT_HUE_STEP 10
21#define RGBLIGHT_SAT_STEP 17
22#define RGBLIGHT_VAL_STEP 17
23
24#undef PRODUCT
25#define PRODUCT "Vee's hotswappable LEVINSON purely ortholinear keeb"
26
diff --git a/keyboards/keebio/levinson/keymaps/omgvee/keymap.c b/keyboards/keebio/levinson/keymaps/omgvee/keymap.c
new file mode 100644
index 000000000..8dab1c274
--- /dev/null
+++ b/keyboards/keebio/levinson/keymaps/omgvee/keymap.c
@@ -0,0 +1,185 @@
1#include QMK_KEYBOARD_H
2
3extern keymap_config_t keymap_config;
4
5#define _QWERTY 0
6#define _COLEMAK 1
7#define _DVORAK 2
8#define _LOWER 3
9#define _RAISE 4
10#define _FN3 5
11#define _FN4 6
12#define _ADJUST 16
13
14enum custom_keycodes {
15 QWERTY = SAFE_RANGE,
16 COLEMAK,
17 DVORAK,
18 LOWER,
19 RAISE,
20 FN3,
21 FN4,
22 ADJUST,
23};
24
25#define KC_ KC_TRNS
26
27#define KC_CAPW LGUI(LSFT(KC_3)) // Capture whole screen
28#define KC_CPYW LGUI(LSFT(LCTL(KC_3))) // Copy whole screen
29#define KC_CAPP LGUI(LSFT(KC_4)) // Capture portion of screen
30#define KC_CPYP LGUI(LSFT(LCTL(KC_4))) // Copy portion of screen
31#define KC_X0 MT(MOD_LCTL, KC_ESC)
32#define KC_SCAP SFT_T(KC_CAPS)
33#define KC_LOW LOWER
34#define KC_RAIS RAISE
35#define KC_X3 LT(_FN3, KC_GRV)
36#define KC_SENT MT(MOD_LSFT, KC_ENT)
37#define KC_X5 BL_STEP
38#define KC_CTB CTL_T(KC_TAB)
39
40const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
41
42 [_QWERTY] = LAYOUT_kc(
43 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
44 GESC, Q , W , E , R , T , Y , U , I , O , P ,BSPC,
45 //|----+----+----+----+----+----| |----+----+----+----+----+----|
46 SCAP, A , S , D , F , G , H , J , K , L ,SCLN,QUOT,
47 //|----+----+----+----+----+----| |----+----+----+----+----+----|
48 CTB, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH,SENT,
49 //|----+----+----+----+----+----| |----+----+----+----+----+----|
50 X3 ,LCTL,LALT,LGUI,LOW ,ENT , SPC,RAIS,RALT, , ,
51 //`----+----+----+----+----+----' `----+----+----+----+----+----'
52 ),
53
54 [_LOWER] = LAYOUT_kc(
55 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
56 GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC,
57 //|----+----+----+----+----+----| |----+----+----+----+----+----|
58 SCAP, NO ,HOME,PGDN,PGUP, END, LEFT,DOWN, UP ,RGHT, INS, DEL,
59 //|----+----+----+----+----+----| |----+----+----+----+----+----|
60 CTB , F1 , F2 , F3 , F4 , F5 , F6, F7 , F8 , F9 , F10, F11,
61 //|----+----+----+----+----+----| |----+----+----+----+----+----|
62 X3 ,LCTL,LALT,LGUI, LOW, ENT, SPC,RAIS,RALT, , , F12
63 //`----+----+----+----+----+----' `----+----+----+----+----+----'
64 ),
65
66 [_RAISE] = LAYOUT_kc(
67 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
68 TAB, EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, DEL,
69 //|----+----+----+----+----+----| |----+----+----+----+----+----|
70 SCAP, , , , , , MINS, EQL, ,LBRC,RBRC,BSLS,
71 //|----+----+----+----+----+----| |----+----+----+----+----+----|
72 CTB, , , , , , UNDS,PLUS,VOLD,VOLU,MUTE,SENT,
73 //|----+----+----+----+----+----| |----+----+----+----+----+----|
74 X3 ,LCTL,LALT,LGUI, LOW, ENT, SPC,RAIS,RALT, , , NO
75 //`----+----+----+----+----+----' `----+----+----+----+----+----'
76 ),
77
78 [_COLEMAK] = LAYOUT_kc(
79 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
80 GESC, Q , W , F , P , G , J , L , U , Y ,SCLN,MINS,
81 //|----+----+----+----+----+----| |----+----+----+----+----+----|
82 SCAP, A , R , S , T , D , H , N , E , I , O ,QUOT,
83 //|----+----+----+----+----+----| |----+----+----+----+----+----|
84 CTB, Z , X , C , V , B , K , M ,COMM,DOT ,SLSH,SENT,
85 //|----+----+----+----+----+----| |----+----+----+----+----+----|
86 X3 ,LCTL,LALT,LGUI, LOW, ENT, SPC,RAIS,RALT, , ,
87 //`----+----+----+----+----+----' `----+----+----+----+----+----'
88 ),
89
90 [_DVORAK] = LAYOUT_kc(
91 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
92 TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,MINS,
93 //|----+----+----+----+----+----| |----+----+----+----+----+----|
94 X0 , A , O , E , U , I , D , H , T , N , S ,SLSH,
95 //|----+----+----+----+----+----| |----+----+----+----+----+----|
96 LSFT,SCLN, Q , J , K , X , B , M , W , V , Z ,SENT,
97 //|----+----+----+----+----+----| |----+----+----+----+----+----|
98 X3 ,LCTL,LALT,LGUI, LOW, ENT, SPC,RAIS,RALT, , ,
99 //`----+----+----+----+----+----' `----+----+----+----+----+----'
100 ),
101
102 [_FN3] = LAYOUT_kc(
103 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
104 F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,
105 //|----+----+----+----+----+----| |----+----+----+----+----+----|
106 , , , , , , MS_L,MS_D,MS_U,MS_R,WH_L,WH_R,
107 //|----+----+----+----+----+----| |----+----+----+----+----+----|
108 , , , , , , BTN1,WH_D,WH_U,BTN2, , ,
109 //|----+----+----+----+----+----| |----+----+----+----+----+----|
110 , , , , , , , , , , ,
111 //`----+----+----+----+----+----' `----+----+----+----+----+----'
112 ),
113
114/* Adjust (Lower + Raise)
115 * ,-----------------------------------------------------------------------------------.
116 * | | Reset|RGB Tg|RGB Md|Hue Up|Hue Dn|Sat Up|Sat Dn|Val Up|Val Dn| | |
117 * |------+------+------+------+------+-------------+------+------+------+------+------|
118 * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
119 * |------+------+------+------+------+------|------+------+------+------+------+------|
120 * | | | | | | | | | | | | |
121 * |------+------+------+------+------+------+------+------+------+------+------+------|
122 * | | | | | | | | | | | |
123 * `-----------------------------------------------------------------------------------'
124 */
125 [_ADJUST] = LAYOUT( \
126 RESET, QWERTY, COLEMAK, DVORAK, _______, EEP_RST, KC_MNXT, KC_MPRV, KC_MFFD, KC_MRWD, DVORAK, KC_EJCT, \
127 RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, KC_PGUP, KC_HOME, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CK_UP, CK_DOWN, \
128 RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_PGDN, KC_END, KC_BRID, KC_BRIU, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, \
129 BL_TOGG, BL_INC, BL_DEC, BL_BRTG, _______, _______, CK_RST, _______, CK_TOGG, MU_MOD, MU_TOG, AU_TOG \
130 )
131
132
133};
134
135bool process_record_user(uint16_t keycode, keyrecord_t *record) {
136 switch (keycode) {
137 case QWERTY:
138 if (record->event.pressed) {
139 set_single_persistent_default_layer(_QWERTY);
140 }
141 return false;
142 break;
143 case COLEMAK:
144 if (record->event.pressed) {
145 set_single_persistent_default_layer(_COLEMAK);
146 }
147 return false;
148 break;
149 case DVORAK:
150 if (record->event.pressed) {
151 set_single_persistent_default_layer(_DVORAK);
152 }
153 return false;
154 break;
155 case LOWER:
156 if (record->event.pressed) {
157 layer_on(_LOWER);
158 update_tri_layer(_LOWER, _RAISE, _ADJUST);
159 } else {
160 layer_off(_LOWER);
161 update_tri_layer(_LOWER, _RAISE, _ADJUST);
162 }
163 return false;
164 break;
165 case RAISE:
166 if (record->event.pressed) {
167 layer_on(_RAISE);
168 update_tri_layer(_LOWER, _RAISE, _ADJUST);
169 } else {
170 layer_off(_RAISE);
171 update_tri_layer(_LOWER, _RAISE, _ADJUST);
172 }
173 return false;
174 break;
175 case ADJUST:
176 if (record->event.pressed) {
177 layer_on(_ADJUST);
178 } else {
179 layer_off(_ADJUST);
180 }
181 return false;
182 break;
183 }
184 return true;
185}
diff --git a/keyboards/keebio/levinson/keymaps/omgvee/readme.md b/keyboards/keebio/levinson/keymaps/omgvee/readme.md
new file mode 100644
index 000000000..f882c98b0
--- /dev/null
+++ b/keyboards/keebio/levinson/keymaps/omgvee/readme.md
@@ -0,0 +1,21 @@
1# What I want from my LEVINSON (Let's Split on steroids) keymap
2====================================================================================================
3
4
5![My indigo Levinson keeb](https://i.imgur.com/sPfzSTk.jpg)
6
7- media keys and media controls, including Eject, for however rare those computers with OSX *and* bloody optical drives might be
8- in-switch LED intensity controls (+/-)
9- underglow RGB hue/color controls
10- underglow RGB intensity controls
11- familiar key arrangement with Enter and symbols on the usual keys (to the right hand side, on some layer, pref RAISE for one-handed operation)
12- navigation keys should be the vim ones really;
13- arrow keys on one layer(most likely on the ADJUST one, but also on LOWER, as per my usual other split keebs)
14- mouse keys too
15- hardware reset for the ProMicro to put it bootloader mode, sounds, eeprom reset, backlights and rgb controls reset, etc.
16
17See keymap.c for layouts
18See config.h for various toggles and flags
19
20
21P.S> this is my first fully and purely ortholinear keyboard, as opposed to my [Iris](https://github.com/qmk/qmk_firmware/tree/master/keyboards/keebio/iris/keymaps/omgvee "Vee's Iris keeb"), [Helidox](https://github.com/qmk/qmk_firmware/tree/master/keyboards/crkbd/keymaps/omgvee "Vee's beloved Helidox keeb"), MiniDox, etc., which are mildly staggered, but on the vertical side, which seems better imho than this... but we'll see how I get on with it over time...
diff --git a/keyboards/keebio/levinson/keymaps/omgvee/rules.mk b/keyboards/keebio/levinson/keymaps/omgvee/rules.mk
new file mode 100644
index 000000000..3540947ac
--- /dev/null
+++ b/keyboards/keebio/levinson/keymaps/omgvee/rules.mk
@@ -0,0 +1,11 @@
1EXTRAFLAGS += -flto
2RGBLIGHT_ENABLE = yes
3BACKLIGHT_ENABLE = yes
4MOUSEKEY_ENABLE = yes
5CONSOLE_ENABLE = no
6COMMAND_ENABLE = no
7TAP_DANCE_ENABLE = no
8NKRO_ENABLE = yes
9LEADER_ENABLE = no
10UNICODE_ENABLE = yes
11AUDIO_ENABLE = yes