aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2021-01-19 02:10:55 +0000
committerQMK Bot <hello@qmk.fm>2021-01-19 02:10:55 +0000
commitbfdedbe5b240300270c6dd7b36a68d5e10ad47f7 (patch)
treea4deb71c496c59b0dc96201df9018b830610b0fe
parent732e80e3fe4284090bd931bcbd20f391f711736d (diff)
parent993982a9853cccaa0224f39cfa4837fac147a6e0 (diff)
downloadqmk_firmware-bfdedbe5b240300270c6dd7b36a68d5e10ad47f7.tar.gz
qmk_firmware-bfdedbe5b240300270c6dd7b36a68d5e10ad47f7.zip
Merge remote-tracking branch 'origin/master' into develop
-rw-r--r--layouts/community/ortho_4x12/peej/keymap.c73
-rw-r--r--layouts/community/ortho_5x12/peej/keymap.c54
-rw-r--r--layouts/community/ortho_5x14/peej/keymap.c88
-rw-r--r--users/peej/layout.h150
-rw-r--r--users/peej/peej.c68
-rw-r--r--users/peej/peej.h78
-rw-r--r--users/peej/rules.mk1
7 files changed, 512 insertions, 0 deletions
diff --git a/layouts/community/ortho_4x12/peej/keymap.c b/layouts/community/ortho_4x12/peej/keymap.c
new file mode 100644
index 000000000..d78f03da4
--- /dev/null
+++ b/layouts/community/ortho_4x12/peej/keymap.c
@@ -0,0 +1,73 @@
1/* Copyright 2020 Paul James
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#define USE_2U_SPACE 1
18
19#include QMK_KEYBOARD_H
20#include "peej.h"
21
22const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
23
24[_BASE] = LAYOUT_PEEJ(
25 BASE_ROW_2,
26 BASE_ROW_3,
27 BASE_ROW_4,
28 BASE_ROW_5
29),
30
31[_SYMBOL] = LAYOUT_PEEJ(
32 SYMBOL_ROW_2,
33 SYMBOL_ROW_3,
34 SYMBOL_ROW_4,
35 SYMBOL_ROW_5
36),
37
38[_FUNCTION] = LAYOUT_PEEJ(
39 FUNCTION_ROW_2,
40 FUNCTION_ROW_3,
41 FUNCTION_ROW_4,
42 FUNCTION_ROW_5
43),
44
45[_ADJUST] = LAYOUT_PEEJ(
46 ADJUST_ROW_2,
47 ADJUST_ROW_3,
48 ADJUST_ROW_4,
49 ADJUST_ROW_5
50)
51
52};
53
54layer_state_t layer_state_set_user(layer_state_t state) {
55#if defined(LED_RED) && defined(LED_GREEN)
56 writePinLow(LED_RED);
57 writePinLow(LED_GREEN);
58
59 switch (biton32(state)) {
60 case _FUNCTION:
61 writePinHigh(LED_RED);
62 break;
63 case _SYMBOL:
64 writePinHigh(LED_GREEN);
65 break;
66 case _ADJUST:
67 writePinHigh(LED_RED);
68 writePinHigh(LED_GREEN);
69 break;
70 }
71#endif
72 return state;
73}
diff --git a/layouts/community/ortho_5x12/peej/keymap.c b/layouts/community/ortho_5x12/peej/keymap.c
new file mode 100644
index 000000000..95b1d43ac
--- /dev/null
+++ b/layouts/community/ortho_5x12/peej/keymap.c
@@ -0,0 +1,54 @@
1/* Copyright 2020 Paul James
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18#include "peej.h"
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21
22[_BASE] = LAYOUT_PEEJ(
23 BASE_ROW_1,
24 BASE_ROW_2,
25 BASE_ROW_3,
26 BASE_ROW_4,
27 BASE_ROW_5
28),
29
30[_SYMBOL] = LAYOUT_PEEJ(
31 SYMBOL_ROW_1,
32 SYMBOL_ROW_2,
33 SYMBOL_ROW_3,
34 SYMBOL_ROW_4,
35 SYMBOL_ROW_5
36),
37
38[_FUNCTION] = LAYOUT_PEEJ(
39 FUNCTION_ROW_1,
40 FUNCTION_ROW_2,
41 FUNCTION_ROW_3,
42 FUNCTION_ROW_4,
43 FUNCTION_ROW_5
44),
45
46[_ADJUST] = LAYOUT_PEEJ(
47 ADJUST_ROW_1,
48 ADJUST_ROW_2,
49 ADJUST_ROW_3,
50 ADJUST_ROW_4,
51 ADJUST_ROW_5
52)
53
54};
diff --git a/layouts/community/ortho_5x14/peej/keymap.c b/layouts/community/ortho_5x14/peej/keymap.c
new file mode 100644
index 000000000..3abd41853
--- /dev/null
+++ b/layouts/community/ortho_5x14/peej/keymap.c
@@ -0,0 +1,88 @@
1/* Copyright 2020 Paul James
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18#include "peej.h"
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21
22#define MODS KC_LCTL, KC_LALT, KC_LGUI, FUNCT
23#define ARROWS KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
24
25/*
26 * ,-----------------------------------------------------------------------------------------------------------------------------.
27 * | ESC | 1 | 2 | 3 | 4 | 5 | - | = | 6 | 7 | 8 | 9 | 0 | BACK |
28 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
29 * | TAB | Q | W | E | R | T | [ | ] | Y | U | I | O | P | \ |
30 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
31 * | ESC | A | S | D | F | G | { | } | H | J | K | L | ; | ' |
32 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
33 * | SHIFT | Z | X | C | V | B | ( | ) | N | M | , | . | / | ENTER |
34 * `--------+--------+--------+--------+--------+-----------------+-----------------+--------+--------+--------+--------+--------'
35 * | CTRL | ALT | CMD | FUNC | SPACE | BACKSPACE | LEFT | DOWN | UP | RIGHT |
36 * `-----------------------------------------------------------------------------------------------------------'
37*/
38[_BASE] = LAYOUT_PEEJ_hhkb(
39 KC_GESC, BASE_ROW_1_L, BASE_ROW_1_M, BASE_ROW_1_R, KC_BSPC,
40 KC_TAB, BASE_ROW_2_L, BASE_ROW_2_M, BASE_ROW_2_R, KC_BSLS,
41 CTLESC, BASE_ROW_3_L, BASE_ROW_3_M, BASE_ROW_3_R, KC_QUOT,
42 KC_LSFT, BASE_ROW_4_L, BASE_ROW_4_M, BASE_ROW_4_R, KC_ENT,
43 MODS, KC_SPC, KC_BSPC, ARROWS
44),
45
46/*
47 * ,-----------------------------------------------------------------------------------------------------------------------------.
48 * | LOCK | F1 | F2 | F3 | F4 | F5 | F11 | F12 | F6 | F7 | F8 | F9 | F10 | DEL |
49 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
50 * | ADJUST | | | | | | | | | HOME | UP | PGUP | | |
51 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
52 * | SHIFT | CTRL | ALT | CMD | | | | | | LEFT | DOWN | RIGHT | | |
53 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
54 * | | | | | | | | | | END | SHIFT | PGDN | | |
55 * `--------+--------+--------+--------+--------+-----------------+-----------------+--------+--------+--------+--------+--------'
56 * | | | | | | ENTER | HOME | PGDN | PGUP | END |
57 * `-----------------------------------------------------------------------------------------------------------'
58 */
59[_FUNCTION] = LAYOUT_PEEJ_hhkb(
60 LOCK, FUNCTION_ROW_1_L, ______2, FUNCTION_ROW_1_R, KC_DEL,
61 ADJUST, ______5, ______2, FUNCTION_ROW_2_R, _______,
62 KC_LSFT, FUNCTION_ROW_3_L, ______2, FUNCTION_ROW_3_R, _______,
63 _______, ______5, ______2, FUNCTION_ROW_4_R, _______,
64 ______4, _______, KC_ENT, ______4
65),
66
67/*
68 * ,----------------------------------------Backlight-------------------------RGB-----Bright---Sat------Hue----------------------.
69 * | LOCK | RESET | | | STEP | TOGGLE | | | TOGGLE | UP | UP | UP | | LOCK |
70 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
71 * | | | | | | | | | MODE | DOWN | DOWN | DOWN | | |
72 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
73 * | | | | | | | | | | | | | | |
74 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
75 * | | Norm | Swap | | | | | | | | | | | |
76 * `--------+--------+--------+--------+--------+-----------------+-----------------+--------+--------+--------+--------+--------'
77 * | | | | | | | | | | |
78 * `-----------------------------------------------------------------------------------------------------------'
79 */
80[_ADJUST] = LAYOUT_PEEJ_hhkb(
81 LOCK, ADJUST_ROW_2_L, XXXXXXX, XXXXXXX, ADJUST_ROW_2_R, LOCK,
82 XXXXXXX, EMPTY_ROW, XXXXXXX, XXXXXXX, ADJUST_ROW_3_R, XXXXXXX,
83 XXXXXXX, EMPTY_ROW, KC_MPLY, KC_MUTE, EMPTY_ROW, XXXXXXX,
84 XXXXXXX, ADJUST_ROW_4_L, KC_VOLD, KC_VOLU, EMPTY_ROW, _______,
85 XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
86)
87
88};
diff --git a/users/peej/layout.h b/users/peej/layout.h
new file mode 100644
index 000000000..f10b6d031
--- /dev/null
+++ b/users/peej/layout.h
@@ -0,0 +1,150 @@
1/* Copyright 2020 Paul James
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17/* Base layer
18 * ,-----------------------------------------. ,-------------. ,-----------------------------------------.
19 * | Esc | 1 | 2 | 3 | 4 | 5 | | - | = | | 6 | 7 | 8 | 9 | 0 | Del |
20 * |------+------+------+------+------+------| |------+------| |------+------+------+------+------+------|
21 * | Tab | Q | W | E | R | T | | [ | ] | | Y | U | I | O | P | Bksp |
22 * |------+------+------+------+------+------| |------+------| |------+------+------+------+------+------|
23 * | Esc | A | S | D | F | G | | { | } | | H | J | K | L | ; | ' |
24 * |------+------+------+------+------+------| |------+------| |------+------+------+------+------+------|
25 * | Shft | Z | X | C | V | B | | ( | ) | | N | M | , | . | / | Entr |
26 * |------+------+------+------+------+------| |------+------| |------+------+------+------+------+------|
27 * | Ctrl | Symb | Alt | Cmd | Symb | Spce | | | | | Spce | Fn | Left | Down | Up | Rght |
28 * `-----------------------------------------' `-------------' `-----------------------------------------'
29 */
30#define BASE_ROW_1_L KC_1, KC_2, KC_3, KC_4, KC_5
31#define BASE_ROW_2_L KC_Q, KC_W, KC_E, KC_R, KC_T
32#define BASE_ROW_3_L KC_A, KC_S, KC_D, FN_F, KC_G
33#define BASE_ROW_4_L KC_Z, KC_X, KC_C, KC_V, KC_B
34#define BASE_ROW_5_L KC_LCTL, SYMBOL, KC_LALT, KC_LGUI, SYMBOL, KC_SPC
35
36#define BASE_ROW_1_R KC_6, KC_7, KC_8, KC_9, KC_0
37#define BASE_ROW_2_R KC_Y, KC_U, KC_I, KC_O, KC_P
38#define BASE_ROW_3_R KC_H, SY_J, KC_K, KC_L, KC_SCLN
39#ifdef ARROW_LAYOUT
40 #define BASE_ROW_4_R KC_N, KC_M, KC_COMM, KC_DOT, KC_UP
41 #define BASE_ROW_5_R KC_SPC, FN_SPC, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT
42#else
43 #define BASE_ROW_4_R KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
44 #define BASE_ROW_5_R KC_SPC, FUNCT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
45#endif
46
47#define BASE_ROW_1_M KC_MINS, KC_EQL
48#define BASE_ROW_2_M KC_LBRC, KC_RBRC
49#define BASE_ROW_3_M KC_LCBR, KC_RCBR
50#define BASE_ROW_4_M KC_LPRN, KC_RPRN
51
52#define BASE_ROW_1 KC_GESC, BASE_ROW_1_L, BASE_ROW_1_R, KC_DEL
53#define BASE_ROW_2 KC_TAB, BASE_ROW_2_L, BASE_ROW_2_R, KC_BSPC
54#define BASE_ROW_3 KC_GESC, BASE_ROW_3_L, BASE_ROW_3_R, KC_QUOT
55#define BASE_ROW_4 KC_LSFT, BASE_ROW_4_L, BASE_ROW_4_R, KC_ENTER
56#define BASE_ROW_5 BASE_ROW_5_L, BASE_ROW_5_R
57
58
59/* Function layer
60 * ,-----------------------------------------. ,-----------------------------------------.
61 * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | Lock |
62 * |------+------+------+------+------+------| |------+------+------+------+------+------|
63 * | Adju | F1 | F2 | F3 | F4 | F5 | | | Home | Up | PgUp | \ | |
64 * |------+------+------+------+------+------| |------+------+------+------+------+------|
65 * | Shft | Ctrl | Alt | Cmd | | | | | Left | Down | Rght | | ` |
66 * |------+------+------+------+------+------| |------+------+------+------+------+------|
67 * | | F6 | F7 | F8 | F9 | F10 | | | End | Shft | PgDn | \ | |
68 * |------+------+------+------+------+------| |------+------+------+------+------+------|
69 * | | | | | Adju | BkSp | | | | Home | PgDn | PgUp | End |
70 * `-----------------------------------------' `-----------------------------------------'
71 */
72#define FUNCTION_ROW_1_L KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
73#define FUNCTION_ROW_2_L KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
74#define FUNCTION_ROW_3_L KC_LCTL, KC_LALT, KC_LGUI, _______, _______
75#define FUNCTION_ROW_4_L KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
76#define FUNCTION_ROW_5_L _______, _______, _______, _______, ADJUST, KC_BSPC
77
78#define FUNCTION_ROW_1_R KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
79#define FUNCTION_ROW_2_R _______, KC_HOME, KC_UP, KC_PGUP, KC_BSLS
80#define FUNCTION_ROW_3_R _______, KC_LEFT, KC_DOWN, KC_RGHT, _______
81#ifdef ARROW_LAYOUT
82 #define FUNCTION_ROW_4_R _______, KC_END, KC_LSFT, KC_PGDN, KC_PGUP
83 #define FUNCTION_ROW_5_R _______, _______, KC_BSLS, KC_HOME, KC_PGUP, KC_END
84#else
85 #define FUNCTION_ROW_4_R _______, KC_END, KC_LSFT, KC_PGDN, KC_BSLS
86 #define FUNCTION_ROW_5_R _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
87#endif
88
89#define FUNCTION_ROW_1 _______, FUNCTION_ROW_1_L, FUNCTION_ROW_1_R, LOCK
90#define FUNCTION_ROW_2 ADJUST, FUNCTION_ROW_2_L, FUNCTION_ROW_2_R, _______
91#define FUNCTION_ROW_3 KC_LSFT, FUNCTION_ROW_3_L, FUNCTION_ROW_3_R, KC_GRV
92#define FUNCTION_ROW_4 _______, FUNCTION_ROW_4_L, FUNCTION_ROW_4_R, _______
93#define FUNCTION_ROW_5 FUNCTION_ROW_5_L, FUNCTION_ROW_5_R
94
95
96/* Symbol layer
97 * ,-----------------------------------------. ,-----------------------------------------.
98 * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | Lock |
99 * |------+------+------+------+------+------| |------+------+------+------+------+------|
100 * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
101 * |------+------+------+------+------+------| |------+------+------+------+------+------|
102 * | Shft | _ | + | ( | { | [ | | ] | | Shft | { | } | ` |
103 * |------+------+------+------+------+------| |------+------+------+------+------+------|
104 * | | - | = | => | -> | - | | = | == | === | [ | ] | |
105 * |------+------+------+------+------+------| |------+------+------+------+------+------|
106 * | | | | | | | | Del | Adju | Home | PgDn | PgUp | End |
107 * `-----------------------------------------' `-----------------------------------------'
108 */
109#define SYMBOL_ROW_2_L KC_1, KC_2, KC_3, KC_4, KC_5
110#define SYMBOL_ROW_3_L KC_UNDS, KC_PLUS, KC_LPRN, KC_LCBR, KC_LBRC
111#define SYMBOL_ROW_4_L KC_MINS, KC_EQL, MC_DARR, MC_ARR, KC_MINS
112#define SYMBOL_ROW_5_L _______, _______, _______, _______, _______, _______
113
114#define SYMBOL_ROW_2_R KC_6, KC_7, KC_8, KC_9, KC_0
115#define SYMBOL_ROW_3_R KC_RBRC, _______, KC_RSFT, KC_LCBR, KC_RCBR
116#ifdef ARROW_LAYOUT
117 #define SYMBOL_ROW_4_R KC_EQL, MC_DEQL, MC_TEQL, KC_LBRC, KC_PGUP
118 #define SYMBOL_ROW_5_R KC_DEL, ADJUST, KC_BSLS, KC_HOME, KC_PGUP, KC_END
119#else
120 #define SYMBOL_ROW_4_R KC_EQL, MC_DEQL, MC_TEQL, KC_LBRC, KC_RBRC
121 #define SYMBOL_ROW_5_R KC_DEL, ADJUST, KC_HOME, KC_PGDN, KC_PGUP, KC_END
122#endif
123
124#define SYMBOL_ROW_1 _______, FUNCTION_ROW_1_L, FUNCTION_ROW_1_R, LOCK
125#define SYMBOL_ROW_2 _______, SYMBOL_ROW_2_L, SYMBOL_ROW_2_R, _______
126#define SYMBOL_ROW_3 KC_LSFT, SYMBOL_ROW_3_L, SYMBOL_ROW_3_R, KC_GRV
127#define SYMBOL_ROW_4 _______, SYMBOL_ROW_4_L, SYMBOL_ROW_4_R, _______
128#define SYMBOL_ROW_5 SYMBOL_ROW_5_L, SYMBOL_ROW_5_R
129
130
131/* Adjust layer */
132#define ADJUST_ROW_2_L KC_RESET, XXXXXXX, XXXXXXX, BL_STEP, BL_TOGG
133#define ADJUST_ROW_2_R RGB_TOG, RGB_VAI, RGB_SAI, RGB_HUI, XXXXXXX
134
135#define ADJUST_ROW_3_L XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
136#define ADJUST_ROW_3_R RGB_MOD, RGB_VAD, RGB_SAD, RGB_HUD, XXXXXXX
137
138#define ADJUST_ROW_4_L AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX
139#define ADJUST_ROW_4_R RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_G, RGB_M_T
140
141#define ADJUST_ROW_5_L XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX
142#define ADJUST_ROW_5_R XXXXXXX, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MUTE
143
144#define ADJUST_ROW_1 LOCK, ADJUST_ROW_2_L, ADJUST_ROW_2_R, LOCK
145#define ADJUST_ROW_2 _______, ADJUST_ROW_2_L, ADJUST_ROW_2_R, LOCK
146#define ADJUST_ROW_3 XXXXXXX, ADJUST_ROW_3_L, ADJUST_ROW_3_R, XXXXXXX
147#define ADJUST_ROW_4 XXXXXXX, ADJUST_ROW_4_L, ADJUST_ROW_4_R, XXXXXXX
148#define ADJUST_ROW_5 ADJUST_ROW_5_L, ADJUST_ROW_5_R
149
150#define EMPTY_ROW XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
diff --git a/users/peej/peej.c b/users/peej/peej.c
new file mode 100644
index 000000000..c4ea4f87b
--- /dev/null
+++ b/users/peej/peej.c
@@ -0,0 +1,68 @@
1/* Copyright 2020 Paul James
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "peej.h"
18
19bool process_record_user(uint16_t keycode, keyrecord_t *record) {
20 bool is_shifted = get_mods() & MOD_LSFT;
21
22 if (record->event.pressed) {
23 switch(keycode) {
24 case MC_ARR:
25 if (is_shifted) {
26 unregister_mods(MOD_LSFT);
27 SEND_STRING("=>");
28 register_mods(MOD_LSFT);
29 } else {
30 SEND_STRING("->");
31 }
32 break;
33 case MC_DARR:
34 unregister_mods(MOD_LSFT);
35 SEND_STRING("=>");
36 if (is_shifted) register_mods(MOD_LSFT);
37 break;
38 case MC_DEQL:
39 if (is_shifted) {
40 unregister_mods(MOD_LSFT);
41 SEND_STRING("!=");
42 register_mods(MOD_LSFT);
43 } else {
44 SEND_STRING("==");
45 }
46 break;
47 case MC_TEQL:
48 if (is_shifted) {
49 unregister_mods(MOD_LSFT);
50 SEND_STRING("!==");
51 register_mods(MOD_LSFT);
52 } else {
53 SEND_STRING("===");
54 }
55 break;
56 case KC_RESET:
57 #ifdef RGBLIGHT_ENABLE
58 rgblight_enable_noeeprom();
59 rgblight_mode_noeeprom(1);
60 rgblight_setrgb_red();
61 #endif
62 reset_keyboard();
63 break;
64 }
65 }
66
67 return true;
68};
diff --git a/users/peej/peej.h b/users/peej/peej.h
new file mode 100644
index 000000000..b9ec571e5
--- /dev/null
+++ b/users/peej/peej.h
@@ -0,0 +1,78 @@
1/* Copyright 2020 Paul James
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18#include QMK_KEYBOARD_H
19
20#include "eeconfig.h"
21
22enum custom_layers {
23 _BASE = 0,
24 _SYMBOL,
25 _FUNCTION,
26 _ADJUST,
27};
28
29// Fillers to make layering more clear
30#define ______2 KC_TRNS, KC_TRNS
31#define ______3 KC_TRNS, KC_TRNS, KC_TRNS
32#define ______4 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
33#define ______5 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
34
35enum custom_keycodes {
36 MC_ARR = SAFE_RANGE,
37 MC_DARR,
38 MC_DEQL,
39 MC_TEQL,
40 KC_RESET
41};
42
43#define SYMBOL MO(_SYMBOL)
44#define FUNCT MO(_FUNCTION)
45#define ADJUST MO(_ADJUST)
46
47#define FN_SPC LT(_FUNCTION, KC_SPC)
48#define SY_SPC LT(_SYMBOL, KC_SPC)
49#define FN_F LT(_FUNCTION, KC_F)
50#define SY_J LT(_SYMBOL, KC_J)
51
52#define CTLESC LCTL_T(KC_ESC)
53#define SFTENT RSFT_T(KC_ENT)
54#define LOCK LCTL(LGUI(KC_Q))
55#define BACK LGUI(KC_LBRC)
56#define FORWARD LGUI(KC_RBRC)
57#define NXTFUNC LCTL(KC_DOWN)
58#define PRVFUNC LCTL(KC_UP)
59#define TOP LGUI(KC_UP)
60#define BOTTOM LGUI(KC_DOWN)
61
62#ifdef LAYOUT_ortho_4x12
63 #define LAYOUT_PEEJ(...) LAYOUT_ortho_4x12(__VA_ARGS__)
64#endif
65
66#ifdef LAYOUT_ortho_5x12
67 #define LAYOUT_PEEJ(...) LAYOUT_ortho_5x12(__VA_ARGS__)
68#endif
69
70#ifdef LAYOUT_ortho_hhkb
71 #define LAYOUT_PEEJ_hhkb(...) LAYOUT_ortho_hhkb(__VA_ARGS__)
72#endif
73
74#ifdef LAYOUT_ortho_7u
75 #define LAYOUT_PEEJ_7u(...) LAYOUT_ortho_7u(__VA_ARGS__)
76#endif
77
78#include "layout.h"
diff --git a/users/peej/rules.mk b/users/peej/rules.mk
new file mode 100644
index 000000000..9c1105e72
--- /dev/null
+++ b/users/peej/rules.mk
@@ -0,0 +1 @@
SRC += peej.c