Commit | Line | Data |
---|---|---|
d8c503f3 BG |
1 | /* Copyright 2017 Balz Guenat |
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 | #include "bananasplit.h" | |
17 | ||
7235c938 | 18 | enum custom_keycodes { |
4931510a | 19 | WIN_SWITCH_LAYOUT = SAFE_RANGE, |
7235c938 | 20 | }; |
d8c503f3 BG |
21 | |
22 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |
23 | /* | |
24 | ------------------------------------------------------------------------------------------- | |
25 | |GvEsc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace | | |
26 | ------------------------------------------------------------------------------------------- | |
27 | | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | | |
28 | ------------------------------------------------------------------------------------------- | |
29 | | Fn1 | A | S | D | F | G | H | J | K | L | ; | ' | Enter | | |
30 | ------------------------------------------------------------------------------------------- | |
308bec28 | 31 | | Shift | Z | X | C | V | B | N | M | , | . | / | Shift |M(0) | |
d8c503f3 BG |
32 | ------------------------------------------------------------------------------------------- |
33 | | Ctrl | GUI | Alt | Space | Fn1 | Space | Alt | GUI | App | Ctrl | | |
34 | ------------------------------------------------------------------------------------------- | |
35 | */ | |
36 | [0] = KEYMAP( \ | |
37 | KC_GESC, 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, \ | |
38 | 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_BSLS, \ | |
39 | MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ | |
7235c938 | 40 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, WIN_SWITCH_LAYOUT,\ |
d8c503f3 BG |
41 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_NO, KC_APP, KC_RCTL \ |
42 | ), | |
43 | /* | |
44 | ------------------------------------------------------------------------------------------- | |
45 | | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | | |
46 | ------------------------------------------------------------------------------------------- | |
47 | | CpsLck |Prev |Vol+ |Next |PgUp | Ins |Home |WrdL |WrdR | End | | | | PrtSc | | |
48 | ------------------------------------------------------------------------------------------- | |
49 | | TRNS |Mute |Vol- |Play |PgDn | Del |Left |Down | Up |Right| | | | | |
50 | ------------------------------------------------------------------------------------------- | |
308bec28 | 51 | | | | | | | |DelWL|DelWR| | | | | | |
d8c503f3 BG |
52 | ------------------------------------------------------------------------------------------- |
53 | | | | | | TRNS | | | | | Reset | | |
54 | ------------------------------------------------------------------------------------------- | |
55 | */ | |
56 | [1] = KEYMAP( \ | |
7235c938 BG |
57 | _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, \ |
58 | KC_CAPS, KC_MPRV, KC_VOLU, KC_MNXT, KC_PGUP, KC_INS, KC_HOME, LCTL(KC_LEFT), LCTL(KC_RGHT), KC_END, _______, _______, _______, KC_PSCR, \ | |
59 | _______, KC_MUTE, KC_VOLD, KC_MPLY, KC_PGDN, KC_DEL, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, \ | |
4931510a | 60 | _______, BL_STEP, BL_BRTG, _______, _______,_______, LCTL(KC_BSPC), LCTL(KC_DEL), _______, _______, _______, _______, _______, \ |
7235c938 | 61 | _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, RESET \ |
d8c503f3 BG |
62 | ), |
63 | }; | |
64 | ||
65 | const uint16_t PROGMEM fn_actions[] = { | |
66 | ||
67 | }; | |
68 | ||
d8c503f3 BG |
69 | void matrix_init_user(void) { |
70 | ||
71 | } | |
72 | ||
73 | void matrix_scan_user(void) { | |
74 | ||
75 | } | |
76 | ||
77 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |
7235c938 | 78 | switch (keycode) { |
4931510a | 79 | |
7235c938 BG |
80 | case WIN_SWITCH_LAYOUT: { |
81 | // Sends Alt+Shift on both key down and key up. | |
82 | // Designed to switch between two keyboard layouts on Windows using a locking switch. | |
83 | // Does nothing if right shift is pressed for easy resync. | |
4931510a | 84 | if (!(get_mods() & MOD_BIT(KC_RSFT))) |
7235c938 | 85 | SEND_STRING(SS_DOWN(X_LALT)SS_TAP(X_LSHIFT)SS_UP(X_LALT)); |
4931510a | 86 | return false; |
7235c938 | 87 | } |
4931510a BG |
88 | |
89 | default: | |
90 | return true; | |
7235c938 | 91 | } |
d8c503f3 BG |
92 | } |
93 | ||
94 | void led_set_user(uint8_t usb_led) { | |
95 | ||
96 | } |