summaryrefslogtreecommitdiff
path: root/keyboards/the_ruler/keymaps/default/keymap.c
blob: cb8e8ece8c0ddff5606fc470b2c6ce4799810e75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include QMK_KEYBOARD_H
#include "action_layer.h"
#include "eeconfig.h"

extern keymap_config_t keymap_config;

// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
#define _DEFAULT 0
#define _FN_1 1
#define _FN_2 2

enum custom_keycodes {
  DEFAULT = SAFE_RANGE,
  FN_1,
  FN_2
};

// Defines for task manager and such
#define CALTDEL LCTL(LALT(KC_DEL))
#define TSKMGR LCTL(LSFT(KC_ESC))

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

/* Default Layer
 * ,-----------------------------------------------.
 * |  FN_2 |   2   |TSKMGR |CALTDEL|  ESC  |  FN_1 |
 * `-----------------------------------------------'
 */
[_DEFAULT] = LAYOUT( \
  MO(_FN_2), KC_2, TSKMGR, CALTDEL, KC_ESC, MO(_FN_1)
),

/* FN 1 Layer
 * ,-----------------------------------------------.
 * |RGB_TOG|RGB_HUD|RGB_HUI|RGB_SAD|RGB_SAI|  FN_1 |
 * `-----------------------------------------------'
 */
[_FN_1] = LAYOUT( \
  RGB_TOG, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, _______
),

/* FN 2 Layer
 * ,-----------------------------------------------.
 * |  FN_2 |RGB_VAD|RGB_VAI|RGB_MOD|TSKMGR | RESET |
 * `-----------------------------------------------'
 */
[_FN_2] = LAYOUT( \
  _______, RGB_VAD, RGB_VAI, RGB_MOD, TSKMGR, RESET
)

};

void persistant_default_layer_set(uint16_t default_layer) {
  eeconfig_update_default_layer(default_layer);
  default_layer_set(default_layer);
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  switch (keycode) {
    // NONE
  }
  return true;
}