]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/pegasushoof/keymaps/citadel/keymap.c
Merge branch 'master' of github.com:qmk/qmk_firmware into hf/shinydox
[qmk_firmware.git] / keyboards / pegasushoof / keymaps / citadel / keymap.c
1 /* Copyright 2018 Daniel Rose <droseger@protonmail.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 "pegasushoof.h"
18
19 /* Allow shortcuts for combos like RALT(KC_RBRC) that don't take up more than 7 characters: */
20 #define G(kc) RALT(KC_##kc)
21 #define A(kc) LALT(KC_##kc)
22 #define C(kc) LCTL(KC_##kc)
23 #undef S /* Original shortcut (quantum_keycodes.h) takes full-sized keycodes: too long! */
24 #define S(kc) LSFT(KC_##kc)
25 #define CTALDEL LCTL(LALT(KC_DEL))
26
27 enum layers {
28   DEF,
29   FUN,
30   RES,
31 };
32
33 enum tap_dance {
34   AF4,
35 };
36
37 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
38 /* Layer 0: default layer (ISO-DE)
39  * .----.   .-------------------. .-------------------. .-------------------. .--------------.
40  * |Esc |   |F1  |F2  |F3  |F4  | |F5  |F6  |F7  |F8  | |F9  |F10 |F11 |F12 | |PrSc|SLck|2Tp:|
41  * |    |   |    |    |    |    | |    |    |    |    | |    |    |    |    | |SyRq|    |A+F4|
42  * '----'   '-------------------' '-------------------' '-------------------' '--------------'
43  * .------------------------------------------------------------------------. .--------------.
44  * |°   |!   |"   |§   |$   |%   |&   |/   |(   |)   |=   |?   |`   |Backspa| |Ins |Home|PgUp|
45  * |^   |1   |2  ²|3  ³|4   |5   |6   |7  {|8  [|9  ]|0  }|ß  \|´   |       | |    |    |    |
46  * |------------------------------------------------------------------------| |--------------|
47  * |Tab   |Q   |W   |E   |R   |T   |Z   |U   |I   |O   |P   |Ü   |*   |  E  | |Del |End |PgDn|
48  * |      |    |    |   €|    |    |    |    |    |    |    |    |+  ~|  n  | |    |    |    |
49  * |------------------------------------------------------------------\  t  | '--------------'
50  * |Fn:    |A   |S   |D   |F   |G   |H   |J   |K   |L   |Ö   |Ä   |'   | e  |
51  * |Layer 2|    |    |    |    |    |    |    |    |    |    |    |#   | r  |
52  * |------------------------------------------------------------------------|      .----.
53  * |Shift|>   |Y   |X   |C   |V   |B   |N   |M   |;   |:   |_   |Shift      |      |Up  |
54  * |     |<  ¦|    |    |    |    |    |    |   µ|,   |.   |-   |           |      |    |
55  * |------------------------------------------------------------------------| .--------------.
56  * |Ctrl |Super|Alt  |                              |AltGr|Alt  |Fn:  |Ctrl | |Left|Down|Righ|
57  * |     |     |     |                              |     |     |Lay 2|     | |    |    |    |
58  * '------------------------------------------------------------------------' '--------------'
59  *                                                                                                  NUHS = true position of KC_NUHS
60  */
61 [DEF] = KEYMAP( \
62   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,TD(AF4), \
63   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, \
64   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_NUHS,  KC_DEL, KC_END, KC_PGDN, \
65   MO(FUN),KC_A,   KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,   KC_L,   KC_SCLN,KC_QUOT,/*NUHS*/KC_ENT,                            \
66   KC_LSFT,KC_NUBS,KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,   KC_N,   KC_M,   KC_COMM,KC_DOT, KC_SLSH,        KC_RSFT,          KC_UP,           \
67   KC_LCTL,KC_LGUI,KC_LALT,                        KC_SPC,                         KC_RALT,KC_LALT,MO(FUN),KC_RCTL,  KC_LEFT,KC_DOWN,KC_RGHT),
68
69     /* Layer 1: function layer
70  * .----.   .-------------------. .-------------------. .-------------------. .--------------.
71  * |Ctl+|   |My  |WWW:|Calc|Medi| |Mus:|Mus:|Mus:|Mus:| |Vol:|Vol:|Vol:|See:| |    |    |Paus|
72  * |A+De|   |Comp|Home|    |Play| |Prev|Next|Paus|Stop| |Mute|Down|Up  |[3] | |    |    |Brea|
73  * '----'   '-------------------' '-------------------' '-------------------' '--------------'
74  * .------------------------------------------------------------------------. .--------------.
75  * |    |    |    |    |    |    |    |    |    |    |    |    |    |       | |    |    |Mou:|
76  * |    |    |    |    |    |    |    |{   |[   |]   |}   |\   |    |       | |    |    |WhUp|
77  * |------------------------------------------------------------------------| |--------------|
78  * |      |    |    |    |    |    |    |    |    |    |    |    |~   |     | |    |    |Mou:|
79  * |      |    |    |    |    |    |    |    |    |    |    |    |    |     | |    |    |WhDn|
80  * |------------------------------------------------------------------\     | '--------------'
81  * |CapsLck|Mou:|Mou:|    |    |    |    |    |    |    |    |    |    |    |
82  * |       |Fast|Slow|    |    |    |    |    |    |    |    |    |    |    |
83  * |------------------------------------------------------------------------|      .----.
84  * |     |    |    |    |    |    |    |    |µ   |    |    |    |           |      |Mou:|
85  * |     |    |    |    |    |    |    |    |    |    |    |    |           |      |Up  |
86  * |------------------------------------------------------------------------| .--------------.
87  * |Mous:|Mous:|     |                              |     |Super|App  |     | |Mou:|Mou:|Mou:|
88  * |Bttn2|Bttn1|     |                              |     |     |     |     | |Left|Down|Righ|
89  * '------------------------------------------------------------------------' '--------------'
90  *
91  */
92 [FUN] = KEYMAP( \
93   CTALDEL,        KC_MYCM,KC_WHOM,KC_CALC,KC_MSEL,KC_MPRV,KC_MNXT,KC_MPLY,KC_MSTP,KC_MUTE,KC_VOLD,KC_VOLU,MO(RES),  _______,KC_SLCK,KC_PAUS, \
94   _______,_______,_______,_______,_______,_______,_______,G(7),   G(8),   G(9),   G(0),   G(MINS),_______,_______,  _______,_______,KC_WH_U, \
95   _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,G(RBRC),_______,  _______,_______,KC_WH_D, \
96   KC_CAPS,KC_ACL2,KC_ACL0,_______,_______,_______,_______,_______,_______,_______,_______,_______,/*NUHS*/_______,                           \
97   _______,_______,_______,_______,_______,_______,_______,_______,G(M),   _______,_______,_______,        _______,          KC_MS_U,         \
98   KC_BTN2,KC_BTN1,_______,                        _______,                        _______,KC_RGUI,KC_APP ,_______,   KC_MS_L,KC_MS_D,KC_MS_R),
99
100
101 /* Layer 3: Reset layer (prevents accidental resets) */
102 [RES] = KEYMAP( \
103   _______,        _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,  _______,_______,_______, \
104   _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,  _______,_______,_______, \
105   _______,_______,_______,_______,RESET,  _______,_______,_______,_______,_______,_______,_______,_______,_______,  _______,_______,_______, \
106   _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,/*NUHS*/_______,                           \
107   _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,        _______,          _______,         \
108   _______,_______,_______,                        _______,                        _______,_______,_______,_______,  _______,_______,_______),
109 };
110
111 qk_tap_dance_action_t tap_dance_actions[] = {
112   /* Tap once: nothing. Tap twice: Alt+F4 */
113   [AF4]  = ACTION_TAP_DANCE_DOUBLE(XXXXXXX,A(F4)),
114 };
115
116 void led_set_user(uint8_t usb_led) {
117   if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
118     ph_caps_led_on();
119   } else {
120     ph_caps_led_off();
121   }
122
123   if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
124     ph_sclk_led_on();
125     } else {
126     ph_sclk_led_off();
127   }
128 }