]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/xd75/keymaps/davidrambo/keymap.c
Update KBD67 readme so that it mentions the KBD65 PCB (#5143)
[qmk_firmware.git] / keyboards / xd75 / keymaps / davidrambo / keymap.c
1 #include QMK_KEYBOARD_H
2
3 #define A_BSPC  LALT(KC_BSPC) // delete whole word in Mac
4 // #define C_BSPS  LCTL(KC_BSPC) // delete whole word in PC; currently not in use
5 #define A_LEFT  LALT(KC_LEFT)
6 #define A_RGHT  LALT(KC_RGHT)
7 #define C_RGHT  LCTL(KC_RGHT)
8 #define C_LEFT  LCTL(KC_LEFT)
9 #define SftEnt  SFT_T(KC_ENT)
10 #define GBSPC   LGUI_T(KC_BSPC)
11 #define CBSPC   LCTL_T(KC_BSPC)
12
13 //internet browser tab shortcuts and window swapping for Mac and Win
14 #define GSL     LGUI(S(KC_LEFT)) // back one tab in Safari
15 #define GSR     LGUI(S(KC_RGHT)) // forward one tab in Safari
16 #define CTLPGDN LCTL(KC_PGDN)   // back one tab on Windows
17 #define CTLPGUP LCTL(KC_PGUP)   // forward one tab on Windows
18 #define G_TAB   LGUI(KC_TAB)    // MAC: switch applications
19 #define G_GRV   LGUI(KC_GRV)    // MAC: switch between windows within an application
20 #define A_TAB   LALT(KC_TAB)
21 #define C_TAB   LCTL(KC_TAB)
22
23 //
24 #define NAV     LT(3, KC_TAB)
25 #define NAVPC   LT(4, KC_TAB)
26
27 // Layer shorthand
28 #define _COLEMAK 0
29 #define _PC 1
30 #define _SYMBOL 2   //Function keys, numbers, symbols, Backlighting
31 #define _NAV 3   //Navigation Layer on Mac
32 #define _NAVPC 4 //Navigation Layer on Win
33
34 //tapdance declarations
35 enum {
36   SFT_LCK
37 };
38
39 //alias for tapdance
40 #define SftLck TD(SFT_LCK)
41
42 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
43
44 /* COLEMAK
45  * .--------------------------------------------------------------------------------------------------------------------------------------.
46  * | `~     | 1      | 2      | 3      | 4      | 5      | -      | SWITCH | =      | 6      | 7      | 8      | 9      | 0      | BACKSP |
47  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
48  * | ESC/`~ | Q      | W      | F      | P      | G      | [      | \      | ]      | J      | L      | U      | Y      | ;      | BACKSP |
49  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
50  * | NAVTAB | A      | S      | D      | F      | G      | PgUp   |PlayPaus| ENTER  | H      | N      | E      | I      | O      | '      |
51  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
52  * |SFT/CAPS| Z      | X      | C      | V      | B      | PgDn   |  UP    | ENTER  | K      | M      | ,      | .      | /      | SftEnt |
53  * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
54  * | DEL    | LGUI   | LCTRL  | LALT   | LGUI   | BKSPC  | LEFT   | DOWN   | RIGHT  | SPACE  | SYMBOL | RGUI   | RALT   | RCTRL  | BL     |
55  * '--------------------------------------------------------------------------------------------------------------------------------------'
56  */
57
58  [_COLEMAK] = { /* COLEMAK */
59   { KC_GRV , KC_1,    KC_2,    KC_3,    KC_4,    KC_5,   KC_MINS, TG(1)  , KC_EQL,  KC_6,   KC_7,   KC_8,    KC_9,    KC_0,    KC_BSPC },
60   { KC_GESC, KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,   KC_LBRC, KC_BSLS, KC_RBRC, KC_J,   KC_L,   KC_U,    KC_Y,    KC_SCLN, KC_BSPC },
61   { NAV    , KC_A,    KC_R,    KC_S,    KC_T,    KC_D,   KC_PGUP, KC_ESC , KC_ENT , KC_H,   KC_N,   KC_E,    KC_I,    KC_O,    KC_QUOT },
62   { SftLck , KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,   KC_PGDN, KC_UP  , KC_ENT , KC_K,   KC_M,   KC_COMM, KC_DOT,  KC_SLSH, SftEnt  },
63   { KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, GBSPC,  KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(2) , KC_RGUI, KC_RALT, KC_RCTL, BL_STEP },
64  },
65     
66 // Windows Layer: essentially swaps Control and GUI
67
68  [_PC] = { /* WINDOWS */
69   { _______, _______, _______, _______, _______, _______, _______, TG(0)  , _______, _______, _______, _______, _______, _______, _______ },
70   { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
71   { NAVPC  , _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______ },
72   { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
73   { _______, KC_LCTL, KC_LGUI, _______, KC_LCTL, _______, _______, _______, _______, _______, _______, KC_RCTL, KC_RALT, KC_RGUI, _______ },
74  },
75
76 /* SYMBOL
77  * .--------------------------------------------------------------------------------------------------------------------------------------.
78  * | F12    | F1     | F2     | F3     | F4     | F5     |        |        |        | F6     | F7     | F8     | F9     | F10    | F11    |
79  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
80  * | [{     | 1      | 2      | 3      | 4      | 5      |        |        |        | 6      | 7      | 8      | 9      | 0      | }]     |
81  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
82  * |        | !      | @      | #      | $      | %      |        |        |        | ^      | &      | *      | (      | )      | =      |
83  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
84  * |        | HOME   | END    | BL_OFF | BL_ON  |        |        |        |        |        | -_     |        |        |        |        |
85  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
86  * |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |
87  * '--------------------------------------------------------------------------------------------------------------------------------------'
88  */
89
90  [_SYMBOL] = { /* SYMBOL */
91   { _______, KC_F1  , KC_F2  , KC_F3  , KC_F4  , KC_F5  , _______, _______, _______, KC_F6  , KC_F7  , KC_F8  , KC_F9  , KC_F10 , _______},
92   { KC_LBRC, KC_1   , KC_2   , KC_3   , KC_4   , KC_5   , _______, _______, _______, KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , KC_RBRC},
93   { _______, KC_EXLM, KC_AT  , KC_HASH, KC_DLR , KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL },
94   { _______, KC_HOME, KC_END , BL_OFF , BL_ON  , KC_F11 , _______, _______, _______, KC_F12 , KC_MINS, _______, _______, _______, _______},
95   { _______, _______, _______, _______, _______, A_BSPC , _______, _______, _______, _______, _______, _______, _______, _______, _______},
96  },
97
98  
99  [_NAV] = { /* NAVIGATION for Mac */
100   { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
101   { _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB  , A_LEFT,  KC_UP,   A_RGHT , KC_DEL , _______},
102   { _______, _______, _______, _______, _______, _______, _______, _______, _______, GSL    , KC_LEFT, KC_DOWN, KC_RGHT, GSR    , _______},
103   { _______, _______, _______, _______, _______, _______, _______, _______, _______, G_TAB  , ABSPC  , KC_HOME, KC_END , G_GRV  , _______},
104   { RESET  , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
105  },
106
107  [_NAVPC] = { /* NAVIGATION FOR WINDOWS: replaces Alt with Control, GUI with Alt, and browser tab shortcuts*/
108   { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
109   { _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB  , C_LEFT,  KC_UP,   C_RGHT , KC_DEL , _______},
110   { _______, _______, _______, _______, _______, _______, _______, _______, _______, CTLPGUP, KC_LEFT, KC_DOWN, KC_RGHT, CTLPGDN, _______},
111   { _______, _______, _______, _______, _______, _______, _______, _______, _______, A_TAB  , CBSPC  , KC_HOME, KC_END , _______, _______},
112   { RESET  , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
113  }
114 };
115
116 // Shift vs capslock function. From bbaserdem's Planck keymap.
117 void caps_tap (qk_tap_dance_state_t *state, void *user_data) {
118     if (state->count == 1) {
119         register_code (KC_LSFT);
120     } else if (state->count == 2) {
121         unregister_code (KC_LSFT);
122         register_code (KC_CAPS);
123     }
124 }
125 void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) {
126     if (state->count == 1) {
127         unregister_code (KC_LSFT);
128     } else {
129         unregister_code (KC_CAPS);
130     }
131 }
132
133 //Tap Dance Definitions
134 qk_tap_dance_action_t tap_dance_actions[] = {
135   //Tap once for Shift, twice for Caps Lock
136   [SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end )
137 };
138
139 /* Template for future layers
140  [_LAYER_NAME] = { 
141   { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
142   { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
143   { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
144   { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
145   { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
146  }
147 };
148 */