diff options
| -rw-r--r-- | keyboards/keebio/iris/keymaps/mattly/config.h | 28 | ||||
| -rw-r--r-- | keyboards/keebio/iris/keymaps/mattly/keymap.c | 50 | ||||
| -rw-r--r-- | keyboards/keebio/iris/keymaps/mattly/readme.md | 1 | ||||
| -rw-r--r-- | keyboards/keebio/iris/keymaps/mattly/rules.mk | 0 | ||||
| -rw-r--r-- | keyboards/planck/keymaps/mattly/keymap.c | 164 | ||||
| -rw-r--r-- | keyboards/planck/keymaps/mattly/readme.md | 29 | ||||
| -rw-r--r-- | users/mattly/config.h | 9 | ||||
| -rw-r--r-- | users/mattly/mattly.c | 70 | ||||
| -rw-r--r-- | users/mattly/mattly.h | 83 | ||||
| -rw-r--r-- | users/mattly/readme.md | 10 | ||||
| -rw-r--r-- | users/mattly/rules.mk | 2 |
11 files changed, 270 insertions, 176 deletions
diff --git a/keyboards/keebio/iris/keymaps/mattly/config.h b/keyboards/keebio/iris/keymaps/mattly/config.h new file mode 100644 index 000000000..01bb31a6e --- /dev/null +++ b/keyboards/keebio/iris/keymaps/mattly/config.h | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | /* | ||
| 2 | Copyright 2017 Danny Nguyen <danny@keeb.io> | ||
| 3 | |||
| 4 | This program is free software: you can redistribute it and/or modify | ||
| 5 | it under the terms of the GNU General Public License as published by | ||
| 6 | the Free Software Foundation, either version 2 of the License, or | ||
| 7 | (at your option) any later version. | ||
| 8 | |||
| 9 | This program is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | GNU General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU General Public License | ||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #pragma once | ||
| 19 | |||
| 20 | // #define USE_I2C | ||
| 21 | #define EE_HANDS | ||
| 22 | |||
| 23 | #undef RGBLED_NUM | ||
| 24 | #define RGBLIGHT_ANIMATIONS | ||
| 25 | #define RGBLED_NUM 12 | ||
| 26 | #define RGBLIGHT_HUE_STEP 8 | ||
| 27 | #define RGBLIGHT_SAT_STEP 8 | ||
| 28 | #define RGBLIGHT_VAL_STEP 8 | ||
diff --git a/keyboards/keebio/iris/keymaps/mattly/keymap.c b/keyboards/keebio/iris/keymaps/mattly/keymap.c new file mode 100644 index 000000000..4f4ff225e --- /dev/null +++ b/keyboards/keebio/iris/keymaps/mattly/keymap.c | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | #include QMK_KEYBOARD_H | ||
| 2 | #include "mattly.h" | ||
| 3 | |||
| 4 | // extern keymap_config_t keymap_config; | ||
| 5 | |||
| 6 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 7 | |||
| 8 | [_QWERTY] = LAYOUT( | ||
| 9 | KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, | ||
| 10 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_SCLN, | ||
| 11 | KC_CAPS, A_CTRL, S_ALT, D_GUI, F_SHFT, KC_G, KC_H, J_SHFT, K_GUI, L_ALT, MINSCTL, KC_QUOT, | ||
| 12 | XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, SPC_SFT, BSP_NUM, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, | ||
| 13 | ESC_HYP, BSP_NUM, ENT_SFT, SPC_SFT, TAB_SYM, DEL_WRP | ||
| 14 | ), | ||
| 15 | |||
| 16 | [_SYMBOL] = LAYOUT( | ||
| 17 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 18 | _______, KC_AMPR, KC_GRV, KC_TILD, KC_LBRC, KC_RBRC, KC_LABK, KC_RABK, KC_PLUS, KC_ASTR, XXXXXXX, _______, | ||
| 19 | _______, KC_DLR, KC_PERC, KC_EQL, KC_LPRN, KC_RPRN, KC_SCLN, KC_COLN, KC_EXLM, KC_AT, KC_UNDS, _______, | ||
| 20 | RESET, XXXXXXX, KC_CIRC, KC_HASH, KC_LCBR, KC_RCBR, _______, _______, KC_QUOT, KC_DQUO, KC_PIPE, KC_BSLS, KC_QUES, _______, | ||
| 21 | _______, _______, _______, _______, _______, _______ | ||
| 22 | ), | ||
| 23 | |||
| 24 | [_NAVNUM] = LAYOUT( | ||
| 25 | XNOTIFY, XXXXXXX, XPRVSPC, NWIN, XNXTSPC, XXXXXXX, XXXXXXX, KC_SLSH, KC_ASTR, KC_MINS, KC_PLUS, XXXXXXX, | ||
| 26 | XALLWIN, NAVFWD, BWORD, KC_UP, FWORD, KC_PGUP, KC_DLR, KC_P7, KC_P8, KC_P9, KC_DOT, XXXXXXX, | ||
| 27 | XDESKTP, NAVBACK, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_PERC, KC_P4, KC_P5, KC_P6, KC_EQL, XXXXXXX, | ||
| 28 | RESET, PTAB, KC_HOME, PWIN, KC_END, NTAB, _______, _______, XXXXXXX, KC_P1, KC_P2, KC_P3, KC_ENT, XXXXXXX, | ||
| 29 | _______, _______, _______, _______, _______, KC_P0 | ||
| 30 | ), | ||
| 31 | |||
| 32 | [_FUNCT] = LAYOUT( | ||
| 33 | KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, | ||
| 34 | RESET, XALLWIN, XPRVSPC, NWIN, XNXTSPC, XDESKTP, XXXXXXX, RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_K, RESET, | ||
| 35 | DEBUG, XNOTIFY, PTAB, PWIN, NTAB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 36 | KC_MUTE, KC_VOLD, KC_VOLU, KC_MRWD, KC_MFFD, KC_MPLY, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 37 | _______, _______, _______, _______, _______, _______ | ||
| 38 | ) | ||
| 39 | }; | ||
| 40 | |||
| 41 | void encoder_update_user(uint8_t index, bool clockwise) { | ||
| 42 | if (index == 0) { | ||
| 43 | if (clockwise) { | ||
| 44 | tap_code(KC_MS_WH_UP); | ||
| 45 | } else { | ||
| 46 | tap_code(KC_MS_WH_DOWN); | ||
| 47 | } | ||
| 48 | } | ||
| 49 | } | ||
| 50 | |||
diff --git a/keyboards/keebio/iris/keymaps/mattly/readme.md b/keyboards/keebio/iris/keymaps/mattly/readme.md new file mode 100644 index 000000000..4e8c7f17c --- /dev/null +++ b/keyboards/keebio/iris/keymaps/mattly/readme.md | |||
| @@ -0,0 +1 @@ | |||
| See my readme in [users/mattly](../../../../../users/mattly/readme.md) \ No newline at end of file | |||
diff --git a/keyboards/keebio/iris/keymaps/mattly/rules.mk b/keyboards/keebio/iris/keymaps/mattly/rules.mk new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/keyboards/keebio/iris/keymaps/mattly/rules.mk | |||
diff --git a/keyboards/planck/keymaps/mattly/keymap.c b/keyboards/planck/keymaps/mattly/keymap.c index baa7d9fbf..52ade8643 100644 --- a/keyboards/planck/keymaps/mattly/keymap.c +++ b/keyboards/planck/keymaps/mattly/keymap.c | |||
| @@ -1,166 +1,34 @@ | |||
| 1 | /* Copyright 2015-2017 Jack Humbert | ||
| 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 | 1 | #include QMK_KEYBOARD_H |
| 18 | #include "muse.h" | 2 | #include "mattly.h" |
| 19 | |||
| 20 | extern keymap_config_t keymap_config; | ||
| 21 | |||
| 22 | enum planck_layers { | ||
| 23 | _QWERTY, | ||
| 24 | _NUMBER, | ||
| 25 | _SYMBOL, | ||
| 26 | _FUNC, | ||
| 27 | }; | ||
| 28 | |||
| 29 | enum planck_keycodes { | ||
| 30 | QWERTY = SAFE_RANGE | ||
| 31 | }; | ||
| 32 | |||
| 33 | #define SPC_SHF MT(MOD_LSFT, KC_SPC) | ||
| 34 | |||
| 35 | #define ESC_HYP MT(MOD_HYPR, KC_ESC) | ||
| 36 | #define TAB_NUM LT(_NUMBER, KC_TAB) | ||
| 37 | #define BSP_SYM LT(_SYMBOL, KC_BSPC) | ||
| 38 | #define DEL_WRP MT(MOD_LCTL | MOD_LALT | MOD_LGUI, KC_DEL) | ||
| 39 | |||
| 40 | #define SYMLOCK TG(_SYMBOL) | ||
| 41 | #define NUMLOCK TG(_NUMBER) | ||
| 42 | |||
| 43 | #define ONE_CTL OSM(MOD_LCTL) | ||
| 44 | #define ONE_ALT OSM(MOD_LALT) | ||
| 45 | #define ONE_GUI OSM(MOD_LGUI) | ||
| 46 | #define ONE_HYP OSM(MOD_HYPR) | ||
| 47 | #define ONE_MEH OSM(MOD_MEH) | ||
| 48 | #define ONE_WRP OSM(MOD_LCTL | MOD_LALT | MOD_LGUI) | ||
| 49 | #define ONE_WOA OSM(MOD_LCTL | MOD_LGUI | MOD_LSFT) | ||
| 50 | #define ONE_DER OSM(MOD_LALT | MOD_LGUI | MOD_LSFT) | ||
| 51 | |||
| 52 | #define A_CTRL MT(MOD_LCTL, KC_A) | ||
| 53 | #define S_ALT MT(MOD_LALT, KC_S) | ||
| 54 | #define D_GUI MT(MOD_LGUI, KC_D) | ||
| 55 | #define F_SHFT MT(MOD_LSFT, KC_F) | ||
| 56 | #define J_SHFT MT(MOD_RSFT, KC_J) | ||
| 57 | #define K_GUI MT(MOD_RGUI, KC_K) | ||
| 58 | #define L_ALT MT(MOD_RALT, KC_L) | ||
| 59 | #define MINSCTL MT(MOD_RCTL, KC_MINS) | ||
| 60 | |||
| 61 | #define ENT_CTL MT(MOD_LCTL, KC_ENT) | ||
| 62 | #define LT_ALT MT(MOD_LALT, KC_LEFT) | ||
| 63 | #define DN_GUI MT(MOD_LGUI, KC_DOWN) | ||
| 64 | #define RT_SHFT MT(MOD_LSFT, KC_RGHT) | ||
| 65 | #define N4_SHFT MT(MOD_RSFT, KC_4) | ||
| 66 | #define N5_GUI MT(MOD_RGUI, KC_5) | ||
| 67 | #define N6_ALT MT(MOD_RALT, KC_6) | ||
| 68 | |||
| 69 | #define BWORD LALT(KC_LEFT) | ||
| 70 | #define FWORD LALT(KC_RIGHT) | ||
| 71 | |||
| 72 | #define NWIN LGUI(KC_GRV) | ||
| 73 | #define PWIN LGUI(LSFT(KC_GRV)) | ||
| 74 | #define NTAB LGUI(LSFT(KC_RBRC)) | ||
| 75 | #define PTAB LGUI(LSFT(KC_LBRC)) | ||
| 76 | #define NAVBACK LGUI(KC_LBRC) | ||
| 77 | #define NAVFWD LGUI(KC_RBRC) | ||
| 78 | |||
| 79 | #define XMSNCTL HYPR(KC_F14) | ||
| 80 | #define XDSKTOP HYPR(KC_F15) | ||
| 81 | #define XNXTSPC HYPR(KC_F16) | ||
| 82 | #define XPRVSPC HYPR(KC_F17) | ||
| 83 | #define XNOTIFY HYPR(KC_F18) | ||
| 84 | 3 | ||
| 85 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 4 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 86 | |||
| 87 | /* Querty | ||
| 88 | | # | q | w | e | r | t | y | u | i | o | p | - | | ||
| 89 | | | | | | | | | | | | | | | ||
| 90 | |------|------|------|------|------|------|------|------|------|------|------|------| | ||
| 91 | | ( | a | s | d | f | g | h | j | k | l | ; | ' | | ||
| 92 | | | CTRL | ALT | GUI | SHIFT| | | SHIFT| GUI | ALT | CTRL | | | ||
| 93 | |------|------|------|------|------|------|------|------|------|------|------|------| | ||
| 94 | | [ | z | x | c | v | b | n | m | , | . | / | > | | ||
| 95 | | | | | | | | | | | | | | | ||
| 96 | |------|------|------|------|------|------|------|------|------|------|------|------| | ||
| 97 | | ctrl | alt | gui | Esc | Tab | space | Bksp | Del | hyper| meh | warp | | ||
| 98 | | | | | FUNC |NUMBER| SHIFT |SYMBOL| | | | | | ||
| 99 | */ | ||
| 100 | [_QWERTY] = LAYOUT_planck_grid( | 5 | [_QWERTY] = LAYOUT_planck_grid( |
| 101 | KC_HASH, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_SCLN, | 6 | XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_SCLN, |
| 102 | KC_LPRN, A_CTRL, S_ALT, D_GUI, F_SHFT, KC_G, KC_H, J_SHFT, K_GUI, L_ALT, MINSCTL, KC_QUOT, | 7 | KC_CAPS, A_CTRL, S_ALT, D_GUI, F_SHFT, KC_G, KC_H, J_SHFT, K_GUI, L_ALT, MINSCTL, KC_QUOT, |
| 103 | KC_LBRC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RABK, | 8 | XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, |
| 104 | NUMLOCK, MO(_FUNC), ONE_MEH, ESC_HYP, TAB_NUM, SPC_SHF, SPC_SHF, BSP_SYM, DEL_WRP, ONE_WRP, ONE_DER, SYMLOCK | 9 | XXXXXXX, NAVLOCK, XXXXXXX, ESC_HYP, BSP_NUM, ENT_SFT, SPC_SFT, TAB_SYM, DEL_WRP, XXXXXXX, SYMLOCK, XXXXXXX |
| 105 | ), | 10 | ), |
| 106 | 11 | ||
| 107 | /* Symbol | ||
| 108 | | | & | ` | ~ | [ | ] | < | > | + | | | | | | ||
| 109 | | | $ | % | = | ( | ) | ; | : | ! | @ | _ | | | ||
| 110 | | | | ^ | # | { | } | ' | " | | | \ | ? | | | ||
| 111 | | | | | | | | .... | | | | | | ||
| 112 | */ | ||
| 113 | [_SYMBOL] = LAYOUT_planck_grid( | 12 | [_SYMBOL] = LAYOUT_planck_grid( |
| 114 | KC_ESC, KC_AMPR, KC_GRV, KC_TILD, KC_LBRC, KC_RBRC, KC_LABK, KC_RABK, KC_PLUS, KC_ASTR, XXXXXXX, KC_DEL, | 13 | _______, KC_AMPR, KC_GRV, KC_TILD, KC_LBRC, KC_RBRC, KC_LABK, KC_RABK, KC_PLUS, KC_ASTR, XXXXXXX, _______, |
| 115 | KC_ENT, KC_DLR, KC_PERC, KC_EQL, KC_LPRN, KC_RPRN, KC_SCLN, KC_COLN, KC_EXLM, KC_AT, KC_UNDS, KC_BSPC, | 14 | _______, KC_DLR, KC_PERC, KC_EQL, KC_LPRN, KC_RPRN, KC_SCLN, KC_COLN, KC_EXLM, KC_AT, KC_UNDS, _______, |
| 116 | _______, XXXXXXX, KC_CIRC, KC_HASH, KC_LCBR, KC_RCBR, KC_QUOT, KC_DQUO, KC_PIPE, KC_BSLS, KC_QUES, _______, | 15 | _______, XXXXXXX, KC_CIRC, KC_HASH, KC_LCBR, KC_RCBR, KC_QUOT, KC_DQUO, KC_PIPE, KC_BSLS, KC_QUES, _______, |
| 117 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | 16 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ |
| 118 | ), | 17 | ), |
| 119 | /* Number | 18 | |
| 120 | | | |<-word| up |word->| PgUp | . | 7 | 8 | 9 | + | * | | 19 | [_NAVNUM] = LAYOUT_planck_grid( |
| 121 | | | Enter| left | down | right| PgDn | 0 | 4 | 5 | 6 | - | / | | 20 | _______, XXXXXXX, BWORD, KC_UP, FWORD, KC_PGUP, KC_DOT, KC_7, KC_8, KC_9, KC_PLUS, KC_ASTR, |
| 122 | | | Bksp | Home | tab | End | Del | , | 1 | 2 | 3 | = | % | | 21 | _______, KC_ENT, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_0, KC_4, KC_5, KC_6, KC_MINS, KC_SLSH, |
| 123 | | | | | | .... | | | | : | $ | | | 22 | _______, KC_BSPC, KC_HOME, KC_TAB, KC_END, KC_DEL, KC_COMM, KC_1, KC_2, KC_3, KC_EQL, KC_PERC, |
| 124 | */ | 23 | _______, _______, _______, _______, _______, _______, _______, _______, KC_0, KC_COLN, KC_DLR, _______ |
| 125 | [_NUMBER] = LAYOUT_planck_grid( | ||
| 126 | XXXXXXX, XXXXXXX, BWORD, KC_UP, FWORD, KC_PGUP, KC_DOT, KC_7, KC_8, KC_9, KC_PLUS, KC_ASTR, | ||
| 127 | KC_CAPS, ENT_CTL, LT_ALT, DN_GUI, RT_SHFT, KC_PGDN, KC_0, N4_SHFT, N5_GUI, N6_ALT, MINSCTL, KC_SLSH, | ||
| 128 | XXXXXXX, KC_BSPC, KC_HOME, KC_TAB, KC_END, KC_DEL, KC_COMM, KC_1, KC_2, KC_3, KC_EQL, KC_PERC, | ||
| 129 | _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_COLN, KC_DLR, _______ | ||
| 130 | ), | 24 | ), |
| 131 | /* Function | 25 | |
| 132 | * | Reset| Mctl | Pspc | Nwin | Nspc | Desk | | F7 | F8 | F9 | F10 | F13 | | 26 | [_FUNCT] = LAYOUT_planck_grid( |
| 133 | * | Debug| Nctr | Ptab | Pwin | Ntab | Back | Fwd | F4 | F5 | F6 | F11 | F14 | | 27 | RESET, XALLWIN, XPRVSPC, NWIN, XNXTSPC, XDESKTP, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F13, |
| 134 | * | Mute | Vol- | Vol+ | Trk- | Trk+ | Play | | F1 | F2 | F3 | F12 | F15 | | ||
| 135 | * | | | | | | | | | | | | | | ||
| 136 | */ | ||
| 137 | [_FUNC] = LAYOUT_planck_grid( | ||
| 138 | RESET, XMSNCTL, XPRVSPC, NWIN, XNXTSPC, XDSKTOP, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F13, | ||
| 139 | DEBUG, XNOTIFY, PTAB, PWIN, NTAB, NAVBACK, NAVFWD, KC_F4, KC_F5, KC_F6, KC_F11, KC_F14, | 28 | DEBUG, XNOTIFY, PTAB, PWIN, NTAB, NAVBACK, NAVFWD, KC_F4, KC_F5, KC_F6, KC_F11, KC_F14, |
| 140 | KC_MUTE, KC_VOLD, KC_VOLU, KC_MRWD, KC_MFFD, KC_MPLY, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F12, KC_F15, | 29 | KC_MUTE, KC_VOLD, KC_VOLU, KC_MRWD, KC_MFFD, KC_MPLY, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F12, KC_F15, |
| 141 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | 30 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ |
| 142 | ) | 31 | ) |
| 143 | }; | 32 | }; |
| 144 | 33 | ||
| 145 | #ifdef AUDIO_ENABLE | ||
| 146 | #endif | ||
| 147 | |||
| 148 | uint32_t layer_state_set_user(uint32_t state) { | ||
| 149 | state = update_tri_layer_state(state, _SYMBOL, _NUMBER, _FUNC); | ||
| 150 | return state; | ||
| 151 | } | ||
| 152 | |||
| 153 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 154 | switch (keycode) { | ||
| 155 | case QWERTY: | ||
| 156 | if (record->event.pressed) { | ||
| 157 | print("mode just switched to qwerty and this is a huge string\n"); | ||
| 158 | set_single_persistent_default_layer(_QWERTY); | ||
| 159 | } | ||
| 160 | return false; | ||
| 161 | break; | ||
| 162 | } | ||
| 163 | return true; | ||
| 164 | } | ||
| 165 | |||
| 166 | 34 | ||
diff --git a/keyboards/planck/keymaps/mattly/readme.md b/keyboards/planck/keymaps/mattly/readme.md index 58f2b979c..4e8c7f17c 100644 --- a/keyboards/planck/keymaps/mattly/readme.md +++ b/keyboards/planck/keymaps/mattly/readme.md | |||
| @@ -1,28 +1 @@ | |||
| 1 | # Mattly's Planck layout | See my readme in [users/mattly](../../../../../users/mattly/readme.md) \ No newline at end of file | |
| 2 | |||
| 3 | This planck layout is optimized for, in order: | ||
| 4 | |||
| 5 | - moving work from my pinkies to my thumbs | ||
| 6 | - writing lisp/clojure code in my evil-mode based emacs setup | ||
| 7 | - tapping out messages in chat applications such as slack | ||
| 8 | - writing english in markdown files in said emacs | ||
| 9 | - navigating mac applications | ||
| 10 | - writing english in a web browser on a macintosh | ||
| 11 | - writing other programming languages' code in said emacs | ||
| 12 | - writing english in other contexts | ||
| 13 | - literally anything else | ||
| 14 | |||
| 15 | ## oddities: | ||
| 16 | |||
| 17 | You may notice that `enter` is on a layer. This is an experiment and I kind of | ||
| 18 | like it so far, since many programs interpret that keystroke as a "commit" | ||
| 19 | of some kind. | ||
| 20 | |||
| 21 | ## works in progress | ||
| 22 | |||
| 23 | I'm trying to figure out how to make some things easier to do with the mouse or | ||
| 24 | one-handed. Right now the combo of entering numbers and using a mouse with my | ||
| 25 | right hand is kind of annoying. I want to be able to toggle layers on, but only | ||
| 26 | from within that layer. | ||
| 27 | |||
| 28 |  | ||
diff --git a/users/mattly/config.h b/users/mattly/config.h new file mode 100644 index 000000000..25d379801 --- /dev/null +++ b/users/mattly/config.h | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | #pragma once | ||
| 2 | |||
| 3 | // Most tactile encoders have detents every 4 stages | ||
| 4 | #define ENCODER_RESOLUTION 4 | ||
| 5 | |||
| 6 | #define IGNORE_MOD_TAP_INTERRUPT | ||
| 7 | #define PERMISSIVE_HOLD | ||
| 8 | #define TAPPING_TOGGLE 2 | ||
| 9 | #define TAPPING_TERM 200 | ||
diff --git a/users/mattly/mattly.c b/users/mattly/mattly.c new file mode 100644 index 000000000..1e61e0126 --- /dev/null +++ b/users/mattly/mattly.c | |||
| @@ -0,0 +1,70 @@ | |||
| 1 | #include "mattly.h" | ||
| 2 | |||
| 3 | __attribute__ ((weak)) | ||
| 4 | layer_state_t layer_state_set_keymap (layer_state_t state) { | ||
| 5 | return state; | ||
| 6 | } | ||
| 7 | |||
| 8 | void set_lights_default(void) { | ||
| 9 | #ifdef RGBLIGHT_ENABLE | ||
| 10 | if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { | ||
| 11 | rgblight_sethsv_noeeprom(HSV_CAPS); | ||
| 12 | } else { | ||
| 13 | rgblight_sethsv_noeeprom(HSV_DEFAULT); | ||
| 14 | } | ||
| 15 | #endif | ||
| 16 | } | ||
| 17 | |||
| 18 | void layer_state_set_rgb(layer_state_t state) { | ||
| 19 | #ifdef RGBLIGHT_ENABLE | ||
| 20 | switch (biton32(state)) { | ||
| 21 | case _QWERTY: | ||
| 22 | set_lights_default(); | ||
| 23 | break; | ||
| 24 | case _SYMBOL: | ||
| 25 | rgblight_sethsv_noeeprom(HSV_SYMBOL); | ||
| 26 | break; | ||
| 27 | case _NAVNUM: | ||
| 28 | rgblight_sethsv_noeeprom(HSV_NAVNUM); | ||
| 29 | break; | ||
| 30 | case _FUNCT: | ||
| 31 | rgblight_sethsv_noeeprom(HSV_FUNCT); | ||
| 32 | break; | ||
| 33 | } | ||
| 34 | #endif | ||
| 35 | } | ||
| 36 | |||
| 37 | |||
| 38 | layer_state_t layer_state_set_user (layer_state_t state) { | ||
| 39 | state = update_tri_layer_state(state, _SYMBOL, _NAVNUM, _FUNCT); | ||
| 40 | layer_state_set_rgb(state); | ||
| 41 | return layer_state_set_keymap (state); | ||
| 42 | } | ||
| 43 | |||
| 44 | void on_reset(void) { | ||
| 45 | #ifdef RGBLIGHT_ENABLE | ||
| 46 | rgblight_sethsv_noeeprom(HSV_RESET); | ||
| 47 | #endif | ||
| 48 | } | ||
| 49 | |||
| 50 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 51 | switch (keycode) { | ||
| 52 | case KC_CAPS: | ||
| 53 | #ifdef RGBLIGHT_ENABLE | ||
| 54 | set_lights_default(); | ||
| 55 | #endif | ||
| 56 | return true; | ||
| 57 | case RESET: | ||
| 58 | on_reset(); | ||
| 59 | return true; | ||
| 60 | default: | ||
| 61 | return true; | ||
| 62 | } | ||
| 63 | } | ||
| 64 | |||
| 65 | void keyboard_post_init_user(void) { | ||
| 66 | #ifdef RGBLIGHT_ENABLE | ||
| 67 | rgblight_enable_noeeprom(); | ||
| 68 | set_lights_default(); | ||
| 69 | #endif | ||
| 70 | } | ||
diff --git a/users/mattly/mattly.h b/users/mattly/mattly.h new file mode 100644 index 000000000..08318840d --- /dev/null +++ b/users/mattly/mattly.h | |||
| @@ -0,0 +1,83 @@ | |||
| 1 | /* Copyright 2019 Matthew Lyon | ||
| 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 | #ifndef USERSPACE | ||
| 18 | #define USERSPACE | ||
| 19 | |||
| 20 | #include "quantum.h" | ||
| 21 | |||
| 22 | enum { | ||
| 23 | _QWERTY, | ||
| 24 | _NAVNUM, | ||
| 25 | _SYMBOL, | ||
| 26 | _FUNCT, | ||
| 27 | }; | ||
| 28 | |||
| 29 | // left hand | ||
| 30 | #define ESC_HYP MT(MOD_HYPR, KC_ESC) | ||
| 31 | #define BSP_NUM LT(_NAVNUM, KC_BSPC) | ||
| 32 | #define ENT_SFT MT(MOD_LSFT, KC_ENT) | ||
| 33 | #define SPC_SFT MT(MOD_LSFT, KC_SPC) | ||
| 34 | |||
| 35 | // right hand | ||
| 36 | #define SPC_SFT MT(MOD_LSFT, KC_SPC) | ||
| 37 | #define TAB_SYM LT(_SYMBOL, KC_TAB) | ||
| 38 | #define DEL_WRP MT(MOD_LCTL | MOD_LALT | MOD_LGUI, KC_DEL) | ||
| 39 | |||
| 40 | #define NAVLOCK TG(_NAVNUM) | ||
| 41 | #define SYMLOCK TG(_SYMBOL) | ||
| 42 | |||
| 43 | |||
| 44 | // QWERTY | ||
| 45 | |||
| 46 | #define A_CTRL MT(MOD_LCTL, KC_A) | ||
| 47 | #define S_ALT MT(MOD_LALT, KC_S) | ||
| 48 | #define D_GUI MT(MOD_LGUI, KC_D) | ||
| 49 | #define F_SHFT MT(MOD_LSFT, KC_F) | ||
| 50 | #define J_SHFT MT(MOD_RSFT, KC_J) | ||
| 51 | #define K_GUI MT(MOD_RGUI, KC_K) | ||
| 52 | #define L_ALT MT(MOD_RALT, KC_L) | ||
| 53 | #define MINSCTL MT(MOD_RCTL, KC_MINS) | ||
| 54 | |||
| 55 | #define BWORD LALT(KC_LEFT) | ||
| 56 | #define FWORD LALT(KC_RIGHT) | ||
| 57 | |||
| 58 | // OS X default keys | ||
| 59 | #define NWIN LGUI(KC_GRV) // Next Window | ||
| 60 | #define PWIN LGUI(LSFT(KC_GRV)) // Prev Window | ||
| 61 | #define NTAB LGUI(LSFT(KC_RBRC)) // Next Tab | ||
| 62 | #define PTAB LGUI(LSFT(KC_LBRC)) // Prev Tab | ||
| 63 | #define NAVBACK LGUI(KC_LBRC) // Navigate Forward | ||
| 64 | #define NAVFWD LGUI(KC_RBRC) // Navigate Back | ||
| 65 | |||
| 66 | // my personal mappings to window manager commands | ||
| 67 | #define XALLWIN HYPR(KC_F14) | ||
| 68 | #define XDESKTP HYPR(KC_F15) | ||
| 69 | #define XNXTSPC HYPR(KC_F16) | ||
| 70 | #define XPRVSPC HYPR(KC_F17) | ||
| 71 | #define XNOTIFY HYPR(KC_F18) | ||
| 72 | |||
| 73 | #ifdef RGBLIGHT_ENABLE | ||
| 74 | #define HSV_CAPS 42, 255, 255 | ||
| 75 | #define HSV_DEFAULT 30, 218, 255 | ||
| 76 | #define HSV_SYMBOL 22, 255, 255 | ||
| 77 | #define HSV_NAVNUM 245, 200, 255 | ||
| 78 | #define HSV_FUNCT 233, 255, 255 | ||
| 79 | #define HSV_RESET 180, 255, 255 | ||
| 80 | #endif | ||
| 81 | |||
| 82 | #endif | ||
| 83 | |||
diff --git a/users/mattly/readme.md b/users/mattly/readme.md new file mode 100644 index 000000000..356992534 --- /dev/null +++ b/users/mattly/readme.md | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | # mattly's layouts | ||
| 2 | |||
| 3 | My layouts are based around: | ||
| 4 | |||
| 5 | * making the most from small layouts on keyboards like the iris or planck | ||
| 6 | * moving held-modifiers from pinkies to thumbs or home row, giving many keys dual purposes via mod/layer taps | ||
| 7 | * easy home-row navigation on a layer, using standard keys, available to all programs, not just a specially-configured editor | ||
| 8 | * easy access to punctuation symbols used in the programming languages I work in | ||
| 9 | |||
| 10 | [Here is an image](https://lyonheart.us/etc/mattly-keymap.png) with an outdated description of my keymap \ No newline at end of file | ||
diff --git a/users/mattly/rules.mk b/users/mattly/rules.mk new file mode 100644 index 000000000..6803d361d --- /dev/null +++ b/users/mattly/rules.mk | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | SRC += mattly.c | ||
| 2 | MOUSEKEY_ENABLE = yes | ||
