Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
38b9f67c3b | ||
|
|
c6778dde82 | ||
|
|
c27a458799 | ||
|
|
8ed1addd1e | ||
|
|
25c97e0019 | ||
|
|
0fd8faa1ad |
No files matched your search
@@ -228,6 +228,18 @@ This command is directory aware. It will automatically fill in KEYBOARD if you a
|
|||||||
qmk list-keymaps -kb planck/ez
|
qmk list-keymaps -kb planck/ez
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## `qmk new-keyboard`
|
||||||
|
|
||||||
|
This command creates a new keyboard based on available templates.
|
||||||
|
|
||||||
|
This command will prompt for input to guide you though the generation process.
|
||||||
|
|
||||||
|
**Usage**:
|
||||||
|
|
||||||
|
```
|
||||||
|
qmk new-keyboard
|
||||||
|
```
|
||||||
|
|
||||||
## `qmk new-keymap`
|
## `qmk new-keymap`
|
||||||
|
|
||||||
This command creates a new keymap based on a keyboard's existing default keymap.
|
This command creates a new keymap based on a keyboard's existing default keymap.
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Andrew Kannan
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include "andromeda.h"
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Andrew Kannan
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT_tkl_ansi_wkl( \
|
||||||
|
K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, \
|
||||||
|
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \
|
||||||
|
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \
|
||||||
|
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \
|
||||||
|
K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K415, \
|
||||||
|
K500, K502, K507, K511, K513, K514, K515, K516 \
|
||||||
|
) { \
|
||||||
|
{ K000, KC_NO, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \
|
||||||
|
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \
|
||||||
|
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213 , K214, K215, K216 }, \
|
||||||
|
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, KC_NO, K415, KC_NO }, \
|
||||||
|
{ K500, KC_NO, K502, KC_NO, KC_NO, KC_NO, KC_NO, K507, KC_NO, KC_NO, KC_NO, K511, KC_NO, K513, K514, K515, K516 } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Andrew Kannan
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xA103
|
||||||
|
#define PRODUCT_ID 0x000A
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER ai03 Design Studio
|
||||||
|
#define PRODUCT Andromeda
|
||||||
|
|
||||||
|
#define MATRIX_ROWS 6
|
||||||
|
#define MATRIX_COLS 17
|
||||||
|
|
||||||
|
#define MATRIX_COL_PINS { A10, A9, A8, B15, B14, B13, B12, B11, B10, B2, B1, B0, A7, A6, B5, B8, B9 }
|
||||||
|
#define MATRIX_ROW_PINS { B4, B3, A15, A3, A4, A5 }
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* define if matrix has ghost */
|
||||||
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
|
/* Set 0 if debouncing isn't needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Andromeda",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "ai03",
|
||||||
|
"width": 18.25,
|
||||||
|
"height": 6.25,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_tkl_ansi_wkl": {
|
||||||
|
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Insert", "x":15.25, "y":1.25}, {"label":"Home", "x":16.25, "y":1.25}, {"label":"PgUp", "x":17.25, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"End", "x":16.25, "y":2.25}, {"label":"PgDn", "x":17.25, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, {"x":4, "y":5.25, "w":7}, {"label":"Alt", "x":11, "y":5.25, "w":1.5}, {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.25}, {"label":"\u2193", "x":16.25, "y":5.25}, {"label":"\u2192", "x":17.25, "y":5.25}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2012,2013 Jun Wako <[email protected]>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_BASE] = LAYOUT_tkl_ansi_wkl(
|
||||||
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||||
|
KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2012,2013 Jun Wako <[email protected]>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN1,
|
||||||
|
_FN2,
|
||||||
|
_FN3
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_BASE] = LAYOUT_tkl_ansi_wkl(
|
||||||
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||||
|
KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN1] = LAYOUT_tkl_ansi_wkl(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
|
[_FN2] = LAYOUT_tkl_ansi_wkl(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
|
[_FN3] = LAYOUT_tkl_ansi_wkl(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
# ai03 Andromeda
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [ai03](https://github.com/ai03-2725)
|
||||||
|
* Hardware Supported: Andromeda PCB
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make ai03/andromeda:default
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
|
|
||||||
|
Press and hold the reset button for at least 5 seconds before releasing to enter the bootloader mode.
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = STM32F072
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = yes # Console for debug
|
||||||
|
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
|
||||||
|
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||||
|
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
||||||
@@ -15,11 +15,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "noroadsleft.h"
|
#include "noroadsleft.h"
|
||||||
#include "sendstring_dvorak.h"
|
|
||||||
|
|
||||||
enum layer_names {
|
enum layer_names {
|
||||||
_QW,
|
|
||||||
_DV,
|
_DV,
|
||||||
|
_QW,
|
||||||
_NP,
|
_NP,
|
||||||
_FN,
|
_FN,
|
||||||
_SY
|
_SY
|
||||||
@@ -30,14 +29,6 @@ enum layer_names {
|
|||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
[_QW] = LAYOUT_65_ansi(
|
|
||||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
|
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
|
||||||
FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
|
||||||
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
|
||||||
),
|
|
||||||
|
|
||||||
[_DV] = LAYOUT_65_ansi(
|
[_DV] = LAYOUT_65_ansi(
|
||||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME,
|
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME,
|
||||||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_PGUP,
|
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_PGUP,
|
||||||
@@ -46,6 +37,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
),
|
),
|
||||||
|
|
||||||
|
[_QW] = LAYOUT_65_ansi(
|
||||||
|
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||||
|
FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||||
|
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
[_NP] = LAYOUT_65_ansi(
|
[_NP] = LAYOUT_65_ansi(
|
||||||
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, KC_E, KC_F, _______, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PSLS, KC_PEQL, _______, _______,
|
_______, _______, _______, _______, KC_E, KC_F, _______, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PSLS, KC_PEQL, _______, _______,
|
||||||
@@ -63,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
|
|
||||||
[_SY] = LAYOUT_65_ansi(
|
[_SY] = LAYOUT_65_ansi(
|
||||||
TG(_SY), TO(_QW), TO(_DV), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, DEBUG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX,
|
TG(_SY), TO(_DV), TO(_QW), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, DEBUG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX,
|
||||||
XXXXXXX, XXXXXXX, M_MDSWP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, M_MDSWP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 DongXing
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0x464C // "FL"
|
||||||
|
#define PRODUCT_ID 0x0006
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER Fox Lab
|
||||||
|
#define PRODUCT Time 80 Reforged
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 6
|
||||||
|
#define MATRIX_COLS 17
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define MATRIX_ROW_PINS { D1, D0, B3, B0, B2, B1 }
|
||||||
|
#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D4, D6, D2, D3, D5 }
|
||||||
|
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define BACKLIGHT_PIN B7
|
||||||
|
#define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
|
#define LED_CAPS_LOCK_PIN E6
|
||||||
|
#define LED_PIN_ON_STATE 0
|
||||||
|
|
||||||
|
#define RGB_DI_PIN E2
|
||||||
|
|
||||||
|
#ifdef RGB_DI_PIN
|
||||||
|
#define RGBLED_NUM 5
|
||||||
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
|
#define RGBLIGHT_LIMIT_VAL 200 /* The maximum brightness level */
|
||||||
|
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/* Copyright 2021 DongXing
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include "hotswap.h"
|
||||||
|
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
/* Copyright 2021 DongXing
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT( \
|
||||||
|
K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3E, K1E, K1F, K1G, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
|
||||||
|
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \
|
||||||
|
K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \
|
||||||
|
) { \
|
||||||
|
{ K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, KC_NO, KC_NO }, \
|
||||||
|
{ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \
|
||||||
|
{ K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \
|
||||||
|
}
|
||||||
@@ -0,0 +1,103 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Time RE Hotswap",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"width": 18.25,
|
||||||
|
"height": 6.5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"K00 (D1,F0)", "x":0, "y":0},
|
||||||
|
{"label":"K02 (D1,F4)", "x":2, "y":0},
|
||||||
|
{"label":"K03 (D1,F5)", "x":3, "y":0},
|
||||||
|
{"label":"K04 (D1,F6)", "x":4, "y":0},
|
||||||
|
{"label":"K05 (D1,F7)", "x":5, "y":0},
|
||||||
|
{"label":"K06 (D1,C7)", "x":6.5, "y":0},
|
||||||
|
{"label":"K07 (D1,C6)", "x":7.5, "y":0},
|
||||||
|
{"label":"K08 (D1,B6)", "x":8.5, "y":0},
|
||||||
|
{"label":"K09 (D1,B5)", "x":9.5, "y":0},
|
||||||
|
{"label":"K0A (D1,B4)", "x":11, "y":0},
|
||||||
|
{"label":"K0B (D1,D7)", "x":12, "y":0},
|
||||||
|
{"label":"K0C (D1,D4)", "x":13, "y":0},
|
||||||
|
{"label":"K0D (D1,D6)", "x":14, "y":0},
|
||||||
|
{"label":"K0E (D1,D2)", "x":15.25, "y":0},
|
||||||
|
{"label":"K0F (D1,D3)", "x":16.25, "y":0},
|
||||||
|
{"label":"K0G (D1,D5)", "x":17.25, "y":0},
|
||||||
|
{"label":"K10 (D0,F0)", "x":0, "y":1.5},
|
||||||
|
{"label":"K11 (D0,F1)", "x":1, "y":1.5},
|
||||||
|
{"label":"K12 (D0,F4)", "x":2, "y":1.5},
|
||||||
|
{"label":"K13 (D0,F5)", "x":3, "y":1.5},
|
||||||
|
{"label":"K14 (D0,F6)", "x":4, "y":1.5},
|
||||||
|
{"label":"K15 (D0,F7)", "x":5, "y":1.5},
|
||||||
|
{"label":"K16 (D0,C7)", "x":6, "y":1.5},
|
||||||
|
{"label":"K17 (D0,C6)", "x":7, "y":1.5},
|
||||||
|
{"label":"K18 (D0,B6)", "x":8, "y":1.5},
|
||||||
|
{"label":"K19 (D0,B5)", "x":9, "y":1.5},
|
||||||
|
{"label":"K1A (D0,B4)", "x":10, "y":1.5},
|
||||||
|
{"label":"K1B (D0,D7)", "x":11, "y":1.5},
|
||||||
|
{"label":"K1C (D0,D4)", "x":12, "y":1.5},
|
||||||
|
{"label":"K1D (D0,D6)", "x":13, "y":1.5},
|
||||||
|
{"label":"K3E (B0,D2)", "x":14, "y":1.5},
|
||||||
|
{"label":"K1E (D0,D2)", "x":15.25, "y":1.5},
|
||||||
|
{"label":"K1F (D0,D3)", "x":16.25, "y":1.5},
|
||||||
|
{"label":"K1G (D0,D5)", "x":17.25, "y":1.5},
|
||||||
|
{"label":"K20 (B3,F0)", "x":0, "y":2.5, "w":1.5},
|
||||||
|
{"label":"K21 (B3,F1)", "x":1.5, "y":2.5},
|
||||||
|
{"label":"K22 (B3,F4)", "x":2.5, "y":2.5},
|
||||||
|
{"label":"K23 (B3,F5)", "x":3.5, "y":2.5},
|
||||||
|
{"label":"K24 (B3,F6)", "x":4.5, "y":2.5},
|
||||||
|
{"label":"K25 (B3,F7)", "x":5.5, "y":2.5},
|
||||||
|
{"label":"K26 (B3,C7)", "x":6.5, "y":2.5},
|
||||||
|
{"label":"K27 (B3,C6)", "x":7.5, "y":2.5},
|
||||||
|
{"label":"K28 (B3,B6)", "x":8.5, "y":2.5},
|
||||||
|
{"label":"K29 (B3,B5)", "x":9.5, "y":2.5},
|
||||||
|
{"label":"K2A (B3,B4)", "x":10.5, "y":2.5},
|
||||||
|
{"label":"K2B (B3,D7)", "x":11.5, "y":2.5},
|
||||||
|
{"label":"K2C (B3,D4)", "x":12.5, "y":2.5},
|
||||||
|
{"label":"K2D (B3,D6)", "x":13.5, "y":2.5, "w":1.5},
|
||||||
|
{"label":"K2E (B3,D2)", "x":15.25, "y":2.5},
|
||||||
|
{"label":"K2F (B3,D3)", "x":16.25, "y":2.5},
|
||||||
|
{"label":"K2G (B3,D5)", "x":17.25, "y":2.5},
|
||||||
|
{"label":"K30 (B0,F0)", "x":0, "y":3.5, "w":1.75},
|
||||||
|
{"label":"K31 (B0,F1)", "x":1.75, "y":3.5},
|
||||||
|
{"label":"K32 (B0,F4)", "x":2.75, "y":3.5},
|
||||||
|
{"label":"K33 (B0,F5)", "x":3.75, "y":3.5},
|
||||||
|
{"label":"K34 (B0,F6)", "x":4.75, "y":3.5},
|
||||||
|
{"label":"K35 (B0,F7)", "x":5.75, "y":3.5},
|
||||||
|
{"label":"K36 (B0,C7)", "x":6.75, "y":3.5},
|
||||||
|
{"label":"K37 (B0,C6)", "x":7.75, "y":3.5},
|
||||||
|
{"label":"K38 (B0,B6)", "x":8.75, "y":3.5},
|
||||||
|
{"label":"K39 (B0,B5)", "x":9.75, "y":3.5},
|
||||||
|
{"label":"K3A (B0,B4)", "x":10.75, "y":3.5},
|
||||||
|
{"label":"K3B (B0,D7)", "x":11.75, "y":3.5},
|
||||||
|
{"label":"K3D (B0,D6)", "x":12.75, "y":3.5, "w":2.25},
|
||||||
|
{"label":"K40 (B2,F0)", "x":0, "y":4.5, "w":1.25},
|
||||||
|
{"label":"K41 (B2,F1)", "x":1.25, "y":4.5},
|
||||||
|
{"label":"K42 (B2,F4)", "x":2.25, "y":4.5},
|
||||||
|
{"label":"K43 (B2,F5)", "x":3.25, "y":4.5},
|
||||||
|
{"label":"K44 (B2,F6)", "x":4.25, "y":4.5},
|
||||||
|
{"label":"K45 (B2,F7)", "x":5.25, "y":4.5},
|
||||||
|
{"label":"K46 (B2,C7)", "x":6.25, "y":4.5},
|
||||||
|
{"label":"K47 (B2,C6)", "x":7.25, "y":4.5},
|
||||||
|
{"label":"K48 (B2,B6)", "x":8.25, "y":4.5},
|
||||||
|
{"label":"K49 (B2,B5)", "x":9.25, "y":4.5},
|
||||||
|
{"label":"K4A (B2,B4)", "x":10.25, "y":4.5},
|
||||||
|
{"label":"K4B (B2,D7)", "x":11.25, "y":4.5},
|
||||||
|
{"label":"K4C (B2,D4)", "x":12.25, "y":4.5, "w":1.75},
|
||||||
|
{"label":"K4D (B2,D6)", "x":14, "y":4.5},
|
||||||
|
{"label":"K4F (B2,D3)", "x":16.25, "y":4.5},
|
||||||
|
{"label":"K50 (B1,F0)", "x":0, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K51 (B1,F1)", "x":1.25, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K52 (B1,F4)", "x":2.5, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K56 (B1,C7)", "x":3.75, "y":5.5, "w":6.25},
|
||||||
|
{"label":"K5A (B1,B4)", "x":10, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K5B (B1,D7)", "x":11.25, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K5C (B1,D4)", "x":12.5, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K5D (B1,D6)", "x":13.75, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K5E (B1,D2)", "x":15.25, "y":5.5},
|
||||||
|
{"label":"K5F (B1,D3)", "x":16.25, "y":5.5},
|
||||||
|
{"label":"K5G (B1,D5)", "x":17.25, "y":5.5}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
/* Copyright 2021 matrixzj <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, _______, KC_INS, KC_HOME, KC_PGUP,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||||
|
KC_LSFT, KC_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, KC_UP,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), _______, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
/* Copyright 2021 matrixzj <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, _______, KC_INS, KC_HOME, KC_PGUP,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||||
|
KC_LSFT, KC_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, KC_UP,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), _______, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[2] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[3] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
# Foxlab Time 80 Reforged Hotswap
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Time 80 Reforged was the second design of Fox Lab back in 2017. It has also become an iconic keyboard design of Fox Lab. Time80RE kept most of the original weight design. The clock has become thinner now and has a tempered glass cover. The front height of the keyboard has been greatly reduced for optimizing for comfort. The ratio between the top and bottom cases has been adjusted for a cleaner side view.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: QMK
|
||||||
|
* Hardware Supported: Time 80 Reforged Hotswap PCB
|
||||||
|
* Hardware Availability: [Group Buy](https://geekhack.org/index.php?topic=108410.msg2952330)
|
||||||
|
|
||||||
|
This version is for the hotswap variant with the layouts below available:
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make foxlab/time_re/hotswap:default
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 DongXing
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0x464C // "FL"
|
||||||
|
#define PRODUCT_ID 0x0006
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER Fox Lab
|
||||||
|
#define PRODUCT Time 80 Reforged
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 6
|
||||||
|
#define MATRIX_COLS 17
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define MATRIX_ROW_PINS { D1, D0, B3, B0, B2, B1 }
|
||||||
|
#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D4, D6, D2, D3, D5 }
|
||||||
|
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define BACKLIGHT_PIN B7
|
||||||
|
#define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
|
#define LED_CAPS_LOCK_PIN E6
|
||||||
|
#define LED_PIN_ON_STATE 0
|
||||||
|
|
||||||
|
#define RGB_DI_PIN E2
|
||||||
|
|
||||||
|
#ifdef RGB_DI_PIN
|
||||||
|
#define RGBLED_NUM 5
|
||||||
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
|
#define RGBLIGHT_LIMIT_VAL 200 /* The maximum brightness level */
|
||||||
|
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,103 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Time RE Universal",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"width": 18.25,
|
||||||
|
"height": 6.5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"K00 (D1,F0)", "x":0, "y":0},
|
||||||
|
{"label":"K02 (D1,F4)", "x":2, "y":0},
|
||||||
|
{"label":"K03 (D1,F5)", "x":3, "y":0},
|
||||||
|
{"label":"K04 (D1,F6)", "x":4, "y":0},
|
||||||
|
{"label":"K05 (D1,F7)", "x":5, "y":0},
|
||||||
|
{"label":"K06 (D1,C7)", "x":6.5, "y":0},
|
||||||
|
{"label":"K07 (D1,C6)", "x":7.5, "y":0},
|
||||||
|
{"label":"K08 (D1,B6)", "x":8.5, "y":0},
|
||||||
|
{"label":"K09 (D1,B5)", "x":9.5, "y":0},
|
||||||
|
{"label":"K0A (D1,B4)", "x":11, "y":0},
|
||||||
|
{"label":"K0B (D1,D7)", "x":12, "y":0},
|
||||||
|
{"label":"K0C (D1,D4)", "x":13, "y":0},
|
||||||
|
{"label":"K0D (D1,D6)", "x":14, "y":0},
|
||||||
|
{"label":"K0E (D1,D2)", "x":15.25, "y":0},
|
||||||
|
{"label":"K0F (D1,D3)", "x":16.25, "y":0},
|
||||||
|
{"label":"K0G (D1,D5)", "x":17.25, "y":0},
|
||||||
|
{"label":"K10 (D0,F0)", "x":0, "y":1.5},
|
||||||
|
{"label":"K11 (D0,F1)", "x":1, "y":1.5},
|
||||||
|
{"label":"K12 (D0,F4)", "x":2, "y":1.5},
|
||||||
|
{"label":"K13 (D0,F5)", "x":3, "y":1.5},
|
||||||
|
{"label":"K14 (D0,F6)", "x":4, "y":1.5},
|
||||||
|
{"label":"K15 (D0,F7)", "x":5, "y":1.5},
|
||||||
|
{"label":"K16 (D0,C7)", "x":6, "y":1.5},
|
||||||
|
{"label":"K17 (D0,C6)", "x":7, "y":1.5},
|
||||||
|
{"label":"K18 (D0,B6)", "x":8, "y":1.5},
|
||||||
|
{"label":"K19 (D0,B5)", "x":9, "y":1.5},
|
||||||
|
{"label":"K1A (D0,B4)", "x":10, "y":1.5},
|
||||||
|
{"label":"K1B (D0,D7)", "x":11, "y":1.5},
|
||||||
|
{"label":"K1C (D0,D4)", "x":12, "y":1.5},
|
||||||
|
{"label":"K1D (D0,D6)", "x":13, "y":1.5},
|
||||||
|
{"label":"K3E (B0,D2)", "x":14, "y":1.5},
|
||||||
|
{"label":"K1E (D0,D2)", "x":15.25, "y":1.5},
|
||||||
|
{"label":"K1F (D0,D3)", "x":16.25, "y":1.5},
|
||||||
|
{"label":"K1G (D0,D5)", "x":17.25, "y":1.5},
|
||||||
|
{"label":"K20 (B3,F0)", "x":0, "y":2.5, "w":1.5},
|
||||||
|
{"label":"K21 (B3,F1)", "x":1.5, "y":2.5},
|
||||||
|
{"label":"K22 (B3,F4)", "x":2.5, "y":2.5},
|
||||||
|
{"label":"K23 (B3,F5)", "x":3.5, "y":2.5},
|
||||||
|
{"label":"K24 (B3,F6)", "x":4.5, "y":2.5},
|
||||||
|
{"label":"K25 (B3,F7)", "x":5.5, "y":2.5},
|
||||||
|
{"label":"K26 (B3,C7)", "x":6.5, "y":2.5},
|
||||||
|
{"label":"K27 (B3,C6)", "x":7.5, "y":2.5},
|
||||||
|
{"label":"K28 (B3,B6)", "x":8.5, "y":2.5},
|
||||||
|
{"label":"K29 (B3,B5)", "x":9.5, "y":2.5},
|
||||||
|
{"label":"K2A (B3,B4)", "x":10.5, "y":2.5},
|
||||||
|
{"label":"K2B (B3,D7)", "x":11.5, "y":2.5},
|
||||||
|
{"label":"K2C (B3,D4)", "x":12.5, "y":2.5},
|
||||||
|
{"label":"K2D (B3,D6)", "x":13.5, "y":2.5, "w":1.5},
|
||||||
|
{"label":"K2E (B3,D2)", "x":15.25, "y":2.5},
|
||||||
|
{"label":"K2F (B3,D3)", "x":16.25, "y":2.5},
|
||||||
|
{"label":"K2G (B3,D5)", "x":17.25, "y":2.5},
|
||||||
|
{"label":"K30 (B0,F0)", "x":0, "y":3.5, "w":1.75},
|
||||||
|
{"label":"K31 (B0,F1)", "x":1.75, "y":3.5},
|
||||||
|
{"label":"K32 (B0,F4)", "x":2.75, "y":3.5},
|
||||||
|
{"label":"K33 (B0,F5)", "x":3.75, "y":3.5},
|
||||||
|
{"label":"K34 (B0,F6)", "x":4.75, "y":3.5},
|
||||||
|
{"label":"K35 (B0,F7)", "x":5.75, "y":3.5},
|
||||||
|
{"label":"K36 (B0,C7)", "x":6.75, "y":3.5},
|
||||||
|
{"label":"K37 (B0,C6)", "x":7.75, "y":3.5},
|
||||||
|
{"label":"K38 (B0,B6)", "x":8.75, "y":3.5},
|
||||||
|
{"label":"K39 (B0,B5)", "x":9.75, "y":3.5},
|
||||||
|
{"label":"K3A (B0,B4)", "x":10.75, "y":3.5},
|
||||||
|
{"label":"K3B (B0,D7)", "x":11.75, "y":3.5},
|
||||||
|
{"label":"K3D (B0,D6)", "x":12.75, "y":3.5, "w":2.25},
|
||||||
|
{"label":"K40 (B2,F0)", "x":0, "y":4.5, "w":1.25},
|
||||||
|
{"label":"K41 (B2,F1)", "x":1.25, "y":4.5},
|
||||||
|
{"label":"K42 (B2,F4)", "x":2.25, "y":4.5},
|
||||||
|
{"label":"K43 (B2,F5)", "x":3.25, "y":4.5},
|
||||||
|
{"label":"K44 (B2,F6)", "x":4.25, "y":4.5},
|
||||||
|
{"label":"K45 (B2,F7)", "x":5.25, "y":4.5},
|
||||||
|
{"label":"K46 (B2,C7)", "x":6.25, "y":4.5},
|
||||||
|
{"label":"K47 (B2,C6)", "x":7.25, "y":4.5},
|
||||||
|
{"label":"K48 (B2,B6)", "x":8.25, "y":4.5},
|
||||||
|
{"label":"K49 (B2,B5)", "x":9.25, "y":4.5},
|
||||||
|
{"label":"K4A (B2,B4)", "x":10.25, "y":4.5},
|
||||||
|
{"label":"K4B (B2,D7)", "x":11.25, "y":4.5},
|
||||||
|
{"label":"K4C (B2,D4)", "x":12.25, "y":4.5, "w":1.75},
|
||||||
|
{"label":"K4D (B2,D6)", "x":14, "y":4.5},
|
||||||
|
{"label":"K4F (B2,D3)", "x":16.25, "y":4.5},
|
||||||
|
{"label":"K50 (B1,F0)", "x":0, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K51 (B1,F1)", "x":1.25, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K52 (B1,F4)", "x":2.5, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K56 (B1,C7)", "x":3.75, "y":5.5, "w":6.25},
|
||||||
|
{"label":"K5A (B1,B4)", "x":10, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K5B (B1,D7)", "x":11.25, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K5C (B1,D4)", "x":12.5, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K5D (B1,D6)", "x":13.75, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K5E (B1,D2)", "x":15.25, "y":5.5},
|
||||||
|
{"label":"K5F (B1,D3)", "x":16.25, "y":5.5},
|
||||||
|
{"label":"K5G (B1,D5)", "x":17.25, "y":5.5}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
/* Copyright 2021 matrixzj <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, _______, KC_INS, KC_HOME, KC_PGUP,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||||
|
KC_LSFT, KC_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, KC_UP,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
/* Copyright 2021 matrixzj <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, _______, KC_INS, KC_HOME, KC_PGUP,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||||
|
KC_LSFT, KC_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, KC_UP,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[2] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[3] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
# Foxlab Time 80 Reforged Universal
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Time 80 Reforged was the second design of Fox Lab back in 2017. It has also become an iconic keyboard design of Fox Lab. Time80RE kept most of the original weight design. The clock has become thinner now and has a tempered glass cover. The front height of the keyboard has been greatly reduced for optimizing for comfort. The ratio between the top and bottom cases has been adjusted for a cleaner side view.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: QMK
|
||||||
|
* Hardware Supported: Time 80 Reforged Universal PCB
|
||||||
|
* Hardware Availability: [Group Buy](https://geekhack.org/index.php?topic=108410.msg2952330)
|
||||||
|
|
||||||
|
This version is for the universal variant with the layouts below available:
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make foxlab/time_re/universal:default
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/* Copyright 2021 DongXing
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include "universal.h"
|
||||||
|
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
/* Copyright 2021 DongXing
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT( \
|
||||||
|
K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3E, K1E, K1F, K1G, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
|
||||||
|
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \
|
||||||
|
K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \
|
||||||
|
) { \
|
||||||
|
{ K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, KC_NO, KC_NO }, \
|
||||||
|
{ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \
|
||||||
|
{ K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \
|
||||||
|
}
|
||||||
@@ -15,8 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "noroadsleft.h"
|
#include "noroadsleft.h"
|
||||||
//#include "version.h"
|
|
||||||
#include "sendstring_dvorak.h"
|
|
||||||
|
|
||||||
#define LAYOUT_75_ansi_wkl( \
|
#define LAYOUT_75_ansi_wkl( \
|
||||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
|
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
|
||||||
@@ -35,20 +33,13 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
enum layer_names {
|
enum layer_names {
|
||||||
_QW,
|
|
||||||
_DV,
|
_DV,
|
||||||
|
_QW,
|
||||||
_Q2,
|
_Q2,
|
||||||
_FN,
|
_FN,
|
||||||
_SY
|
_SY
|
||||||
};
|
};
|
||||||
|
|
||||||
enum custom_keycodes {
|
|
||||||
GO_Q2 = KEYMAP_SAFE_RANGE,
|
|
||||||
Q2_ENT
|
|
||||||
};
|
|
||||||
|
|
||||||
unsigned char q2InputMode = 0;
|
|
||||||
|
|
||||||
// Tap Dance declarations
|
// Tap Dance declarations
|
||||||
enum tap_dances {
|
enum tap_dances {
|
||||||
LAG,
|
LAG,
|
||||||
@@ -65,14 +56,6 @@ qk_tap_dance_action_t tap_dance_actions[] = {
|
|||||||
#define FN_CAPS LT(_FN,KC_CAPS)
|
#define FN_CAPS LT(_FN,KC_CAPS)
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_QW] = LAYOUT_75_ansi_wkl(
|
|
||||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, MO(_SY),
|
|
||||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
|
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
|
||||||
FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
|
||||||
KC_LCTL, TD(LAG), KC_SPC, TD(RAG), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
|
||||||
),
|
|
||||||
[_DV] = LAYOUT_75_ansi_wkl(
|
[_DV] = LAYOUT_75_ansi_wkl(
|
||||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, MO(_SY),
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, MO(_SY),
|
||||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME,
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME,
|
||||||
@@ -81,11 +64,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, KC_END,
|
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, KC_END,
|
||||||
KC_LCTL, TD(LAG), KC_SPC, TD(RAG), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
KC_LCTL, TD(LAG), KC_SPC, TD(RAG), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
),
|
),
|
||||||
|
[_QW] = LAYOUT_75_ansi_wkl(
|
||||||
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, MO(_SY),
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||||
|
FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||||
|
KC_LCTL, TD(LAG), KC_SPC, TD(RAG), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
[_Q2] = LAYOUT_75_ansi_wkl(
|
[_Q2] = LAYOUT_75_ansi_wkl(
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, Q2_ENT, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, KC_LALT, _______, KC_RALT, _______, _______, _______, _______
|
_______, KC_LALT, _______, KC_RALT, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
@@ -98,7 +89,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
_______, _______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
[_SY] = LAYOUT_75_ansi_wkl(
|
[_SY] = LAYOUT_75_ansi_wkl(
|
||||||
_______, TO(_QW), TO(_DV), _______, GO_Q2, _______, _______, _______, RESET, EEP_RST, DEBUG, _______, VRSN, _______, _______, _______,
|
_______, TO(_DV), TO(_QW), _______, TG(_Q2), _______, _______, _______, RESET, EEP_RST, DEBUG, _______, VRSN, _______, _______, _______,
|
||||||
_______, _______, M_MDSWP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______,
|
_______, _______, M_MDSWP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______,
|
||||||
_______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
@@ -111,62 +102,3 @@ bool led_update_user(led_t led_state) {
|
|||||||
writePin(B2, !led_state.caps_lock);
|
writePin(B2, !led_state.caps_lock);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
|
|
||||||
switch (keycode) {
|
|
||||||
case GO_Q2:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
layer_move(_QW);
|
|
||||||
layer_on(_Q2);
|
|
||||||
};
|
|
||||||
return false;
|
|
||||||
case Q2_ENT:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
if (q2InputMode == 0) {
|
|
||||||
tap_code(KC_ENT);
|
|
||||||
q2InputMode = 1;
|
|
||||||
layer_on(_DV);
|
|
||||||
//layer_on(_Q2);
|
|
||||||
} else if (q2InputMode == 1) {
|
|
||||||
tap_code(KC_ENT);
|
|
||||||
q2InputMode = 0;
|
|
||||||
layer_off(_DV);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_ENT);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return false;
|
|
||||||
case KC_ESC:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
if (q2InputMode > 0) {
|
|
||||||
tap_code(KC_ESC);
|
|
||||||
q2InputMode = 0;
|
|
||||||
layer_off(_DV);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_ESC);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return false;
|
|
||||||
case KC_GRV:
|
|
||||||
if (IS_LAYER_ON(_Q2) == true) {
|
|
||||||
if (record->event.pressed) {
|
|
||||||
if (q2InputMode == 0) {
|
|
||||||
tap_code(KC_GRV);
|
|
||||||
q2InputMode = 2;
|
|
||||||
layer_on(_DV);
|
|
||||||
} else if (q2InputMode == 1) {
|
|
||||||
tap_code(KC_GRV);
|
|
||||||
q2InputMode = 2;
|
|
||||||
} else {
|
|
||||||
tap_code(KC_GRV);
|
|
||||||
q2InputMode = 0;
|
|
||||||
layer_off(_DV);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -15,27 +15,22 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "noroadsleft.h"
|
#include "noroadsleft.h"
|
||||||
#include "sendstring_dvorak.h"
|
|
||||||
//#include "sendstring_colemak.h"
|
|
||||||
#include "print.h"
|
|
||||||
|
|
||||||
|
|
||||||
/**********************
|
// LAYER DEFINITIONS
|
||||||
** LAYER DEFINITIONS **
|
|
||||||
**********************/
|
|
||||||
enum layer_names {
|
enum layer_names {
|
||||||
// BASE LAYERS
|
// BASE LAYERS
|
||||||
_QW, // QWERTY
|
_DV,
|
||||||
_DV, // Dvorak
|
_QW,
|
||||||
_CM, // Colemak
|
_CM,
|
||||||
// QUAKE 2 OVERLAY
|
// QUAKE 2 OVERLAY
|
||||||
_Q2, // Quake 2
|
_Q2,
|
||||||
// FUNCTION LAYER
|
// FUNCTION LAYER
|
||||||
_FN, // Function
|
_FN,
|
||||||
// OTHER LAYERS
|
// OTHER LAYERS
|
||||||
_NP, // Numpad
|
_NP,
|
||||||
_MA, // Macros
|
_MA,
|
||||||
_SY, // System
|
_SY,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -44,97 +39,11 @@ enum layer_names {
|
|||||||
#define CTL_GRV MT(MOD_LCTL, KC_GRV) // Left Control when held, Grave accent when tapped
|
#define CTL_GRV MT(MOD_LCTL, KC_GRV) // Left Control when held, Grave accent when tapped
|
||||||
|
|
||||||
|
|
||||||
// MACRO DEFINITIONS
|
|
||||||
enum custom_keycodes {
|
|
||||||
GO_Q2 = KEYMAP_SAFE_RANGE,
|
|
||||||
Q2_ENT
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/*******************
|
|
||||||
** MODIFIER MASKS **
|
|
||||||
*******************/
|
|
||||||
unsigned char q2InputMode = 0;
|
|
||||||
|
|
||||||
|
|
||||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
|
|
||||||
switch(keycode) {
|
|
||||||
// these are our macros!
|
|
||||||
case GO_Q2:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
//default_layer_set(_QW);
|
|
||||||
layer_move(_QW); // TO(_QW);
|
|
||||||
layer_on(_Q2);
|
|
||||||
//layer_off(_SY);
|
|
||||||
};
|
|
||||||
return false;
|
|
||||||
case Q2_ENT:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
if (q2InputMode == 0) {
|
|
||||||
tap_code(KC_ENT);
|
|
||||||
q2InputMode = 1;
|
|
||||||
layer_on(_DV);
|
|
||||||
//layer_on(_Q2);
|
|
||||||
} else if (q2InputMode == 1) {
|
|
||||||
tap_code(KC_ENT);
|
|
||||||
q2InputMode = 0;
|
|
||||||
layer_off(_DV);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_ENT);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return false;
|
|
||||||
case KC_ESC:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
if (q2InputMode > 0) {
|
|
||||||
tap_code(KC_ESC);
|
|
||||||
q2InputMode = 0;
|
|
||||||
layer_off(_DV);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_ESC);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return false;
|
|
||||||
case KC_GRV:
|
|
||||||
if (IS_LAYER_ON(_Q2) == true) {
|
|
||||||
if (record->event.pressed) {
|
|
||||||
if (q2InputMode == 0) {
|
|
||||||
tap_code(KC_GRV);
|
|
||||||
q2InputMode = 2;
|
|
||||||
layer_on(_DV);
|
|
||||||
} else if (q2InputMode == 1) {
|
|
||||||
tap_code(KC_GRV);
|
|
||||||
q2InputMode = 2;
|
|
||||||
} else {
|
|
||||||
tap_code(KC_GRV);
|
|
||||||
q2InputMode = 0;
|
|
||||||
layer_off(_DV);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return false;
|
|
||||||
} // switch()
|
|
||||||
return true;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// KEYMAPS
|
// KEYMAPS
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/****************
|
// BASE LAYERS
|
||||||
** BASE LAYERS **
|
|
||||||
****************/
|
|
||||||
|
|
||||||
/* QWERTY */
|
|
||||||
[_QW] = LAYOUT_60_ansi(
|
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
|
||||||
FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
|
||||||
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FN), KC_RCTL
|
|
||||||
),
|
|
||||||
|
|
||||||
/* Dvorak */
|
|
||||||
[_DV] = LAYOUT_60_ansi(
|
[_DV] = LAYOUT_60_ansi(
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS,
|
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS,
|
||||||
@@ -143,7 +52,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FN), KC_RCTL
|
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FN), KC_RCTL
|
||||||
),
|
),
|
||||||
|
|
||||||
/* Colemak */
|
[_QW] = LAYOUT_60_ansi(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||||
|
FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||||
|
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FN), KC_RCTL
|
||||||
|
),
|
||||||
|
|
||||||
[_CM] = LAYOUT_60_ansi(
|
[_CM] = LAYOUT_60_ansi(
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS,
|
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||||
@@ -152,24 +68,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FN), KC_RCTL
|
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FN), KC_RCTL
|
||||||
),
|
),
|
||||||
|
|
||||||
/*********************
|
// QUAKE 2 OVERLAYS
|
||||||
** QUAKE 2 OVERLAYS **
|
|
||||||
*********************/
|
|
||||||
|
|
||||||
/* Quake 2 */
|
|
||||||
[_Q2] = LAYOUT_60_ansi(
|
[_Q2] = LAYOUT_60_ansi(
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, Q2_ENT,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
KC_GRV, _______, _______, _______, _______, _______, _______, _______
|
KC_GRV, _______, _______, _______, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
|
|
||||||
/********************
|
// FUNCTION LAYER
|
||||||
** FUNCTION LAYERS **
|
|
||||||
********************/
|
|
||||||
|
|
||||||
/* Fn layer */
|
|
||||||
[_FN] = LAYOUT_60_ansi(
|
[_FN] = LAYOUT_60_ansi(
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||||
_______, KC_CALC, KC_APP, _______, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS,
|
_______, KC_CALC, KC_APP, _______, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS,
|
||||||
@@ -178,11 +88,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
_______, _______, _______, TG(_NP), _______, _______, _______, _______
|
_______, _______, _______, TG(_NP), _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
|
|
||||||
/*****************
|
// OTHER LAYERS
|
||||||
** OTHER LAYERS **
|
|
||||||
*****************/
|
|
||||||
|
|
||||||
/* Numpad layer */
|
|
||||||
[_NP] = LAYOUT_60_ansi(
|
[_NP] = LAYOUT_60_ansi(
|
||||||
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, KC_E, KC_F, _______, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PSLS, KC_PEQL, _______,
|
_______, _______, _______, _______, KC_E, KC_F, _______, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PSLS, KC_PEQL, _______,
|
||||||
@@ -191,7 +98,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
_______, _______, _______, TG(_NP), _______, _______, _______, _______
|
_______, _______, _______, TG(_NP), _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
|
|
||||||
/* Macro layer */
|
|
||||||
[_MA] = LAYOUT_60_ansi(
|
[_MA] = LAYOUT_60_ansi(
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DM_REC1, DM_REC2, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DM_REC1, DM_REC2, _______,
|
||||||
_______, _______, _______, G_PUSH, _______, _______, _______, _______, _______, _______, _______, DM_PLY1, DM_PLY2, DM_RSTP,
|
_______, _______, _______, G_PUSH, _______, _______, _______, _______, _______, _______, _______, DM_PLY1, DM_PLY2, DM_RSTP,
|
||||||
@@ -200,9 +106,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
_______, _______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
|
|
||||||
/* System layer */
|
|
||||||
[_SY] = LAYOUT_60_ansi(
|
[_SY] = LAYOUT_60_ansi(
|
||||||
TG(_SY), TO(_QW), TO(_DV), TO(_CM), GO_Q2, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, DEBUG, XXXXXXX, VRSN, XXXXXXX,
|
TG(_SY), TO(_QW), TO(_DV), TO(_CM), TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, DEBUG, XXXXXXX, VRSN, XXXXXXX,
|
||||||
XXXXXXX, XXXXXXX, M_MDSWP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, M_MDSWP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_TOGG, BL_INC, BL_BRTG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_TOGG, BL_INC, BL_BRTG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# @noroadsleft's KC60 keymap
|
# @noroadsleft's KC60 keymap
|
||||||
|
|
||||||
### Last updated: April 26, 2021 13:33 (-0700)
|
### Last updated: May 3, 2021 16:42 (-0700)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -24,9 +24,9 @@ Descriptions of the physical locations of keys will use the key's function in a
|
|||||||
## Outline
|
## Outline
|
||||||
|
|
||||||
- [Base Layers](#base-layers)
|
- [Base Layers](#base-layers)
|
||||||
- Layer 0: QWERTY `_QW`
|
- Layer 0: Dvorak `_DV`
|
||||||
- Layer 1: Hardware Dvorak `_DV`
|
- Layer 1: QWERTY `_QW`
|
||||||
- Layer 2: Hardware Colemak `_CM`
|
- Layer 2: Colemak `_CM`
|
||||||
- [Quake 2 Layer](#quake-2-layer)
|
- [Quake 2 Layer](#quake-2-layer)
|
||||||
- Layer 3: Quake 2 `_Q2`
|
- Layer 3: Quake 2 `_Q2`
|
||||||
- [Function Layer](#function-layer)
|
- [Function Layer](#function-layer)
|
||||||
@@ -41,38 +41,36 @@ Descriptions of the physical locations of keys will use the key's function in a
|
|||||||
|
|
||||||
## Base Layers
|
## Base Layers
|
||||||
|
|
||||||
### Layer 0: QWERTY - `_QW`
|
My base layers are pretty standard for a 60%, with the following changes:
|
||||||
|
|
||||||
Standard QWERTY layout, with four QMK features:
|
- The `Menu` key has been replaced by `MO(_FN)`, which moves to my Function layer when held.
|
||||||
|
|
||||||
- The `Menu` key has been replaced by `MO(_FW)`, which moves to my Windows Fn layer when held.
|
|
||||||
- The Right `GUI` key has been replaced with a `MO(_MA)` key, which moves to the Macro layer when held.
|
- The Right `GUI` key has been replaced with a `MO(_MA)` key, which moves to the Macro layer when held.
|
||||||
- The `Caps Lock` key has been replaced with a dual function `LT()` key, which opens the Windows Fn layer when held, and is `Caps Lock` when tapped
|
- The `Caps Lock` key has been replaced with a dual function `LT()` key, which opens the Function layer when held, and is `Caps Lock` when tapped.
|
||||||
- The Left `Control` key has been replaced with a `MT(MOD_CTRL, KC_GRV)` key, which is <code>` ~</code> when tapped and `Ctrl` when held.
|
- The Left `Control` key has been replaced with a `MT(MOD_CTRL, KC_GRV)` key, which is `Ctrl` when held and <code>` ~</code> when tapped.
|
||||||
|
|
||||||

|
### Layer 0: Dvorak - `_DV`
|
||||||
|
|
||||||
|
A hardware-based Dvorak Simplified layout. In this layer, I can leave the host system in QWERTY, plug my keyboard in, and still type in Dvorak.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
----
|
### Layer 1: QWERTY - `_QW`
|
||||||
|
|
||||||
### Layer 1: Hardware Dvorak - `_DV`
|
|
||||||
|
|
||||||
- Accessed by holding either `Fn` and tapping `/?` key, then tapping `2@`.
|
- Accessed by holding either `Fn` and tapping `/?` key, then tapping `2@`.
|
||||||
|
|
||||||
A hardware-based Dvorak Simplified layout. At my weekend job, I use a shared computer that runs MacOS Sierra, in US QWERTY layout. In this layer, I can leave the system in QWERTY, plug my keyboard in, and still type in Dvorak.
|
For when other people need to use my keyboard. :)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
### Layer 2: Hardware Colemak `_CM`
|
### Layer 2: Hardware Colemak `_CM`
|
||||||
|
|
||||||
- Accessed by holding either `Fn` and tapping `/?` key, then tapping `3#`.
|
- Accessed by holding either `Fn` and tapping `/?` key, then tapping `3#`.
|
||||||
|
|
||||||
A hardware-based Colemak layout. Been thinking of trying it, so it's here.
|
A hardware-based Colemak layout. Been thinking of trying it, so it's here.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
----
|
----
|
||||||
@@ -83,11 +81,7 @@ A hardware-based Colemak layout. Been thinking of trying it, so it's here.
|
|||||||
|
|
||||||
- Accessed by holding either `Fn` key and tapping the `/?` key, then tapping `4$`
|
- Accessed by holding either `Fn` key and tapping the `/?` key, then tapping `4$`
|
||||||
|
|
||||||
These layers were born out of the confusion I have had trying to use the in-game chat and the console in [Quake 2](https://en.wikipedia.org/wiki/Quake_II). When Quake 2 came out, alternate keyboard layouts weren't really a thing. As a result, all in-game text input is hard-locked to US QWERTY, regardless of what the operating system is using for its input method.
|
I used to have some macro craziness here. I've now switched to leaving my main system in QWERTY and having the Dvorak stuff happen on the keyboard, and setting my in-game key assignments to the Dvorak mapping (`.OEU` instead of `ESDF`).
|
||||||
|
|
||||||
I have solved this by writing a custom QMK macro. The keycode in the System layer that enables these layers, [`GO_Q2`](./keymap.c#L205), is a [macro](./keymap.c#L63-L70) that sets the default layer to the QWERTY layer, then turns the Quake 2 layer `_Q2` on. The result is a partially-overwritten QWERTY layer, that changes the dual-function Left Control/Grave key to a standard Left Control, and the Enter key into a special Enter key specific to Quake 2.
|
|
||||||
|
|
||||||
When I hit the `Enter` key (bound in-game to text chat), the [macro keycode](./keymap.c#L71-L86) I've created sends the keycode for `Enter`, then follows with flipping an internal boolean variable and enabling the Hardware Dvorak layer. Now the game is in text chat mode, and my keyboard is in Dvorak. When I hit `Enter` again, another `Enter` key is sent, which sends the message, then the macro flips the boolean back to false and disables the Hardware Dvorak layer, which brings me back to the standard QWERTY+Quake 2 setup. Hitting `Escape` instead runs a [macro](./keymap.c#L87-L97) that cancels the sending of the message, and undoes the layers.
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -96,7 +90,7 @@ When I hit the `Enter` key (bound in-game to text chat), the [macro keycode](./k
|
|||||||
|
|
||||||
## Function Layer
|
## Function Layer
|
||||||
|
|
||||||
### Layer 4: Fn layer - `_FN`
|
### Layer 4: Function layer - `_FN`
|
||||||
|
|
||||||
- Accessed by holding either `Fn` key from any base layer
|
- Accessed by holding either `Fn` key from any base layer
|
||||||
|
|
||||||
@@ -118,8 +112,6 @@ Puts a Numpad on the right-hand side of the keyboard. A through F included for h
|
|||||||

|

|
||||||
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
### Layer 6: Macro layer - `_MA`
|
### Layer 6: Macro layer - `_MA`
|
||||||
|
|
||||||
- Accessed by holding the right-side `Win` key
|
- Accessed by holding the right-side `Win` key
|
||||||
@@ -131,8 +123,6 @@ For macro documentation, see [my userspace readme](../../../../users/noroadsleft
|
|||||||

|

|
||||||
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
### Layer 7: System layer - `_SY`
|
### Layer 7: System layer - `_SY`
|
||||||
|
|
||||||
- Accessed by holding either `Fn` key and tapping the `/?` key
|
- Accessed by holding either `Fn` key and tapping the `/?` key
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from milc import cli
|
|||||||
from qmk.decorators import automagic_keyboard, automagic_keymap
|
from qmk.decorators import automagic_keyboard, automagic_keymap
|
||||||
from qmk.info import info_json
|
from qmk.info import info_json
|
||||||
from qmk.keyboard import keyboard_completer, keyboard_folder
|
from qmk.keyboard import keyboard_completer, keyboard_folder
|
||||||
from qmk.path import is_keyboard, normpath
|
from qmk.path import normpath
|
||||||
|
|
||||||
|
|
||||||
def would_populate_layout_h(keyboard):
|
def would_populate_layout_h(keyboard):
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
|
from . import keyboard
|
||||||
from . import keymap
|
from . import keymap
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
"""This script automates the creation of keyboards.
|
||||||
|
"""
|
||||||
|
from milc import cli
|
||||||
|
|
||||||
|
|
||||||
|
@cli.subcommand('Creates a new keyboard')
|
||||||
|
def new_keyboard(cli):
|
||||||
|
"""Creates a new keyboard
|
||||||
|
"""
|
||||||
|
# TODO: replace this bodge to the existing script
|
||||||
|
cli.run(['util/new_keyboard.sh'], capture_output=False)
|
||||||
+3
-1
@@ -160,6 +160,8 @@ define EXEC_AVRDUDE
|
|||||||
list_devices() { \
|
list_devices() { \
|
||||||
if $(GREP) -q -s icrosoft /proc/version; then \
|
if $(GREP) -q -s icrosoft /proc/version; then \
|
||||||
wmic.exe path Win32_SerialPort get DeviceID 2>/dev/null | LANG=C perl -pne 's/COM(\d+)/COM.($$1-1)/e' | sed 's!COM!/dev/ttyS!' | xargs echo -n | sort; \
|
wmic.exe path Win32_SerialPort get DeviceID 2>/dev/null | LANG=C perl -pne 's/COM(\d+)/COM.($$1-1)/e' | sed 's!COM!/dev/ttyS!' | xargs echo -n | sort; \
|
||||||
|
elif [ "`uname`" = "FreeBSD" ]; then \
|
||||||
|
ls /dev/tty* | grep -v '\.lock$$' | grep -v '\.init$$'; \
|
||||||
else \
|
else \
|
||||||
ls /dev/tty*; \
|
ls /dev/tty*; \
|
||||||
fi; \
|
fi; \
|
||||||
@@ -169,7 +171,7 @@ define EXEC_AVRDUDE
|
|||||||
TMP1=`mktemp`; \
|
TMP1=`mktemp`; \
|
||||||
TMP2=`mktemp`; \
|
TMP2=`mktemp`; \
|
||||||
list_devices > $$TMP1; \
|
list_devices > $$TMP1; \
|
||||||
while [ -z $$USB ]; do \
|
while [ -z "$$USB" ]; do \
|
||||||
sleep 0.5; \
|
sleep 0.5; \
|
||||||
printf "."; \
|
printf "."; \
|
||||||
list_devices > $$TMP2; \
|
list_devices > $$TMP2; \
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ Some frequently used Git commands.
|
|||||||
| [`G_FTCH`](./noroadsleft.c#L43-L52) | `git fetch upstream ` | `git pull upstream ` |
|
| [`G_FTCH`](./noroadsleft.c#L43-L52) | `git fetch upstream ` | `git pull upstream ` |
|
||||||
| [`G_BRCH`](./noroadsleft.c#L53-L62) | `master` | `$(git branch-name)` |
|
| [`G_BRCH`](./noroadsleft.c#L53-L62) | `master` | `$(git branch-name)` |
|
||||||
|
|
||||||
`$(git branch-name)` is an alias for `git rev-parse --abbrev-ref HEAD`, which normally return the name of the current branch.
|
`$(git branch-name)` is an alias for `git rev-parse --abbrev-ref HEAD`, which normally returns the name of the current branch.
|
||||||
|
|
||||||
### "Macro Mode" Macros and Customized Keycodes
|
### "Macro Mode" Macros and Customized Keycodes
|
||||||
|
|
||||||
@@ -76,6 +76,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
## Footnotes
|
## Footnotes
|
||||||
|
|
||||||
- 1: [^](#macro-mode-macros-and-customized-keycodes) The `M_MDSWP` keycode is used in my keymaps in the following locations:
|
- 1: [^](#macro-mode-macros-and-customized-keycodes) The `M_MDSWP` keycode is used in my keymaps in the following locations:
|
||||||
- [KC60](../../keyboards/kc60/keymaps/noroadsleft/keymap.c#L206)
|
- [KC60](../../keyboards/kc60/keymaps/noroadsleft/keymap.c#L111)
|
||||||
- [KBDfans KBD75 rev1](../../keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c#L102)
|
- [KBDfans KBD75 rev1](../../keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c#L93)
|
||||||
- [CoseyFannitutti Discipline](../../keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c#L67)
|
- [CoseyFannitutti Discipline](../../keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c#L66)
|
||||||
Reference in new issue
Block a user