diff options
| author | Gergely Nagy <algernon@madhouse-project.org> | 2017-10-01 15:37:41 +0200 |
|---|---|---|
| committer | Jack Humbert <jack.humb@gmail.com> | 2017-10-03 07:54:56 -1000 |
| commit | 1cd336dde4dad00864cfef643c501e2a32704426 (patch) | |
| tree | d176c4af27b93310680afe207d46199867b8d0e9 /layouts/community/ergodox/algernon/keymap.c | |
| parent | cc52ac5b1634f61c8333bb653be0bc3d0a3c3da6 (diff) | |
| download | qmk_firmware-1cd336dde4dad00864cfef643c501e2a32704426.tar.gz qmk_firmware-1cd336dde4dad00864cfef643c501e2a32704426.zip | |
ergodox: Update algernon's layout to v1.11
Overall changes
===============
* Updated to work with QMK master.
* The `$` and `^` symbols on the number row were swapped on both the base and
the ADORE layers.
* The bracket tap-dance keys can now be used to input Japanese brackets, `「`
and `」` with a third tap.
* The second column of the top row on the right side will act as a "Social"
application selector on the `AppSel` layer.
* The third key on the same column will select a password manager.
* The `GUI` key will now launch `rofi` when triple-tapped.
Miscellaneous
=============
* The `👶` symbol can be entered with UCIS.
* The `👪` symbol can be entered with UCIS.
Tools
=====
* `tools/hid-commands` can now find the `Mstdn`, not just `Slack`, as the
"Slack"/chat app.
* `tools/hid-commands` can now find the Plex web app as a music/media player.
* `tools/hid-commands` now understands the "Social" application selector. It
raises the `Mstdn` and `Tweetdeck` windows, but keeps focus on the previous
window.
* `tools/hid-commands` now understands the "Social2" application selector, which
raises `Signal` and `Viber`, but keeps focus on the previous window.
* `tools/hid-commands` is now able to select a password manager (KeePass*).
* `tools/hid-commands` can now run `rofi` when receiving an `appsel_helper`
command (triggered by a triple-tapped `GUI` key).
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
Diffstat (limited to 'layouts/community/ergodox/algernon/keymap.c')
| -rw-r--r-- | layouts/community/ergodox/algernon/keymap.c | 124 |
1 files changed, 105 insertions, 19 deletions
diff --git a/layouts/community/ergodox/algernon/keymap.c b/layouts/community/ergodox/algernon/keymap.c index 8be54986f..ebdc4ab4e 100644 --- a/layouts/community/ergodox/algernon/keymap.c +++ b/layouts/community/ergodox/algernon/keymap.c | |||
| @@ -36,11 +36,14 @@ enum { | |||
| 36 | A_MPN, | 36 | A_MPN, |
| 37 | 37 | ||
| 38 | // Application select keys | 38 | // Application select keys |
| 39 | APP_SLK, // Slack | 39 | APP_SLK, // Slack |
| 40 | APP_EMCS, // Emacs | 40 | APP_EMCS, // Emacs |
| 41 | APP_TERM, // Terminal | 41 | APP_TERM, // Terminal |
| 42 | APP_CHRM, // Chrome | 42 | APP_CHRM, // Chrome |
| 43 | APP_MSIC, // Music | 43 | APP_MSIC, // Music |
| 44 | APP_SOCL, // Social | ||
| 45 | APP_PMGR, // Password manager | ||
| 46 | APP_SCL2, // Social #2 | ||
| 44 | 47 | ||
| 45 | // Hungarian layer keys | 48 | // Hungarian layer keys |
| 46 | HU_AA, // Á | 49 | HU_AA, // Á |
| @@ -252,7 +255,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 252 | /* Keymap 3: Application select layer | 255 | /* Keymap 3: Application select layer |
| 253 | * | 256 | * |
| 254 | * ,-----------------------------------------------------. ,-----------------------------------------------------. | 257 | * ,-----------------------------------------------------. ,-----------------------------------------------------. |
| 255 | * | |Music |Slack |Emacs |Term |Chrome| | | | | | | | | | | 258 | * | |Music |Slack |Emacs |Term |Chrome| | | |Social|PWMgr |Scl2 | | | | |
| 256 | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| | 259 | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| |
| 257 | * | | | | | | | | | | | | | | | | | 260 | * | | | | | | | | | | | | | | | | |
| 258 | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| | 261 | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| |
| @@ -283,16 +286,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 283 | ,KC_TRNS | 286 | ,KC_TRNS |
| 284 | ,KC_TRNS ,KC_TRNS ,KC_TRNS | 287 | ,KC_TRNS ,KC_TRNS ,KC_TRNS |
| 285 | 288 | ||
| 286 | // right hand | 289 | // right hand |
| 287 | ,KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_TRNS | 290 | ,KC_TRNS ,M(APP_SOCL) ,M(APP_PMGR) ,M(APP_SCL2) ,KC_NO ,KC_NO ,KC_TRNS |
| 288 | ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS | 291 | ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS |
| 289 | ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS | 292 | ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS |
| 290 | ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS | 293 | ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS |
| 291 | ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS | 294 | ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS |
| 292 | 295 | ||
| 293 | ,KC_TRNS ,KC_TRNS | 296 | ,KC_TRNS ,KC_TRNS |
| 294 | ,KC_TRNS | 297 | ,KC_TRNS |
| 295 | ,KC_TRNS ,KC_TRNS ,KC_TRNS | 298 | ,KC_TRNS ,KC_TRNS ,KC_TRNS |
| 296 | ), | 299 | ), |
| 297 | 300 | ||
| 298 | 301 | ||
| @@ -376,8 +379,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 376 | 379 | ||
| 377 | // right hand | 380 | // right hand |
| 378 | ,KC_TRNS ,KC_F10 ,KC_F2 ,KC_F4 ,KC_F6 ,KC_F8 ,KC_NO | 381 | ,KC_TRNS ,KC_F10 ,KC_F2 ,KC_F4 ,KC_F6 ,KC_F8 ,KC_NO |
| 379 | ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO | 382 | ,KC_NO ,KC_NO ,KC_NO ,KC_UP ,KC_NO ,KC_NO ,KC_NO |
| 380 | ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO | 383 | ,KC_NO ,KC_LEFT ,KC_DOWN ,KC_RGHT ,KC_NO ,KC_NO |
| 381 | ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO | 384 | ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO |
| 382 | ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO | 385 | ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO |
| 383 | 386 | ||
| @@ -536,10 +539,10 @@ static void ang_handle_num_row(uint8_t id, keyrecord_t *record) { | |||
| 536 | kc = KC_8; | 539 | kc = KC_8; |
| 537 | break; | 540 | break; |
| 538 | case A_3: | 541 | case A_3: |
| 539 | kc = KC_6; | 542 | kc = KC_4; |
| 540 | break; | 543 | break; |
| 541 | case A_1: | 544 | case A_1: |
| 542 | kc = KC_4; | 545 | kc = KC_6; |
| 543 | break; | 546 | break; |
| 544 | 547 | ||
| 545 | case A_0: | 548 | case A_0: |
| @@ -630,10 +633,14 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | |||
| 630 | if (record->event.pressed) { | 633 | if (record->event.pressed) { |
| 631 | register_code (KC_LGUI); | 634 | register_code (KC_LGUI); |
| 632 | if (record->tap.count && !record->tap.interrupted) { | 635 | if (record->tap.count && !record->tap.interrupted) { |
| 633 | if (record->tap.count >= 2) { | 636 | if (record->tap.count == 2) { |
| 634 | uprintf("CMD:appsel_start\n"); | 637 | uprintf("CMD:appsel_start\n"); |
| 635 | layer_on (APPSEL); | 638 | layer_on (APPSEL); |
| 636 | set_oneshot_layer (APPSEL, ONESHOT_START); | 639 | set_oneshot_layer (APPSEL, ONESHOT_START); |
| 640 | } else if (record->tap.count >= 3) { | ||
| 641 | uprintf("CMD:appsel_helper\n"); | ||
| 642 | layer_off (APPSEL); | ||
| 643 | clear_oneshot_layer_state (ONESHOT_PRESSED); | ||
| 637 | } | 644 | } |
| 638 | } else { | 645 | } else { |
| 639 | record->tap.count = 0; | 646 | record->tap.count = 0; |
| @@ -673,6 +680,21 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | |||
| 673 | uprintf("CMD:appsel_music\n"); | 680 | uprintf("CMD:appsel_music\n"); |
| 674 | break; | 681 | break; |
| 675 | 682 | ||
| 683 | case APP_SOCL: | ||
| 684 | if (record->event.pressed) | ||
| 685 | uprintf("CMD:appsel_social\n"); | ||
| 686 | break; | ||
| 687 | |||
| 688 | case APP_PMGR: | ||
| 689 | if (record->event.pressed) | ||
| 690 | uprintf("CMD:appsel_pwmgr\n"); | ||
| 691 | break; | ||
| 692 | |||
| 693 | case APP_SCL2: | ||
| 694 | if (record->event.pressed) | ||
| 695 | uprintf("CMD:appsel_social2\n"); | ||
| 696 | break; | ||
| 697 | |||
| 676 | // number row and symbols | 698 | // number row and symbols |
| 677 | case A_1 ... A_0: | 699 | case A_1 ... A_0: |
| 678 | ang_handle_num_row(id, record); | 700 | ang_handle_num_row(id, record); |
| @@ -844,14 +866,53 @@ _td_sr_reset (qk_tap_dance_state_t *state, void *user_data) { | |||
| 844 | } | 866 | } |
| 845 | } | 867 | } |
| 846 | 868 | ||
| 869 | static void | ||
| 870 | _td_brackets_finished (qk_tap_dance_state_t *state, void *user_data) { | ||
| 871 | if (state->count == 1) { | ||
| 872 | if (state->keycode == TD(CT_LBP)) | ||
| 873 | register_code16 (KC_LBRC); | ||
| 874 | else | ||
| 875 | register_code16 (KC_RBRC); | ||
| 876 | } else if (state->count == 2) { | ||
| 877 | if (state->keycode == TD(CT_LBP)) | ||
| 878 | register_code16 (KC_LPRN); | ||
| 879 | else | ||
| 880 | register_code16 (KC_RPRN); | ||
| 881 | } else if (state->count == 3) { | ||
| 882 | unicode_input_start(); | ||
| 883 | |||
| 884 | if (state->keycode == TD(CT_LBP)) | ||
| 885 | register_hex (0x300c); | ||
| 886 | else | ||
| 887 | register_hex (0x300d); | ||
| 888 | |||
| 889 | unicode_input_finish(); | ||
| 890 | } | ||
| 891 | } | ||
| 892 | |||
| 893 | static void | ||
| 894 | _td_brackets_reset (qk_tap_dance_state_t *state, void *user_data) { | ||
| 895 | if (state->count == 1) { | ||
| 896 | if (state->keycode == TD(CT_LBP)) | ||
| 897 | unregister_code16 (KC_LBRC); | ||
| 898 | else | ||
| 899 | unregister_code16 (KC_RBRC); | ||
| 900 | } else if (state->count == 2) { | ||
| 901 | if (state->keycode == TD(CT_LBP)) | ||
| 902 | unregister_code16 (KC_LPRN); | ||
| 903 | else | ||
| 904 | unregister_code16 (KC_RPRN); | ||
| 905 | } | ||
| 906 | } | ||
| 907 | |||
| 847 | qk_tap_dance_action_t tap_dance_actions[] = { | 908 | qk_tap_dance_action_t tap_dance_actions[] = { |
| 848 | [CT_CLN] = ACTION_TAP_DANCE_DOUBLE (KC_COLN, KC_SCLN) | 909 | [CT_CLN] = ACTION_TAP_DANCE_DOUBLE (KC_COLN, KC_SCLN) |
| 849 | ,[CT_TA] = { | 910 | ,[CT_TA] = { |
| 850 | .fn = { NULL, ang_tap_dance_ta_finished, ang_tap_dance_ta_reset }, | 911 | .fn = { NULL, ang_tap_dance_ta_finished, ang_tap_dance_ta_reset }, |
| 851 | .user_data = (void *)&((td_ta_state_t) { false, false }) | 912 | .user_data = (void *)&((td_ta_state_t) { false, false }) |
| 852 | } | 913 | } |
| 853 | ,[CT_LBP] = ACTION_TAP_DANCE_DOUBLE (KC_LBRC, KC_LPRN) | 914 | ,[CT_LBP] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, _td_brackets_finished, _td_brackets_reset) |
| 854 | ,[CT_RBP] = ACTION_TAP_DANCE_DOUBLE (KC_RBRC, KC_RPRN) | 915 | ,[CT_RBP] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, _td_brackets_finished, _td_brackets_reset) |
| 855 | ,[CT_TMUX]= ACTION_TAP_DANCE_FN (ang_tap_dance_tmux_finished) | 916 | ,[CT_TMUX]= ACTION_TAP_DANCE_FN (ang_tap_dance_tmux_finished) |
| 856 | ,[CT_TPS] = ACTION_TAP_DANCE_FN (ang_tap_dance_tmux_pane_select) | 917 | ,[CT_TPS] = ACTION_TAP_DANCE_FN (ang_tap_dance_tmux_pane_select) |
| 857 | ,[CT_SR] = ACTION_TAP_DANCE_FN_ADVANCED (_td_sr_each, _td_sr_finished, _td_sr_reset) | 918 | ,[CT_SR] = ACTION_TAP_DANCE_FN_ADVANCED (_td_sr_each, _td_sr_finished, _td_sr_reset) |
| @@ -934,6 +995,29 @@ void matrix_scan_user(void) { | |||
| 934 | KC_S, KC_Z, KC_O, KC_N, KC_Y, KC_K, KC_RALT, KC_QUOT, KC_A, KC_M, 0); | 995 | KC_S, KC_Z, KC_O, KC_N, KC_Y, KC_K, KC_RALT, KC_QUOT, KC_A, KC_M, 0); |
| 935 | } | 996 | } |
| 936 | 997 | ||
| 998 | SEQ_ONE_KEY (KC_K) { | ||
| 999 | ang_tap (KC_SPC, LSFT(KC_7), KC_SPC, 0); | ||
| 1000 | register_code(KC_LCTL); | ||
| 1001 | register_code(KC_LSFT); | ||
| 1002 | register_code(KC_U); | ||
| 1003 | unregister_code(KC_U); | ||
| 1004 | unregister_code(KC_LSFT); | ||
| 1005 | unregister_code(KC_LCTL); | ||
| 1006 | ang_tap (KC_1, KC_F, KC_4, KC_7, KC_6, 0); | ||
| 1007 | register_code (KC_ENT); | ||
| 1008 | unregister_code (KC_ENT); | ||
| 1009 | ang_tap (KC_END, 0); | ||
| 1010 | register_code(KC_LCTL); | ||
| 1011 | register_code(KC_LSFT); | ||
| 1012 | register_code(KC_U); | ||
| 1013 | unregister_code(KC_U); | ||
| 1014 | unregister_code(KC_LSFT); | ||
| 1015 | unregister_code(KC_LCTL); | ||
| 1016 | ang_tap (KC_1, KC_F, KC_4, KC_7, KC_6, 0); | ||
| 1017 | register_code (KC_SPC); | ||
| 1018 | unregister_code (KC_SPC); | ||
| 1019 | } | ||
| 1020 | |||
| 937 | SEQ_ONE_KEY (KC_G) { | 1021 | SEQ_ONE_KEY (KC_G) { |
| 938 | ang_tap (LSFT(KC_G), KC_E, KC_J, KC_G, KC_RALT, KC_EQL, KC_O, | 1022 | ang_tap (LSFT(KC_G), KC_E, KC_J, KC_G, KC_RALT, KC_EQL, KC_O, |
| 939 | KC_RALT, KC_EQL, KC_O, | 1023 | KC_RALT, KC_EQL, KC_O, |
| @@ -1040,7 +1124,9 @@ const qk_ucis_symbol_t ucis_symbol_table[] = UCIS_TABLE | |||
| 1040 | UCIS_SYM("pi", 0x03c0), | 1124 | UCIS_SYM("pi", 0x03c0), |
| 1041 | UCIS_SYM("mouse", 0x1f401), | 1125 | UCIS_SYM("mouse", 0x1f401), |
| 1042 | UCIS_SYM("micro", 0x00b5), | 1126 | UCIS_SYM("micro", 0x00b5), |
| 1043 | UCIS_SYM("tm", 0x2122) | 1127 | UCIS_SYM("tm", 0x2122), |
| 1128 | UCIS_SYM("child", 0x1f476), | ||
| 1129 | UCIS_SYM("family", 0x1F46A) | ||
| 1044 | ); | 1130 | ); |
| 1045 | 1131 | ||
| 1046 | bool process_record_user (uint16_t keycode, keyrecord_t *record) { | 1132 | bool process_record_user (uint16_t keycode, keyrecord_t *record) { |
