aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPriyadi Iman Nurcahyo <priyadi@priyadi.net>2017-02-10 17:11:52 +0700
committerPriyadi Iman Nurcahyo <priyadi@priyadi.net>2017-02-10 17:11:52 +0700
commita5b8db52a046e803c21146402e1d009f31b91508 (patch)
tree1891528c4f710cf5ec0c40f9e1399a34ffa7394d
parent4ffbfe829862bb6cc23202ced13da2672c490f5b (diff)
downloadqmk_firmware-a5b8db52a046e803c21146402e1d009f31b91508.tar.gz
qmk_firmware-a5b8db52a046e803c21146402e1d009f31b91508.zip
Activate SYS layer by pressing both Ctrls
-rw-r--r--keyboards/handwired/promethium/keymaps/priyadi/keymap.c34
1 files changed, 25 insertions, 9 deletions
diff --git a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c
index c06fb7e78..eee859e31 100644
--- a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c
+++ b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c
@@ -782,8 +782,8 @@ void persistant_default_layer_set(uint16_t default_layer) {
782} 782}
783 783
784bool process_record_user(uint16_t keycode, keyrecord_t *record) { 784bool process_record_user(uint16_t keycode, keyrecord_t *record) {
785 bool lshifted = keyboard_report->mods & MOD_BIT(KC_LSFT); 785 bool lshift = keyboard_report->mods & MOD_BIT(KC_LSFT);
786 bool rshifted = keyboard_report->mods & MOD_BIT(KC_RSFT); 786 bool rshift = keyboard_report->mods & MOD_BIT(KC_RSFT);
787 787
788 switch (keycode) { 788 switch (keycode) {
789 // handle greek layer shift 789 // handle greek layer shift
@@ -796,7 +796,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
796 layer_on(_GREEKU); 796 layer_on(_GREEKU);
797 layer_off(_GREEKL); 797 layer_off(_GREEKL);
798 } else { 798 } else {
799 if (lshifted ^ rshifted) { // if only one shift was pressed 799 if (lshift ^ rshift) { // if only one shift was pressed
800 layer_on(_GREEKL); 800 layer_on(_GREEKL);
801 layer_off(_GREEKU); 801 layer_off(_GREEKU);
802 } 802 }
@@ -805,16 +805,32 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
805 return true; 805 return true;
806 break; 806 break;
807 807
808 // press both ctrls to activate SYS layer
809 case KC_LCTL:
810 case KC_RCTL:
811 ;
812 bool lctrl = keyboard_report->mods & MOD_BIT(KC_LCTL);
813 bool rctrl = keyboard_report->mods & MOD_BIT(KC_RCTL);
814 if (record->event.pressed) {
815 if (lctrl ^ rctrl) { // if only one ctrl was pressed
816 layer_on(_SYS);
817 }
818 } else {
819 layer_off(_SYS);
820 }
821 return true;
822 break;
823
808 // QWERTZ style comma and dot: semicolon and colon when shifted 824 // QWERTZ style comma and dot: semicolon and colon when shifted
809 case KC_COMM: 825 case KC_COMM:
810 if (record->event.pressed) { 826 if (record->event.pressed) {
811 if (lshifted || rshifted) { 827 if (lshift || rshift) {
812 if (lshifted) unregister_code(KC_LSFT); 828 if (lshift) unregister_code(KC_LSFT);
813 if (rshifted) unregister_code(KC_RSFT); 829 if (rshift) unregister_code(KC_RSFT);
814 register_code(KC_SCLN); 830 register_code(KC_SCLN);
815 unregister_code(KC_SCLN); 831 unregister_code(KC_SCLN);
816 if (lshifted) register_code(KC_LSFT); 832 if (lshift) register_code(KC_LSFT);
817 if (rshifted) register_code(KC_RSFT); 833 if (rshift) register_code(KC_RSFT);
818 } else { 834 } else {
819 register_code(KC_COMM); 835 register_code(KC_COMM);
820 unregister_code(KC_COMM); 836 unregister_code(KC_COMM);
@@ -891,7 +907,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
891 907
892 case GREEK: 908 case GREEK:
893 if (record->event.pressed) { 909 if (record->event.pressed) {
894 if (lshifted || rshifted) { 910 if (lshift || rshift) {
895 layer_on(_GREEKU); 911 layer_on(_GREEKU);
896 layer_off(_GREEKL); 912 layer_off(_GREEKL);
897 } else { 913 } else {