2d5c16dfd4
Update all my keymaps to work with 40 keys. Refactor code using Userspace.
74 lines
No EOL
1.8 KiB
C
74 lines
No EOL
1.8 KiB
C
|
|
#include "rs.h"
|
|
|
|
// process_record_user is like process_record_user for keymaps including this file.
|
|
__attribute__ ((weak))
|
|
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
|
|
return true;
|
|
}
|
|
|
|
// rgb_mod_changed_keymap is called any time the RGB mod has been changed.
|
|
__attribute__ ((weak))
|
|
void rgb_mod_changed_keymap(void) {
|
|
}
|
|
|
|
// keylog_set_keymap is called for every key press.
|
|
__attribute__ ((weak))
|
|
void keylog_set_keymap(uint16_t keycode, keyrecord_t *record) {
|
|
}
|
|
|
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|
if (record->event.pressed) {
|
|
keylog_set_keymap(keycode, record);
|
|
}
|
|
|
|
switch (keycode) {
|
|
case NEQL: // !=
|
|
if (record->event.pressed) {
|
|
SEND_STRING("!=");
|
|
}
|
|
return false;
|
|
case LPLT: // ( or < with shift
|
|
if (record->event.pressed) {
|
|
if (get_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT))) {
|
|
// <
|
|
tap_code(KC_COMM); // shift is already registered
|
|
} else {
|
|
// (
|
|
register_mods(MOD_BIT(KC_LSFT));
|
|
tap_code(KC_9);
|
|
unregister_mods(MOD_BIT(KC_LSFT));
|
|
}
|
|
}
|
|
return false;
|
|
case RPGT: // ) or > with shift
|
|
if (record->event.pressed) {
|
|
if (get_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT))) {
|
|
// <
|
|
tap_code(KC_DOT); // shift is already registered
|
|
} else {
|
|
// )
|
|
register_mods(MOD_BIT(KC_LSFT));
|
|
tap_code(KC_0);
|
|
unregister_mods(MOD_BIT(KC_LSFT));
|
|
}
|
|
}
|
|
return false;
|
|
#ifdef RGBLIGHT_ENABLE
|
|
case RGB_MOD:
|
|
if (record->event.pressed) {
|
|
rgblight_step();
|
|
rgb_mod_changed_keymap();
|
|
}
|
|
return false;
|
|
case RGBRST:
|
|
if (record->event.pressed) {
|
|
eeconfig_update_rgblight_default();
|
|
rgblight_enable();
|
|
rgb_mod_changed_keymap();
|
|
}
|
|
return false;
|
|
#endif
|
|
}
|
|
return process_record_keymap(keycode, record);
|
|
} |