]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/rama/m6_a/keymaps/krusli/keymap.c
[Keyboard] Snagpad Configurator bugfix and readme refactor (#6381)
[qmk_firmware.git] / keyboards / rama / m6_a / keymaps / krusli / keymap.c
1 #include QMK_KEYBOARD_H
2 #include "action_layer.h"
3 #include "eeconfig.h"
4
5 extern keymap_config_t keymap_config;
6
7 // Each layer gets a name for readability, which is then used in the keymap matrix below.
8 // The underscores don't mean anything - you can have a layer called STUFF or any other name.
9 // Layer names don't all need to be of the same length, obviously, and you can also skip them
10 // entirely and just use numbers.
11
12 enum layers
13 {
14     _LAYER0,
15     _LAYER1,
16     _LAYER2
17 };
18
19 enum custom_keycodes
20 {
21     GIT_ADD = SAFE_RANGE,
22     GIT_COMMIT,
23     GIT_PUSH,
24     MUTE,
25     DEAFEN
26 };
27
28 bool process_record_user(uint16_t keycode, keyrecord_t *record)
29 {
30     if (record->event.pressed)
31     {
32         switch (keycode)
33         {
34         case GIT_ADD:
35             SEND_STRING("git add ." SS_TAP(X_ENTER));
36             break;
37         case GIT_COMMIT:
38             SEND_STRING("git commit -m " SS_DOWN(X_LSHIFT) SS_TAP(X_QUOTE) SS_UP(X_LSHIFT));
39             break;
40         case GIT_PUSH:
41             SEND_STRING("git push" SS_TAP(X_ENTER));
42             break;
43         case MUTE:
44             SEND_STRING(SS_LGUI(SS_LSFT("M")));
45             break;
46         case DEAFEN:
47             SEND_STRING(SS_LGUI(SS_LSFT("D")));
48             break;
49             return false;
50         }
51     }
52     return true;
53 };
54
55 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
56     [_LAYER0] = LAYOUT(
57         MUTE, DEAFEN, TO(_LAYER1),
58         GIT_ADD, GIT_COMMIT, GIT_PUSH),
59     [_LAYER1] = LAYOUT(
60         KC_VOLD, KC_VOLU, TO(_LAYER2),
61         KC_MRWD, KC_MPLY, KC_MNXT),
62     [_LAYER2] = LAYOUT(
63         KC_ESC, KC_UP, TO(_LAYER0),
64         KC_Z, KC_X, KC_SPACE)};
65
66 void matrix_init_user(void)
67 {
68 #ifdef BACKLIGHT_ENABLE
69     backlight_level(0);
70 #endif
71 }