From ed6586e25bd854f445193566150439b25853f831 Mon Sep 17 00:00:00 2001 From: Alfred Maler Date: Tue, 3 Mar 2020 13:13:42 -0500 Subject: [Keymap] Feature/alfrdmalr/keymap update (#8174) * WIP do not merge * first pass at custom preonic layout * add auto shift and reset via leader key * Update readme * update copyright notice * formatting changes * fix: use MO instead of process_record_user * added backslash and moved grave position * remove extraneous 'j' characer in NUMPAD template * update template formatting * remove process_record_user * swap "!" with "@" * fix readme formatting * update readme layout image * restore settings layer * add windows minimize sequence * fix: switch to correct seq function for three-key sequence * fix: missing semicolon * refactor: move keymap to userspace and generic 5x12 layout * add numlock to numpad layer * add readme * update readme formatting * remove unused wrappers from layout keymap * update readme title to reflect new location * remove alfrdmalr directory from preonic/keymaps * add ortho 4x12 support * add 'trilayer' settings and update keymap * update SYMBOLS layer to SYMBOL * remove minimize sequence * clean up user config * add brightness controls * update settings ascii * moved some symbols around to make vim/linux smoother --- users/alfrdmalr/alfrdmalr.c | 59 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 4 deletions(-) (limited to 'users/alfrdmalr/alfrdmalr.c') diff --git a/users/alfrdmalr/alfrdmalr.c b/users/alfrdmalr/alfrdmalr.c index 39d2b62e0..18ce8bad7 100644 --- a/users/alfrdmalr/alfrdmalr.c +++ b/users/alfrdmalr/alfrdmalr.c @@ -35,10 +35,61 @@ void matrix_scan_user(void) { SEQ_FIVE_KEYS(KC_R, KC_E, KC_S, KC_E, KC_T) { reset_keyboard(); } - // minimize window (Windows) - SEQ_THREE_KEYS(KC_M, KC_I, KC_N) { - SEND_STRING(SS_LALT(" ")"n"); - } leader_end(); } +} + +bool syml_pressed = false; +bool symr_pressed = false; +bool settings_active = false; +bool symbols_active = false; +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch(keycode) { + case SYML: + if (record->event.pressed) { + syml_pressed = true; + } else { + syml_pressed = false; + } + break; + case SYMR: + if (record->event.pressed) { + symr_pressed = true; + } else { + symr_pressed = false; + } + break; + } + + // trilayer-esque behavior. If both SYMBOL layer keys are held, then the + // settings layer is open. If only one is held, SYMBOL is active. + if (syml_pressed && symr_pressed) { + layer_on(_SETTINGS); + settings_active = true; + } else if (syml_pressed || symr_pressed) { + if (settings_active) { + layer_off(_SETTINGS); + settings_active = false; + } + layer_on(_SYMBOL); + symbols_active = true; + } else { + if (symbols_active) { + layer_off(_SYMBOL); + symbols_active = false; + } + } + + return true; +} + +// allow access to the settings layer to turn music mode back off +bool music_mask_user(uint16_t keycode) { + switch (keycode) { + case SYML: + case SYMR: + return false; + default: + return true; + } } \ No newline at end of file -- cgit v1.2.3