#pragma once
#include QMK_KEYBOARD_H
#include "keymap_helpers.h"
#ifdef TAP_DANCE_ENABLE
# include "tap_dances.h"
#endif
#ifdef RGBLIGHT_ENABLE
# include "underglow.h"
#endif
#ifdef LAYER_FN
# include "fn.h"
#endif
#ifdef LAYER_GAME
# include "game.h"
#endif
#ifdef LAYER_GIT
# include "git.h"
#endif
#ifdef LAYERS_ORTHO
# include "ortho.h"
#endif
#ifdef LAYERS_PROGRAMMER
# include "programmer.h"
#endif
typedef union {
uint32_t raw;
struct {
#ifdef RGBLIGHT_ENABLE
bool rgb_layer_change : 1;
#endif
};
} user_config_t;
enum layers {
_QWERTY,
_WORKMAN,
_COLEMAK,
_DVORAK,
#ifdef LAYER_GAME
_GAME,
#endif
#ifdef LAYERS_PROGRAMMER
_QWERTY_PROGRAMMER,
_WORKMAN_PROGRAMMER,
_COLEMAK_PROGRAMMER,
_DVORAK_PROGRAMMER,
_PROGRAMMER_SHIFTED,
#endif
#ifdef LAYERS_ORTHO
_LOWER,
_RAISE,
_ADJUST,
#endif
#ifdef LAYER_FN
_FN,
#endif
#ifdef LAYER_GIT
_GIT,
#endif
};
enum keycodes {
QWERTY = SAFE_RANGE,
WORKMAN,
COLEMAK,
DVORAK,
#ifdef LAYER_GAME
GAME,
#endif
#ifdef LAYERS_PROGRAMMER
QWERTY_PROGRAMMER,
WORKMAN_PROGRAMMER,
COLEMAK_PROGRAMMER,
DVORAK_PROGRAMMER,
PROGRAMMER_SHIFTED,
PG_GRV,
PG_1,
PG_2,
PG_3,
PG_4,
PG_5,
PG_6,
PG_7,
PG_8,
PG_9,
PG_0,
#endif
RGB_LAYER,
#ifdef LAYER_GIT
GIT_ADD,
GIT_BRANCH,
GIT_CHECKOUT,
GIT_CHERRYPICK,
GIT_COMMIT,
GIT_DIFF,
GIT_FETCH,
GIT_GREP,
GIT_LOG,
GIT_INIT,
GIT_MV,
GIT_MERGE,
GIT_PUSH,
GIT_PULL,
GIT_REBASE,
GIT_REMOTE,
GIT_RESET,
GIT_SHOW,
GIT_STASH,
GIT_STATUS,
GIT_TAG
#endif
};
#define RGB_LYR RGB_LAYER