qmk-dactyl-manuform-a/users/greatwizard/greatwizard.h

136 lines
2.5 KiB
C

/* Copyright 2020 Guillaume Gérard
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#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 {
// Persistent layers switcher keys
QWERTY = SAFE_RANGE,
WORKMAN,
COLEMAK,
DVORAK,
#ifdef LAYER_GAME
GAME,
#endif
#ifdef LAYERS_PROGRAMMER
// Workman 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 Underglow lights based on the layer key
RGB_LAYER,
#ifdef LAYER_GIT
// GIT commands
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