summaryrefslogtreecommitdiff
path: root/keyboards/junco/keymaps/default
diff options
context:
space:
mode:
authorDane Skalski <daneski13@gmail.com>2023-04-05 01:06:24 -0700
committerGitHub <noreply@github.com>2023-04-05 18:06:24 +1000
commit1d045e854b7adbe8a60ce5aeb16438c4652949da (patch)
tree904c0314403569c311420dec5054bfa6551a94c3 /keyboards/junco/keymaps/default
parentf7176f070fd2b1cd6df25774f4de842200a7a342 (diff)
Add Junco Keyboard (#19516)
Diffstat (limited to 'keyboards/junco/keymaps/default')
-rw-r--r--keyboards/junco/keymaps/default/config.h38
-rw-r--r--keyboards/junco/keymaps/default/keymap.c161
-rw-r--r--keyboards/junco/keymaps/default/readme.md57
-rw-r--r--keyboards/junco/keymaps/default/rules.mk16
4 files changed, 272 insertions, 0 deletions
diff --git a/keyboards/junco/keymaps/default/config.h b/keyboards/junco/keymaps/default/config.h
new file mode 100644
index 0000000000..43c47b9122
--- /dev/null
+++ b/keyboards/junco/keymaps/default/config.h
@@ -0,0 +1,38 @@
+// Copyright 2022 Dane Skalski (@Daneski13)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+/* - Encoder settings - */
+#ifdef ENCODER_ENABLE
+# define ENCODER_RESOLUTION 4
+#endif
+#ifdef ENCODER_MAP_ENABLE
+// Key delay for encoders (necessary for some keycodes)
+# define ENCODER_MAP_KEY_DELAY 10
+#endif
+
+/*
+ - RGB Stuff -
+ All effects can be found in the QMK docs:
+ https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
+*/
+#ifdef RGB_MATRIX_ENABLE
+
+// Default effect when EEPROM cleared
+# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+
+// Turns off RGB effects when there is no longer a USB connection
+# define RGB_DISABLE_WHEN_USB_SUSPENDED
+
+// Key press reactive animations
+# define SPLIT_TRANSPORT_MIRROR // Necessary setting for key press animations
+# define RGB_MATRIX_KEYPRESSES // Enables key press effects
+# define ENABLE_RGB_MATRIX_MULTISPLASH
+
+// Normal effects
+# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
+# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+# define ENABLE_RGB_MATRIX_PIXEL_RAIN
+
+#endif
diff --git a/keyboards/junco/keymaps/default/keymap.c b/keyboards/junco/keymaps/default/keymap.c
new file mode 100644
index 0000000000..dc607477e2
--- /dev/null
+++ b/keyboards/junco/keymaps/default/keymap.c
@@ -0,0 +1,161 @@
+// Copyright 2022 Dane Skalski (@Daneski13)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+// Layers enum
+enum junco_layers { _QWERTY, _COLEMAK_DH, _SYMB, _EXT, _ADJUST };
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ // clang-format off
+ /*
+ Traditional QWERTY
+ ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐
+ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │
+ ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
+ │Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │Ent│
+ ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
+ │Esc│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │
+ ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤
+ │Sft│ Z │ X │ C │ V │ B │Mut│ │XXX│ N │ M │ , │ . │ / │Sft│
+ └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘
+ ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
+ │Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│
+ └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
+ For macOS - GUI (cmd) and Alt (opt) swapped
+ */
+ [_QWERTY] = LAYOUT_split4x6_r1(
+ KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENTER,
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL
+ ),
+
+ /*
+ Colemak-DH
+ ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐
+ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - │
+ ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
+ │Tab│ Q │ W │ F │ P │ B │ │ J │ L │ U │ Y │ ; │Ent│
+ ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
+ │Esc│ A │ R │ S │ T │ G │ │ M │ N │ E │ I │ O │ ' │
+ ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤
+ │Sft│ Z │ X │ C │ D │ V │Mut│ │XXX│ K │ H │ , │ . │ / │Sft│
+ └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘
+ ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
+ │Ctr│Win│Alt│Del│Spc│ │Sft│Bsp│Alt│Win│Ctr│
+ └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
+ For macOS - GUI (cmd) and Alt (opt) swapped
+ */
+ [_COLEMAK_DH] = LAYOUT_split4x6_r1(
+ KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SEMICOLON, KC_ENTER,
+ KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOTE,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_MUTE, KC_NO, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC, KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL
+ ),
+
+ /*
+ Symbols/Numpad Layer
+ ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐
+ │F1 │F2 │F3 │F4 │F5 │F6 │ │F7 │F8 │F9 │F10│F11│F12│
+ ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
+ │Tab│ ! │ @ │ # │ $ │ % │ │ * │ 7 │ 8 │ 9 │ + │Ent│
+ ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
+ │ \ │ _ │ [ │ { │ ( │ ^ │ │ = │ 4 │ 5 │ 6 │ 0 │NUM│
+ ├───┼───┼───┼───┼───┼───┼───┐ ┌───┼───┼───┼───┼───┼───┼───┤
+ │___│ | │ ] │ } │ ) │ & │___│ │___│ / │ 1 │ 2 │ 3 │ - │___│
+ └───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┴───┘
+ ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
+ │___│___│___│___│___│ │___│___│___│___│___│
+ └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
+ */
+ [_SYMB] = LAYOUT_split4x6_r1(
+ 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_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PAST, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_ENTER,
+ KC_BSLS, KC_UNDS, KC_LBRC, KC_LCBR, KC_LPRN, KC_CIRC, KC_PEQL, KC_P4, KC_P5, KC_P6, KC_P0, KC_NUM,
+ _______, KC_PIPE, KC_RBRC, KC_RCBR, KC_RPRN, KC_AMPR, _______, _______, KC_PSLS, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,
+ _______, _______, _______, MO(_ADJUST), _______, _______, _______, _______, _______, _______
+ ),
+
+ /*
+ Extension/Function Layer
+ ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐
+ │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10│ F11│ F12│
+ ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
+ │ ⇤ │PGUP│End │ ↑ │Home│ │ │BRIU│ F7 │ F8 │ F9 │ F10│____│
+ ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
+ │Cps │PGDN│ ← │ ↓ │ → │ │ │BRID│ F4 │ F5 │ F6 │ F11│____│
+ ├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤
+ │____│ │ │ │ │ │____│ │ ▶⏸ │ │ F1 │ F2 │ F3 │ F12│____│
+ └────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘
+ ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
+ │___│___│___│___│___│ │___│___│___│___│___│
+ └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
+ */
+ [_EXT] = LAYOUT_split4x6_r1(
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ S(KC_TAB), KC_PGUP, KC_END, KC_UP, KC_HOME, _______, KC_BRIU, KC_F7, KC_F8, KC_F9, KC_F10, _______,
+ KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_BRID, KC_F4, KC_F5, KC_F6, KC_F11, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, KC_F1, KC_F2, KC_F3, KC_F12, _______,
+ _______, _______, _______, _______, _______, _______, MO(_ADJUST), _______, _______, _______
+ ),
+
+ /*
+ Adjust Layer, Keyboard Settings
+ ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐
+ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
+ │SpdU│HueU│SatU│ValU│Rnxt│ │ │ │EClr│Rbt │DBUG│BOOT│ │
+ ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
+ │SpdD│HueD│SatD│ValD│Rprv│RTgl│ │ │QWRT│COLE│ │ │ │
+ ├────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤
+ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ └────┴────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┴────┘
+ ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
+ │___│___│___│___│___│ │___│___│___│___│___│
+ └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
+ */
+ [_ADJUST] = LAYOUT_split4x6_r1(
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_NO, KC_NO, EE_CLR, QK_RBT, DB_TOGG, QK_BOOT, KC_NO,
+ RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, RGB_TOG, KC_NO, DF(_QWERTY), DF(_COLEMAK_DH), KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+ // clang-format on
+};
+
+/*
+ --- Rotary Encoder Mappings ---
+
+ Encoder mappings go from leftmost encoder to rightmost encoder on the physical board.
+ index 0 is the the optional leftmost encoder on the left half, index 1 is the right encoder
+ on the left half (by the thumb keys), index 2 is the left encoder on the right half (by the
+ thumb keys), and index 3 is the optional rightmost encoder on the right half.
+
+ If you are only using the 2 required encoders by the thumb keys, you only need to worry about
+ index 1 and index 2.
+
+ Note that the keycode for counter-clockwise rotation (CCW) goes first and then the key for
+ clockwise (CW) within ENCODER_CCW_CW.
+*/
+#ifdef ENCODER_MAP_ENABLE
+// clang-format off
+
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ // Base layer encoder mappings:
+ // index 0: mouse wheel up (CCW)/down (CW) index 1: volume down/up index 2: mouse wheel up/down index 3: mouse wheel left/right
+ [_QWERTY] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_WH_L, KC_WH_R) },
+ [_COLEMAK_DH] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+
+ // Passes through to base layers
+ [_SYMB] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ // On the extension layer, the right side's left encoder by the thumb keys (mouse wheel up/down) is traded for media previous/next
+ [_EXT] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ // Passes through
+ [_ADJUST] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ // clang-format on
+};
+
+#endif
diff --git a/keyboards/junco/keymaps/default/readme.md b/keyboards/junco/keymaps/default/readme.md
new file mode 100644
index 0000000000..e37bf97ac7
--- /dev/null
+++ b/keyboards/junco/keymaps/default/readme.md
@@ -0,0 +1,57 @@
+# Default Junco Keymap
+
+This is the default layout for Junco. For the most part it's a normal QWERTY layout. The exceptions being the thumb keys, rotary encoders, and lack of caps lock (which is replaced by escape).
+
+One of the biggest features of QMK is it brings layers into the mix which can give you access to even more keys. There are 4 layers: the default/base layer (QWERTY), a symbol layer, an extension layer, and an adjust layer.
+
+Layers are very similar to Shift on a normal keyboard, where "a" becomes "A" when holding down shift. With a custom layer, you can have "j" become "4" for example and make an entire side of the keyboard become a number pad.
+
+The [symbol layer](#symbol-layer) is accessed by holding down backspace, the [extension layer](#extension-layer) is accessed by holding down delete, and the [adjust layer](#adjust-layer) is accessed by holding down both delete and backspace.
+
+## Default Base Layer (QWERTY)
+
+Grey keys are rotary encoders (the ones on far left and far right are optional). Middle legend is pressing down the encoder, bottom left legend is counter-clockwise turn, and bottom right legend is clockwise turn of the encoder.
+
+Those arrows for the bottom legends on the encoders are mouse scroll directions.
+
+Red legends are the layer activated by holding down a key.
+
+![Junco's QWERTY Layout](https://i.imgur.com/fXGt5Jh.png)
+
+## Symbol Layer
+
+This layer is accessed by holding down backspace on the base layer, thus that key is blacked out.
+
+On the symbol layer, the right side is a number pad, and the left side contains all the typical symbols (geared for programming).
+
+Holding down delete within the symbol layer will take you to the adjust layer.
+
+![Junco's Symbol Layer](https://i.imgur.com/6F35Z4Wh.png)
+
+## Extension Layer
+
+This layer's theme is navigation/extras, its accessed by holding down delete on the base layer, thus that key is blacked out.
+
+On the extension layer, the right side is the function keys in a number-pad-esque layout with screen brightness up/down, and the left side has navigation keys and caps lock. Also, the rotary on the right side encoder becomes media controls.
+
+Holding down backspace within the extension layer will take you to the adjust layer.
+
+![Junco's Extension Layer](https://i.imgur.com/FETcqkCh.png)
+
+## Adjust Layer
+
+This layer's theme is adjusting the keyboard's settings, it's accessed by holding down both delete and backspace on the base layer.
+
+On the adjust layer, the right side is the keyboard's settings: clear data, reboot, toggle debug mode, enter the bootloader, and change the base layer between QWERTY and [Colemak-DH](#colemak-dh). The left side adjusts the RGB lighting.
+
+![Junco's Adjust Layer](https://i.imgur.com/fRsdlt3h.png)
+
+## Colemak-DH
+
+This keymap offers Colemak-DH as an alternative base layer to QWERTY.
+
+QWERTY is default when flashing your keyboard, but you can change it to Colemak-DH by selecting it's key on the adjust layer.
+
+If you've never heard of it, Colemak is a keyboard layout that was designed to be a more ergonomic, modern, efficient, and comfortable replacement to QWERTY. Colemak was designed to place the most common letters in english on the home row along with many of the most common bigrams together (two letters typed in a row). Colemak-DH is a variant of Colemak that moves D and H to beneath the index fingers rather than the home row since most people find it easier and faster to reach the keys that way rather than the middle of the home row.
+
+![Junco's Colemak-DH Layout](https://i.imgur.com/8biZfn2h.png)
diff --git a/keyboards/junco/keymaps/default/rules.mk b/keyboards/junco/keymaps/default/rules.mk
new file mode 100644
index 0000000000..2304032cba
--- /dev/null
+++ b/keyboards/junco/keymaps/default/rules.mk
@@ -0,0 +1,16 @@
+# Change from yes to no to disable features
+
+# Enables Audio control and System control Keycodes
+EXTRAKEY_ENABLE = yes
+# Enables Mousekeys
+MOUSEKEY_ENABLE = yes
+# Encoder Support
+ENCODER_ENABLE = yes
+# Use Enocoder Mapping
+ENCODER_MAP_ENABLE = yes
+
+# Enables RGB Lighting Effects
+RGB_MATRIX_ENABLE = yes
+
+# Allows use of `qmk console` for debugging
+CONSOLE_ENABLE = yes