|
|
- /* Copyright 2020-2021 James Young (@noroadsleft)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
- #include "noroadsleft.h"
- #include "version.h"
-
- /*******************
- ** MODIFIER MASKS **
- *******************/
- bool macroMode = 0;
-
- __attribute__((weak))
- bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; };
-
- bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (!process_record_keymap(keycode, record)) {
- return false;
- }
- #if defined(ANSI_NUBS_ROW) && defined(ANSI_NUBS_COL)
- // if ANSI_NUBS_ROW and ANSI_NUBS_COL are both defined, and Right Alt mod is active
- if ( record->event.key.row == ANSI_NUBS_ROW && record->event.key.col == ANSI_NUBS_COL && get_mods() & MOD_MASK_RALT ) {
- if (record->event.pressed) {
- register_code(KC_NUBS);
- } else {
- unregister_code(KC_NUBS);
- }
- return false;
- }
- #endif
- switch (keycode) {
- case VRSN:
- if (record->event.pressed) {
- SEND_STRING(QMK_KEYBOARD ":" QMK_KEYMAP " # @ " QMK_VERSION);
- }
- return false;
- case G_PUSH:
- if (record->event.pressed) {
- SEND_STRING("git push origin ");
- };
- return false;
- case G_FTCH:
- if (record->event.pressed) {
- if ( get_mods() & MOD_MASK_SHIFT ) {
- clear_mods();
- SEND_STRING("git pull upstream ");
- } else {
- SEND_STRING("git fetch upstream ");
- }
- };
- return false;
- case G_BRCH:
- if (record->event.pressed) {
- if ( get_mods() & MOD_MASK_SHIFT ) {
- clear_mods();
- SEND_STRING("master");
- } else {
- SEND_STRING("$(git branch-name)");
- }
- };
- return false;
- case M_SALL:
- if (record->event.pressed) {
- if ( macroMode == 1 ) {
- SEND_STRING(SS_LGUI("a"));
- } else {
- SEND_STRING(SS_LCTL("a"));
- }
- }
- return false;
- case M_UNDO:
- if (record->event.pressed) {
- if ( macroMode == 1 ) {
- if ( get_mods() & MOD_MASK_SHIFT ) {
- SEND_STRING(SS_LSFT(SS_LGUI("z")));
- } else {
- SEND_STRING(SS_LGUI("z"));
- }
- } else {
- SEND_STRING(SS_LCTL("z"));
- }
- }
- return false;
- case M_CUT:
- if (record->event.pressed) {
- if ( macroMode == 1 ) {
- SEND_STRING(SS_LGUI("x"));
- } else {
- SEND_STRING(SS_LCTL("x"));
- }
- }
- return false;
- case M_COPY:
- if (record->event.pressed) {
- if ( macroMode == 1 ) {
- SEND_STRING(SS_LGUI("c"));
- } else {
- SEND_STRING(SS_LCTL("c"));
- }
- }
- return false;
- case M_PASTE:
- if (record->event.pressed) {
- if ( macroMode == 1 ) {
- if ( get_mods() & MOD_MASK_SHIFT ) {
- SEND_STRING(SS_LSFT(SS_LALT(SS_LGUI("v"))));
- } else {
- SEND_STRING(SS_LGUI("v"));
- }
- } else {
- SEND_STRING(SS_LCTL("v"));
- }
- }
- return false;
- case M_MDSWP:
- if (record->event.pressed) {
- macroMode ^= 1;
- }
- return false;
- case KC_1 ... KC_0:
- if (record->event.pressed) {
- if (get_mods() & MOD_MASK_RALT) {
- register_code(keycode + 0x3B);
- } else {
- register_code(keycode);
- }
- } else {
- if (get_mods() & MOD_MASK_RALT) {
- unregister_code(keycode + 0x3B);
- } else {
- unregister_code(keycode);
- }
- }
- return false;
- case KC_F1 ... KC_F12:
- if (record->event.pressed) {
- if (get_mods() & MOD_MASK_RALT) {
- register_code(keycode + 0x2E);
- } else {
- register_code(keycode);
- }
- } else {
- if (get_mods() & MOD_MASK_RALT) {
- unregister_code(keycode + 0x2E);
- } else {
- unregister_code(keycode);
- }
- }
- return false;
- case KC_PSCR:
- if (record->event.pressed) {
- if ( macroMode == 1 ) {
- tap_code16(G(S(KC_3)));
- } else {
- tap_code(KC_PSCR);
- }
- }
- return false;
- case KC_HOME:
- if (record->event.pressed) {
- if ( macroMode == 1 ) {
- tap_code16(G(KC_LEFT));
- } else {
- tap_code(KC_HOME);
- }
- }
- return false;
- case KC_END:
- if (record->event.pressed) {
- if ( macroMode == 1 ) {
- tap_code16(G(KC_RGHT));
- } else {
- tap_code(KC_END);
- }
- }
- return false;
- } // switch()
- return true;
- };
|