sigul.c 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #include "keymap_italian_mac_ansi.h"
  2. #include "sigul.h"
  3. __attribute__ ((weak))
  4. layer_state_t layer_state_set_keymap (layer_state_t state) {
  5. return state;
  6. }
  7. layer_state_t layer_state_set_user(layer_state_t state) {
  8. return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
  9. }
  10. __attribute__ ((weak))
  11. bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
  12. return true;
  13. }
  14. __attribute__ ((weak))
  15. bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
  16. return true;
  17. }
  18. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  19. switch (keycode) {
  20. case IT_SCCL:
  21. if (record->event.pressed){
  22. if (get_mods() & MOD_BIT(KC_LSFT) || get_mods() & MOD_BIT(KC_RIGHT_SHIFT)){
  23. register_code16(IT_COLN);
  24. } else {
  25. register_code16(IT_SCLN);
  26. }
  27. } else {
  28. unregister_code16(IT_COLN);
  29. unregister_code16(IT_SCLN);
  30. }
  31. return false;
  32. break;
  33. case IT_APDQ:
  34. if (record->event.pressed){
  35. if (get_mods() & MOD_BIT(KC_LSFT) || get_mods() & MOD_BIT(KC_RIGHT_SHIFT)){
  36. register_code16(IT_DQUO);
  37. } else {
  38. register_code16(IT_QUOT);
  39. }
  40. } else {
  41. unregister_code16(IT_DQUO);
  42. unregister_code16(IT_QUOT);
  43. }
  44. return false;
  45. break;
  46. case IT_CMLS:
  47. if (record->event.pressed){
  48. if (get_mods() & MOD_BIT(KC_LSFT) || get_mods() & MOD_BIT(KC_RIGHT_SHIFT)){
  49. unregister_code16(KC_LSFT);
  50. register_code16(IT_LABK);
  51. register_code16(KC_LSFT);
  52. } else {
  53. register_code16(IT_COMM);
  54. }
  55. } else {
  56. unregister_code16(IT_LABK);
  57. unregister_code16(IT_COMM);
  58. }
  59. return false;
  60. break;
  61. case IT_DTMR:
  62. if (record->event.pressed){
  63. if (get_mods() & MOD_BIT(KC_LSFT) || get_mods() & MOD_BIT(KC_RIGHT_SHIFT)){
  64. register_code16(IT_RABK);
  65. } else {
  66. register_code16(IT_DOT);
  67. }
  68. } else {
  69. unregister_code16(IT_RABK);
  70. unregister_code16(IT_DOT);
  71. }
  72. return false;
  73. break;
  74. case IT_SLQS:
  75. if (record->event.pressed){
  76. if (get_mods() & MOD_BIT(KC_LSFT) || get_mods() & MOD_BIT(KC_RIGHT_SHIFT)){
  77. register_code16(IT_QUES);
  78. } else {
  79. register_code16(IT_SLSH);
  80. }
  81. } else {
  82. unregister_code16(IT_QUES);
  83. unregister_code16(IT_SLSH);
  84. }
  85. return false;
  86. break;
  87. }
  88. return process_record_keymap(keycode, record) && process_record_secrets(keycode, record);
  89. };