Overhaul entire keymap to target a Linux environment, make Unicode work better, and clean up a variety of stale configs.

This commit is contained in:
Anna Rose Wiggins 2025-12-03 14:04:42 -05:00
parent ff54896635
commit 97ebc91b65
4 changed files with 95 additions and 129 deletions

View file

@ -1,4 +1,2 @@
#define UNICODE_SELECTED_MODES UNICODE_MODE_WINCOMPOSE, UNICODE_MODE_LINUX
#define UNICODE_KEY_WINC KC_F14
#define UNICODE_KEY_LNX KC_F14
#define UNICODE_TYPE_DELAY 50
#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX
#define UNICODE_CYCLE_PERSIST false

166
keymap.c
View file

@ -9,21 +9,17 @@ enum ctrl_keycodes {
MD_BOOT, //Restart into bootloader after hold timeout
AB_TYPE,
AB_FFXIV,
AB_GENSHIN,
AB_SC,
AB_IDLE,
AB_DIM,
AB_BRIGHT,
AB_KSP,
// TODO: delete if we ever figure out unicode support
AB_ROSE,
AB_MUSHROOM,
AB_ROSE,
AB_MUSH,
AB_CRAB,
AB_HERB,
AB_RADI,
AB_PURP,
AB_FACE,
AB_RED,
AB_YELL,
AB_BLUE,
AB_GREE,
};
enum tapdance_codes {
@ -39,27 +35,28 @@ enum layer_codes {
_LAYER_FUNCTION2,
};
// FIXME: These should be used with UM() for unicode input, but it doesn't seem to work...
/* enum unicode_names { */
/* AB_MUSHROOM, */
/* AB_ROSE, */
/* }; */
const uint32_t PROGMEM unicode_map[] = {
0x1f49c, // Purple Heart
0x1f49a, // Green Heart
0x1f49b, // Yellow Heart
0x1fa76, // Grey Heart
0x1f499, // Blue Heart
};
/* const uint32_t PROGMEM unicode_map[] = { */
/* [AB_MUSHROOM] = 0x1f344, // <20><> */
/* [AB_ROSE] = 0x1f339, // <20><> */
/* }; */
keymap_config_t keymap_config;
#define ABU_PUR UM(0)
#define ABU_GRN UM(1)
#define ABU_YEL UM(2)
#define ABU_GRY UM(3)
#define ABU_BLU UM(4)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_LAYER_DEFAULT] = LAYOUT(
KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, \
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \
KC_F14, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, \
KC_APP, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, \
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, \
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(_LAYER_FUNCTION), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_LAYER_FUNCTION), KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \
),
[_LAYER_QWERTY] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
@ -79,11 +76,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, TD(TD_TRIPLE_META), _______, _______, _______, _______, _______, _______, _______, _______, _______ \
),
[_LAYER_FUNCTION] = LAYOUT(
TG(_LAYER_QWERTY), _______, _______, _______, _______, _______, _______, _______, _______, UC_WINC, UC_LINX, _______, DB_TOGG, _______, KC_MUTE, _______, \
_______, AB_TYPE, AB_DIM, AB_FFXIV, AB_KSP, AB_IDLE, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_VOLU, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, \
KC_CAPS, AB_MUSHROOM, AB_ROSE, AB_CRAB, AB_HERB, AB_RADI, _______, _______, _______, _______, _______, _______, _______, \
_______, AB_PURP, AB_RED , AB_YELL, AB_BLUE, AB_GREE, _______, _______, _______, _______, _______, _______, _______, \
TG(_LAYER_QWERTY), _______, _______, _______, _______, _______, _______, _______, _______, UC_WINC, UC_LINX, _______, DB_TOGG, _______, KC_MUTE, _______, \
_______, AB_TYPE, AB_BRIGHT, AB_SC, AB_FFXIV, AB_IDLE, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_VOLU, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, \
KC_CAPS, AB_MUSH, AB_ROSE, AB_CRAB, AB_HERB, AB_RADI, AB_FACE, _______, _______, _______, _______, _______, _______, \
_______, ABU_PUR, AB_RED , ABU_YEL, ABU_BLU, ABU_GRN, ABU_GRY, _______, _______, _______, _______, _______, _______, \
_______, TG(_LAYER_PROTECT), _______, _______, _______, _______, MO(_LAYER_FUNCTION2), _______, _______, _______, _______ \
),
[_LAYER_FUNCTION2] = LAYOUT(
@ -94,16 +91,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, RGB_TOG, _______, _______, _______, MD_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/*
[X] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
),
*/
};
// TAP DANCE FUNCTIONS
@ -152,22 +139,22 @@ bool led_update_user(led_t led_state) {
#define RGB_DIM 0x55, 0x55, 0x55
#define HSV_DIM 0, 0, 0x55
#define RGB_BRIGHT 0xaa, 0xaa, 0xaa
#define HSV_BRIGHT 0, 0, 0xaa
enum annabunches_mode{
ANNABUNCHES_NONE,
ANNABUNCHES_TYPE,
ANNABUNCHES_FFXIV,
ANNABUNCHES_KSP,
ANNABUNCHES_GENSHIN,
ANNABUNCHES_DIM,
ANNABUNCHES_SC,
ANNABUNCHES_BRIGHT,
ANNABUNCHES_IDLE
};
enum annabunches_mode custom_mode = 0;
enum color_map_codes {
_COLOR_FFXIV,
_COLOR_KSP,
_COLOR_GENSHIN,
_COLOR_SC,
};
const uint8_t PROGMEM color_map[][119][3] = {
@ -179,22 +166,14 @@ const uint8_t PROGMEM color_map[][119][3] = {
{RGB_DIM}, {RGB_BLUE}, {RGB_BLUE}, {RGB_BLUE}, {RGB_BLUE}, {RGB_BLUE}, {RGB_YELLOW}, {RGB_RED}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM},
{RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}
},
[_COLOR_KSP] = {
{RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM},
{RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM},
{RGB_DIM}, {RGB_PURPLE}, {RGB_PURPLE}, {RGB_PURPLE}, {RGB_RED}, {RGB_RED}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_GREEN}, {RGB_DIM}, {RGB_DIM},
{RGB_DIM}, {RGB_PURPLE}, {RGB_PURPLE}, {RGB_PURPLE}, {RGB_DIM}, {RGB_GREEN}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM},
{RGB_RED}, {RGB_RED}, {RGB_RED}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_GREEN}, {RGB_YELLOW}, {RGB_YELLOW}, {RGB_YELLOW}, {RGB_DIM}, {RGB_DIM},
{RGB_RED}, {RGB_DIM}, {RGB_DIM}, {RGB_RED}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}
[_COLOR_SC] = {
{RGB_DIM}, {RGB_YELLOW}, {RGB_YELLOW}, {RGB_DIM}, {RGB_YELLOW}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM},
{RGB_DIM}, {RGB_BLUE}, {RGB_BLUE}, {RGB_BLUE}, {RGB_BLUE}, {RGB_BLUE}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM},
{RGB_DIM}, {RGB_BLUE}, {RGB_PURPLE}, {RGB_BLUE}, {RGB_RED}, {RGB_YELLOW}, {RGB_DIM}, {RGB_DIM}, {RGB_YELLOW}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_RED}, {RGB_DIM},
{RGB_DIM}, {RGB_PURPLE}, {RGB_PURPLE}, {RGB_PURPLE}, {RGB_YELLOW}, {RGB_RED}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM},
{RGB_PURPLE}, {RGB_DIM}, {RGB_DIM}, {RGB_PURPLE}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM},
{RGB_PURPLE}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}
},
[_COLOR_GENSHIN] = {
{RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM},
{RGB_DIM}, {RGB_GREEN}, {RGB_GREEN}, {RGB_GREEN}, {RGB_GREEN}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM},
{RGB_DIM}, {RGB_BLUE}, {RGB_PURPLE}, {RGB_BLUE}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM},
{RGB_DIM}, {RGB_PURPLE}, {RGB_PURPLE}, {RGB_PURPLE}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM},
{RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_YELLOW}, {RGB_DIM}, {RGB_YELLOW}, {RGB_DIM}, {RGB_RED}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM},
{RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}, {RGB_DIM}
}
};
uint8_t PROGMEM rainbow_ring[][3] = {{RGB_RED}, {RGB_ORANGE}, {RGB_YELLOW}, {RGB_GREEN}, {RGB_BLUE}, {RGB_PURPLE}, {RGB_MAGENTA}};
@ -217,21 +196,15 @@ bool rgb_matrix_indicators_user() {
}
set_led_ring(rainbow_ring, rainbow_ring_size);
break;
case ANNABUNCHES_KSP:
case ANNABUNCHES_SC:
for (int i = 0; i < 87; i++) {
rgb_matrix_set_color(i, color_map[_COLOR_KSP][i][0], color_map[_COLOR_KSP][i][1], color_map[_COLOR_KSP][i][2]);
}
set_led_ring(bisexual_ring, bisexual_ring_size);
break;
case ANNABUNCHES_GENSHIN:
for (int i = 0; i < 87; i++) {
rgb_matrix_set_color(i, color_map[_COLOR_GENSHIN][i][0], color_map[_COLOR_GENSHIN][i][1], color_map[_COLOR_GENSHIN][i][2]);
rgb_matrix_set_color(i, color_map[_COLOR_SC][i][0], color_map[_COLOR_SC][i][1], color_map[_COLOR_SC][i][2]);
}
set_led_ring(bisexual_ring, bisexual_ring_size);
break;
case ANNABUNCHES_TYPE:
case ANNABUNCHES_IDLE:
case ANNABUNCHES_DIM:
case ANNABUNCHES_BRIGHT:
case ANNABUNCHES_NONE:
default:
break;
@ -272,11 +245,11 @@ void annabunches_mode_type(void) {
custom_mode = ANNABUNCHES_TYPE;
}
void annabunches_mode_dim(void) {
void annabunches_mode_bright(void) {
annabunches_mode_init();
rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR);
rgb_matrix_sethsv_noeeprom(HSV_DIM);
custom_mode = ANNABUNCHES_DIM;
rgb_matrix_sethsv_noeeprom(HSV_BRIGHT);
custom_mode = ANNABUNCHES_BRIGHT;
}
void annabunches_mode_ffxiv(void) {
@ -286,18 +259,12 @@ void annabunches_mode_ffxiv(void) {
custom_mode = ANNABUNCHES_FFXIV;
}
void annabunches_mode_ksp(void) {
annabunches_mode_init();
rgb_matrix_mode_noeeprom(RGB_MATRIX_NONE);
custom_mode = ANNABUNCHES_KSP;
}
void annabunches_mode_genshin(void) {
void annabunches_mode_sc(void) {
annabunches_mode_init();
layer_on(_LAYER_PROTECT);
layer_on(_LAYER_QWERTY);
rgb_matrix_mode_noeeprom(RGB_MATRIX_NONE);
custom_mode = ANNABUNCHES_GENSHIN;
custom_mode = ANNABUNCHES_SC;
}
void annabunches_mode_idle(void) {
@ -376,61 +343,48 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) annabunches_mode_type();
return false;
case AB_FFXIV:
if (record->event.pressed) annabunches_mode_ffxiv();
if (record->event.pressed) annabunches_mode_ffxiv();
return false;
case AB_KSP:
if (record->event.pressed) annabunches_mode_ksp();
case AB_SC:
if (record->event.pressed) annabunches_mode_sc();
return false;
case AB_GENSHIN:
if (record->event.pressed) annabunches_mode_genshin();
return false;
case AB_DIM:
if (record->event.pressed) annabunches_mode_dim();
case AB_BRIGHT:
if (record->event.pressed) annabunches_mode_bright();
return false;
case AB_IDLE:
if (record->event.pressed) annabunches_mode_idle();
return false;
case AB_MUSHROOM:
case AB_MUSH:
layer_off(_LAYER_QWERTY);
if (record->event.pressed) SEND_STRING(SS_TAP(X_F14)"u1f344"SS_TAP(X_ENT));
if (record->event.pressed) send_unicode_string("🍄");
return false;
case AB_ROSE:
layer_off(_LAYER_QWERTY);
if (record->event.pressed) SEND_STRING(SS_TAP(X_F14)"u1f339"SS_TAP(X_ENT));
if (record->event.pressed) send_unicode_string("🌹");
return false;
case AB_CRAB:
layer_on(_LAYER_QWERTY);
if (record->event.pressed) SEND_STRING(SS_TAP(X_F14)"u1f980"SS_TAP(X_ENT));
if (record->event.pressed) send_unicode_string("🦀");
return false;
case AB_HERB:
layer_on(_LAYER_QWERTY);
if (record->event.pressed) SEND_STRING(SS_TAP(X_F14)"u1f33f"SS_TAP(X_ENT));
if (record->event.pressed) send_unicode_string("🌿");
return false;
case AB_FACE:
layer_on(_LAYER_QWERTY);
if (record->event.pressed) send_unicode_string("🫥");
return false;
case AB_RADI:
layer_off(_LAYER_QWERTY);
if (record->event.pressed) {
SEND_STRING(SS_TAP(X_F14)"u2622"SS_TAP(X_ENT));
SEND_STRING(SS_TAP(X_F14)"ufe0f"SS_TAP(X_ENT));
send_unicode_string("☢️");
}
return false;
case AB_PURP:
if (record->event.pressed) SEND_STRING(SS_TAP(X_F14)"u1f49c"SS_TAP(X_ENT));
return false;
case AB_RED:
if (record->event.pressed) {
SEND_STRING(SS_TAP(X_F14)"u2764"SS_TAP(X_ENT));
SEND_STRING(SS_TAP(X_F14)"ufe0f"SS_TAP(X_ENT));
send_unicode_string("❤️");
}
return false;
case AB_YELL:
if (record->event.pressed) SEND_STRING(SS_TAP(X_F14)"u1f49b"SS_TAP(X_ENT));
return false;
case AB_BLUE:
if (record->event.pressed) SEND_STRING(SS_TAP(X_F14)"u1f499"SS_TAP(X_ENT));
return false;
case AB_GREE:
if (record->event.pressed) SEND_STRING(SS_TAP(X_F14)"u1f49a"SS_TAP(X_ENT));
return false;
default:
return true; //Process all other keycodes normally
}

View file

@ -1,36 +1,49 @@
This is my custom keymap for the [Drop CTRL](https://drop.com/buy/drop-ctrl-mechanical-keyboard) keyboard.
### About the Drop CTRL
Note that I *do not* actually recommend buying one of these keyboards if your needs extend to custom QMK firmware. Drop currently has licensing issues that may result in QMK pulling support for their boards.
That said, the CTRL is a very attractive TKL keyboard with full QMK support, per-key RGB LEDs and a lightstrip that requires no assembly, and a lightstrip around the edges. It's a gorgeous board that fills a much-needed gap between casual mechanical keyboard enjoyers and hobbyists with the time, energy, and skill to assemble their own boards.
### About this keymap
My keymap defaults to Dvorak in firmware; that means it will type like a Dvorak keyboard on a computer whose system settings are set to Qwerty. (or any other keymap, probably) It can be switched to Qwerty by pressing `Fn+Esc`, and has a bunch of other fun features including custom RGB light maps for various games I have enjoyed. (Many of them are now essentially deprecated, but that's neither here nor there) Other fun features:
> Important Note: This keymap is for the Drop CTRL v1. It would probably also work with the v2, but I make no guarantees.
* Caps lock defaults to `F14`, useful for implementing a dedicated compose key in Wincompose. Caps lock is still accessible by pressing `Fn+Caps Lock`.
* `Fn+Win` will disable the Windows and Caps Lock / F14 keys. These keys can still be accessed in this "protected" mode by triple-tapping the key. This allows you to disable those keys while playing games (to avoid accidentally breaking the game input in a stressful moment) but still lets you get to those buttons if you really need them.
* `Fn+a` and `Fn+s` print <20><> and <20><> emoji, respectively. For personal reasons.
My keymap defaults to Dvorak in firmware; that means it will type like a Dvorak keyboard on a computer whose system settings are set to Qwerty. (or any other keymap, probably) It can be switched to Qwerty by pressing `Fn+Esc`, and has a bunch of other fun features including custom RGB light maps for various games I enjoy or have enjoyed. Other fun features:
* Caps lock defaults to `KC_MENU`, which is useful as a compose key (set `xkb_options compose:menu`). Caps lock is still accessible by pressing `Fn+Caps Lock`.
* `Fn+Win` will disable the Windows and Caps Lock / Compose keys. These keys can still be accessed in this "protected" mode by triple-tapping the key. This allows you to disable those keys while playing games (to avoid accidentally breaking the game input in a stressful moment) but still lets you get to those buttons if you really need them.
* Several emoji sequences and custom lighting maps are defined.
This code is a bit of a mess, but I'm sticking it out in the public anyway in classic open source fashion, in case anyone finds it useful.
### Using this code
## Using this code
Clone the [QMK firmware](https://github.com/qmk/qmk_firmware) repository, and then clone this repo into the appropriate directory:
### Prerequisites
In addition to basic dev tools, make sure `qmk` and `mdloader` are installed. On Arch Linux you can install `qmk` via:
```
git clone https://github.com/qmk/qmk_firmware.git keyboards/massdrop/ctrl/ctrl-kbd-annabunches
sudo pacman -S qmk
```
Modify it as you like, then run (from the QMK project's root directory):
`mdloader` is available from the [AUR](https://aur.archlinux.org/packages/mdloader-bin).
### Preparing the code
Clone the [QMK firmware](https://github.com/qmk/qmk_firmware) repository, checkout to v0.26.11 (Drop CTRL support is missing from newer versions) and then clone this repository in the appropriate location:
```
make massdrop/ctrl:ctrl-kbd-annabunches
git clone https://github.com/qmk/qmk_firmware.git
git checkout 0.26.11
git clone https://git.annabunches.net/anna/ctrl-kbd-annabunches.git keyboards/massdrop/ctrl/keymaps/annabunches
```
This should produce a `.bin` file in the `qmk_firmware` directory. You can flash that to the keyboard following Drop's flashing instruction. (I typically scp the file to my Windows machine and use the QMK Toolbox app there, but that's only because the keyboard is connected to my Windows machine)
### Build and Flash
The keymap currently builds on QMK firmware commit `71d5d14c139cb9c5e0103aa701ca8bce4be1cd7a`. Successful building on future commits is not guaranteed.
Modify the keymap as you like, then run (from the QMK project's root directory):
```
make drop/ctrl:annabunches
```
This should produce a `.bin` file in the `qmk_firmware` directory. You can flash that to the keyboard via:
```
make drop/ctrl:annabunches:flash
```

View file

@ -1,3 +1,4 @@
TAP_DANCE_ENABLE = yes
UNECODEMAP_ENABLE = yes
UNICODE_COMMON = yes
UNICODEMAP_ENABLE = yes
CONSOLE_ENABLE = yes