qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

keymap.c (2539B)


      1 /* Copyright 2024 lostdotfish
      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 
     20 enum orbweaver_layers {
     21   _DEFAULT,
     22   _LETTERS,
     23   _CONTROL
     24 };
     25 
     26 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     27 
     28 //generic default keymap with Razor defaults (+ 20 shifts layer)
     29 
     30      [_DEFAULT] = LAYOUT(
     31         KC_ESC, KC_1, KC_2, KC_3, KC_4,
     32         KC_TAB, KC_Q, KC_W, KC_E, KC_R,
     33         KC_CAPS, KC_A, KC_S, KC_D, KC_F,
     34         KC_LSFT, KC_Z, KC_X, KC_C, TO(1),
     35         KC_LALT, KC_UP, KC_DOWN, KC_RIGHT, KC_LEFT,
     36         KC_SPACE
     37     ),
     38 
     39 //Second example keymap with all modifier keys replaced with numbers or letters
     40      
     41    [_LETTERS] = LAYOUT(
     42         KC_0, KC_1, KC_2, KC_3, KC_4,
     43         KC_I, KC_Q, KC_W, KC_E, KC_R,
     44         KC_J, KC_A, KC_S, KC_D, KC_F,
     45         KC_K, KC_Z, KC_X, KC_C, TO(2),
     46         KC_L, KC_UP, KC_DOWN, KC_RIGHT, KC_LEFT,
     47         KC_SPACE
     48     ),
     49 
     50 //, RGB Contol Keymap
     51    [_CONTROL] = LAYOUT(
     52         RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU,
     53         RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD,
     54         RM_TOGG, KC_A, KC_S, KC_D, KC_F,
     55         KC_K, KC_Z, KC_X, KC_C, TO(0),
     56         KC_L, KC_UP, KC_DOWN, KC_RIGHT, KC_LEFT,
     57         KC_SPACE
     58     ) 
     59 
     60 };
     61 
     62 layer_state_t layer_state_set_user(layer_state_t state) {
     63     gpio_write_pin_high(GP23);
     64     gpio_write_pin_high(GP24);
     65     gpio_write_pin_high(GP25);
     66     switch (get_highest_layer(state)) {
     67         case _DEFAULT:
     68             gpio_write_pin_low(GP23);
     69             break;
     70         case _LETTERS:
     71             gpio_write_pin_low(GP25);
     72             break;
     73         case _CONTROL:
     74             gpio_write_pin_low(GP24);
     75             break;
     76     }
     77     return state;
     78 }
     79 void suspend_power_down_user(void) {
     80     // code will run multiple times while keyboard is suspended
     81     gpio_write_pin_high(GP23);
     82     gpio_write_pin_high(GP24);
     83     gpio_write_pin_high(GP25);
     84 }
     85 
     86 void suspend_wakeup_init_user(void) {
     87     layer_state_set_kb(layer_state);
     88 }