qmk_firmware

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

keycode_config.h (1618B)


      1 /* Copyright 2016 Jack Humbert
      2  *
      3  * This program is free software: you can redistribute it and/or modify
      4  * it under the terms of the GNU General Public License as published by
      5  * the Free Software Foundation, either version 2 of the License, or
      6  * (at your option) any later version.
      7  *
      8  * This program is distributed in the hope that it will be useful,
      9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     11  * GNU General Public License for more details.
     12  *
     13  * You should have received a copy of the GNU General Public License
     14  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
     15  */
     16 
     17 #pragma once
     18 
     19 #include "compiler_support.h"
     20 
     21 #include "eeconfig.h"
     22 #include "keycode.h"
     23 #include "action_code.h"
     24 
     25 uint16_t keycode_config(uint16_t keycode);
     26 uint8_t  mod_config(uint8_t mod);
     27 
     28 /* NOTE: Not portable. Bit field order depends on implementation */
     29 typedef union keymap_config_t {
     30     uint16_t raw;
     31     struct {
     32         bool swap_control_capslock : 1;
     33         bool capslock_to_control : 1;
     34         bool swap_lalt_lgui : 1;
     35         bool swap_ralt_rgui : 1;
     36         bool no_gui : 1;
     37         bool swap_grave_esc : 1;
     38         bool swap_backslash_backspace : 1;
     39         bool nkro : 1;
     40         bool swap_lctl_lgui : 1;
     41         bool swap_rctl_rgui : 1;
     42         bool oneshot_enable : 1;
     43         bool swap_escape_capslock : 1;
     44         bool autocorrect_enable : 1;
     45     };
     46 } keymap_config_t;
     47 
     48 STATIC_ASSERT(sizeof(keymap_config_t) == sizeof(uint16_t), "Keycode (magic) EECONFIG out of spec.");
     49 
     50 extern keymap_config_t keymap_config;