aboutsummaryrefslogtreecommitdiff
path: root/users
diff options
context:
space:
mode:
authorDraevin <contact@drae.vin>2020-10-22 19:46:46 -0700
committerGitHub <noreply@github.com>2020-10-22 19:46:46 -0700
commit619eb0071e36b5b724b713f2b785978f0e1b1e28 (patch)
tree37dff79c90588023fb52eeb5fedaea88c7071294 /users
parent2b9b267e8ee1a49c448b5f0f5b9fd634bd6c4489 (diff)
downloadqmk_firmware-619eb0071e36b5b724b713f2b785978f0e1b1e28.tar.gz
qmk_firmware-619eb0071e36b5b724b713f2b785978f0e1b1e28.zip
[Keymap] Add Draevin userspace and maps (#10581)
* Initial userspace * DZ60 map * Quefrency map * Sinc map * Set up MAKE key for all personal maps * Light userspace cleanup * Formatting and comments zzz... * Licensing and userspace README * Swap: EXTRAFLAGS -> LTO_ENABLE in userspace rules.mk Co-authored-by: Ryan <fauxpark@gmail.com> * Improve KC_MAKE: KC_ENT -> \n Co-authored-by: Ryan <fauxpark@gmail.com> * Swap left grouping on _FN for pairs * Add '?' -> backslash on _FN * Remove commented code * Organize lines in rules.mk * Add left hand scroll keys * Move configs to config.h * License blitz Co-authored-by: Ryan <fauxpark@gmail.com>
Diffstat (limited to 'users')
-rw-r--r--users/draevin/LICENSE14
-rw-r--r--users/draevin/README.md38
-rw-r--r--users/draevin/config.h26
-rw-r--r--users/draevin/draevin.c59
-rw-r--r--users/draevin/draevin.h39
-rw-r--r--users/draevin/rules.mk12
-rw-r--r--users/draevin/wrappers.h49
7 files changed, 237 insertions, 0 deletions
diff --git a/users/draevin/LICENSE b/users/draevin/LICENSE
new file mode 100644
index 000000000..33c17847d
--- /dev/null
+++ b/users/draevin/LICENSE
@@ -0,0 +1,14 @@
1Copyright 2020 Draevin Luke <contact@drae.vin> @draevin
2
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7
8This program is distributed in the hope that it will be useful,
9but WITHOUT ANY WARRANTY; without even the implied warranty of
10MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11GNU General Public License for more details.
12
13You should have received a copy of the GNU General Public License
14along with this program. If not, see <http://www.gnu.org/licenses/>.
diff --git a/users/draevin/README.md b/users/draevin/README.md
new file mode 100644
index 000000000..e635fdf22
--- /dev/null
+++ b/users/draevin/README.md
@@ -0,0 +1,38 @@
1# Userspace - Draevin
2
3## Notable Files
4
5- [draevin.h](draevin.h) - Standard layers, keys, and tap dance key and config for all my boards
6- [draevin.c](draevin.c) - Colemak/QWERTY switch, KC_MAKE, and Shift/CAPS TD
7- [wrappers](wrappers.h) - QWERTY, Colemak, F Row, Num Row, and `_FN` layer layout wrappers
8
9## Keymap themes
10
11Some general ideas shared between my maps
12
13- Colemak and QWERTY layouts
14 - In wrappers
15 - All are Colemak default with `CM_QW` switch
16- Nav and punctuation `_FN` layer
17 - In wrappers
18 - Right hand home arrows
19 - Pinky `HOME`/`END` for ***speed***
20 - Inner grouping symbols to decrease reach
21- Split space
22 - Left thumb `MO(_FN)` is standard, but on the wrong side in the Quefrency map (silly soldering error, but not bad enough to fix)
23 - Quefrency is still *technically* split though, right? `*<:^)`
24- Re-organized right mods
25 - Personal preference on wanting easier right thumb `CTRL`
26- Real `DEL` key
27 - I can't seem to get away from it with layering, so all my maps have a delete key
28 - Sinc/Quefrency have it in the +5 column on the right
29 - DZ60 has it in the split backspace
30- `KC_MAKE`
31
32## Keymaps
33
34- [DZ60](../../keyboards/dz60/keymaps/draevin/keymap.c)
35- [Sinc 80](../../keyboards/keebio/sinc/keymaps/draevin/keymap.c)
36- [Quefrency 65 w/ Macro](../../keyboards/keebio/quefrency/keymaps/draevin/keymap.c)
37 - Horribly under-utilized macro block because I thought I needed more keys than I actually do (so sad)
38 - Left side volume and paging rotary
diff --git a/users/draevin/config.h b/users/draevin/config.h
new file mode 100644
index 000000000..9a3bb7437
--- /dev/null
+++ b/users/draevin/config.h
@@ -0,0 +1,26 @@
1/*
2Copyright 2020 Copyright 2020 Draevin Luke <contact@drae.vin> @draevin
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#pragma once
19
20#define TAPPING_TOGGLE 2
21#define TAPPING_TERM 150
22
23#define MOUSEKEY_WHEEL_DELAY 20
24#define MOUSEKEY_WHEEL_INTERVAL 80
25#define MOUSEKEY_WHEEL_MAX_SPEED 4
26#define MOUSEKEY_WHEEL_TIME_TO_MAX 30 \ No newline at end of file
diff --git a/users/draevin/draevin.c b/users/draevin/draevin.c
new file mode 100644
index 000000000..95570bf37
--- /dev/null
+++ b/users/draevin/draevin.c
@@ -0,0 +1,59 @@
1/*
2Copyright 2020 Copyright 2020 Draevin Luke <contact@drae.vin> @draevin
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#include "draevin.h"
19
20bool process_record_user(uint16_t keycode, keyrecord_t *record) {
21 switch (keycode) {
22 case CM_QW: // Switch between Colemak and QWERTY
23 if (record->event.pressed) {
24 layer_invert(_CM);
25 layer_invert(_QW);
26 }
27 return false;
28 case KC_MAKE:
29 if (!record->event.pressed) {
30 SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP ":flash\n");
31 reset_keyboard();
32 }
33 break;
34 case PRNPAIR:
35 if (record->event.pressed) {
36 SEND_STRING("()");
37 tap_code(KC_LEFT);
38 }
39 break;
40 case BRCPAIR:
41 if (record->event.pressed) {
42 uint8_t shifted = get_mods() & (MOD_MASK_SHIFT);
43 if (shifted) {
44 unregister_code(KC_LSFT);
45 unregister_code(KC_RSFT);
46 SEND_STRING("{}"SS_TAP(X_LEFT));
47 }
48 else {
49 SEND_STRING("[]"SS_TAP(X_LEFT));
50 }
51 }
52 break;
53 }
54 return true;
55}
56
57qk_tap_dance_action_t tap_dance_actions[] = {
58 [TD_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS) // shift/caps TD
59};
diff --git a/users/draevin/draevin.h b/users/draevin/draevin.h
new file mode 100644
index 000000000..20dc77d99
--- /dev/null
+++ b/users/draevin/draevin.h
@@ -0,0 +1,39 @@
1/*
2Copyright 2020 Copyright 2020 Draevin Luke <contact@drae.vin> @draevin
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#pragma once
19
20#include QMK_KEYBOARD_H
21#include "wrappers.h"
22
23enum my_layers {
24 _CM,
25 _QW,
26 _FN,
27};
28
29enum my_keycodes {
30 CM_QW = SAFE_RANGE, // Switch between Colemak and QWERTY
31 KC_MAKE,
32 PRNPAIR,
33 BRCPAIR,
34 NEW_SAFE_RANGE
35};
36
37enum my_taps {
38 TD_CAPS // shift/caps TD
39};
diff --git a/users/draevin/rules.mk b/users/draevin/rules.mk
new file mode 100644
index 000000000..7d6740493
--- /dev/null
+++ b/users/draevin/rules.mk
@@ -0,0 +1,12 @@
1SRC += draevin.c
2
3LTO_ENABLE = yes
4MOUSEKEY_ENABLE = yes
5RGBLIGHT_ENABLE = yes
6TAP_DANCE_ENABLE = yes
7
8AUDIO_ENABLE = no
9BACKLIGHT_ENABLE = no
10BOOTMAGIC_ENABLE = no
11CONSOLE_ENABLE = no
12SLEEP_LED_ENABLE = no \ No newline at end of file
diff --git a/users/draevin/wrappers.h b/users/draevin/wrappers.h
new file mode 100644
index 000000000..006a9aa99
--- /dev/null
+++ b/users/draevin/wrappers.h
@@ -0,0 +1,49 @@
1/*
2Copyright 2020 Copyright 2020 Draevin Luke <contact@drae.vin> @draevin
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#pragma once
19
20#define ___________________BLANK___________________ _______, _______, _______, _______, _______
21
22#define _________________FROW_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
23#define _________________FROW_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
24
25#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
26#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
27
28#define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
29#define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D
30#define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
31
32#define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
33#define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O
34#define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLASH
35
36#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
37#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
38#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
39
40#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
41#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
42#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
43
44#define ___________________FN_L1___________________ _______, _______, KC_WH_U, _______, BRCPAIR
45#define ___________________FN_L2___________________ KC_HOME, _______, KC_WH_D, _______, PRNPAIR
46
47#define ___________________FN_R1___________________ KC_RBRC, _______, KC_UP, _______, _______
48#define ___________________FN_R2___________________ KC_RPRN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END
49#define ___________________FN_R3___________________ _______, _______, RGB_TOG, RGB_MOD, KC_BSLS