diff options
| author | Priyadi Iman Nurcahyo <priyadi@priyadi.net> | 2017-02-10 17:11:52 +0700 |
|---|---|---|
| committer | Priyadi Iman Nurcahyo <priyadi@priyadi.net> | 2017-02-10 17:11:52 +0700 |
| commit | a5b8db52a046e803c21146402e1d009f31b91508 (patch) | |
| tree | 1891528c4f710cf5ec0c40f9e1399a34ffa7394d | |
| parent | 4ffbfe829862bb6cc23202ced13da2672c490f5b (diff) | |
| download | qmk_firmware-a5b8db52a046e803c21146402e1d009f31b91508.tar.gz qmk_firmware-a5b8db52a046e803c21146402e1d009f31b91508.zip | |
Activate SYS layer by pressing both Ctrls
| -rw-r--r-- | keyboards/handwired/promethium/keymaps/priyadi/keymap.c | 34 |
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 | ||
| 784 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | 784 | bool 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 { |
