AnnePro2: Leave only default keymaps

Missing keymaps will be restored in another PR
This commit is contained in:
bwisn
2021-09-12 09:36:16 +02:00
parent d3c57098dd
commit 8ad8264cca
8 changed files with 0 additions and 903 deletions
-2
View File
@@ -1,2 +0,0 @@
// Obins stock firmware has something similar to this already enabled, but disabled by default in QMK
#define PERMISSIVE_HOLD
-159
View File
@@ -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