mirror of
https://github.com/qmk/qmk_firmware.git
synced 2026-10-02 14:58:59 +02:00
AnnePro2: Leave only default keymaps
Missing keymaps will be restored in another PR
This commit is contained in:
@@ -1,2 +0,0 @@
|
||||
// Obins stock firmware has something similar to this already enabled, but disabled by default in QMK
|
||||
#define PERMISSIVE_HOLD
|
||||
@@ -1,159 +0,0 @@
|
||||
#include <stdint.h>
|
||||
#include "annepro2.h"
|
||||
#include "qmk_ap2_led.h"
|
||||
#include "config.h"
|
||||
|
||||
enum anne_pro_layers {
|
||||
_BASE_LAYER,
|
||||
_FN1_LY,
|
||||
_FN2_LY,
|
||||
};
|
||||
|
||||
// Key symbols are based on QMK. Use them to remap your keyboard
|
||||
/*
|
||||
* Layer _BASE_LAYER
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bksp |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Tab | q | w | e | r | t | y | u | i | o | p | [ | ] | \ |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Ctrl/Bks| a | s | d | f | g | h | j | k | l | ; | ' | Enter |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Shift | z | x | c | v | b | n | m | , | . | / | Shift |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Ctrl | L1 | Alt | space | Alt | FN1 | FN2 | Ctrl |
|
||||
* \-----------------------------------------------------------------------------------------/
|
||||
* Layer TAP in _BASE_LAYER
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Bksp | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | | | | | UP |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | `~ | | | | LEFT | DOWN | RIGHT |
|
||||
* \-----------------------------------------------------------------------------------------/
|
||||
*/
|
||||
// clang-format off
|
||||
const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE_LAYER] = KEYMAP( /* Base */
|
||||
KC_ESC, 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,
|
||||
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,
|
||||
MT(MOD_LCTL, KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_UP),
|
||||
KC_LCTL, MT(MOD_LGUI, KC_GRV), KC_LALT, KC_SPC, KC_RALT, LT(_FN1_LY,KC_LEFT), LT(_FN2_LY,KC_DOWN), RCTL_T(KC_RGHT)
|
||||
),
|
||||
/*
|
||||
* Layer _FN1_LY
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | MEDIA PLAY|
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Tab | q | UP | e | 7 | 8 | 9 | u | i | o | PS | HOME | END | \ |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | |LEFT |DOWN |RIGHT| 4 | 5 | 6 | j | k | l | PGUP|PGDN | Enter |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | LayerHold? |V-UP |V-DWN|MUTE | 1 | 2 | 3 | m | , |INSRT| DEL | Shift |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Ctrl | L1 | Alt | 0 | Alt | FN1 | FN2 | Ctrl |
|
||||
* \-----------------------------------------------------------------------------------------/
|
||||
*
|
||||
*/
|
||||
[_FN1_LY] = KEYMAP( /* Base */
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MEDIA_PLAY_PAUSE,
|
||||
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_7, KC_8, KC_9, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_HOME, KC_END, KC_TRNS,
|
||||
MO(_FN2_LY), KC_LEFT, KC_DOWN, KC_RGHT, KC_4, KC_5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS,
|
||||
KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS, KC_INS, KC_DEL, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_TRNS, KC_TRNS, MO(_FN2_LY), KC_TRNS
|
||||
),
|
||||
/*
|
||||
* Layer _FN2_LY
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | ~ | BT1 | BT2 | BT3 | BT4 | F5 | F6 | F7 |LEDOF|LEDON| F10 | F11 | F12 | MEDIA PLAY|
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Tab | q | UP | e | r | t | y | u | i | o | PS | HOME | END | \ |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Esc |LEFT |DOWN |RIGHT| f | g | h | j | k | l | PGUP|PGDN | Enter |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Shift | z | x | c | v | b | n | m | , |INSRT| DEL | Shift |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Ctrl | L1 | Alt | space | Alt | FN1 | FN2 | Ctrl |
|
||||
* \-----------------------------------------------------------------------------------------/
|
||||
*
|
||||
*/
|
||||
[_FN2_LY] = KEYMAP( /* Base */
|
||||
KC_TRNS, KC_AP2_BT1, KC_AP2_BT2, KC_AP2_BT3, KC_AP2_BT4, KC_TRNS, KC_TRNS, KC_TRNS, KC_AP_LED_OFF, KC_AP_LED_ON, KC_AP_LED_NEXT_INTENSITY, KC_AP_LED_SPEED, KC_TRNS, KC_MEDIA_PLAY_PAUSE,
|
||||
MO(_FN2_LY), KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_HOME, KC_END, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_DEL, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FN1_LY), MO(_FN2_LY), KC_TRNS
|
||||
),
|
||||
};
|
||||
// clang-format on
|
||||
const uint16_t keymaps_size = sizeof(keymaps);
|
||||
|
||||
|
||||
void matrix_init_user(void) {
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
}
|
||||
|
||||
// Code to run after initializing the keyboard
|
||||
void keyboard_post_init_user(void) {
|
||||
// Here are two common functions that you can use. For more LED functions, refer to the file "qmk_ap2_led.h"
|
||||
|
||||
// annepro2-shine disables LEDs by default. Uncomment this function to enable them at startup.
|
||||
// annepro2LedEnable();
|
||||
|
||||
// Additionally, it also chooses the first LED profile by default. Refer to the "profiles" array in main.c in
|
||||
// annepro2-shine to see the order. Replace "i" with the index of your preferred profile. (i.e the RED profile is index 0)
|
||||
// annepro2LedSetProfile(i);
|
||||
debug_enable=true;
|
||||
}
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t layer) {
|
||||
switch(get_highest_layer(layer)) {
|
||||
case _FN1_LY:
|
||||
// Set the leds to green
|
||||
annepro2LedSetForegroundColor(0x00, 0xFF, 0x00);
|
||||
break;
|
||||
case _FN2_LY:
|
||||
// Set the leds to blue
|
||||
annepro2LedSetForegroundColor(0x00, 0x00, 0xFF);
|
||||
break;
|
||||
default:
|
||||
// Reset back to the current profile
|
||||
annepro2LedResetForegroundColor();
|
||||
break;
|
||||
}
|
||||
return layer;
|
||||
}
|
||||
|
||||
// The function to handle the caps lock logic. It's executed after caps or layer
|
||||
// changes state, after layer_state_set_user.
|
||||
bool led_update_user(led_t leds) {
|
||||
if (leds.caps_lock) {
|
||||
const annepro2Led_t color = {
|
||||
.p.red = 0xff,
|
||||
.p.green = 0x00,
|
||||
.p.blue = 0x00,
|
||||
.p.alpha = 0xff
|
||||
};
|
||||
|
||||
annepro2LedMaskSetKey(2, 0, color);
|
||||
return true;
|
||||
}
|
||||
|
||||
if(!layer_state_is(_FN1_LY) && !layer_state_is(_FN2_LY)) {
|
||||
const annepro2Led_t color = {
|
||||
.p.red = 0xff,
|
||||
.p.green = 0x00,
|
||||
.p.blue = 0x00,
|
||||
.p.alpha = 0x00
|
||||
};
|
||||
annepro2LedMaskSetKey(2, 0, color);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -1,86 +0,0 @@
|
||||
#include <stdint.h>
|
||||
#include "annepro2.h"
|
||||
#include "qmk_ap2_led.h"
|
||||
|
||||
enum anne_pro_layers {
|
||||
_BASE_LAYER,
|
||||
_FN1_LAYER,
|
||||
_FN2_LAYER,
|
||||
};
|
||||
// clang-format off
|
||||
/*
|
||||
* Layer _BASE_LAYER
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bksp |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Tab | q | w | e | r | t | y | u | i | o | p | [ | ] | \ |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | FN1 | a | s | d | f | g | h | j | k | l | ; | ' | Enter |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Shift | z | x | c | v | b | n | m | , | . | / | Shift |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Ctrl | L1 | Alt | space | Alt | FN1 | FN2 | Ctrl |
|
||||
* \-----------------------------------------------------------------------------------------/
|
||||
*
|
||||
*/
|
||||
const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE_LAYER] = KEYMAP( /* Base */
|
||||
KC_ESC, 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,
|
||||
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,
|
||||
MO(_FN1_LAYER), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1_LAYER), MO(_FN2_LAYER), KC_RCTRL
|
||||
),
|
||||
/*
|
||||
* Layer _FN1_LAYER
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Tab | HOM | UP | END | PGU | t | y | PGU | UP | PDN | PS | [ | ] | \ |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | FN1 |LEFT |DOWN |RIGHT| PDN | g | HOM |LEFT |DOWN |RIGHT| END | ' | Enter |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Shift |V-UP |V-DWN|MUTE | PAUS | NEX | n | m | , |INSRT| / | Shift |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Ctrl | L1 | Alt | Enter | Alt | FN1 | FN2 | Ctrl |
|
||||
* \-----------------------------------------------------------------------------------------/
|
||||
*
|
||||
*/
|
||||
[_FN1_LAYER] = KEYMAP( /* Base */
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
/*
|
||||
* Layer _FN2_LAYER
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | ~ | BT1 | BT2 | BT3 | BT4 | F5 | F6 | F7 | F8 |LEDOF|LEDON|LED_I |LED_S | Bksp |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Tab | HOM | UP | END | PGU | t | y | u | UP | o | PS | [ | ] | \ |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | CAPS |LEFT |DOWN |RIGHT| PDN | g | HOM |LEFT |DOWN |RIGHT| END | ' | Enter |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Shift | z | x | c | v | b | n | m | , | . | / | Shift |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Ctrl | L1 | Alt | Enter | Alt | FN1 | FN2 | Ctrl |
|
||||
* \-----------------------------------------------------------------------------------------/
|
||||
*
|
||||
*/
|
||||
[_FN2_LAYER] = KEYMAP( /* Base */
|
||||
KC_TILD, KC_AP2_BT1, KC_AP2_BT2, KC_AP2_BT3, KC_AP2_BT4, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AP_LED_OFF, KC_AP_LED_ON, KC_AP_LED_NEXT_INTENSITY, KC_AP_LED_SPEED, KC_TRNS,
|
||||
KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
};
|
||||
// clang-format on
|
||||
const uint16_t keymaps_size = sizeof(keymaps);
|
||||
|
||||
void matrix_init_user(void) {}
|
||||
|
||||
void matrix_scan_user(void) {}
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t layer) { return layer; }
|
||||
@@ -1,197 +0,0 @@
|
||||
#include "annepro2.h"
|
||||
#include <stdint.h>
|
||||
#include <print.h>
|
||||
#include "qmk_ap2_led.h"
|
||||
#ifdef ANNEPRO2_C18
|
||||
# include "eeprom_w25x20cl.h"
|
||||
#endif
|
||||
|
||||
// layout using eeprom and bidir-comms to keep user led settings persistent
|
||||
|
||||
// eeprom memory layout
|
||||
typedef union {
|
||||
uint32_t raw;
|
||||
struct {
|
||||
uint8_t magic : 8;
|
||||
bool leds_on : 1;
|
||||
uint8_t leds_profile : 8;
|
||||
};
|
||||
} user_config_t;
|
||||
|
||||
// define out default user_config
|
||||
user_config_t user_config = {.magic = 0xDE, .leds_on = 0, .leds_profile = 0};
|
||||
|
||||
static uint8_t usb_buf[256];
|
||||
static uint8_t buf_fil = 0;
|
||||
|
||||
enum anne_pro_layers {
|
||||
_BASE_LAYER,
|
||||
_FN1_LAYER,
|
||||
_FN2_LAYER,
|
||||
};
|
||||
// clang-format off
|
||||
/*
|
||||
* Layer _BASE_LAYER
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bksp |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Tab | q | w | e | r | t | y | u | i | o | p | [ | ] | \ |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Caps | a | s | d | f | g | h | j | k | l | ; | ' | Enter |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Shift | z | x | c | v | b | n | m | , | . | / | Shift |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Ctrl | GUI | Alt | space | GUI | ALT | FN1 | Ctrl |
|
||||
* \-----------------------------------------------------------------------------------------/
|
||||
* Layer TAP in _BASE_LAYER
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | | | | | UP |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | LEFT | DOWN | RIGHT |
|
||||
* \-----------------------------------------------------------------------------------------/
|
||||
*/
|
||||
const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE_LAYER] = KEYMAP(/* Base */
|
||||
KC_ESC, 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,
|
||||
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,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_UP),
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, LT(_FN2_LAYER, KC_LEFT), LT(_FN1_LAYER, KC_DOWN), RCTL_T(KC_RGHT)),
|
||||
/*
|
||||
* Layer _FN1_LAYER
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Tab | q | UP | e | r | t | y | u | i | o | PS | HOME | END | \ |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Esc |LEFT |DOWN |RIGHT| f | g | h | j | k | l | PGUP|PGDN | Enter |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Shift |V-UP |V-DWN|MUTE | v | b | n | m | , |INSRT| DEL | Shift |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Ctrl | L1 | Alt | space | Alt | FN2 | FN1 | Ctrl |
|
||||
* \-----------------------------------------------------------------------------------------/
|
||||
*
|
||||
*/
|
||||
[_FN1_LAYER] = KEYMAP(/* Base */
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_HOME, KC_END, KC_TRNS,
|
||||
MO(_FN2_LAYER), KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS,
|
||||
KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_DEL, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FN2_LAYER), KC_TRNS, KC_TRNS),
|
||||
/*
|
||||
* Layer _FN2_LAYER
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | ~ | BT1 | BT2 | BT3 | BT4 | F5 | F6 | F7 |LEDOF|LEDON| F10 | F11 | F12 | Bksp |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Tab | q | UP | e | r | t | y | u | i | o | PS | HOME | END | \ |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Esc |LEFT |DOWN |RIGHT| f | g | h | j | k | l | PGUP|PGDN | Enter |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Shift | z | x | c | v | b | n | m | , |INSRT| DEL | Shift |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Ctrl | L1 | Alt | space | Alt | FN2 | FN1 | Ctrl |
|
||||
* \-----------------------------------------------------------------------------------------/
|
||||
*
|
||||
*/
|
||||
[_FN2_LAYER] = KEYMAP(/* Base */
|
||||
KC_TRNS, KC_AP2_BT1, KC_AP2_BT2, KC_AP2_BT3, KC_AP2_BT4, KC_TRNS, KC_TRNS, KC_TRNS, KC_AP_LED_OFF, KC_AP_LED_ON, KC_AP_LED_NEXT_PROFILE, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
MO(_FN2_LAYER), KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_HOME, KC_END, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_DEL, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FN2_LAYER), MO(_FN1_LAYER), KC_TRNS),
|
||||
};
|
||||
// clang-format on
|
||||
const uint16_t keymaps_size = sizeof(keymaps);
|
||||
|
||||
void matrix_init_user(void) {}
|
||||
|
||||
void matrix_scan_user(void) {}
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t layer) { return layer; }
|
||||
|
||||
void raw_hid_receive(uint8_t* data, uint8_t length) {
|
||||
uprintf("raw_hid len: %u\n", length);
|
||||
if (length == 1)
|
||||
annepro2LedSetProfile(data[0]);
|
||||
else {
|
||||
for (uint8_t i = 0; i < length; i++) {
|
||||
usb_buf[buf_fil + i] = data[i];
|
||||
}
|
||||
buf_fil += length;
|
||||
if (buf_fil >= 211) {
|
||||
sdWrite(&SD0, usb_buf, 211);
|
||||
buf_fil = 0;
|
||||
}
|
||||
// for (int i = 0; i < length; i++) {
|
||||
// sdPut(&SD0, data[i]);
|
||||
// sdGet(&SD0);
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
* @returns false processing for this keycode has been completed.
|
||||
*/
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
||||
#ifdef ANNEPRO2_C18
|
||||
switch (keycode) {
|
||||
case KC_AP_LED_OFF:
|
||||
if (record->event.pressed) {
|
||||
user_config.leds_on = false;
|
||||
eeprom_write((void*)&user_config, 0, sizeof(user_config_t));
|
||||
}
|
||||
return false;
|
||||
case KC_AP_LED_ON:
|
||||
if (record->event.pressed) {
|
||||
user_config.leds_on = true;
|
||||
eeprom_write((void*)&user_config, 0, sizeof(user_config_t));
|
||||
}
|
||||
return false;
|
||||
case KC_AP_LED_NEXT_PROFILE:
|
||||
if (record->event.pressed) {
|
||||
user_config.leds_profile = (user_config.leds_profile + 1) % annepro2LedStatus.amountOfProfiles;
|
||||
annepro2LedSetProfile(user_config.leds_profile);
|
||||
eeprom_write((void*)&user_config, 0, sizeof(user_config_t));
|
||||
}
|
||||
return false;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
// Customize these values to desired behavior
|
||||
debug_enable = true;
|
||||
// debug_matrix = true;
|
||||
// debug_keyboard=true;
|
||||
// debug_mouse=true;
|
||||
|
||||
#ifdef ANNEPRO2_C18
|
||||
// Read the user config from EEPROM
|
||||
eeprom_read((void*)&user_config, 0, sizeof(user_config_t));
|
||||
|
||||
// initialize a new eeprom
|
||||
if (user_config.magic != 0xDE) {
|
||||
user_config.magic = 0xDE;
|
||||
user_config.leds_on = false;
|
||||
user_config.leds_profile = 0;
|
||||
eeprom_write((void*)&user_config, 0, sizeof(user_config_t));
|
||||
}
|
||||
|
||||
if (user_config.leds_on) {
|
||||
// send profile before so that we don't get a flicker on startup
|
||||
annepro2LedSetProfile(user_config.leds_profile);
|
||||
annepro2LedEnable();
|
||||
} else {
|
||||
annepro2LedDisable();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
# Other featues
|
||||
CONSOLE_ENABLE = yes
|
||||
COMMAND_ENABLE = yes
|
||||
DEBUG_EEPROM = yes
|
||||
|
||||
ifeq ($(strip $(BOARD)), ANNEPRO2_C18)
|
||||
ANNEPRO2_EEPROM = yes
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(ANNEPRO2_EEPROM)), yes)
|
||||
OPT_DEFS += -DANNEPRO2_EEPROM
|
||||
SRC += spi_master.c eeprom_w25x20cl.c
|
||||
endif
|
||||
@@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#undef TAPPING_TERM
|
||||
#define TAPPING_TERM 200
|
||||
#define RETRO_TAPPING
|
||||
|
||||
#undef TAPPING_TOGGLE
|
||||
#define TAPPING_TOGGLE 2
|
||||
|
||||
#define MK_3_SPEED
|
||||
#define MK_MOMENTARY_ACCEL
|
||||
|
||||
#define CAPS_LOCATION (MATRIX_COLS * 0 + 0)
|
||||
|
||||
#define IDLE_PROFILE_INDEX 0
|
||||
@@ -1,384 +0,0 @@
|
||||
#include <stdint.h>
|
||||
#include "annepro2.h"
|
||||
#include "qmk_ap2_led.h"
|
||||
#include "config.h"
|
||||
|
||||
enum anne_pro_layers {
|
||||
_BASE_LAYER,
|
||||
_MOUSE_LAYER,
|
||||
_FUNCTION_LAYER,
|
||||
_MEDIA_AND_NAVIGATION_LAYER,
|
||||
_NUMPAD_LAYER,
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
bool is_press_action;
|
||||
uint8_t state;
|
||||
} tap;
|
||||
|
||||
// Define a type for as many tap dance states as you need
|
||||
enum { SINGLE_TAP = 1, SINGLE_HOLD, DOUBLE_TAP, DOUBLE_HOLD, TRIPLE_TAP, TRIPLE_HOLD };
|
||||
|
||||
enum profile { RED, GREEN, BLUE, RAINBOWHORIZONTAL, RAINBOWVERTICAL, ANIMATEDRAINBOWVERTICAL, ANIMATEDRAINBOWFLOW, ANIMATEDRAINBOWWATERFALL, ANIMATEDBREATHING, ANIMATEDSPECTRUM };
|
||||
|
||||
uint8_t cyclabe_profiles[] = {IDLE_PROFILE_INDEX, ANIMATEDRAINBOWFLOW, ANIMATEDRAINBOWVERTICAL, ANIMATEDRAINBOWWATERFALL, ANIMATEDBREATHING, ANIMATEDSPECTRUM};
|
||||
|
||||
enum custom_codes { NEXT_PROFILE = AP2_SAFE_RANGE, ENABLE_OR_DISABLE_LEDS };
|
||||
|
||||
enum {
|
||||
ESC_TAP_DANCE,
|
||||
GRV_TAP_DANCE,
|
||||
};
|
||||
// clang-format off
|
||||
/*
|
||||
* Layer _BASE_LAYER
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bksp |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Tab | q | w | e | r | t | y | u | i | o | p | [ | ] | \ |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* |-----------------------------------------------------------------------------------------+ | Shift | z | x | c | v | b | n | m | , | . | / | Shift |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Ctrl | FN2 | Alt | FN2 | Win | FN2 | FN1 | Ctrl |
|
||||
* \-----------------------------------------------------------------------------------------/
|
||||
* Layer TAP in _BASE_LAYER
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | ESC | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | Space | | | | |
|
||||
* \-----------------------------------------------------------------------------------------/
|
||||
*/
|
||||
const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE_LAYER] = KEYMAP( /* Base */
|
||||
KC_GRV, 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,
|
||||
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,
|
||||
TD(ESC_TAP_DANCE), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, LT(_MEDIA_AND_NAVIGATION_LAYER, KC_SPC), LALT_T(KC_APP), KC_RGUI, MO(_FUNCTION_LAYER), KC_RCTL
|
||||
),
|
||||
/*
|
||||
* Layer _FUNCTION_LAYER
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | Caps| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | 7 | 8 | 9 | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | 0 | 4 | 5 | 6 | | LFT | DWN | UP | RGT | ; | ' | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | 1 | 2 | 3 | | | | | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | |
|
||||
* \-----------------------------------------------------------------------------------------/
|
||||
*
|
||||
*/
|
||||
[_FUNCTION_LAYER] = KEYMAP( /* Base */
|
||||
KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
/*
|
||||
* Layer _MEDIA_AND_NAVIGATION_LAYER
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | USB | BT1 | BT2 | BT3 | BT4 | | | |LEDCH|LEDON| | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | MUTE| PREV| PLAY| NEXT| | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | HOME|PGDWN| PGUP| END | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | |VOLDN|VOLUP| | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | |
|
||||
* \-----------------------------------------------------------------------------------------/
|
||||
*
|
||||
*/
|
||||
[_MEDIA_AND_NAVIGATION_LAYER] = KEYMAP( /* Base */
|
||||
KC_AP2_USB, KC_AP2_BT1, KC_AP2_BT2, KC_AP2_BT3, KC_AP2_BT4, _______, _______, _______, _______, NEXT_PROFILE, ENABLE_OR_DISABLE_LEDS, _______, _______, KC_AP2_BT_UNPAIR,
|
||||
_______, _______, _______, KC_UP, _______, _______, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_BRID, KC_BRIU, _______,
|
||||
_______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
/*
|
||||
* Layer _NUMPAD_LAYER
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | 7 | 8 | 9 | | + | 7 | 8 | 9 | . | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | 0 | 4 | 5 | 6 | | 0 | 4 | 5 | 6 | / | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | 1 | 2 | 3 | , | * | 1 | 2 | 3 | - | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | 0 | | | | |
|
||||
* \-----------------------------------------------------------------------------------------/
|
||||
*
|
||||
*/
|
||||
[_NUMPAD_LAYER] = KEYMAP( /* Base */
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_PAST, _______, KC_PSLS, KC_PMNS, KC_PPLS, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, KC_COMM, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, KC_0, KC_4, KC_5, KC_6, KC_PDOT, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______,
|
||||
_______, _______, _______, KC_0, _______, _______, _______, _______
|
||||
),
|
||||
/*
|
||||
* Layer _MOUSE_LAYER - Mouse Layer
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | |ACL2 |WL-U |MS-U |WL-D |ACL1 |ACL0 | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | ACL0 | ACL1 | ACL2 | |BTN3 |MS-L |MS-D |MS-R |BTN2 | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | |BTN4 |BTN5 |WL-L |WL-R | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | BTN1 | | | | |
|
||||
* \-----------------------------------------------------------------------------------------/
|
||||
*
|
||||
*/
|
||||
[_MOUSE_LAYER] = KEYMAP( /* Base */
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, _______, _______, _______, _______,
|
||||
_______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_BTN2, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, KC_BTN3, KC_BTN4, KC_BTN5, _______, _______, _______,
|
||||
_______, _______, _______, KC_BTN1, _______, _______, _______, _______
|
||||
),
|
||||
};
|
||||
// clang-format on
|
||||
const uint16_t keymaps_size = sizeof(keymaps);
|
||||
|
||||
// Declare the functions to be used with your tap dance key(s)
|
||||
|
||||
// Function associated with all tap dances
|
||||
uint8_t cur_dance(qk_tap_dance_state_t *state);
|
||||
|
||||
// Functions associated with individual tap dances
|
||||
void enableProfileColor(uint8_t *profile);
|
||||
void resetProfileColor(void);
|
||||
void esc_layer_finished(qk_tap_dance_state_t *state, void *user_data);
|
||||
void esc_layer_reset(qk_tap_dance_state_t *state, void *user_data);
|
||||
|
||||
bool is_caps_set = false;
|
||||
bool is_led_on = true;
|
||||
uint8_t base_profile = IDLE_PROFILE_INDEX;
|
||||
|
||||
uint8_t idle_profile[] = {0x00, 0x00, 0x00};
|
||||
uint8_t caps_profile[] = {0xFF, 0x00, 0x00};
|
||||
uint8_t function_profile[] = {0x00, 0xFF, 0x00};
|
||||
uint8_t navigation_profile[] = {0x44, 0x00, 0xFF};
|
||||
uint8_t numpad_profile[] = {0xFF, 0xDD, 0x00};
|
||||
uint8_t mouse_profile[] = {0x00, 0x88, 0xFF};
|
||||
|
||||
void matrix_init_user(void) {}
|
||||
|
||||
void matrix_scan_user(void) {}
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
annepro2LedEnable();
|
||||
resetProfileColor();
|
||||
}
|
||||
|
||||
// The function to handle the caps lock logic
|
||||
bool led_update_user(led_t leds) {
|
||||
if (leds.caps_lock) {
|
||||
is_caps_set = true;
|
||||
enableProfileColor(caps_profile);
|
||||
return true;
|
||||
} else if (is_caps_set) {
|
||||
is_caps_set = false;
|
||||
resetProfileColor();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
switch (get_highest_layer(state)) {
|
||||
case _FUNCTION_LAYER:
|
||||
enableProfileColor(function_profile);
|
||||
break;
|
||||
case _NUMPAD_LAYER:
|
||||
enableProfileColor(numpad_profile);
|
||||
break;
|
||||
case _MOUSE_LAYER:
|
||||
enableProfileColor(mouse_profile);
|
||||
break;
|
||||
case _MEDIA_AND_NAVIGATION_LAYER:
|
||||
enableProfileColor(navigation_profile);
|
||||
break;
|
||||
default:
|
||||
resetProfileColor();
|
||||
break;
|
||||
}
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
// Determine the current tap dance state
|
||||
uint8_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
if (state->count == 1) {
|
||||
if (!state->pressed)
|
||||
return SINGLE_TAP;
|
||||
else
|
||||
return SINGLE_HOLD;
|
||||
} else if (state->count == 2) {
|
||||
if (!state->pressed)
|
||||
return DOUBLE_TAP;
|
||||
else
|
||||
return DOUBLE_HOLD;
|
||||
} else if (state->count == 3) {
|
||||
if (!state->pressed)
|
||||
return TRIPLE_TAP;
|
||||
else
|
||||
return TRIPLE_HOLD;
|
||||
} else
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Initialize tap structure associated with example tap dance key
|
||||
static tap esc_tap_state = {.is_press_action = true, .state = 0};
|
||||
|
||||
static tap grav_tap_state = {.is_press_action = true, .state = 0};
|
||||
|
||||
void enableProfileColor(uint8_t *profile) {
|
||||
if (is_caps_set) {
|
||||
annepro2LedSetForegroundColor(caps_profile[0], caps_profile[1], caps_profile[2]);
|
||||
} else {
|
||||
annepro2LedSetForegroundColor(profile[0], profile[1], profile[2]);
|
||||
}
|
||||
}
|
||||
|
||||
void resetProfileColor(void) {
|
||||
if (is_caps_set) {
|
||||
annepro2LedSetForegroundColor(caps_profile[0], caps_profile[1], caps_profile[2]);
|
||||
} else if (base_profile == IDLE_PROFILE_INDEX) {
|
||||
annepro2LedSetForegroundColor(idle_profile[0], idle_profile[1], idle_profile[2]);
|
||||
} else {
|
||||
annepro2LedSetProfile(cyclabe_profiles[base_profile]);
|
||||
}
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case NEXT_PROFILE:
|
||||
if (record->event.pressed) {
|
||||
base_profile++;
|
||||
if (base_profile >= (sizeof(cyclabe_profiles) / sizeof(cyclabe_profiles[0]))) base_profile = IDLE_PROFILE_INDEX;
|
||||
|
||||
if (base_profile == IDLE_PROFILE_INDEX) {
|
||||
annepro2LedSetForegroundColor(idle_profile[0], idle_profile[1], idle_profile[2]);
|
||||
} else {
|
||||
annepro2LedSetProfile(cyclabe_profiles[base_profile]);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
case ENABLE_OR_DISABLE_LEDS:
|
||||
if (record->event.pressed) {
|
||||
if (is_led_on) {
|
||||
is_led_on = false;
|
||||
annepro2LedDisable();
|
||||
} else {
|
||||
annepro2LedEnable();
|
||||
is_led_on = true;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Functions that control what our tap dance key does
|
||||
void esc_layer_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
esc_tap_state.state = cur_dance(state);
|
||||
|
||||
switch (esc_tap_state.state) {
|
||||
case SINGLE_TAP:
|
||||
tap_code(KC_ESC);
|
||||
break;
|
||||
case SINGLE_HOLD:
|
||||
layer_on(_FUNCTION_LAYER);
|
||||
break;
|
||||
case DOUBLE_TAP:
|
||||
if (layer_state_is(_MOUSE_LAYER) || layer_state_is(_NUMPAD_LAYER)) {
|
||||
layer_off(_MOUSE_LAYER);
|
||||
layer_off(_NUMPAD_LAYER);
|
||||
} else {
|
||||
tap_code(KC_ESC);
|
||||
tap_code(KC_ESC);
|
||||
}
|
||||
break;
|
||||
case DOUBLE_HOLD:
|
||||
layer_on(_NUMPAD_LAYER);
|
||||
break;
|
||||
case TRIPLE_TAP:
|
||||
if (layer_state_is(_MOUSE_LAYER)) {
|
||||
layer_off(_MOUSE_LAYER);
|
||||
} else {
|
||||
layer_on(_MOUSE_LAYER);
|
||||
}
|
||||
break;
|
||||
case TRIPLE_HOLD:
|
||||
layer_on(_MOUSE_LAYER);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void esc_layer_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
// If the key was held down and now is released then switch off the layer
|
||||
if (esc_tap_state.state == SINGLE_HOLD) {
|
||||
layer_off(_FUNCTION_LAYER);
|
||||
}
|
||||
if (esc_tap_state.state == DOUBLE_HOLD) {
|
||||
layer_off(_NUMPAD_LAYER);
|
||||
}
|
||||
if (esc_tap_state.state == TRIPLE_HOLD) {
|
||||
layer_off(_MOUSE_LAYER);
|
||||
}
|
||||
esc_tap_state.state = 0;
|
||||
}
|
||||
|
||||
// Functions that control what our tap dance key does
|
||||
void grave_layer_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
grav_tap_state.state = cur_dance(state);
|
||||
|
||||
switch (grav_tap_state.state) {
|
||||
case SINGLE_TAP:
|
||||
tap_code(KC_GRV);
|
||||
break;
|
||||
case SINGLE_HOLD:
|
||||
tap_code(KC_GRV);
|
||||
break;
|
||||
case DOUBLE_TAP:
|
||||
// Check to see if the layer is already set
|
||||
if (layer_state_is(_MOUSE_LAYER)) {
|
||||
// If already set, then switch it off
|
||||
layer_off(_MOUSE_LAYER);
|
||||
} else {
|
||||
// If not already set, then switch the layer on
|
||||
layer_on(_MOUSE_LAYER);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void grave_layer_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
// If the key was held down and now is released then switch off the layer
|
||||
if (grav_tap_state.state == SINGLE_HOLD) {
|
||||
layer_off(_FUNCTION_LAYER);
|
||||
}
|
||||
if (grav_tap_state.state == DOUBLE_HOLD) {
|
||||
layer_off(_NUMPAD_LAYER);
|
||||
}
|
||||
grav_tap_state.state = 0;
|
||||
}
|
||||
|
||||
// Associate our tap dance key with its functionality
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {[ESC_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, esc_layer_finished, esc_layer_reset, 250), [GRV_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, grave_layer_finished, grave_layer_reset, 300)};
|
||||
@@ -1,47 +0,0 @@
|
||||
# Anne Pro 2
|
||||
SRC = \
|
||||
matrix.c \
|
||||
hardfault_handler.c \
|
||||
annepro2_ble.c \
|
||||
qmk_ap2_led.c \
|
||||
protocol.c
|
||||
|
||||
ifeq ($(strip $(ANNEPRO2_EEPROM)), yes)
|
||||
OPT_DEFS += -DANNEPRO2_EEPROM
|
||||
SRC += spi_master.c eeprom_w25x20cl.c
|
||||
endif
|
||||
|
||||
LAYOUTS +=
|
||||
|
||||
# MCU
|
||||
MCU = cortex-m0plus
|
||||
ARMV = 6
|
||||
USE_FPU = no
|
||||
MCU_FAMILY = HT32
|
||||
MCU_SERIES = HT32F523xx
|
||||
MCU_LDSCRIPT = HT32F52342_ANNEPRO2
|
||||
MCU_STARTUP = ht32f523xx
|
||||
|
||||
BOARD = ANNEPRO2_C18
|
||||
|
||||
OPT_DEFS = -Wno-unused-function -fdump-rtl-dfinish -fstack-usage
|
||||
#EXTRALDFLAGS = -Wl,--print-memory-usage
|
||||
|
||||
# Options
|
||||
|
||||
# Keys
|
||||
CUSTOM_MATRIX = yes
|
||||
NKRO_ENABLE = no
|
||||
MOUSEKEY_ENABLE = yes
|
||||
TAP_DANCE_ENABLE = yes
|
||||
EXTRAKEY_ENABLE = yes
|
||||
KEY_LOCK_ENABLE = no
|
||||
|
||||
# Other featues
|
||||
BOOTMAGIC_ENABLE = no
|
||||
CONSOLE_ENABLE = no
|
||||
COMMAND_ENABLE = yes
|
||||
RAW_ENABLE = yes
|
||||
MIDI_ENABLE = no
|
||||
VIRTSER_ENABLE = no
|
||||
COMBO_ENABLE = no
|
||||
Reference in New Issue
Block a user