diff options
| author | Priyadi Iman Nurcahyo <priyadi@priyadi.net> | 2017-02-14 03:58:12 +0700 |
|---|---|---|
| committer | Priyadi Iman Nurcahyo <priyadi@priyadi.net> | 2017-02-14 03:58:12 +0700 |
| commit | 6c692fca7df7178c2abe673b6d5b1db686e22190 (patch) | |
| tree | 54b4348332956205277217cec852c068be030ef9 | |
| parent | 7ae677dcb7f54960a6f58c85f3e3430bfc2797fc (diff) | |
| download | qmk_firmware-6c692fca7df7178c2abe673b6d5b1db686e22190.tar.gz qmk_firmware-6c692fca7df7178c2abe673b6d5b1db686e22190.zip | |
Alt-tab handling in GUI layer
| -rw-r--r-- | keyboards/handwired/promethium/keymaps/priyadi/keymap.c | 16 | ||||
| -rw-r--r-- | keyboards/planck/keymaps/priyadi/keymap.c | 14 |
2 files changed, 25 insertions, 5 deletions
diff --git a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c index 907da21cb..5829d2e43 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c +++ b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c | |||
| @@ -720,14 +720,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 720 | * |------+------+------+------+------+-------------+------+------+------+------+------| | 720 | * |------+------+------+------+------+-------------+------+------+------+------+------| |
| 721 | * | | | Vol- | Mute | Vol+ | | | Prev | | Next | | | | 721 | * | | | Vol- | Mute | Vol+ | | | Prev | | Next | | | |
| 722 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 722 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 723 | * | | | Prev | Play | Next | | | | | | | | | 723 | * | | | Prev | Play | Next | BTab | Tab | | | | | | |
| 724 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 724 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 725 | * | | | | | | | | | | | | | | 725 | * | | | | | | | | | | | | | |
| 726 | * `-----------------------------------------------------------------------------------' | 726 | * `-----------------------------------------------------------------------------------' |
| 727 | */ | 727 | */ |
| 728 | [_GUI] = KEYMAP( | 728 | [_GUI] = KEYMAP( |
| 729 | XXXXXXX, G(KC_1), G(KC_2), G(KC_3), G(KC_4), G(KC_5), G(KC_6), G(KC_7), G(KC_8), G(KC_9), G(KC_0), XXXXXXX, | 729 | XXXXXXX, G(KC_1), G(KC_2), G(KC_3), G(KC_4), G(KC_5), G(KC_6), G(KC_7), G(KC_8), G(KC_9), G(KC_0), XXXXXXX, |
| 730 | XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, KC_WWWB, XXXXXXX, KC_WWWF, XXXXXXX, XXXXXXX, | 730 | KC_ESC, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU,S(KC_TAB),KC_TAB, KC_WWWB, XXXXXXX, KC_WWWF, XXXXXXX, XXXXXXX, |
| 731 | XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, KC_SPC, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | 731 | XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, KC_SPC, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
| 732 | XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX | 732 | XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX |
| 733 | ), | 733 | ), |
| @@ -763,11 +763,13 @@ void process_doublespace(bool pressed, bool *isactive, bool *otheractive, bool * | |||
| 763 | *isactive = true; | 763 | *isactive = true; |
| 764 | if (*otheractive) { | 764 | if (*otheractive) { |
| 765 | layer_on(_SPACE); | 765 | layer_on(_SPACE); |
| 766 | register_code(KC_LALT); // sends alt and enter layer | ||
| 766 | space_layer_entered = true; | 767 | space_layer_entered = true; |
| 767 | } | 768 | } |
| 768 | } else { | 769 | } else { |
| 769 | *isactive = false; | 770 | *isactive = false; |
| 770 | if (space_layer_entered) { | 771 | if (space_layer_entered) { |
| 772 | unregister_code(KC_LALT); // release alt and exit layer | ||
| 771 | layer_off(_SPACE); | 773 | layer_off(_SPACE); |
| 772 | if (!*otheractive) { | 774 | if (!*otheractive) { |
| 773 | space_layer_entered = false; | 775 | space_layer_entered = false; |
| @@ -786,6 +788,7 @@ void process_doublespace(bool pressed, bool *isactive, bool *otheractive, bool * | |||
| 786 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | 788 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
| 787 | bool lshift = keyboard_report->mods & MOD_BIT(KC_LSFT); | 789 | bool lshift = keyboard_report->mods & MOD_BIT(KC_LSFT); |
| 788 | bool rshift = keyboard_report->mods & MOD_BIT(KC_RSFT); | 790 | bool rshift = keyboard_report->mods & MOD_BIT(KC_RSFT); |
| 791 | uint8_t layer = biton32(layer_state); | ||
| 789 | 792 | ||
| 790 | #ifdef DOUBLESPACE_LAYER_ENABLE | 793 | #ifdef DOUBLESPACE_LAYER_ENABLE |
| 791 | // double-space: send space immediately if any other key depressed before space is released | 794 | // double-space: send space immediately if any other key depressed before space is released |
| @@ -809,6 +812,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 809 | rspace_emitted = true; | 812 | rspace_emitted = true; |
| 810 | } | 813 | } |
| 811 | } | 814 | } |
| 815 | |||
| 816 | if (layer == _SPACE && keycode != S(KC_TAB) && keycode != KC_TAB && keycode != KC_ESC) { | ||
| 817 | if (record->event.pressed) { | ||
| 818 | unregister_code(KC_LALT); | ||
| 819 | } else { | ||
| 820 | register_code(KC_LALT); | ||
| 821 | } | ||
| 822 | } | ||
| 812 | #endif | 823 | #endif |
| 813 | 824 | ||
| 814 | switch (keycode) { | 825 | switch (keycode) { |
| @@ -830,7 +841,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 830 | case KC_LSFT: | 841 | case KC_LSFT: |
| 831 | case KC_RSFT: | 842 | case KC_RSFT: |
| 832 | ; | 843 | ; |
| 833 | uint8_t layer = biton32(layer_state); | ||
| 834 | if (layer == _GREEKU || layer == _GREEKL) { | 844 | if (layer == _GREEKU || layer == _GREEKL) { |
| 835 | if (record->event.pressed) { | 845 | if (record->event.pressed) { |
| 836 | layer_on(_GREEKU); | 846 | layer_on(_GREEKU); |
diff --git a/keyboards/planck/keymaps/priyadi/keymap.c b/keyboards/planck/keymaps/priyadi/keymap.c index 7a6305112..c279bfcd0 100644 --- a/keyboards/planck/keymaps/priyadi/keymap.c +++ b/keyboards/planck/keymaps/priyadi/keymap.c | |||
| @@ -537,14 +537,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 537 | * |------+------+------+------+------+-------------+------+------+------+------+------| | 537 | * |------+------+------+------+------+-------------+------+------+------+------+------| |
| 538 | * | | | Vol- | Mute | Vol+ | | | Prev | | Next | | | | 538 | * | | | Vol- | Mute | Vol+ | | | Prev | | Next | | | |
| 539 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 539 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 540 | * | | | Prev | Play | Next | | | | | | | | | 540 | * | | | Prev | Play | Next | BTab | Tab | | | | | | |
| 541 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 541 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 542 | * | | | | | | | | | | | | | | 542 | * | | | | | | | | | | | | | |
| 543 | * `-----------------------------------------------------------------------------------' | 543 | * `-----------------------------------------------------------------------------------' |
| 544 | */ | 544 | */ |
| 545 | [_GUI] = KEYMAP( | 545 | [_GUI] = KEYMAP( |
| 546 | XXXXXXX, G(KC_1), G(KC_2), G(KC_3), G(KC_4), G(KC_5), G(KC_6), G(KC_7), G(KC_8), G(KC_9), G(KC_0), XXXXXXX, | 546 | XXXXXXX, G(KC_1), G(KC_2), G(KC_3), G(KC_4), G(KC_5), G(KC_6), G(KC_7), G(KC_8), G(KC_9), G(KC_0), XXXXXXX, |
| 547 | XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, KC_WWWB, XXXXXXX, KC_WWWF, XXXXXXX, XXXXXXX, | 547 | XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, S(KC_TAB),KC_TAB, KC_WWWB, XXXXXXX, KC_WWWF, XXXXXXX, XXXXXXX, |
| 548 | XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, KC_SPC, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | 548 | XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, KC_SPC, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
| 549 | XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX | 549 | XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX |
| 550 | ), | 550 | ), |
| @@ -594,11 +594,13 @@ void process_doublespace(bool pressed, bool *isactive, bool *otheractive, bool * | |||
| 594 | *isactive = true; | 594 | *isactive = true; |
| 595 | if (*otheractive) { | 595 | if (*otheractive) { |
| 596 | layer_on(_SPACE); | 596 | layer_on(_SPACE); |
| 597 | register_code(KC_LALT); // sends alt and enter layer | ||
| 597 | space_layer_entered = true; | 598 | space_layer_entered = true; |
| 598 | } | 599 | } |
| 599 | } else { | 600 | } else { |
| 600 | *isactive = false; | 601 | *isactive = false; |
| 601 | if (space_layer_entered) { | 602 | if (space_layer_entered) { |
| 603 | unregister_code(KC_LALT); // release alt and exit layer | ||
| 602 | layer_off(_SPACE); | 604 | layer_off(_SPACE); |
| 603 | if (!*otheractive) { | 605 | if (!*otheractive) { |
| 604 | space_layer_entered = false; | 606 | space_layer_entered = false; |
| @@ -656,6 +658,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 656 | rspace_emitted = true; | 658 | rspace_emitted = true; |
| 657 | } | 659 | } |
| 658 | } | 660 | } |
| 661 | |||
| 662 | if (layer == _SPACE && keycode != S(KC_TAB) && keycode != KC_TAB && keycode != KC_ESC) { | ||
| 663 | if (record->event.pressed) { | ||
| 664 | unregister_code(KC_LALT); | ||
| 665 | } else { | ||
| 666 | register_code(KC_LALT); | ||
| 667 | } | ||
| 668 | } | ||
| 659 | #endif | 669 | #endif |
| 660 | 670 | ||
| 661 | switch (keycode) { | 671 | switch (keycode) { |
