Skip to content

Commit

Permalink
Code cleanup from PR feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
ewersp committed Jun 16, 2020
1 parent dbb96c3 commit a13d0bf
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 52 deletions.
10 changes: 7 additions & 3 deletions keyboards/massdrop/alt/keymaps/ewersp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,16 @@ LeftAlt + Esc -> Backtick (`)

The novel part of this keymap is that it **preserves the default functionality** of the left alt key, so ```'alt + tab', 'ctrl + alt + del', 'alt + f4'```, etc. all work as expected without using any janky timers.

Everything also works with other modifiers, so ```'alt + shift + tab' and 'alt + shift + L/R'``` work great for text manipulation.
Everything also works with other modifier keys, so ```'alt + L/R' and 'alt + shift + L/R'``` work great for text manipulation to select lines.

This **'super alt'** keymap will feel very familiar for anyone **coming from macOS** since the Windows alt key is in the same position as CMD on macOS keyboards.

And finally, the original alt key functionality can be restored (toggled, actually) at any time by pressing **```'Fn + period'```** so even if you don't like it, you can turn it off.
And finally, the original alt key functionality can be toggled at any time by pressing **```'Fn + period'```** so even if you don't like it, you can turn it off.

This keymap was based on the 'default' Drop ALT keymap (and _not_ 'default_md') which means it supports all the fancy QMK RGB modifiers, and isn't limited to the stock options that come with the board.
This keymap was based on the 'default' Drop ALT keymap (and _not_ 'default_md') which means it supports all the fancy QMK RGB patterns, and isn't limited to the stock options that come with the board.

It's also worth noting that this keymap fixes an outstanding issue where the caps lock LED flickers when the RGB mode is keylight or underglow. I could not find a general purpose fix, but the one included here works quite well.

If you have any questions, feel free to reach out to me at: ewersp [at] gmail [dot] com.

Enjoy! **<3**
74 changes: 25 additions & 49 deletions keyboards/massdrop/alt/keymaps/ewersp/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,46 +19,35 @@ enum alt_layers {
SUPR
};

keymap_config_t keymap_config;

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[DEF] = LAYOUT_65_ansi_blocker(
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_DEL, \
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_HOME, \
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_PGUP, \
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_UP, KC_PGDN, \
KC_LCTL, KC_LGUI, MO(SUPR), KC_SPC, KC_RALT, MO(FUNC),KC_LEFT, KC_DOWN, KC_RGHT \
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_DEL,
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_HOME,
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_PGUP,
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_UP, KC_PGDN,
KC_LCTL, KC_LGUI, MO(SUPR), KC_SPC, KC_RALT, MO(FUNC),KC_LEFT, KC_DOWN, KC_RGHT
),
[ALT] = LAYOUT_65_ansi_blocker(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, KC_LALT, _______, _______, _______, _______, _______, _______ \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_LALT, _______, _______, _______, _______, _______, _______
),
[FUNC] = LAYOUT_65_ansi_blocker(
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_MUTE, \
_______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, U_T_AUTO,U_T_AGCR,_______, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_END, \
_______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, \
_______, RGB_TOG, _______, _______, _______, MD_BOOT, NK_TOGG, DBG_TOG, _______, TG(ALT), _______, _______, KC_PGUP, KC_VOLD, \
_______, _______, KC_LALT, _______, _______, _______, KC_HOME, KC_PGDN, KC_END \
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_MUTE,
_______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, U_T_AUTO,U_T_AGCR,_______, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_END,
_______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_VOLU,
_______, RGB_TOG, _______, _______, _______, MD_BOOT, NK_TOGG, DBG_TOG, _______, TG(ALT), _______, _______, KC_PGUP, KC_VOLD,
_______, _______, KC_LALT, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
),
[SUPR] = LAYOUT_65_ansi_blocker(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, ALT_DEL, _______, \
KC_TAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, KC_HOME, _______, KC_END \
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, ALT_DEL, _______,
KC_TAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, KC_HOME, _______, KC_END
)
/*
[X] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______ \
),
*/
};

// If the super alt layer is the active layer
Expand All @@ -67,14 +56,6 @@ bool super_alt_layer_active = false;
// If we need to unregister alt when leaving the super alt layer
bool need_to_unregister_alt = false;

// Runs just one time when the keyboard initializes.
void matrix_init_user(void) {
};

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
};

#define MODS_SHIFT (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT))
#define MODS_CTRL (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTRL))
#define MODS_ALT (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT))
Expand All @@ -89,12 +70,11 @@ void rgb_matrix_indicators_user(void) {
// If we're in either keylight or underglow modes (but not both simultaneously)
if (HAS_FLAGS(flags, LED_FLAG_KEYLIGHT) != HAS_FLAGS(flags, LED_FLAG_UNDERGLOW)) {

// This fixes the bug where the caps lock LED will flicker when toggled in either keylight or underglow modes
// as seen here: https://www.reddit.com/r/olkb/comments/eoez6b/weird_caps_lock_issue_on_drop_alt_anyone_know_how/
// This fixes a bug where the caps lock LED flickers when toggled in either keylight or underglow modes
if (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) {
rgb_matrix_set_color(CAPS_LOCK_LED_ID, 0xFF, 0xFF, 0xFF);
rgb_matrix_set_color(CAPS_LOCK_LED_ID, RGB_WHITE);
} else {
rgb_matrix_set_color(CAPS_LOCK_LED_ID, 0x00, 0x00, 0x00);
rgb_matrix_set_color(CAPS_LOCK_LED_ID, 0, 0, 0);
}
}
}
Expand Down Expand Up @@ -123,19 +103,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

switch (keycode) {
// These are the keys we want to 'fall though' and behave as usual when pressed with the alt modifier
case KC_A: case KC_B: case KC_C: case KC_D: case KC_E:
case KC_F: case KC_G: case KC_H: case KC_I: case KC_J:
case KC_K: case KC_L: case KC_M: case KC_N: case KC_O:
case KC_P: case KC_Q: case KC_R: case KC_S: case KC_T:
case KC_U: case KC_V: case KC_W: case KC_X: case KC_Y: case KC_Z:
case KC_A ... KC_Z:
case KC_TAB:
case KC_DEL:
case KC_UP:
case KC_DOWN:
case MO(FUNC):
if (super_alt_layer_active && record->event.pressed) {
// Only activate the alt modifier for the first key press
if ((keyboard_report->mods & MOD_BIT(KC_LALT)) == false) {
if ((get_mods() & MOD_BIT(KC_LALT)) == false) {
register_code(KC_LALT);
need_to_unregister_alt = true;
}
Expand Down

0 comments on commit a13d0bf

Please sign in to comment.