]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/orthodox/keymaps/drashna/keymap.c
Merge branch 'master' of github.com:qmk/qmk_firmware into hf/shinydox
[qmk_firmware.git] / keyboards / orthodox / keymaps / drashna / keymap.c
1 /*
2 This is the keymap for the keyboard
3
4 Copyright 2012 Jun Wako <wakojun@gmail.com>
5 Copyright 2015 Jack Humbert
6 Copyright 2017 Art Ortenburger
7
8 This program is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 2 of the License, or
11 (at your option) any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program.  If not, see <http://www.gnu.org/licenses/>.
20 */
21
22 #include QMK_KEYBOARD_H
23 #include "drashna.h"
24
25 #ifdef INDICATOR_LIGHTS
26 extern userspace_config_t userspace_config;
27
28 uint8_t last_mod;
29 uint8_t last_led;
30 uint8_t last_osm;
31 #endif
32
33 // Each layer gets a name for readability, which is then used in the keymap matrix below.
34 // The underscores don't mean anything - you can have a layer called STUFF or any other name.
35 // Layer names don't all need to be of the same length, obviously, and you can also skip them
36 // entirely and just use numbers.
37
38 // Fillers to make layering more clear
39 #define _______ KC_TRNS
40 #define XXXXXXX KC_NO
41
42
43
44 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
45
46 [_QWERTY] = LAYOUT_wrapper(\
47   KC_ESC,  _________________QWERTY_L1_________________,                                                               _________________QWERTY_R1_________________, KC_BSPC,
48   KC_TAB,  _________________QWERTY_L2_________________,          ALT_APP, OS_LGUI,         KC_LALT, OS_RGUI,          _________________QWERTY_R2_________________, KC_QUOT,
49   KC_MLSF, _________________QWERTY_L3_________________, LOWER,   KC_SPACE,KC_BSPC,         KC_DEL,  KC_ENT,  RAISE,   _________________QWERTY_R3_________________, KC_MRSF
50 ),
51
52 [_COLEMAK] = LAYOUT_wrapper(\
53   KC_ESC,  _________________COLEMAK_L1________________,                                                               _________________COLEMAK_R1________________, KC_BSPC,
54   KC_TAB,  _________________COLEMAK_L2________________,          ALT_APP, OS_LGUI,         KC_LALT, OS_RGUI,          _________________COLEMAK_R2________________, KC_QUOT,
55   KC_MLSF, _________________COLEMAK_L3________________, LOWER,   KC_SPACE,KC_BSPC,         KC_DEL,  KC_ENT,  RAISE,   _________________COLEMAK_R3________________, KC_MRSF
56 ),
57
58 [_DVORAK] = LAYOUT_wrapper(\
59   KC_ESC,  _________________DVORAK_L1_________________,                                                               _________________DVORAK_R1_________________, KC_BSPC,
60   KC_TAB,  _________________DVORAK_L2_________________,          ALT_APP, OS_LGUI,         KC_LALT, OS_RGUI,          _________________DVORAK_R2_________________, KC_MINS,
61   KC_MLSF, _________________DVORAK_L3_________________, LOWER,   KC_SPACE,KC_BSPC,         KC_DEL,  KC_ENT,  RAISE,   _________________DVORAK_R3_________________, KC_MRSF
62 ),
63 [_WORKMAN] = LAYOUT_wrapper(\
64   KC_ESC,  _________________WORKMAN_L1________________,                                                               _________________WORKMAN_R1________________, KC_BSPC,
65   KC_TAB,  _________________WORKMAN_L2________________,          ALT_APP, OS_LGUI,         KC_LALT, OS_RGUI,          _________________WORKMAN_R2________________, KC_MINS,
66   KC_MLSF, _________________WORKMAN_L3________________, LOWER,   KC_SPACE,KC_BSPC,         KC_DEL,  KC_ENT,  RAISE,   _________________WORKMAN_R3________________, KC_MRSF
67 ),
68 [_MODS] = LAYOUT_wrapper(\
69   _______, _______, _______, _______, _______, _______,                                                               _______, _______, _______, _______, _______, _______,
70   _______, _______, _______, _______, _______, _______,          _______, _______,         _______, _______,          _______, _______, _______, _______, _______, _______,
71   KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______
72 ),
73
74 [_LOWER] = LAYOUT_wrapper(\
75   KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC,                                                                KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
76   KC_F11,  _________________FUNC_LEFT_________________,           _______, _______,         _______, _______,          _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
77   KC_F12,  _________________FUNC_RIGHT________________,  _______, _______, _______,         _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT, _______
78 ),
79
80 [_RAISE] = LAYOUT_wrapper(\
81   KC_GRV,  ________________NUMBER_LEFT________________,                                                               ________________NUMBER_RIGHT_______________, KC_BSPC,
82   _______, _______, _______, _______, _______, _______,          _______, _______,         _______, _______,          _______, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS,
83   _______, _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______
84 ),
85
86 [_ADJUST] = LAYOUT_wrapper(\
87   KC_MAKE, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG,                                                               KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5, KC_RESET,
88   VRSN,    _______, CK_TOGG, AU_ON,   AU_OFF,  AG_NORM,          _______, _______,         _______, KC_NUKE,          AG_SWAP, QWERTY,  COLEMAK, DVORAK,  WORKMAN, EPRM,
89   TG(_MODS),RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T,_______, _______, _______,         _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY
90 )
91
92
93 };
94
95
96 bool indicator_is_this_led_used(uint8_t index) {
97   switch (index) {
98 #ifdef INDICATOR_LIGHTS
99     case SHFT_LED1:
100     case SHFT_LED2:
101     case CTRL_LED1:
102     case CTRL_LED2:
103     case GUI_LED1:
104     case GUI_LED2:
105       return true;
106       break;
107 #endif
108     default:
109     return false;
110   }
111 }