浏览代码

[Keymap] Rossman360 Userspace add (#7779)

* create userspace

* add early macro support, but gtg

* attempt to create userspace.

* all changes suggested
Rossman360 5 年之前
父节点
当前提交
2908f1f963
共有 4 个文件被更改,包括 129 次插入0 次删除
  1. 14 0
      users/rossman360/readme.md
  2. 104 0
      users/rossman360/rossman360.c
  3. 6 0
      users/rossman360/rossman360.h
  4. 5 0
      users/rossman360/rules.mk

+ 14 - 0
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 <http://www.gnu.org/licenses/>.

+ 104 - 0
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;
+};

+ 6 - 0
users/rossman360/rossman360.h

@@ -0,0 +1,6 @@
+#pragma once
+
+#include "quantum.h"
+
+void my_custom_function(void);
+

+ 5 - 0
users/rossman360/rules.mk

@@ -0,0 +1,5 @@
+SRC += rossman360.c
+
+ifeq ($(strip $(MACROS_ENABLED)), yes)
+    OPT_DEFS += -DMACROS_ENABLED
+endif