diff options
Diffstat (limited to 'users/sigul/sigul.c')
-rw-r--r-- | users/sigul/sigul.c | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/users/sigul/sigul.c b/users/sigul/sigul.c new file mode 100644 index 000000000..0995ca736 --- /dev/null +++ b/users/sigul/sigul.c @@ -0,0 +1,100 @@ +#include "keymap_italian_osx_ansi.h" +#include "sigul.h" + +__attribute__ ((weak)) +layer_state_t layer_state_set_keymap (layer_state_t state) { + return state; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +__attribute__ ((weak)) +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + return true; +} + +__attribute__ ((weak)) +bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { + return true; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + + case IT_SCCL: + if (record->event.pressed){ + if (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)){ + register_code16(IT_COLN); + } else { + register_code16(IT_SCLN); + } + } else { + unregister_code16(IT_COLN); + unregister_code16(IT_SCLN); + } + return false; + break; + + case IT_APDQ: + if (record->event.pressed){ + if (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)){ + register_code16(IT_DQOT); + } else { + register_code16(IT_APOS); + } + } else { + unregister_code16(IT_DQOT); + unregister_code16(IT_APOS); + } + return false; + break; + + case IT_CMLS: + if (record->event.pressed){ + if (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)){ + unregister_code16(KC_LSFT); + register_code16(IT_LESS); + register_code16(KC_LSFT); + } else { + register_code16(IT_COMM); + } + } else { + unregister_code16(IT_LESS); + unregister_code16(IT_COMM); + } + return false; + break; + + case IT_DTMR: + if (record->event.pressed){ + if (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)){ + register_code16(IT_MORE); + } else { + register_code16(IT_DOT); + } + } else { + unregister_code16(IT_MORE); + unregister_code16(IT_DOT); + } + return false; + break; + + case IT_SLQS: + if (record->event.pressed){ + if (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)){ + register_code16(IT_QST); + } else { + register_code16(IT_SLSH); + } + } else { + unregister_code16(IT_QST); + unregister_code16(IT_SLSH); + } + return false; + break; + } + return process_record_keymap(keycode, record) && process_record_secrets(keycode, record); +}; + |