summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Chang <william@factual.com>2019-12-07 12:50:41 -0800
committerWilliam Chang <william@factual.com>2019-12-07 12:50:41 -0800
commit1290039d7e5be1985d183e93d65cca18e828e8f8 (patch)
tree353511a73066f4b2de589299063afca49fba4e26
parente7541faadc27b53efc8421757a6354654f1a22b4 (diff)
Added keymap profile to space65
- This keymap profile is for MacOS with VIM key bindings - See readme for more information
-rw-r--r--keyboards/gray_studio/space65/keymaps/billiams/config.h20
-rw-r--r--keyboards/gray_studio/space65/keymaps/billiams/keymap.c125
-rw-r--r--keyboards/gray_studio/space65/keymaps/billiams/readme.md81
3 files changed, 226 insertions, 0 deletions
diff --git a/keyboards/gray_studio/space65/keymaps/billiams/config.h b/keyboards/gray_studio/space65/keymaps/billiams/config.h
new file mode 100644
index 0000000000..c2fdc91084
--- /dev/null
+++ b/keyboards/gray_studio/space65/keymaps/billiams/config.h
@@ -0,0 +1,20 @@
+/* Copyright 2019 MechMerlin
+ *
+ * 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/>.
+ */
+
+#pragma once
+
+// place overrides here
+#define GRAVE_ESC_GUI_OVERRIDE # Always send Escape if GUI is pressed
diff --git a/keyboards/gray_studio/space65/keymaps/billiams/keymap.c b/keyboards/gray_studio/space65/keymaps/billiams/keymap.c
new file mode 100644
index 0000000000..838b3d13e7
--- /dev/null
+++ b/keyboards/gray_studio/space65/keymaps/billiams/keymap.c
@@ -0,0 +1,125 @@
+/* Copyright 2019 MechMerlin
+ *
+ * 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 QMK_KEYBOARD_H
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+ QMKBEST = SAFE_RANGE,
+ QMKURL
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* Qwerty
+ * ,------------------------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | Del | INS |
+ * |------------------------------------------------------------------------------------------------+
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bkspc | PGUP |
+ * |------------------------------------------------------------------------------------------------+
+ * | Fn1 | A | S | D | F | G | H | J | K | L | ; | ' | Enter | PGDN |
+ * |------------------------------------------------------------------------------------------------+
+ * | Shift | Z | X | C | V | B | N | M | , | . | ?/ | Shift | up | ESC |
+ * |------------------------------------------------------------------------------------------------+
+ * | Ctrl | Alt | Cmd | Space | Alt | Ctrl | Left | Down | Right |
+ * `------------------------------------------------------------------------------------------------'
+ */
+
+[0] = LAYOUT( \
+ KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, KC_INS, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP, \
+ MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, \
+ KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_ESC, \
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \
+ ),
+
+ /* 1st Layer
+ * ,------------------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |Vol- |Vol+ | Next |
+ * |------------------------------------------------------------------------------------------------+
+ * | |RGB T|RGB M| Hue-| Hue+| Sat-| Sat+| Val-| Val+| | | | | | Prev |
+ * |------------------------------------------------------------------------------------------------+
+ * | | | | | | | Left| Down| Up |Right| | | Play/Pause | Vol+ |
+ * |------------------------------------------------------------------------------------------------+
+ * | | | | | | | | | | Scr- | Scr+ | | |PGUP | Vol- |
+ * |------------------------------------------------------------------------------------------------+
+ * | | | | | | Fn2 | HOME | PGDN | END |
+ * `------------------------------------------------------------------------------------------------'
+ */
+
+[1] = LAYOUT( \
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_MFFD, \
+ KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MRWD, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_MPLY, KC_VOLU, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BRID, KC_BRIU, KC_TRNS, KC_TRNS, KC_PGUP, KC_VOLD, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_HOME, KC_PGDN, KC_END \
+ ),
+
+ /* 2nd Layer
+ * ,------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | | |
+ * |------------------------------------------------------------------------------------------------+
+ * | | | | | | | | | | | | | | | |
+ * |------------------------------------------------------------------------------------------------+
+ * | | | | | | | | | | | | | | |
+ * |------------------------------------------------------------------------------------------------+
+ * | | | | | | | | | | | | | | | RESET |
+ * |------------------------------------------------------------------------------------------------+
+ * | | | | | | | | | |
+ * `------------------------------------------------------------------------------------------------'
+ */
+
+[2] = LAYOUT( \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \
+ ),
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QMKBEST:
+ if (record->event.pressed) {
+ // when keycode QMKBEST is pressed
+ SEND_STRING("QMK is the best thing ever!");
+ } else {
+ // when keycode QMKBEST is released
+ }
+ break;
+ case QMKURL:
+ if (record->event.pressed) {
+ // when keycode QMKURL is pressed
+ SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
+ } else {
+ // when keycode QMKURL is released
+ }
+ break;
+ }
+ return true;
+}
+
+void matrix_init_user(void) {
+
+}
+
+void matrix_scan_user(void) {
+
+}
+
+void led_set_user(uint8_t usb_led) {
+
+}
diff --git a/keyboards/gray_studio/space65/keymaps/billiams/readme.md b/keyboards/gray_studio/space65/keymaps/billiams/readme.md
new file mode 100644
index 0000000000..daebc2e9da
--- /dev/null
+++ b/keyboards/gray_studio/space65/keymaps/billiams/readme.md
@@ -0,0 +1,81 @@
+## Billiam's Space65 layout (with split backspace)
+
+This layout is optimized for vim users on MacOS with a split backspace.
+
+Settings:
+
+* The `CAPS LOCK` key is a function key.
+* The `ALT` and `CMD` keys are swapped to replicate the Mac layout.
+* RESET is available as `Fn`+ `Right Ctrl` + `ESC`
+* Underglow toggle is available as `Fn` + `Q`.
+* Backlighting toggle is available as `Fn` + `Z`
+* vim-style arrow key bindings H J K L in layer 1
+
+### Initial Installation
+
+I found the instructions to be longer than they had to be, and I ended up having to Google some steps anyway. These are the steps I took to get my keyboard setup, in case you are new to the process.
+
+1. Fork and Clone the qmk_firmware repo locally
+```
+# Choose one:
+git clone git@github.com:qmk/qmk_firmware.git # OR
+git clone https://github.com/qmk/qmk_firmware.git
+```
+2. Customize your layout by starting with a [keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gray_studio/space65/keymaps). I copied the default and changed it to my liking.
+3. Before plugging in your keyboard into your computer, hold `SPACE` and `B` keys down
+4. Holding those keys down, plug the keyboard into your computer, which will put the keyboard in bootlegger mode. Note that if you've done this before, it could be that you need to simply press `ESC` prior to plugging in the board to put it in Bootlegger mode.
+5. Build your hex file and flash your keyboard
+```
+make gray_studio/space65:billiams:flash # be in the qmk_firmware directory to do this
+```
+
+Notes:
+- If you are using QMK Toolbox, use `make gray_studio/space65:<keymap>` in the base qmk_firmware directory instead of step 5 above which will create a hex file like `space65_billiams.hex` which you can then choose in the toolbox and hit flash
+- If you accidentally loaded the default keymap, then to `RESET` the keyboard and kick it into bootlegger mode again, hold the `ESC` key and plug the board in.
+
+Hope this helps!
+
+### 0 Qwerty
+```
+,------------------------------------------------------------------------------------------------.
+| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | Del | INS |
+|------------------------------------------------------------------------------------------------+
+| Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bkspc | PGUP |
+|------------------------------------------------------------------------------------------------+
+| Fn1 | A | S | D | F | G | H | J | K | L | ; | ' | Enter | PGDN |
+|------------------------------------------------------------------------------------------------+
+| Shift | Z | X | C | V | B | N | M | , | . | ?/ | Shift | up | ESC |
+|------------------------------------------------------------------------------------------------+
+| Ctrl | Alt | Cmd | Space | Alt | Ctrl | Left | Down | Right |
+`------------------------------------------------------------------------------------------------'
+```
+
+### 1 Fn Layer
+```
+,------------------------------------------------------------------------------------------------.
+| | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |Vol- |Vol+ | Next |
+|------------------------------------------------------------------------------------------------+
+| |RGB T|RGB M| Hue-| Hue+| Sat-| Sat+| Val-| Val+| | | | | | Prev |
+|------------------------------------------------------------------------------------------------+
+| | | | | | | Left| Down| Up |Right| | | Play/Pause | Vol+ |
+|------------------------------------------------------------------------------------------------+
+| | | | | | | | | | Scr- | Scr+ | | |PGUP | Vol- |
+|------------------------------------------------------------------------------------------------+
+| | | | | | Fn2 | HOME | PGDN | END |
+`------------------------------------------------------------------------------------------------'
+```
+
+### 2 Fn Layer - Just for bootleg mode button
+```
+,------------------------------------------------------------------------------------------------.
+| | | | | | | | | | | | | | | | |
+|------------------------------------------------------------------------------------------------+
+| | | | | | | | | | | | | | | |
+|------------------------------------------------------------------------------------------------+
+| | | | | | | | | | | | | | |
+|------------------------------------------------------------------------------------------------+
+| | | | | | | | | | | | | | | RESET |
+|------------------------------------------------------------------------------------------------+
+| | | | | | | | | |
+`------------------------------------------------------------------------------------------------'
+```