diff options
Diffstat (limited to 'keyboards')
| -rw-r--r-- | keyboards/redox_w/keymaps/dvorak/keymap.c | 128 | ||||
| -rw-r--r-- | keyboards/redox_w/keymaps/dvorak/readme.md | 38 | ||||
| -rw-r--r-- | keyboards/redox_w/redox_w.c | 13 | ||||
| -rw-r--r-- | keyboards/redox_w/redox_w.h | 27 |
4 files changed, 188 insertions, 18 deletions
diff --git a/keyboards/redox_w/keymaps/dvorak/keymap.c b/keyboards/redox_w/keymaps/dvorak/keymap.c new file mode 100644 index 000000000..f2c2d85f0 --- /dev/null +++ b/keyboards/redox_w/keymaps/dvorak/keymap.c | |||
| @@ -0,0 +1,128 @@ | |||
| 1 | /* Copyright 2021 66f94eae(66f94eae@gmail.com) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #include QMK_KEYBOARD_H | ||
| 18 | |||
| 19 | // Each layer gets a name for readability, which is then used in the keymap matrix below. | ||
| 20 | // The underscores don't mean anything - you can have a layer called STUFF or any other name. | ||
| 21 | // Layer names don't all need to be of the same length, obviously, and you can also skip them | ||
| 22 | // entirely and just use numbers. | ||
| 23 | enum layers { | ||
| 24 | _DVORAK, | ||
| 25 | _SYMB, | ||
| 26 | _QWERTY, | ||
| 27 | _ADJUST, | ||
| 28 | }; | ||
| 29 | |||
| 30 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 31 | |||
| 32 | [_DVORAK] = LAYOUT( | ||
| 33 | //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ | ||
| 34 | KC_GESC ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_BSPC , | ||
| 35 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | ||
| 36 | KC_TAB ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC, KC_RBRC ,KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_SLSH , | ||
| 37 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | ||
| 38 | KC_LCTL ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I ,KC_MINS, KC_EQL ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_BSLS , | ||
| 39 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | ||
| 40 | KC_LSFT ,KC_SCLN ,KC_Q ,KC_J ,KC_K ,KC_X ,KC_PGUP ,KC_HOME , KC_END ,KC_PGDN ,KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,KC_RSFT , | ||
| 41 | //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ | ||
| 42 | KC_CAPS ,KC_APP ,KC_LALT ,KC_LGUI , LT(3,KC_MUTE), KC_SPC ,KC_INS , KC_DEL ,KC_ENT , KC_RALT , KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT | ||
| 43 | //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ | ||
| 44 | ), | ||
| 45 | |||
| 46 | [_SYMB] = LAYOUT( | ||
| 47 | //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ | ||
| 48 | KC_GESC ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_F8 ,KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,KC_BSPC , | ||
| 49 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | ||
| 50 | KC_TAB , KC_BTN1 ,KC_MS_U ,KC_BTN2 ,KC_WH_U ,KC_COPY ,KC_F6 , KC_F7 ,KC_COPY ,KC_P7 ,KC_P8 ,KC_P9 ,KC_MPRV ,KC_PPLS , | ||
| 51 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | ||
| 52 | KC_LCTL ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_WH_D ,KC_CUT ,KC_VOLD , KC_VOLU ,KC_CUT ,KC_P4 ,KC_P5 ,KC_P6 ,KC_MNXT ,KC_PMNS , | ||
| 53 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | ||
| 54 | KC_LSFT ,KC_WH_L ,KC_UP ,KC_WH_R ,KC_LGUI ,KC_PSTE ,KC_WH_U ,KC_SLCK , KC_NLCK ,KC_WH_D ,KC_PSTE ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PEQL ,KC_PAST , | ||
| 55 | //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ | ||
| 56 | KC_CAPS ,KC_LEFT ,KC_DOWN ,KC_RGHT, LT(3,KC_MUTE) ,KC_SPC ,KC_ESC , KC_DEL ,KC_ENT , KC_APP , KC_P0 ,KC_PDOT ,KC_PENT ,KC_PSLS | ||
| 57 | //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ | ||
| 58 | ), | ||
| 59 | |||
| 60 | [_QWERTY] = LAYOUT( | ||
| 61 | //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ | ||
| 62 | KC_GESC ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_BSPC, | ||
| 63 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | ||
| 64 | KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_MINS , KC_EQL ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS , | ||
| 65 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | ||
| 66 | KC_LCTL ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_LBRC , KC_RBRC ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_QUOT , | ||
| 67 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | ||
| 68 | KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_HOME ,KC_PGUP , KC_PGDN ,KC_END ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT , | ||
| 69 | //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ | ||
| 70 | KC_CAPS ,KC_LGUI ,KC_LALT , KC_APP ,LT(3,KC_MUTE) , KC_SPC ,KC_INS , KC_DEL ,KC_ENT , KC_APP , KC_LEFT ,KC_UP ,KC_DOWN ,KC_RGHT | ||
| 71 | //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ | ||
| 72 | ), | ||
| 73 | |||
| 74 | [_ADJUST] = LAYOUT( | ||
| 75 | //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ | ||
| 76 | KC_GESC ,TO(0) ,TO(1) ,TO(2) ,KC_NO ,KC_NO , KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO , | ||
| 77 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | ||
| 78 | KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO , KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO , | ||
| 79 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | ||
| 80 | KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO , KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO , | ||
| 81 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | ||
| 82 | KC_LSFT ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_RSFT , | ||
| 83 | //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ | ||
| 84 | KC_NO ,KC_NO ,KC_NO ,KC_LGUI ,LT(3,KC_MUTE), KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_APP ,KC_NO ,KC_NO ,KC_NO ,KC_NO | ||
| 85 | //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ | ||
| 86 | ) | ||
| 87 | |||
| 88 | }; | ||
| 89 | |||
| 90 | layer_state_t layer_state_set_user(layer_state_t state) | ||
| 91 | { | ||
| 92 | switch (get_highest_layer(state)) { | ||
| 93 | case _DVORAK: | ||
| 94 | blu_led_off; | ||
| 95 | grn_led_off; | ||
| 96 | break; | ||
| 97 | case _SYMB: | ||
| 98 | blu_led_on; | ||
| 99 | grn_led_off; | ||
| 100 | break; | ||
| 101 | case _QWERTY: | ||
| 102 | blu_led_off; | ||
| 103 | grn_led_on; | ||
| 104 | break; | ||
| 105 | case _ADJUST: | ||
| 106 | blu_led_on; | ||
| 107 | grn_led_on; | ||
| 108 | break; | ||
| 109 | default: | ||
| 110 | break; | ||
| 111 | } | ||
| 112 | return state; | ||
| 113 | } | ||
| 114 | |||
| 115 | bool led_update_user(led_t led_state) | ||
| 116 | { | ||
| 117 | if (led_state.caps_lock) { | ||
| 118 | red_led_on; | ||
| 119 | } else { | ||
| 120 | red_led_off; | ||
| 121 | } | ||
| 122 | if (led_state.num_lock) { | ||
| 123 | wht_led_on; | ||
| 124 | } else { | ||
| 125 | wht_led_off; | ||
| 126 | } | ||
| 127 | return false; | ||
| 128 | } | ||
diff --git a/keyboards/redox_w/keymaps/dvorak/readme.md b/keyboards/redox_w/keymaps/dvorak/readme.md new file mode 100644 index 000000000..cdc90976a --- /dev/null +++ b/keyboards/redox_w/keymaps/dvorak/readme.md | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | ### fork from default layout,and support dvorak layout[defalut layer] | ||
| 2 | |||
| 3 | ##### only use 3 layers | ||
| 4 | |||
| 5 | ``` | ||
| 6 | Keymap: 3 Layers | ||
| 7 | ----------------- | ||
| 8 | stack of layers | ||
| 9 | ____________ precedence | ||
| 10 | / / | high | ||
| 11 | 31 /___________// | | ||
| 12 | : _:_:_:_:_:__ | | ||
| 13 | 3 /___________// | --- adjust | ||
| 14 | 2 /___________// | --- qwerty | ||
| 15 | 1 /___________// | --- symb | ||
| 16 | 0 /___________/ | --- dvorak[default] | ||
| 17 | ``` | ||
| 18 | |||
| 19 | defalut LED indicators | ||
| 20 | |||
| 21 | RED --------- CAPS LOCK | ||
| 22 | |||
| 23 | BLUE ------- SYMB layer | ||
| 24 | |||
| 25 | GREEN----- QWERTY layer | ||
| 26 | |||
| 27 | WHITE------ NUM LOCK *in my test case,this is inefficient on mac os* | ||
| 28 | |||
| 29 | > BLUE and GREEN as a bit flag | ||
| 30 | > | ||
| 31 | > 0 0 | ||
| 32 | |||
| 33 | | BLUE(0) | GREEN(0) | STATUS | DESCRIBE | | ||
| 34 | |:-------:|:--------:|:------:|:--------------------------------------------------- | | ||
| 35 | | 0 | 0 | 0 | layer 0[dvorak] is active,and blue,green led is off | | ||
| 36 | | 1 | 0 | 1 | layer1[symb] is active, and blue led is on | | ||
| 37 | | 0 | 1 | 2 | layer 2[qwerty] is active,and green led is on | | ||
| 38 | | 1 | 1 | 3 | layer 3[adjust] is active,and blue,green led is on | | ||
diff --git a/keyboards/redox_w/redox_w.c b/keyboards/redox_w/redox_w.c index 5b8634453..48ea7d3be 100644 --- a/keyboards/redox_w/redox_w.c +++ b/keyboards/redox_w/redox_w.c | |||
| @@ -1,10 +1,15 @@ | |||
| 1 | #include "redox_w.h" | 1 | #include "redox_w.h" |
| 2 | 2 | ||
| 3 | void led_init(void) { | 3 | void led_init(void) { |
| 4 | DDRD |= (1<<1); | 4 | setPinOutput(D0); |
| 5 | PORTD |= (1<<1); | 5 | setPinOutput(D1); |
| 6 | DDRF |= (1<<4) | (1<<5); | 6 | setPinOutput(F4); |
| 7 | PORTF |= (1<<4) | (1<<5); | 7 | setPinOutput(F5); |
| 8 | |||
| 9 | writePinHigh(D0); | ||
| 10 | writePinHigh(D1); | ||
| 11 | writePinHigh(F4); | ||
| 12 | writePinHigh(F5); | ||
| 8 | } | 13 | } |
| 9 | 14 | ||
| 10 | 15 | ||
diff --git a/keyboards/redox_w/redox_w.h b/keyboards/redox_w/redox_w.h index 727c3050d..1ed42c845 100644 --- a/keyboards/redox_w/redox_w.h +++ b/keyboards/redox_w/redox_w.h | |||
| @@ -2,21 +2,20 @@ | |||
| 2 | 2 | ||
| 3 | #include "quantum.h" | 3 | #include "quantum.h" |
| 4 | 4 | ||
| 5 | #define red_led_off PORTF |= (1<<5) | 5 | #define red_led_off writePinHigh(F5) |
| 6 | #define red_led_on PORTF &= ~(1<<5) | 6 | #define red_led_on writePinLow(F5) |
| 7 | #define blu_led_off PORTF |= (1<<4) | 7 | #define blu_led_off writePinHigh(F4) |
| 8 | #define blu_led_on PORTF &= ~(1<<4) | 8 | #define blu_led_on writePinLow(F4) |
| 9 | #define grn_led_off PORTD |= (1<<1) | 9 | #define grn_led_off writePinHigh(D1) |
| 10 | #define grn_led_on PORTD &= ~(1<<1) | 10 | #define grn_led_on writePinLow(D1) |
| 11 | #define wht_led_off writePinHigh(D0) | ||
| 12 | #define wht_led_on writePinLow(D0) | ||
| 11 | 13 | ||
| 12 | #define set_led_off red_led_off; grn_led_off; blu_led_off | 14 | #define set_led_off red_led_off; grn_led_off; blu_led_off; wht_led_off |
| 13 | #define set_led_red red_led_on; grn_led_off; blu_led_off | 15 | #define set_led_red red_led_on; grn_led_off; blu_led_off; wht_led_off |
| 14 | #define set_led_blue red_led_off; grn_led_off; blu_led_on | 16 | #define set_led_blue red_led_off; grn_led_off; blu_led_on; wht_led_off |
| 15 | #define set_led_green red_led_off; grn_led_on; blu_led_off | 17 | #define set_led_green red_led_off; grn_led_on; blu_led_off; wht_led_off |
| 16 | #define set_led_yellow red_led_on; grn_led_on; blu_led_off | 18 | #define set_led_white red_led_off; grn_led_off; blu_led_off; wht_led_on |
| 17 | #define set_led_magenta red_led_on; grn_led_off; blu_led_on | ||
| 18 | #define set_led_cyan red_led_off; grn_led_on; blu_led_on | ||
| 19 | #define set_led_white red_led_on; grn_led_on; blu_led_on | ||
| 20 | 19 | ||
| 21 | // This a shortcut to help you visually see your layout. | 20 | // This a shortcut to help you visually see your layout. |
| 22 | // The first section contains all of the arguements | 21 | // The first section contains all of the arguements |
