aboutsummaryrefslogtreecommitdiff
path: root/layouts/community/ergodox/algernon/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'layouts/community/ergodox/algernon/keymap.c')
-rw-r--r--layouts/community/ergodox/algernon/keymap.c124
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
869static 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
893static 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
847qk_tap_dance_action_t tap_dance_actions[] = { 908qk_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
1046bool process_record_user (uint16_t keycode, keyrecord_t *record) { 1132bool process_record_user (uint16_t keycode, keyrecord_t *record) {