aboutsummaryrefslogtreecommitdiffstats
path: root/users/konstantin/konstantin.c
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2019-03-05 15:07:13 -0800
committerGitHub <noreply@github.com>2019-03-05 15:07:13 -0800
commitedef1f93960352bcc97ac75653867e23e3db45fc (patch)
tree197333e503ff88f68df0ddf93af27899f90e5714 /users/konstantin/konstantin.c
parent2e8e465423a92c97273431f8cf65c7333f2d98e7 (diff)
parentbe1d5c66093faa8885855a2d133ef20a408233bd (diff)
downloadfirmware-edef1f93960352bcc97ac75653867e23e3db45fc.tar.gz
firmware-edef1f93960352bcc97ac75653867e23e3db45fc.tar.bz2
firmware-edef1f93960352bcc97ac75653867e23e3db45fc.zip
Update personal userspace and keymaps + improve custom functionality (#5289)
* Change how desktop commands work * Add DST_MOD_MASK as a config option * DST_RMV → DST_REM * Add melody96:konstantin keymap * Update custom SEND_STRING * Move feature flags from userspace into keyboard rules * Use "Vo-", "Vo+" instead of "VoD", "VoU" in keymap comments * Add RGB controls and numpad Unicode to Melody96 keymap * Add RGB_SET keycode to Melody96 and RGB files to userspace * Generate UNICODE and UNICODEMAP constants using macros * Avoid collisions with X_* send string constants * Use two spaces before inline comments * Add _keymap versions of other custom Quantum functions Not added: eeconfig_update_keymap, eeconfig_read_keymap * Switch to UNICODEMAP in keyboard rules * Make toggle_numpad a nested function in process_record_user * Set Melody96 underglow color to Godspeed blue on EEPROM reset * Remove most _keymap and _user definitions in userspace Some keyboards misuse _user functions by defining them in the base files instead of the corresponding _kb functions (especially led_set_user and matrix_init_user). Until this is fixed (#5148), I've removed definitions in my userspace that could cause linking collisions. * Update GODSPEED_BLUE values and RGB mode keys * Add GODSPEED_YELLOW color * Set preferred intervals for rgblight effects * Update tap dance function names * Replace td_lshift_fn with generic td_mod_layer, add TD_RCTL_FN Move TD_FN_RCTL after TD_RCTL_FN * Replace td_fn_rctrl with generic td_layer_mod * Add blank lines, prefer explicit initialization * ACTION_TAP_DANCE_DOUBLE_MODS → ACTION_TAP_DANCE_DOUBLE_MOD * Update Godspeed colors * Add media controls to Melody96 keymap * Add SysRq, Break combos and other keys to Melody96 keymap
Diffstat (limited to 'users/konstantin/konstantin.c')
-rw-r--r--users/konstantin/konstantin.c54
1 files changed, 43 insertions, 11 deletions
diff --git a/users/konstantin/konstantin.c b/users/konstantin/konstantin.c
index 47596279c..753742fa7 100644
--- a/users/konstantin/konstantin.c
+++ b/users/konstantin/konstantin.c
@@ -1,15 +1,25 @@
#include "konstantin.h"
-#ifdef LAYER_NUMPAD
-static void toggle_numpad(void) {
- layer_invert(L_NUMPAD);
- bool numpad_on = IS_LAYER_ON(L_NUMPAD);
- bool num_lock_on = IS_HOST_LED_ON(USB_LED_NUM_LOCK);
- if (num_lock_on != numpad_on) {
- tap_code(KC_NLCK); // Toggle Num Lock to match layer state
- }
+__attribute__((weak))
+void keyboard_pre_init_keymap(void) {}
+
+void keyboard_pre_init_user(void) {
+ keyboard_pre_init_keymap();
+}
+
+__attribute__((weak))
+void eeconfig_init_keymap(void) {}
+
+void eeconfig_init_user(void) {
+ eeconfig_init_keymap();
+}
+
+__attribute__((weak))
+void keyboard_post_init_keymap(void) {}
+
+void keyboard_post_init_user(void) {
+ keyboard_post_init_keymap();
}
-#endif
__attribute__((weak))
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
@@ -21,6 +31,16 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return false;
}
+#ifdef LAYER_NUMPAD
+ void toggle_numpad(void) {
+ layer_invert(L_NUMPAD);
+ bool numpad = IS_LAYER_ON(L_NUMPAD), num_lock = IS_HOST_LED_ON(USB_LED_NUM_LOCK);
+ if (num_lock != numpad) {
+ tap_code(KC_NLCK); // Toggle Num Lock to match layer state
+ }
+ }
+#endif
+
switch (keycode) {
case CLEAR:
if (record->event.pressed) {
@@ -28,12 +48,24 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return false;
+ case DST_P_R:
+ (record->event.pressed ? register_code16 : unregister_code16)(
+ (get_mods() & DST_MOD_MASK) ? DST_REM : DST_PRV
+ );
+ return false;
+
+ case DST_N_A:
+ (record->event.pressed ? register_code16 : unregister_code16)(
+ (get_mods() & DST_MOD_MASK) ? DST_ADD : DST_NXT
+ );
+ return false;
+
#ifdef LAYER_FN
- static bool fn_lock;
+ static bool fn_lock;
case FN_FNLK:
if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
- fn_lock = !IS_LAYER_ON(L_FN); // Fn layer will be toggled after this
+ fn_lock = !IS_LAYER_ON(L_FN); // Fn layer will be toggled after this
}
return true;
#endif