From 2908f1f96361435a4ba4a5baec8e3f45308963bf Mon Sep 17 00:00:00 2001 From: Rossman360 <53881724+Rossman360@users.noreply.github.com> Date: Sat, 4 Jan 2020 15:51:33 -0500 Subject: [PATCH] [Keymap] Rossman360 Userspace add (#7779) * create userspace * add early macro support, but gtg * attempt to create userspace. * all changes suggested --- users/rossman360/readme.md | 14 +++++ users/rossman360/rossman360.c | 104 ++++++++++++++++++++++++++++++++++ users/rossman360/rossman360.h | 6 ++ users/rossman360/rules.mk | 5 ++ 4 files changed, 129 insertions(+) create mode 100644 users/rossman360/readme.md create mode 100644 users/rossman360/rossman360.c create mode 100644 users/rossman360/rossman360.h create mode 100644 users/rossman360/rules.mk diff --git a/users/rossman360/readme.md b/users/rossman360/readme.md new file mode 100644 index 0000000000..ebb17d16cf --- /dev/null +++ b/users/rossman360/readme.md @@ -0,0 +1,14 @@ +Copyright 2020 Ross Montsinger rmontsinger@gmail.com @Rossman360 + +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 . \ No newline at end of file diff --git a/users/rossman360/rossman360.c b/users/rossman360/rossman360.c new file mode 100644 index 0000000000..ade1b630a8 --- /dev/null +++ b/users/rossman360/rossman360.c @@ -0,0 +1,104 @@ +#include "rossman360.h" + +void my_custom_function(void) { + +} + +#define PGMOD LT(_NUM, KC_PGDN) +#define TABMOD LT(_FN1, KC_TAB) +#define SPCMOD LT(_FN1, KC_SPACE) +#define ENTMOD LT(_FN2, KC_ENTER) +#define ESCMOD LT(_NUM, KC_ESC) +#define RSMOD LT(_FN1, KC_RSHIFT) +#define CMDBSP MT(MOD_LGUI, KC_BSPC) +#define ALTDEL MT(MOD_LALT, KC_DEL) +#define CTRLSP MT(MOD_LCTL, KC_SPACE) +#define BWORD LCTL(KC_BSPC) +#define JUMPBACK LSFT(KC_TAB) +#define LWORD LCTL(KC_LEFT) +#define RWORD LCTL(KC_RIGHT) +#define UNDO LCTL(KC_Z) +#define NTAB LCTL(KC_T) +#define CTAB LCTL(KC_W) +#define XPANDR LCTL(LSFT(KC_X)) +#define TAB1 LCTL(KC_1) +#define TAB2 LCTL(KC_2) +#define TAB3 LCTL(KC_3) +#define TAB4 LCTL(KC_4) +#define RVOLU LCTL(KC_RBRC) +#define RVOLD LCTL(KC_LBRC) + +__attribute__ ((weak)) +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + return true; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +switch (keycode) { + case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader + if (!record->event.pressed) { + uint8_t temp_mod = get_mods(); + uint8_t temp_osm = get_oneshot_mods(); + clear_mods(); clear_oneshot_mods(); + SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP); + #ifndef FLASH_BOOTLOADER + if ((temp_mod | temp_osm) & MOD_MASK_SHIFT) + #endif + { + SEND_STRING(":flash"); + } + if ((temp_mod | temp_osm) & MOD_MASK_CTRL) { + SEND_STRING(" -j8 --output-sync"); + } + tap_code(KC_ENT); + set_mods(temp_mod); + } + break; + case CSPEAK: + if (record->event.pressed) { + SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN)); + } + break; + case SPEAK1: + if (record->event.pressed) { + SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_1))); + } + break; + case SPEAK2: + if (record->event.pressed) { + SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_2))); + } + break; + case SPEAK3: + if (record->event.pressed) { + SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_3))); + } + break; + case SPEAK4: + if (record->event.pressed) { + SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_4))); + } + break; + case PARADOWN: + if (record->event.pressed) { + SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN)); + } + break; + case PMERGE: + if (record->event.pressed) { + SEND_STRING(SS_TAP(X_HOME) SS_TAP(X_BSPACE) SS_TAP(X_SPACE) SS_LCTRL(SS_TAP(X_BSPACE)) SS_TAP(X_SPACE)); + } + break; + case WREFRESH: + if (record->event.pressed) { + SEND_STRING(SS_TAP(X_SPACE) SS_TAP(X_BSPACE)); + } + break; + case REMCAPS: + if (record->event.pressed) { + SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_LCTRL(SS_TAP(X_LEFT)) SS_TAP(X_DELETE)); + } + break; +}; +return true; +}; diff --git a/users/rossman360/rossman360.h b/users/rossman360/rossman360.h new file mode 100644 index 0000000000..4c3e01a99d --- /dev/null +++ b/users/rossman360/rossman360.h @@ -0,0 +1,6 @@ +#pragma once + +#include "quantum.h" + +void my_custom_function(void); + diff --git a/users/rossman360/rules.mk b/users/rossman360/rules.mk new file mode 100644 index 0000000000..8aaa74316f --- /dev/null +++ b/users/rossman360/rules.mk @@ -0,0 +1,5 @@ +SRC += rossman360.c + +ifeq ($(strip $(MACROS_ENABLED)), yes) + OPT_DEFS += -DMACROS_ENABLED +endif \ No newline at end of file