From 543a863766192eab626492ec4f48641743ffc797 Mon Sep 17 00:00:00 2001 From: mmccoyd Date: Sun, 20 Nov 2022 00:50:09 -0800 Subject: [Keyboard] Move Hillside out of handwired (#18751) Co-authored-by: mmccoyd --- keyboards/hillside/46/0_1/0_1.c | 19 +++ keyboards/hillside/46/0_1/0_1.h | 37 +++++ keyboards/hillside/46/0_1/config.h | 39 +++++ keyboards/hillside/46/0_1/info.json | 34 +++++ keyboards/hillside/46/0_1/rules.mk | 8 + keyboards/hillside/46/info.json | 73 +++++++++ keyboards/hillside/46/keymaps/default/config.h | 9 ++ keyboards/hillside/46/keymaps/default/keymap.json | 88 +++++++++++ keyboards/hillside/46/keymaps/default/readme.md | 136 +++++++++++++++++ keyboards/hillside/46/keymaps/default/rules.mk | 1 + .../hillside/46/keymaps/default_dot_c/config.h | 9 ++ .../hillside/46/keymaps/default_dot_c/keymap.c | 64 ++++++++ .../hillside/46/keymaps/default_dot_c/readme.md | 25 ++++ .../hillside/46/keymaps/default_dot_c/rules.mk | 1 + .../46/keymaps/manna-harbour_miryoku/config.h | 38 +++++ .../46/keymaps/manna-harbour_miryoku/keymap.c | 4 + keyboards/hillside/46/keymaps/via/keymap.c | 64 ++++++++ keyboards/hillside/46/keymaps/via/rules.mk | 2 + keyboards/hillside/46/readme.md | 29 ++++ keyboards/hillside/46/rules.mk | 1 + keyboards/hillside/48/0_1/0_1.c | 4 + keyboards/hillside/48/0_1/0_1.h | 34 +++++ keyboards/hillside/48/0_1/config.h | 35 +++++ keyboards/hillside/48/0_1/info.json | 35 +++++ keyboards/hillside/48/0_1/rules.mk | 8 + keyboards/hillside/48/info.json | 76 ++++++++++ keyboards/hillside/48/keymaps/default/config.h | 9 ++ keyboards/hillside/48/keymaps/default/keymap.json | 88 +++++++++++ keyboards/hillside/48/keymaps/default/readme.md | 165 +++++++++++++++++++++ keyboards/hillside/48/keymaps/default/rules.mk | 1 + .../48/keymaps/manna-harbour_miryoku/config.h | 38 +++++ .../48/keymaps/manna-harbour_miryoku/keymap.c | 4 + keyboards/hillside/48/keymaps/via/keymap.json | 61 ++++++++ keyboards/hillside/48/readme.md | 29 ++++ keyboards/hillside/48/rules.mk | 1 + keyboards/hillside/52/0_1/0_1.c | 21 +++ keyboards/hillside/52/0_1/0_1.h | 39 +++++ keyboards/hillside/52/0_1/config.h | 39 +++++ keyboards/hillside/52/0_1/info.json | 34 +++++ keyboards/hillside/52/0_1/rules.mk | 8 + keyboards/hillside/52/info.json | 79 ++++++++++ keyboards/hillside/52/keymaps/default/config.h | 9 ++ keyboards/hillside/52/keymaps/default/keymap.json | 88 +++++++++++ keyboards/hillside/52/keymaps/default/readme.md | 161 ++++++++++++++++++++ keyboards/hillside/52/keymaps/default/rules.mk | 1 + .../hillside/52/keymaps/default_dot_c/config.h | 9 ++ .../hillside/52/keymaps/default_dot_c/keymap.c | 64 ++++++++ .../hillside/52/keymaps/default_dot_c/readme.md | 25 ++++ .../hillside/52/keymaps/default_dot_c/rules.mk | 1 + .../52/keymaps/manna-harbour_miryoku/config.h | 38 +++++ .../52/keymaps/manna-harbour_miryoku/keymap.c | 4 + keyboards/hillside/52/keymaps/via/keymap.c | 64 ++++++++ keyboards/hillside/52/keymaps/via/rules.mk | 2 + keyboards/hillside/52/readme.md | 29 ++++ keyboards/hillside/52/rules.mk | 1 + keyboards/hillside/readme.md | 17 +++ 56 files changed, 2002 insertions(+) create mode 100644 keyboards/hillside/46/0_1/0_1.c create mode 100644 keyboards/hillside/46/0_1/0_1.h create mode 100644 keyboards/hillside/46/0_1/config.h create mode 100644 keyboards/hillside/46/0_1/info.json create mode 100644 keyboards/hillside/46/0_1/rules.mk create mode 100644 keyboards/hillside/46/info.json create mode 100644 keyboards/hillside/46/keymaps/default/config.h create mode 100644 keyboards/hillside/46/keymaps/default/keymap.json create mode 100644 keyboards/hillside/46/keymaps/default/readme.md create mode 100644 keyboards/hillside/46/keymaps/default/rules.mk create mode 100644 keyboards/hillside/46/keymaps/default_dot_c/config.h create mode 100644 keyboards/hillside/46/keymaps/default_dot_c/keymap.c create mode 100644 keyboards/hillside/46/keymaps/default_dot_c/readme.md create mode 100644 keyboards/hillside/46/keymaps/default_dot_c/rules.mk create mode 100644 keyboards/hillside/46/keymaps/manna-harbour_miryoku/config.h create mode 100644 keyboards/hillside/46/keymaps/manna-harbour_miryoku/keymap.c create mode 100644 keyboards/hillside/46/keymaps/via/keymap.c create mode 100644 keyboards/hillside/46/keymaps/via/rules.mk create mode 100644 keyboards/hillside/46/readme.md create mode 100644 keyboards/hillside/46/rules.mk create mode 100644 keyboards/hillside/48/0_1/0_1.c create mode 100644 keyboards/hillside/48/0_1/0_1.h create mode 100644 keyboards/hillside/48/0_1/config.h create mode 100644 keyboards/hillside/48/0_1/info.json create mode 100644 keyboards/hillside/48/0_1/rules.mk create mode 100644 keyboards/hillside/48/info.json create mode 100644 keyboards/hillside/48/keymaps/default/config.h create mode 100644 keyboards/hillside/48/keymaps/default/keymap.json create mode 100644 keyboards/hillside/48/keymaps/default/readme.md create mode 100644 keyboards/hillside/48/keymaps/default/rules.mk create mode 100644 keyboards/hillside/48/keymaps/manna-harbour_miryoku/config.h create mode 100644 keyboards/hillside/48/keymaps/manna-harbour_miryoku/keymap.c create mode 100644 keyboards/hillside/48/keymaps/via/keymap.json create mode 100644 keyboards/hillside/48/readme.md create mode 100644 keyboards/hillside/48/rules.mk create mode 100644 keyboards/hillside/52/0_1/0_1.c create mode 100644 keyboards/hillside/52/0_1/0_1.h create mode 100644 keyboards/hillside/52/0_1/config.h create mode 100644 keyboards/hillside/52/0_1/info.json create mode 100644 keyboards/hillside/52/0_1/rules.mk create mode 100644 keyboards/hillside/52/info.json create mode 100644 keyboards/hillside/52/keymaps/default/config.h create mode 100644 keyboards/hillside/52/keymaps/default/keymap.json create mode 100644 keyboards/hillside/52/keymaps/default/readme.md create mode 100644 keyboards/hillside/52/keymaps/default/rules.mk create mode 100644 keyboards/hillside/52/keymaps/default_dot_c/config.h create mode 100644 keyboards/hillside/52/keymaps/default_dot_c/keymap.c create mode 100644 keyboards/hillside/52/keymaps/default_dot_c/readme.md create mode 100644 keyboards/hillside/52/keymaps/default_dot_c/rules.mk create mode 100644 keyboards/hillside/52/keymaps/manna-harbour_miryoku/config.h create mode 100644 keyboards/hillside/52/keymaps/manna-harbour_miryoku/keymap.c create mode 100644 keyboards/hillside/52/keymaps/via/keymap.c create mode 100644 keyboards/hillside/52/keymaps/via/rules.mk create mode 100644 keyboards/hillside/52/readme.md create mode 100644 keyboards/hillside/52/rules.mk create mode 100644 keyboards/hillside/readme.md (limited to 'keyboards/hillside') diff --git a/keyboards/hillside/46/0_1/0_1.c b/keyboards/hillside/46/0_1/0_1.c new file mode 100644 index 0000000000..d958056801 --- /dev/null +++ b/keyboards/hillside/46/0_1/0_1.c @@ -0,0 +1,19 @@ +// Copyright 2022 Michael McCoyd (@mmccoyd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "0_1.h" + +// Keymatrix spots to ignore, as one signals handedness and others have no key +const matrix_row_t matrix_mask[] = { +//c:543210 column id's + 0b111111, + 0b111111, + 0b111111, + 0b111110, + +//c:543210 + 0b111111, + 0b111111, + 0b111111, + 0b111110 +}; diff --git a/keyboards/hillside/46/0_1/0_1.h b/keyboards/hillside/46/0_1/0_1.h new file mode 100644 index 0000000000..880b244237 --- /dev/null +++ b/keyboards/hillside/46/0_1/0_1.h @@ -0,0 +1,37 @@ +// Copyright 2022 Michael McCoyd (@mmccoyd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +/* This is a mapping so keymap files can be more readable to humans. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts those identifiers into a two-dimensional array which + * represents the switch matrix. + * + * The identifiers could be anything, but for human sanity have the folowing form + * + */ + +// clang-format off +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R05, R04, R03, R02, R01, R00, \ + L10, L11, L12, L13, L14, L15, R15, R14, R13, R12, R11, R10, \ + L20, L21, L22, L23, L24, L25, LT5, RT5, R25, R24, R23, R22, R21, R20, \ + LT1, LT2, LT3, LT4, RT4, RT3, RT2, RT1 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { KC_NO, LT1, LT2, LT3, LT4, LT5 }, \ + { R00, R01, R02, R03, R04, R05 }, \ + { R10, R11, R12, R13, R14, R15 }, \ + { R20, R21, R22, R23, R24, R25 }, \ + { KC_NO, RT1, RT2, RT3, RT4, RT5 } \ + } +// clang-format on diff --git a/keyboards/hillside/46/0_1/config.h b/keyboards/hillside/46/0_1/config.h new file mode 100644 index 0000000000..5cad8e3d5a --- /dev/null +++ b/keyboards/hillside/46/0_1/config.h @@ -0,0 +1,39 @@ +// Copyright 2022 Michael McCoyd (@mmccoyd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 8 +#define MATRIX_COLS 6 + +/* Split */ +#define SPLIT_HAND_MATRIX_GRID B5, F6 +#define MATRIX_MASKED + +/* Encoder */ +#define ENCODERS_PAD_A { F5 } +#define ENCODERS_PAD_B { F4 } +#define ENCODERS_PAD_A_RIGHT { F4 } +#define ENCODERS_PAD_B_RIGHT { F5 } + +#define RGBLIGHT_SLEEP + +/* Haptic hardware */ +// The Pimoroni is the likely hardware, for which these settings work +#define FB_ERM_LRA 1 +#define FB_BRAKEFACTOR 3 /* 1x:0, 2x:1, 3x:2, 4x:3, 6:4, 8:5, 16:6, Disable:7 */ +#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ +/* Please refer to your datasheet for optimal setting for your specific motor.*/ +#define RATED_VOLTAGE 2 +#define V_PEAK 2.8 +#define V_RMS 2.0 +#define F_LRA 205 /* resonance freq */ + +/* Haptic waveforms */ +// Two mild waveforms +#define DRV_GREETING alert_750ms +#define DRV_MODE_DEFAULT sharp_tick3_60 diff --git a/keyboards/hillside/46/0_1/info.json b/keyboards/hillside/46/0_1/info.json new file mode 100644 index 0000000000..29a23aad80 --- /dev/null +++ b/keyboards/hillside/46/0_1/info.json @@ -0,0 +1,34 @@ +{ + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + + "matrix_pins": { + "rows": ["C6", "D7", "E6", "B5"], + "cols": ["F6", "F7", "B1", "B3", "B2", "B6"] + }, + "diode_direction": "COL2ROW", + + "usb": { + "vid": "0x4D4D", + "pid": "0x4846", + "device_version": "0.0.1" + }, + + "features": { + "encoder": true, + "extrakey": true, + "rgblight": true + }, + "split": { + "soft_serial_pin": "D2" + }, + + "rgblight": { + "led_count": 4, + "pin": "D3", + "split": true, + "hue_steps": 8, + "saturation_steps": 8, + "brightness_steps": 8 + } +} diff --git a/keyboards/hillside/46/0_1/rules.mk b/keyboards/hillside/46/0_1/rules.mk new file mode 100644 index 0000000000..2501147ea8 --- /dev/null +++ b/keyboards/hillside/46/0_1/rules.mk @@ -0,0 +1,8 @@ +SPLIT_KEYBOARD = yes # Use shared split_common code +LTO_ENABLE = yes # Use link time optimization for smaller firmware + +# If you add a haptic board, +# enable it and set its driver here or in your keymap folder +# The Pimoroni board's driver is DRV2605L +# HAPTIC_ENABLE = yes # Enable haptic driver +# HAPTIC_DRIVER = DRV2605L diff --git a/keyboards/hillside/46/info.json b/keyboards/hillside/46/info.json new file mode 100644 index 0000000000..5af9add00f --- /dev/null +++ b/keyboards/hillside/46/info.json @@ -0,0 +1,73 @@ +{ + "manufacturer": "mmccoyd", + "maintainer": "mmccoyd", + + "keyboard_name": "Hillside 46", + "url": "http://github.com/mmccoyd/hillside/", + + "tags": ["split", "column stagger", "choc v1", "choc spaced" ], + + "layouts": { + "LAYOUT": { + "layout": [ + + {"label": "`~", "x": 0, "y": 1.13}, + {"label": "Q", "x": 1, "y": 0.93}, + {"label": "W", "x": 2.1, "y": 0.31}, + {"label": "E", "x": 3.2, "y": 0}, + {"label": "R", "x": 4.2, "y": 0.28}, + {"label": "T", "x": 5.2, "y": 0.42}, + + {"label": "Y", "x": 9.7, "y": 0.42}, + {"label": "U", "x": 10.7, "y": 0.28}, + {"label": "I", "x": 11.7, "y": 0}, + {"label": "O", "x": 12.8, "y": 0.31}, + {"label": "P", "x": 13.9, "y": 0.93}, + {"label": "Backspace", "x": 14.9, "y": 1.13}, + + + {"label": "Tab", "x": 0.1, "y": 2.13}, + {"label": "A", "x": 1.1, "y": 1.93}, + {"label": "S", "x": 2.15, "y": 1.31}, + {"label": "D", "x": 3.2, "y": 1}, + {"label": "F", "x": 4.2, "y": 1.28}, + {"label": "G", "x": 5.2, "y": 1.42}, + + {"label": "H", "x": 9.7, "y": 1.42}, + {"label": "J", "x": 10.7, "y": 1.28}, + {"label": "K", "x": 11.7, "y": 1}, + {"label": "L", "x": 12.75, "y": 1.31}, + {"label": ";", "x": 13.8, "y": 1.93}, + {"label": "Enter", "x": 14.8, "y": 2.13}, + + + {"label": "Ctrl", "x": 0.2, "y": 3.13}, + {"label": "Z", "x": 1.2, "y": 2.93}, + {"label": "X", "x": 2.2, "y": 2.31}, + {"label": "C", "x": 3.2, "y": 2}, + {"label": "V", "x": 4.2, "y": 2.28}, + {"label": "B", "x": 5.2, "y": 2.42}, + {"label": "ESC", "x": 6.2, "y": 2.88}, + + {"label": "CAP", "x": 8.7, "y": 2.88}, + {"label": "N", "x": 9.7, "y": 2.42}, + {"label": "M", "x": 10.7, "y": 2.28}, + {"label": ",", "x": 11.7, "y": 2}, + {"label": ".", "x": 12.7, "y": 2.31}, + {"label": "/", "x": 13.7, "y": 2.93}, + {"label": "'", "x": 14.7, "y": 3.13}, + + + {"label": "Gui", "x": 3.7, "y": 3.28}, + {"label": "Alt", "x": 4.7, "y": 3.42}, + {"label": "Shift", "x": 5.7, "y": 3.88}, + {"label": "Nav", "x": 6.7, "y": 4.44}, + + {"label": "Sym", "x": 8.2, "y": 4.44}, + {"label": "Space", "x": 9.2, "y": 3.88}, + {"label": "Alt", "x": 10.2, "y": 3.42}, + {"label": "Gui", "x": 11.2, "y": 3.28} + ] + } + } +} diff --git a/keyboards/hillside/46/keymaps/default/config.h b/keyboards/hillside/46/keymaps/default/config.h new file mode 100644 index 0000000000..d209c914bf --- /dev/null +++ b/keyboards/hillside/46/keymaps/default/config.h @@ -0,0 +1,9 @@ +// Copyright 2022 Michael McCoyd (@mmccoyd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Some boards have issues detecting handedness using the vbus voltage. +// Such as Elite-C v3, but not v3.1 on. Also apparently some ProMicro boards. +// For those boands, use usb detection instead. +// #define SPLIT_USB_DETECT diff --git a/keyboards/hillside/46/keymaps/default/keymap.json b/keyboards/hillside/46/keymaps/default/keymap.json new file mode 100644 index 0000000000..b24aafa32b --- /dev/null +++ b/keyboards/hillside/46/keymaps/default/keymap.json @@ -0,0 +1,88 @@ +{ "version": 1, + "notes": "", + "documentation": "\"This file is a QMK Configurator export. You can import this at . It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: \n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n", + "keyboard": "hillside/46", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + ["KC_GRV" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T", + "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_BSPC", + + "KC_TAB" , "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G", + "KC_H" , "KC_J" , "KC_K" , "KC_L" , "KC_SCLN", "KC_ENT", + + "KC_LCTL" , "KC_Z" , "KC_X" , "KC_C" , "KC_V" , "KC_B" , "KC_ESC", + "ANY(CW_TOGG)", "KC_N" , "KC_M" , "KC_COMM", "KC_DOT" , "KC_SLSH" , "KC_QUOT", + + "KC_LGUI" , "KC_LALT" , "OSM(MOD_LSFT)", "MO(3)", + "MO(4)" , "KC_SPC" , "KC_LALT" , "KC_RGUI" + + ], + ["KC_GRV" , "KC_QUOT" , "KC_COMM" , "KC_DOT" , "KC_P" , "KC_Y", + "KC_F" , "KC_G" , "KC_C" , "KC_R" , "KC_L" , "KC_BSPC", + + "KC_TAB" , "KC_A" , "KC_O" , "KC_E" , "KC_U" , "KC_I", + "KC_D" , "KC_H" , "KC_T" , "KC_N" , "KC_S" , "KC_ENT", + + "KC_LCTL" , "KC_SCLN" , "KC_Q" , "KC_J" , "KC_K" , "KC_X" , "KC_ESC", + "ANY(CW_TOGG)", "KC_B" , "KC_M" , "KC_W" , "KC_V" , "KC_Z" , "KC_SLSH", + + "KC_LGUI" , "KC_LALT" , "OSM(MOD_LSFT)", "MO(3)", + "MO(4)" , "KC_SPC" , "KC_LALT" , "KC_RGUI" + + ], + ["KC_GRV" , "KC_Q" , "KC_W" , "KC_F" , "KC_P" , "KC_B", + "KC_J" , "KC_L" , "KC_U" , "KC_Y" , "KC_SCLN", "KC_BSPC", + + "KC_TAB" , "KC_A" , "KC_R" , "KC_S" , "KC_T" , "KC_G", + "KC_M" , "KC_N" , "KC_E" , "KC_I" , "KC_O" , "KC_ENT", + + "KC_LCTL" , "KC_Z" , "KC_TRNS" , "KC_C" , "KC_D" , "KC_V" , "KC_ESC", + "ANY(CW_TOGG)", "KC_K" , "KC_H" , "KC_COMM", "KC_DOT" , "KC_SLSH" , "KC_QUOT", + + "KC_LGUI" , "KC_LALT" , "OSM(MOD_LSFT)", "MO(3)", + "MO(4)" , "KC_SPC" , "KC_LALT" , "KC_RGUI" + + ], + ["LCTL(KC_C)" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5", + "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_TRNS", + + "LCTL(KC_X)" , "KC_LGUI" , "KC_LALT" , "KC_LCTL", "KC_LSFT", "LCTL(KC_V)", + "KC_PGUP" , "KC_LEFT" , "KC_UP" , "KC_DOWN", "KC_RGHT", "KC_PGDN", + + "KC_TRNS" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F4" , "KC_F5" , "LCTL(KC_Z)", + "LCTL(KC_Y)" , "KC_F6" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10" , "KC_RCTL", + + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "MO(5)" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" + + ], + ["KC_INS" , "KC_EXLM" , "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", + "KC_CIRC" , "KC_AMPR" , "KC_ASTR" , "KC_LPRN", "KC_RPRN", "KC_DEL", + + "KC_NO" , "KC_BSLS" , "KC_MINS" , "KC_EQL" , "KC_LBRC", "KC_RBRC", + "KC_HOME" , "KC_RSFT" , "KC_RCTL" , "KC_LALT", "KC_RGUI", "KC_END", + + "KC_TRNS" , "KC_PIPE" , "KC_UNDS" , "KC_PLUS", "KC_LCBR", "KC_RCBR" , "OSM(MOD_RALT)", + "KC_APP" , "KC_MUTE" , "KC_VOLD" , "KC_VOLU", "KC_MPLY", "KC_NO" , "KC_RCTL", + + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "MO(5)", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" + + ], + ["KC_NO" , "DF(0)" , "DF(1)" , "DF(2)" , "AG_SWAP", "CG_SWAP", + "KC_NO" , "KC_F11" , "KC_F12" , "KC_PSCR", "KC_NO" , "EE_CLR", + + "KC_NO" , "KC_NO" , "KC_BRID" , "KC_BRIU", "AG_NORM", "CG_NORM", + "RGB_MOD" , "RGB_VAI" , "RGB_HUI" , "RGB_SAI", "KC_NO" , "KC_NO", + + "KC_NO" , "KC_LGUI" , "KC_LALT" , "KC_LCTL", "KC_LSFT", "KC_NO" , "KC_NO", + "RGB_TOG" , "RGB_RMOD", "RGB_VAD" , "RGB_HUD", "RGB_SAD", "KC_NO" , "QK_BOOT", + + "KC_NO" , "KC_NO" , "KC_NO" , "KC_TRNS", + "KC_TRNS" , "KC_NO" , "KC_NO" , "KC_NO" + + ] + ], + "author": "@mmccoyd" +} diff --git a/keyboards/hillside/46/keymaps/default/readme.md b/keyboards/hillside/46/keymaps/default/readme.md new file mode 100644 index 0000000000..64356ebaa7 --- /dev/null +++ b/keyboards/hillside/46/keymaps/default/readme.md @@ -0,0 +1,136 @@ +# Hillside 46 Default Keymap + +For easier initial use, this keymap follows the layout of more standard keyboards where possible. It is a starting point for you to tweak over time to suit your preferences better. You can easily customize it with the [QMK configurator](https://config.qmk.fm/#/hillside/46/LAYOUT). + +Some of its key features are: + +- Numbers and symbols along the top row of their layers for familiarity. +- Comfortable modifier and function or symbol combinations on the non-base layers using modifiers on the home row of the symbol and number/function layers. +- A layer with both navigation and editing keys allows document editing without leaving the layer. +- QWERTY, Colemak-DH and Dvorak base layer options. + +## Base Layer + + +![Base QWERTY layer](https://imgur.com/C2kxwOuh.png) + +The base layer provides a very standard key layout with four differences: + +- Numbers, functions and most symbols are accessed with number and symbol shift keys. +- Escape is on the upper left thumb. +- The left thumb has a shift key that affects the next key pressed. So to get 'A', press and release the thumb shift key, press 'a'. You can also hold the key down, and it will work like a standard shift key. +- Caps word toggles a mode that capitalizes all letters until something other than a letter, digit, dash, underscore, delete or backspace is typed. The mode also times out five seconds after the last key press. +- The Menu and AltGr keys are on a layer. + +The default layout is QWERTY with alternatives of Dvorak and Colemak-DH, and the alt/option and win/command key locations are swappable for windows or mac. + +
+Details of Dvorak and Colemak-DH +The Dvorak and Colemak-DH base layers have identical non-alpha and non-symbol keys as the QWERTY base layer. +![Base Dvorak layer](https://imgur.com/5gGk2rOh.png) +![Base Colemak layer](https://imgur.com/xExBB8eh.png) +
+ + +## Navigation, Editing, Number and Function Layer + +![Navigation layer](https://imgur.com/Obx6oRTh.png) + +Holding down the Nav/Edit key accesses the navigation, editing, number and function layer: + +- Numbers are along the top row, and function keys are on the bottom. +- The arrow keys on the right can be combined with the home row modifiers on the left to easily move around and select text, which can then be cut, copied and pasted. + + +## Symbol and Media Layer + +![Symbol layer](https://imgur.com/mzcB2JFh.png) + +Holding down the SYM key accesses the symbol layer: + +- The symbols not present on the base layer are along the top row and left side, arranged similarly to a large keyboard. +- Duplicates of the modifier keys are along the right home keys. This positioning allows a very comfortable combination of any set of modifiers plus a key on the left side of the board. +- Forward delete is on the upper right, taking backspace's place. +- The Window OS application menu key is on the right upper thumb. +- The AltGr key affects the next key pressed so that it can combine with a key on any layer. It changes the meaning of the next key pressed after the AltGr key is pressed and released. For example, to do AltGr-h: press SYM, press and release AltGr, release SYM, press and release h. + + +## Adjust Layer + +![Adjust layer](https://imgur.com/r3Ip7hxh.png) + +Simultaneously holding down the Sym and Nav/Edit keys enables keys to adjust keyboard settings: + +- The base layer can be set to QWERTY, Colemak-DH or Dvorak, although the keyboard reverts to QWERTY each time it is plugged in. +- Alt/option and GUI/command can be swapped for mac users or restored to the windows norm. +- The backlight LEDs can be enabled, disabled, and controlled. +- BOOT allows loading new firmware, such as for keymap changes. + +## Make it Yours + +If you are coming from a traditional keyboard, + with a large set of physical keys, + learning to use a column staggered (ergo) and layer-based keyboard, + which uses layers instead of finger reaches to access numbers, symbols and functions, + will be an adjustment for your muscle memory and your mental keyboard map. +This default layout tries to simplify that adjustment by keeping things in the expected spots when possible. + +Yet this layout is only a decent compromise and is not optimal for each user. +The online [configurator](https://config.qmk.fm/#/hillside/46/LAYOUT) makes it easy to tweak this layout to your needs. +You can add additional layers or completely switch around what these do. + +A good metaphor is to think of your keymap as a bonsai tree that you tweak slightly over time + in response to ideas of how it might serve you better. + +Some changes you might consider making: + +- If you are on a mac, switch the editing keys from ctrl-x to cmd-x. +- Put some of your most-used key combinations on the unused keys + on the symbol layer. +- Instead of holding down the thumb key to keep the symbol layer active, + you could use a one-shot layer key. + One-shot modifiers are likely less stress on your hands and may even be faster. + You would still be able to hold it down instead. +- Instead of holding down the key for the number layer, + you could make it a layer toggle. + +Here are some other keymaps for inspiration and ideas: + +- The [Ferris default](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/keymaps/default) uses more advanced features as it has far fewer keys to work with. +- The [Miryoku](https://github.com/manna-harbour/miryoku/tree/master/docs/reference) keymap ensures that all modifiers are comfortably available with each character key. +- The [Kyria default](https://github.com/qmk/qmk_firmware/tree/master/keyboards/splitkb/kyria/keymaps/default) has different keymap choices. + +## Why no keymap.c + +The online configurator provides a straightforward visual way + to work with a simple layout and uses a .json keymap format. +So this default ```keymap.json``` was created with the online configurator. + +If you wish, you can edit the ```keymap.json``` directly in a text editor, compile it and flash it. + +Or, you can use the graphical configurator to edit the keymap. To do that: + +- Open the [QMK configurator](https://config.qmk.fm/#/hillside/46/LAYOUT) +- Using the green up arrow button, load the keymap from ```qmk_firmware/keyboards/hillside/46/keymaps/default/keymap.json``` +- Make the changes you wish to the layout +- Save the keymap using the green down arrow button. +- Move the downloaded keymap back into your QMK repository + at the same location as above. +- Rename it back to keymap.json +- Compile and flash the firmware. + +You can combine a .json based keymap with more advanced features + specified in .c files with a bit more complexity. +For example, see + [pierrec83's Kyria map](https://github.com/qmk/qmk_firmware/tree/master/keyboards/splitkb/kyria/keymaps/pierrec83). + + +### Pretty Printing + +The QMK configurator's .json download has only one key per line, +so it is hard to visualize the keymap if editing manually. +If you want, the Hillside git repo has a pretty-printing script for the keymap.json file. + +As with anything downloaded from the internet, you should take some steps to assure yourself that the script will not harm your computer nor steal your data. The script is short, so reading it should at least convince you it is rearranging and printing the keymap feed to it, not reading any banking data on your computer. +See the [Hillside wiki](https://github.com/mmccoyd/hillside/wiki) for the script. + diff --git a/keyboards/hillside/46/keymaps/default/rules.mk b/keyboards/hillside/46/keymaps/default/rules.mk new file mode 100644 index 0000000000..4711d2ff74 --- /dev/null +++ b/keyboards/hillside/46/keymaps/default/rules.mk @@ -0,0 +1 @@ +CAPS_WORD_ENABLE = yes diff --git a/keyboards/hillside/46/keymaps/default_dot_c/config.h b/keyboards/hillside/46/keymaps/default_dot_c/config.h new file mode 100644 index 0000000000..d209c914bf --- /dev/null +++ b/keyboards/hillside/46/keymaps/default_dot_c/config.h @@ -0,0 +1,9 @@ +// Copyright 2022 Michael McCoyd (@mmccoyd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Some boards have issues detecting handedness using the vbus voltage. +// Such as Elite-C v3, but not v3.1 on. Also apparently some ProMicro boards. +// For those boands, use usb detection instead. +// #define SPLIT_USB_DETECT diff --git a/keyboards/hillside/46/keymaps/default_dot_c/keymap.c b/keyboards/hillside/46/keymaps/default_dot_c/keymap.c new file mode 100644 index 0000000000..8a1a7cfbe2 --- /dev/null +++ b/keyboards/hillside/46/keymaps/default_dot_c/keymap.c @@ -0,0 +1,64 @@ +// Copyright 2022 Michael McCoyd (@mmccoyd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY = 0, + _NAV, + _SYM, + _ADJUST, +}; + +#define xxxxxxx KC_NO + +#define LY_NAV MO(_NAV) +#define LY_SYM MO(_SYM) +#define LY_ADJ MO(_ADJUST) +#define ALT_GR OSM(MOD_RALT) +#define OSM_SFT OSM(MOD_LSFT) +#define PLY_PAU KC_MEDIA_PLAY_PAUSE + +#define UNDO LCTL(KC_Z) +#define CUT LCTL(KC_X) +#define COPY LCTL(KC_C) +#define PASTE LCTL(KC_V) +#define REDO LCTL(KC_Y) +// (For OS X, you'll want to change these editing keys to LGUI(KC_Z) etc.) + + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ESC, CW_TOGG, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, + KC_LGUI, KC_LALT, OSM_SFT, LY_NAV , LY_SYM , KC_SPC , KC_LALT, KC_RGUI + ), + [_NAV] = LAYOUT( + COPY , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, + CUT , KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, PASTE , KC_PGUP, KC_LEFT, KC_UP , KC_DOWN, KC_RGHT, KC_PGDN, + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , UNDO , REDO , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_RCTL, + _______, _______, _______, _______, LY_ADJ , _______, _______, _______ + ), + [_SYM] = LAYOUT( + KC_INS, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + xxxxxxx, KC_BSLS, KC_MINS, KC_EQL , KC_LBRC, KC_RBRC, KC_HOME, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, KC_END, + _______, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, ALT_GR , KC_APP , KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, xxxxxxx, KC_RCTL, + _______, _______, _______, LY_ADJ , _______, _______, _______, _______ + ), + [_ADJUST] = LAYOUT( + xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, AG_SWAP, CG_SWAP, xxxxxxx, KC_F11 , KC_F12 , KC_PSCR, xxxxxxx, EE_CLR, + xxxxxxx, xxxxxxx, KC_BRID, KC_BRIU, AG_NORM, CG_NORM, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, xxxxxxx, xxxxxxx, + xxxxxxx, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, xxxxxxx, xxxxxxx, RGB_TOG, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, xxxxxxx, QK_BOOT, + xxxxxxx, xxxxxxx, xxxxxxx, _______, _______, xxxxxxx, xxxxxxx, xxxxxxx + ), +}; + +// Template: +// [_INDEX] = LAYOUT( +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______ +// ), diff --git a/keyboards/hillside/46/keymaps/default_dot_c/readme.md b/keyboards/hillside/46/keymaps/default_dot_c/readme.md new file mode 100644 index 0000000000..713a4f383b --- /dev/null +++ b/keyboards/hillside/46/keymaps/default_dot_c/readme.md @@ -0,0 +1,25 @@ +# Default Hillside 46 Layout (in .c format) + +This layout is for those who prefer defining their layout in a keymap.c, + instead of graphically with a keymap.json. +It is the same as the [default keymap.json layout](https://github.com/qmk/qmk_firmware/blob/master/keyboards/hillside/46/keymaps/default), + except for having only a QWERTY base layer. + +The make and flash commands are + +``` +make hillside/46:default_dot_c +make hillside/46:default_doc_c:flash + +``` + +It also serves as a simple, clean layout + to verify that the configuration and switches work. +Use the [QMK Configurator Tester](https://config.qmk.fm/#/test) + to see that the switches produce output. +All the keys should register on the layout tester + except for the caps word and the two layer keys. +The LEDs should glow a nice red. +If they do not, you may need to clear the persistent EEPROM settings with the + EE_CLR key on the adjust layer, + or enable them with the RGB_TOG key. diff --git a/keyboards/hillside/46/keymaps/default_dot_c/rules.mk b/keyboards/hillside/46/keymaps/default_dot_c/rules.mk new file mode 100644 index 0000000000..4711d2ff74 --- /dev/null +++ b/keyboards/hillside/46/keymaps/default_dot_c/rules.mk @@ -0,0 +1 @@ +CAPS_WORD_ENABLE = yes diff --git a/keyboards/hillside/46/keymaps/manna-harbour_miryoku/config.h b/keyboards/hillside/46/keymaps/manna-harbour_miryoku/config.h new file mode 100644 index 0000000000..fa808ef681 --- /dev/null +++ b/keyboards/hillside/46/keymaps/manna-harbour_miryoku/config.h @@ -0,0 +1,38 @@ +// Copyright 2022 Davide Masserut (@mssdvd) +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// 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 . + +#pragma once + +#define XXX KC_NO + +// clang-format off +#if defined MIRYOKU_MAPPING_EXTENDED_THUMBS +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT( \ +XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ +XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ +XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ + XXX, K32, K33, K34, K35, K36, K37, XXX \ +) +#else +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT( \ +XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ +XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ +XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ + K32, K33, K34, XXX, XXX, K35, K36, K37 \ +) +#endif diff --git a/keyboards/hillside/46/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/hillside/46/keymaps/manna-harbour_miryoku/keymap.c new file mode 100644 index 0000000000..dbab7f9820 --- /dev/null +++ b/keyboards/hillside/46/keymaps/manna-harbour_miryoku/keymap.c @@ -0,0 +1,4 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// 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 . diff --git a/keyboards/hillside/46/keymaps/via/keymap.c b/keyboards/hillside/46/keymaps/via/keymap.c new file mode 100644 index 0000000000..8a1a7cfbe2 --- /dev/null +++ b/keyboards/hillside/46/keymaps/via/keymap.c @@ -0,0 +1,64 @@ +// Copyright 2022 Michael McCoyd (@mmccoyd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY = 0, + _NAV, + _SYM, + _ADJUST, +}; + +#define xxxxxxx KC_NO + +#define LY_NAV MO(_NAV) +#define LY_SYM MO(_SYM) +#define LY_ADJ MO(_ADJUST) +#define ALT_GR OSM(MOD_RALT) +#define OSM_SFT OSM(MOD_LSFT) +#define PLY_PAU KC_MEDIA_PLAY_PAUSE + +#define UNDO LCTL(KC_Z) +#define CUT LCTL(KC_X) +#define COPY LCTL(KC_C) +#define PASTE LCTL(KC_V) +#define REDO LCTL(KC_Y) +// (For OS X, you'll want to change these editing keys to LGUI(KC_Z) etc.) + + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ESC, CW_TOGG, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, + KC_LGUI, KC_LALT, OSM_SFT, LY_NAV , LY_SYM , KC_SPC , KC_LALT, KC_RGUI + ), + [_NAV] = LAYOUT( + COPY , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, + CUT , KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, PASTE , KC_PGUP, KC_LEFT, KC_UP , KC_DOWN, KC_RGHT, KC_PGDN, + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , UNDO , REDO , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_RCTL, + _______, _______, _______, _______, LY_ADJ , _______, _______, _______ + ), + [_SYM] = LAYOUT( + KC_INS, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + xxxxxxx, KC_BSLS, KC_MINS, KC_EQL , KC_LBRC, KC_RBRC, KC_HOME, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, KC_END, + _______, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, ALT_GR , KC_APP , KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, xxxxxxx, KC_RCTL, + _______, _______, _______, LY_ADJ , _______, _______, _______, _______ + ), + [_ADJUST] = LAYOUT( + xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, AG_SWAP, CG_SWAP, xxxxxxx, KC_F11 , KC_F12 , KC_PSCR, xxxxxxx, EE_CLR, + xxxxxxx, xxxxxxx, KC_BRID, KC_BRIU, AG_NORM, CG_NORM, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, xxxxxxx, xxxxxxx, + xxxxxxx, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, xxxxxxx, xxxxxxx, RGB_TOG, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, xxxxxxx, QK_BOOT, + xxxxxxx, xxxxxxx, xxxxxxx, _______, _______, xxxxxxx, xxxxxxx, xxxxxxx + ), +}; + +// Template: +// [_INDEX] = LAYOUT( +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______ +// ), diff --git a/keyboards/hillside/46/keymaps/via/rules.mk b/keyboards/hillside/46/keymaps/via/rules.mk new file mode 100644 index 0000000000..fcd5f229ea --- /dev/null +++ b/keyboards/hillside/46/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +CAPS_WORD_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/hillside/46/readme.md b/keyboards/hillside/46/readme.md new file mode 100644 index 0000000000..4a02982843 --- /dev/null +++ b/keyboards/hillside/46/readme.md @@ -0,0 +1,29 @@ +# Hillside 46 + +![hillside](https://imgur.com/VFA9E4Yh.png) + +[Hillside 46](https://github.com/mmccoyd/hillside) + is a split ergonomic keyboard with 3x6+5 choc-spaced keys, + splayed ring and pinkie columns, aggressive column stagger, + a longer thumb arc and a breakoff outer-pinkie column. + +* Keyboard Maintainer: [Michael McCoyd](https://github.com/mmccoyd) +* Hardware Supported: ProMicro/Elite-C and compatible +* Hardware Availability: https://github.com/mmccoyd/hillside + +Make example for this keyboard (after setting up your build environment): + + make hillside/46/0_1:default + +Flashing example for this keyboard: + + make hillside/46/0_1:default:flash + +## Bootloader + +Enter the bootloader by either: + +* **Physical reset button**: Briefly press the button on the front of the PCB. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/hillside/46/rules.mk b/keyboards/hillside/46/rules.mk new file mode 100644 index 0000000000..f3e926a8dc --- /dev/null +++ b/keyboards/hillside/46/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = hillside/46/0_1 \ No newline at end of file diff --git a/keyboards/hillside/48/0_1/0_1.c b/keyboards/hillside/48/0_1/0_1.c new file mode 100644 index 0000000000..34659eb424 --- /dev/null +++ b/keyboards/hillside/48/0_1/0_1.c @@ -0,0 +1,4 @@ +// Copyright 2022 Michael McCoyd (@mmccoyd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "0_1.h" diff --git a/keyboards/hillside/48/0_1/0_1.h b/keyboards/hillside/48/0_1/0_1.h new file mode 100644 index 0000000000..65e1aaee30 --- /dev/null +++ b/keyboards/hillside/48/0_1/0_1.h @@ -0,0 +1,34 @@ +// Copyright 2022 Michael McCoyd (@mmccoyd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts those identifiers into a two-dimensional array which + * represents the switch matrix. + */ + +// clang-format off +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ + L20, L21, L22, L23, L24, L25, LT4, RT4, R20, R21, R22, R23, R24, R25, \ + L30, LT0, LT1, LT2, LT3, RT3, RT2, RT1, RT0, R30 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L30, LT0, LT1, LT2, LT3, LT4 }, \ + { R05, R04, R03, R02, R01, R00 }, \ + { R15, R14, R13, R12, R11, R10 }, \ + { R25, R24, R23, R22, R21, R20 }, \ + { R30, RT0, RT1, RT2, RT3, RT4 } \ + } +// clang-format on diff --git a/keyboards/hillside/48/0_1/config.h b/keyboards/hillside/48/0_1/config.h new file mode 100644 index 0000000000..c83b23d0e8 --- /dev/null +++ b/keyboards/hillside/48/0_1/config.h @@ -0,0 +1,35 @@ +// Copyright 2021 Michael McCoyd (@mmccoyd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 8 +#define MATRIX_COLS 6 + +/* Encoder */ +#define ENCODERS_PAD_A { F5 } +#define ENCODERS_PAD_B { F4 } +#define ENCODERS_PAD_A_RIGHT { F4 } +#define ENCODERS_PAD_B_RIGHT { F5 } + +#define RGBLIGHT_SLEEP + +/* Haptic hardware */ +// The Pimoroni is the likely hardware, for which these settings work +#define FB_ERM_LRA 1 +#define FB_BRAKEFACTOR 3 /* 1x:0, 2x:1, 3x:2, 4x:3, 6:4, 8:5, 16:6, Disable:7 */ +#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ +/* Please refer to your datasheet for optimal setting for your specific motor.*/ +#define RATED_VOLTAGE 2 +#define V_PEAK 2.8 +#define V_RMS 2.0 +#define F_LRA 205 /* resonance freq */ + +/* Haptic waveforms */ +// Two mild waveforms +#define DRV_GREETING alert_750ms +#define DRV_MODE_DEFAULT sharp_tick3_60 diff --git a/keyboards/hillside/48/0_1/info.json b/keyboards/hillside/48/0_1/info.json new file mode 100644 index 0000000000..943982d65e --- /dev/null +++ b/keyboards/hillside/48/0_1/info.json @@ -0,0 +1,35 @@ +{ + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + + "matrix_pins": { + "rows": ["D7", "E6", "B4", "B5"], + "cols": ["F6", "F7", "B1", "B3", "B2", "B6"] + }, + "diode_direction": "COL2ROW", + + "usb": { + "vid": "0xFEED", + "pid": "0x67C0", + "device_version": "0.0.1" + }, + + "features": { + "encoder": true, + "extrakey": true, + "rgblight": true + }, + "split": { + "soft_serial_pin": "D2", + "main": "left" + }, + + "rgblight": { + "led_count": 5, + "pin": "D3", + "split": true, + "hue_steps": 8, + "saturation_steps": 8, + "brightness_steps": 8 + } +} diff --git a/keyboards/hillside/48/0_1/rules.mk b/keyboards/hillside/48/0_1/rules.mk new file mode 100644 index 0000000000..2501147ea8 --- /dev/null +++ b/keyboards/hillside/48/0_1/rules.mk @@ -0,0 +1,8 @@ +SPLIT_KEYBOARD = yes # Use shared split_common code +LTO_ENABLE = yes # Use link time optimization for smaller firmware + +# If you add a haptic board, +# enable it and set its driver here or in your keymap folder +# The Pimoroni board's driver is DRV2605L +# HAPTIC_ENABLE = yes # Enable haptic driver +# HAPTIC_DRIVER = DRV2605L diff --git a/keyboards/hillside/48/info.json b/keyboards/hillside/48/info.json new file mode 100644 index 0000000000..a488671008 --- /dev/null +++ b/keyboards/hillside/48/info.json @@ -0,0 +1,76 @@ +{ + "manufacturer": "mmccoyd", + "maintainer": "mmccoyd", + + "keyboard_name": "Hillside48", + "url": "http://github.com/mmccoyd/hillside/", + + "tags": ["split", "column stagger", "choc v1", "choc spaced" ], + + "layouts": { + "LAYOUT": { + "layout": [ + + {"label": "`", "x": 0, "y": 0.93}, + {"label": "Q", "x": 1, "y": 0.93}, + {"label": "W", "x": 2, "y": 0.31}, + {"label": "E", "x": 3, "y": 0}, + {"label": "R", "x": 4, "y": 0.28}, + {"label": "T", "x": 5, "y": 0.42}, + + {"label": "Y", "x": 9.5, "y": 0.42}, + {"label": "U", "x": 10.5, "y": 0.28}, + {"label": "I", "x": 11.5, "y": 0}, + {"label": "O", "x": 12.5, "y": 0.31}, + {"label": "P", "x": 13.5, "y": 0.93}, + {"label": "Backspace", "x": 14.5, "y": 0.93}, + + + {"label": "Tab", "x": 0, "y": 1.93}, + {"label": "A", "x": 1, "y": 1.93}, + {"label": "S", "x": 2, "y": 1.31}, + {"label": "D", "x": 3, "y": 1}, + {"label": "F", "x": 4, "y": 1.28}, + {"label": "G", "x": 5, "y": 1.42}, + + {"label": "H", "x": 9.5, "y": 1.42}, + {"label": "J", "x": 10.5, "y": 1.28}, + {"label": "K", "x": 11.5, "y": 1}, + {"label": "L", "x": 12.5, "y": 1.31}, + {"label": ";", "x": 13.5, "y": 1.93}, + {"label": "Enter", "x": 14.5, "y": 1.93}, + + + {"label": "Shift", "x": 0, "y": 2.93}, + {"label": "Z", "x": 1, "y": 2.93}, + {"label": "X", "x": 2, "y": 2.31}, + {"label": "C", "x": 3, "y": 2}, + {"label": "V", "x": 4, "y": 2.28}, + {"label": "B", "x": 5, "y": 2.42}, + {"label": "Esc", "x": 6, "y": 2.78}, + + {"label": "Caps", "x": 8.5, "y": 2.78}, + {"label": "N", "x": 9.5, "y": 2.42}, + {"label": "M", "x": 10.5, "y": 2.28}, + {"label": ",", "x": 11.5, "y": 2}, + {"label": ".", "x": 12.5, "y": 2.31}, + {"label": "/", "x": 13.5, "y": 2.93}, + {"label": "Shift", "x": 14.5, "y": 2.93}, + + + {"label": "Ctrl", "x": 2, "y": 3.31}, + {"label": "Gui", "x": 3.5, "y": 3.28}, + {"label": "Alt", "x": 4.5, "y": 3.42}, + {"label": "Sym", "x": 5.5, "y": 3.78}, + {"label": "Shift", "x": 6.5, "y": 4.14}, + + + {"label": "Nav", "x": 8, "y": 4.14}, + {"label": "Space", "x": 9, "y": 3.78}, + {"label": "Alt", "x": 10, "y": 3.42}, + {"label": "Gui", "x": 11, "y": 3.28}, + {"label": "'", "x": 12.5, "y": 3.31} + ] + } + } +} diff --git a/keyboards/hillside/48/keymaps/default/config.h b/keyboards/hillside/48/keymaps/default/config.h new file mode 100644 index 0000000000..1f71d42e67 --- /dev/null +++ b/keyboards/hillside/48/keymaps/default/config.h @@ -0,0 +1,9 @@ +// Copyright 2022 Michael McCoyd (@mmccoyd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Some boards have issues detecting handedness using the vbus voltage, +// such as Elite-C v3, but not v3.1 on, and apparently some ProMicro boards. +// For those boards, use usb detection instead. +// #define SPLIT_USB_DETECT diff --git a/keyboards/hillside/48/keymaps/default/keymap.json b/keyboards/hillside/48/keymaps/default/keymap.json new file mode 100644 index 0000000000..e5351b5f1a --- /dev/null +++ b/keyboards/hillside/48/keymaps/default/keymap.json @@ -0,0 +1,88 @@ +{ "version": 1, + "notes": "", + "documentation": "\"This file is a QMK Configurator export. You can import this at . It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: \n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n", + "keyboard": "hillside/48", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + ["KC_GRV" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T", + "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_BSPC", + + "KC_TAB" , "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G", + "KC_H" , "KC_J" , "KC_K" , "KC_L" , "KC_SCLN" , "KC_ENT", + + "KC_LSFT" , "KC_Z" , "KC_X" , "KC_C" , "KC_V" , "KC_B" , "KC_ESC", + "CW_TOGG" , "KC_N" , "KC_M" , "KC_COMM", "KC_DOT" , "KC_SLSH" , "KC_RSFT", + + "KC_LCTL" , "KC_LGUI" , "KC_LALT", "MO(3)" , "OSM(MOD_LSFT)", + "MO(4)" , "KC_SPC" , "KC_LALT", "KC_RGUI", "KC_QUOT" + + ], + ["KC_GRV" , "KC_QUOT" , "KC_COMM", "KC_DOT" , "KC_P" , "KC_Y", + "KC_F" , "KC_G" , "KC_C" , "KC_R" , "KC_L" , "KC_BSPC", + + "KC_TAB" , "KC_A" , "KC_O" , "KC_E" , "KC_U" , "KC_I", + "KC_D" , "KC_H" , "KC_T" , "KC_N" , "KC_S" , "KC_ENT", + + "KC_LSFT" , "KC_SCLN" , "KC_Q" , "KC_J" , "KC_K" , "KC_X" , "KC_ESC", + "CW_TOGG" , "KC_B" , "KC_M" , "KC_W" , "KC_V" , "KC_Z" , "KC_RSFT", + + "KC_LCTL" , "KC_LGUI" , "KC_LALT", "MO(3)" , "OSM(MOD_LSFT)", + "MO(4)" , "KC_SPC" , "KC_LALT", "KC_RGUI", "KC_SLSH" + + ], + ["KC_GRV" , "KC_Q" , "KC_W" , "KC_F" , "KC_P" , "KC_B", + "KC_J" , "KC_L" , "KC_U" , "KC_Y" , "KC_SCLN" , "KC_BSPC", + + "KC_TAB" , "KC_A" , "KC_R" , "KC_S" , "KC_T" , "KC_G", + "KC_M" , "KC_N" , "KC_E" , "KC_I" , "KC_O" , "KC_ENT", + + "KC_LSFT" , "KC_Z" , "KC_X" , "KC_C" , "KC_D" , "KC_V" , "KC_ESC", + "CW_TOGG" , "KC_K" , "KC_H" , "KC_COMM", "KC_DOT" , "KC_SLSH" , "KC_RSFT", + + "KC_LCTL" , "KC_LGUI" , "KC_LALT", "MO(3)" , "OSM(MOD_LSFT)", + "MO(4)" , "KC_SPC" , "KC_LALT", "KC_RGUI", "KC_QUOT" + + ], + ["KC_HOME" , "KC_EXLM" , "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", + "KC_CIRC" , "KC_AMPR" , "KC_ASTR", "KC_LPRN", "KC_RPRN" , "KC_DEL", + + "KC_END" , "KC_LGUI" , "KC_LALT", "KC_LCTL", "KC_LSFT" , "KC_INS", + "KC_LBRC" , "KC_RBRC" , "KC_MINS", "KC_EQL" , "KC_BSLS" , "KC_TRNS", + + "KC_LSFT" , "KC_NO" , "KC_VOLD", "KC_MUTE", "KC_VOLU" , "KC_MPLY" , "OSM(MOD_RALT)", + "KC_APP" , "KC_LCBR" , "KC_RCBR", "KC_UNDS", "KC_PLUS" , "KC_PIPE" , "KC_TRNS", + + "KC_TRNS" , "KC_TRNS" , "KC_TRNS", "KC_TRNS", "OSM(MOD_LSFT)", + "MO(5)" , "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_RCTL" + + ], + ["LCTL(KC_X)", "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5", + "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_BSPC", + + "LCTL(KC_C)", "KC_LEFT" , "KC_DOWN", "KC_UP" , "KC_RGHT" , "LCTL(KC_V)", + "KC_PGUP" , "KC_RSFT" , "KC_RCTL", "KC_LALT", "KC_RGUI" , "KC_PGDN", + + "KC_LSFT" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F4" , "KC_F5" , "LCTL(KC_Z)", + "LCTL(KC_Y)", "KC_F6" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10" , "KC_TRNS", + + "KC_TRNS" , "KC_TRNS" , "KC_TRNS", "MO(5)" , "KC_TRNS", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_RCTL" + + ], + ["KC_NO" , "DF(0)" , "DF(1)" , "DF(2)" , "AG_SWAP" , "CG_SWAP", + "KC_NO" , "KC_F11" , "KC_F12" , "KC_PSCR", "KC_NO" , "KC_NO", + + "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "AG_NORM" , "CG_NORM", + "RGB_MOD" , "RGB_VAI" , "RGB_HUI", "RGB_SAI", "KC_NO" , "KC_NO", + + "KC_NO" , "KC_LGUI" , "KC_LALT", "KC_LCTL", "KC_LSFT" , "KC_NO" , "KC_NO", + "RGB_TOG" , "RGB_RMOD", "RGB_VAD", "RGB_HUD", "RGB_SAD" , "KC_NO" , "QK_BOOT", + + "KC_NO" , "KC_NO" , "KC_NO" , "KC_TRNS", "KC_NO", + "KC_TRNS" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" + + ] + ], + "author": "@mmccoyd" +} diff --git a/keyboards/hillside/48/keymaps/default/readme.md b/keyboards/hillside/48/keymaps/default/readme.md new file mode 100644 index 0000000000..bfa720f57a --- /dev/null +++ b/keyboards/hillside/48/keymaps/default/readme.md @@ -0,0 +1,165 @@ +# Hillside 48 Default Keymap + +For easier initial use, this keymap follows the layout of more standard keyboards where possible. It is a starting point for you to tweak over time to suit your preferences better. You can easily customize it with the [QMK configurator](https://config.qmk.fm/#/hillside/48/LAYOUT). + +Some of its key features are: + +- Numbers and symbols along the top row of their layers for familiarity. +- Comfortable combination of modifier and function or symbol on the non-base layers + using modifiers on the home row of the symbol and number/function layers. +- A layer with both navigation and editing keys allows document editing without leaving the layer. +- QWERTY, Colemak-DH and Dvorak base layer options. + +## Base Layer + +``` +| ` | Q | W | E | R | T |---------------------------| Y | U | I | O | P | BKSPC | +| TAB | A | S | D | F | G |---------------------------| H | J | K | L | ; | ENTER | +| SHIFT | Z | X | C | V | B | ESC |---------------|CAPS | N | M | , | . | / | SHIFT | +--------------|CTRL |-----| GUI | ALT | Sym |SHIFT|---| Nav |SPACE| ALT | GUI |-----| ' |-------------- +``` + +The base layer provides a very standard key layout with five differences: + +- Numbers, functions and most symbols are accessed with number and symbol shift keys. +- Escape is on the left thumb. +- The left thumb has a shift key that affects the next key pressed. So to get 'A', press and release the thumb shift key, press 'a'. You can also hold the key down, and it will work like a standard shift key. There are still standard shift keys at either end of the keyboard. +- The right upper thumb turns on a mode that capitalizes all letters until something other than a letter, digit, dash, underscore, delete or backspace is typed. The caps word mode also times out after five seconds of no key presses. +- The Menu and AltGr keys are on a layer. + +The default layout is QWERTY with alternatives of Dvorak and Colemak-DH, and the alt/option and the win/command key locations are swappable for windows or mac. + + +
+Details of Dvorak and Colemak-DH +The Dvorak and Colemak-DH base layers + have identical non-alpha and non-symbol keys as the QWERTY base layer. + +``` +Dvorak +| ` | ' | , | . | P | Y |---------------------------| F | G | C | R | L | BKSPC | +| TAB | A | O | E | U | I |---------------------------| D | H | T | N | S | ENTER | +| SHIFT | ; | Q | J | K | X | ESC |---------------|CAPS | B | M | W | V | Z | SHIFT | +--------------|CTRL |-----| GUI | ALT | Sym |SHIFT|---| Nav |SPACE| ALT | GUI |-----| / |-------------- + +Colemak-DH +| ` | Q | W | F | P | B |---------------------------| J | L | U | Y | ; | BKSPC | +| TAB | A | R | S | T | G |---------------------------| M | N | E | I | O | ENTER | +| SHIFT | Z | X | C | D | V | ESC |---------------|CAPS | K | H | , | . | / | SHIFT | +--------------|CTRL |-----| GUI | ALT | Sym |SHIFT|---| Nav |SPACE| ALT | GUI |-----| ' |-------------- +``` +
+ +## Symbol and Media Layer + +``` +| HOME | ! | @ | # | $ | % |---------------------------| ^ | & | * | ( | ) | DEL | +| END | GUI | ALT |CTRL |SHIFT| INS |---------------------------| [ | ] | - | = | \ | ENTER | +| SHIFT | |VOL- |MUTE |VOL+ |PLAY |OSM ALT |------------|MENU | { | } | _ | + | | | SHIFT | +--------------|CTRL |-----| GUI | ALT | *** |SHIFT|---| Adj |SPACE| ALT | GUI |-----|CTRL |-------------- +``` +Holding down the SYM key accesses the symbol layer: + +- The symbols not present on the base layer are along the top row and right side, similar to a full-size keyboard. +- Duplicates of the modifier keys are along the left home keys. This allows a very comfortable combination of any set of modifiers plus a key on the right side of the board. +- Forward delete is on the upper right, taking backspace's place. +- The Windows OS application menu key is on the upper right thumb. +- The AltGr key affects the next key pressed so that it can combine with a key on any layer. It changes the meaning of the next key pressed after the AltGr key is pressed and released. For example, to do AltGr-h: press SYM, press and release AltGr, release SYM, press and release h. + +## Navigation, Editing, Number and Function Layer + +``` +| CUT | 1 | 2 | 3 | 4 | 5 |---------------------------| 6 | 7 | 8 | 9 | 0 | BSPC | +| COPY |LEFT |DOWN | UP |RIGHT|PASTE|---------------------------|PG_UP|SHIFT|CTRL | ALT | GUI | PG_DN | +| SHIFT | F1 | F2 | F3 | F4 | F5 |UNDO |---------------|REDO | F6 | F7 | F8 | F9 | F10 | SHIFT | +--------------|CTRL |-----| GUI | ALT | Adj |SHIFT|---| *** |SPACE| ALT | GUI |-----|CTRL |-------------- +``` +Holding down the Nav/Edit key accesses the navigation, editing, number and function layer: + +- Numbers are along the top row, and function keys are on the bottom row. +- The arrow keys on the left can be combined with the home row modifiers on the right to easily move around and select text, which can then be cut, copied and pasted. + + +## Adjust Layer +``` +| |QWERT|DVORK|COLMK|AG_SWAP|CTR_SWAP|----------------------| | F11 | F12 |PR_SCR| | | +| | | | |AG_NORM|CTR_NORM|----------------------|MOD+ |BRI+ |HUE+ |SAT+ | | | +| | GUI | ALT |CTRL |SHIFT| | |--------------|RGBTOG|MOD- |BRI- |HUE- |SAT- | | BOOT | +--------------| |-----| | | *** | |---| *** | | | |-----| |-------------- +``` +Simultaneously holding down the Sym and Nav/Edit keys enables keys to adjust keyboard settings: + +- The base layer can be set to QWERTY, Colemak-DH or Dvorak, although the keyboard reverts to QWERTY each time it is plugged in. +- Alt/option and GUI/command can be swapped for mac users or restored to the windows norm. +- The backlight LEDs can be enabled, disabled, and controlled. +- BOOT allows loading new firmware, such as for keymap changes. +- The remaining Fn keys are here with modifiers to use with them. + +## Make it Yours + +If you are coming from a traditional keyboard, + with a large set of physical keys, + learning to use a column staggered (ergo) and layer-based keyboard, + which uses layers instead of finger reaches to access numbers, symbols and functions, + will be an adjustment for your muscle memory and your mental keyboard map. +This default layout tries to simplify that adjustment by keeping things in the expected spots when possible. + +Yet this layout is only a decent compromise and is not optimal for each user. +The online [configurator](https://config.qmk.fm/#/hillside/48/LAYOUT) makes it easy to tweak this layout to your needs. +You can add additional layers or completely switch around what these do. + +A good metaphor is to think of your keymap as a bonsai tree that you tweak slightly over time + in response to ideas of how it might serve you better. + +Some changes you might consider making: + +- If you are on a mac, switch the editing keys from ctrl-x to cmd-x. +- Change the shift keys to one-shot shift keys, + where pressing and releasing them shifts the next key pressed. + That is much easier on your hands than holding them down. + Yet, they can still be held as usual if desired. +- Instead of holding down the thumb key to keep the symbol layer active, + you could use a one-shot layer key. + One-shot modifiers are likely less stress on your hands and may even be faster. + You would still be able to hold it down instead. + +Here are some other keymaps for inspiration and ideas: + +- The [Ferris default](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/keymaps/default) uses more advanced features as it has far fewer keys. +- The [Miryoku](https://github.com/manna-harbour/miryoku/tree/master/docs/reference) keymap ensures that all modifiers are comfortably available with each character key. +- The [Kyria default](https://github.com/qmk/qmk_firmware/tree/master/keyboards/splitkb/kyria/keymaps/default) has different keymap choices and a couple more keys. + + + +## Why no keymap.c + +The online configurator provides a straightforward visual way + to work with a simple layout and uses a .json keymap format. +So this default ```keymap.json``` was created with the online configurator. + +If you wish, you can edit the ```keymap.json``` directly in a text editor, compile it and flash it. + +Or, you can use the graphical configurator to edit the keymap. To do that: + +- Open the [QMK configurator](https://config.qmk.fm/#/hillside/48/LAYOUT) +- Using the green up arrow button, load the keymap from ```qmk_firmware/keyboards/hillside/48/keymaps/default/keymap.json``` +- Make the changes you wish to the layout +- Save the keymap using the green down arrow button. +- Move the downloaded keymap back into your QMK repository + at the same location as above. +- Rename it back to keymap.json +- Compile and flash the firmware. + +You can combine a .json based keymap with more advanced features + specified in .c files with a bit more complexity. +For example, see + [pierrec83's Kyria map](https://github.com/qmk/qmk_firmware/tree/master/keyboards/splitkb/kyria/keymaps/pierrec83). + +### Pretty Printing + +The QMK configurator's .json download has only one key per line, +so it is hard to visualize the keymap if editing manually. +If you want, the Hillside git repo has a pretty-printing script for the keymap.json file. + +As with anything downloaded from the internet, you should take some steps to assure yourself that the script will not harm your computer nor steal your data. The script is short, so reading it should at least convince you it is rearranging and printing the keymap provided, not reading your banking data. +See the [Hillside wiki](https://github.com/mmccoyd/hillside/wiki) for the script. diff --git a/keyboards/hillside/48/keymaps/default/rules.mk b/keyboards/hillside/48/keymaps/default/rules.mk new file mode 100644 index 0000000000..4711d2ff74 --- /dev/null +++ b/keyboards/hillside/48/keymaps/default/rules.mk @@ -0,0 +1 @@ +CAPS_WORD_ENABLE = yes diff --git a/keyboards/hillside/48/keymaps/manna-harbour_miryoku/config.h b/keyboards/hillside/48/keymaps/manna-harbour_miryoku/config.h new file mode 100644 index 0000000000..e779de8a99 --- /dev/null +++ b/keyboards/hillside/48/keymaps/manna-harbour_miryoku/config.h @@ -0,0 +1,38 @@ +// Copyright 2022 Davide Masserut (@mssdvd) +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// 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 . + +#pragma once + +#define XXX KC_NO + +// clang-format off +#if defined MIRYOKU_MAPPING_EXTENDED_THUMBS +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT( \ +XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ +XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ +XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ + XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX \ +) +#else +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT( \ +XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ +XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ +XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ + XXX, K32, K33, K34, XXX, XXX, K35, K36, K37, XXX \ +) +#endif diff --git a/keyboards/hillside/48/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/hillside/48/keymaps/manna-harbour_miryoku/keymap.c new file mode 100644 index 0000000000..dbab7f9820 --- /dev/null +++ b/keyboards/hillside/48/keymaps/manna-harbour_miryoku/keymap.c @@ -0,0 +1,4 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// 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 . diff --git a/keyboards/hillside/48/keymaps/via/keymap.json b/keyboards/hillside/48/keymaps/via/keymap.json new file mode 100644 index 0000000000..1405f5d2f0 --- /dev/null +++ b/keyboards/hillside/48/keymaps/via/keymap.json @@ -0,0 +1,61 @@ +{ "version": 1, + "notes": "", + "keyboard": "hillside/48", + "keymap": "via", + "layout": "LAYOUT", + "layers": [ + ["KC_TAB" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T", + "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_BSPC", + + "KC_CAPS" , "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G", + "KC_H" , "KC_J" , "KC_K" , "KC_L" , "KC_SCLN", "KC_ENT", + + "KC_LSFT" , "KC_Z" , "KC_X" , "KC_C" , "KC_V" , "KC_B" , "KC_GRV", + "KC_ESC" , "KC_N" , "KC_M" , "KC_COMM", "KC_DOT" , "KC_SLSH", "KC_RSFT", + + "KC_LCTL" , "KC_LGUI", "KC_LALT", "MO(3)" , "MO(1)", + "MO(2)" , "KC_SPC" , "KC_LALT", "KC_RGUI", "KC_QUOT" + + ], + ["KC_NO" , "KC_INS" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_VOLU", + "KC_PGUP" , "KC_HOME", "KC_NO" , "KC_END" , "KC_NO" , "KC_DEL", + + "KC_NO" , "KC_LGUI", "KC_LALT", "KC_LCTL", "KC_LSFT", "KC_VOLD", + "KC_PGDN" , "KC_LEFT", "KC_UP" , "KC_RGHT", "KC_NO" , "KC_TRNS", + + "KC_LSFT" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_MUTE", + "KC_ESC" , "KC_CAPS", "KC_NO" , "KC_DOWN", "KC_NO" , "KC_APP" , "KC_TRNS", + + "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS" , "KC_BSPC", "KC_TRNS", "KC_TRNS", "KC_RCTL" + + ], + ["KC_F11" , "KC_EXLM", "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", + "KC_CIRC" , "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "KC_TRNS", + + "KC_F12" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F4" , "KC_F5", + "KC_PIPE" , "KC_LSFT", "KC_LCTL", "KC_LALT", "KC_LGUI", "KC_TRNS", + + "KC_LSFT" , "KC_F6" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10" , "KC_PSCR", + "KC_ESC" , "KC_BSLS", "KC_LBRC", "KC_RBRC", "KC_LCBR", "KC_RCBR", "KC_TRNS", + + "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_RCTL" + + ], + ["KC_TAB" , "KC_MINS", "KC_PLUS", "KC_EQL" , "KC_SLSH", "KC_ASTR", + "KC_COMM" , "KC_7" , "KC_8" , "KC_9" , "KC_NO" , "KC_TRNS", + + "ANY(RGB_TOG)", "KC_LGUI", "KC_LALT", "KC_LCTL", "KC_LSFT", "KC_NO", + "KC_0" , "KC_1" , "KC_2" , "KC_3" , "KC_UNDS", "KC_TRNS", + + "KC_TRNS" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO", + "KC_NO" , "KC_DOT" , "KC_4" , "KC_5" , "KC_6" , "KC_NO" , "KC_TRNS", + + "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_NO", + "KC_NO" , "KC_BSPC", "KC_TRNS", "KC_TRNS", "KC_RCTL" + + ] + ], + "author": "@mmccoyd" +} diff --git a/keyboards/hillside/48/readme.md b/keyboards/hillside/48/readme.md new file mode 100644 index 0000000000..c23702fdfa --- /dev/null +++ b/keyboards/hillside/48/readme.md @@ -0,0 +1,29 @@ +# Hillside + +![hillside](https://imgur.com/XW0rX13.png) + +[Hillside 48](https://github.com/mmccoyd/hillside) + is a split ergonomic keyboard + with 3x6+4+2 choc-spaced keys with aggressive column stagger, + a longer thumb arc and a breakoff outer-pinky column. + +* Keyboard Maintainer: [Michael McCoyd](https://github.com/mmccoyd) +* Hardware Supported: ProMicro/Elite-C and compatible +* Hardware Availability: https://github.com/mmccoyd/hillside + +Make example for this keyboard (after setting up your build environment): + + make hillside/48/0_1:default + +Flashing example for this keyboard: + + make hillside/48/0_1:default:flash + +## Bootloader + +Enter the bootloader by either: + +* **Physical reset button**: Briefly press the button on the front of the PCB. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/hillside/48/rules.mk b/keyboards/hillside/48/rules.mk new file mode 100644 index 0000000000..d8d69d9ec1 --- /dev/null +++ b/keyboards/hillside/48/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = hillside/48/0_1 diff --git a/keyboards/hillside/52/0_1/0_1.c b/keyboards/hillside/52/0_1/0_1.c new file mode 100644 index 0000000000..9a9808da8c --- /dev/null +++ b/keyboards/hillside/52/0_1/0_1.c @@ -0,0 +1,21 @@ +// Copyright 2022 Michael McCoyd (@mmccoyd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "0_1.h" + +// Keymatrix spots to ignore, as one signals handedness and others have no key +const matrix_row_t matrix_mask[] = { +//c:543210 column id's + 0b111111, + 0b111111, + 0b111111, + 0b000111, + 0b111110, + +//c:543210 + 0b111111, + 0b111111, + 0b111111, + 0b000111, + 0b111110 +}; diff --git a/keyboards/hillside/52/0_1/0_1.h b/keyboards/hillside/52/0_1/0_1.h new file mode 100644 index 0000000000..f09d896938 --- /dev/null +++ b/keyboards/hillside/52/0_1/0_1.h @@ -0,0 +1,39 @@ +// Copyright 2021 Michael McCoyd (@mmccoyd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +/* This is a mapping so keymap files can be more readable to humans. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts those identifiers into a two-dimensional array which + * represents the switch matrix. + * + * The identifiers could be anything, but for human sanity have the folowing form + * + */ + +// clang-format off +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R05, R04, R03, R02, R01, R00, \ + L10, L11, L12, L13, L14, L15, R15, R14, R13, R12, R11, R10, \ + L20, L21, L22, L23, L24, L25, LT5, RT5, R25, R24, R23, R22, R21, R20, \ + L30, L31, L32, LT1, LT2, LT3, LT4, RT4, RT3, RT2, RT1, R32, R31, R30 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L30, L31, L32, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, LT1, LT2, LT3, LT4, LT5 }, \ + { R00, R01, R02, R03, R04, R05 }, \ + { R10, R11, R12, R13, R14, R15 }, \ + { R20, R21, R22, R23, R24, R25 }, \ + { R30, R31, R32, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, RT1, RT2, RT3, RT4, RT5 } \ + } +// clang-format on diff --git a/keyboards/hillside/52/0_1/config.h b/keyboards/hillside/52/0_1/config.h new file mode 100644 index 0000000000..23872aa37b --- /dev/null +++ b/keyboards/hillside/52/0_1/config.h @@ -0,0 +1,39 @@ +// Copyright 2022 Michael McCoyd (@mmccoyd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 6 + +/* Split */ +#define SPLIT_HAND_MATRIX_GRID B5, F6 +#define MATRIX_MASKED + +/* Encoder */ +#define ENCODERS_PAD_A { F5 } +#define ENCODERS_PAD_B { F4 } +#define ENCODERS_PAD_A_RIGHT { F4 } +#define ENCODERS_PAD_B_RIGHT { F5 } + +#define RGBLIGHT_SLEEP + +/* Haptic hardware */ +// The Pimoroni is the likely hardware, for which these settings work +#define FB_ERM_LRA 1 +#define FB_BRAKEFACTOR 3 /* 1x:0, 2x:1, 3x:2, 4x:3, 6:4, 8:5, 16:6, Disable:7 */ +#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ +/* Please refer to your datasheet for optimal setting for your specific motor.*/ +#define RATED_VOLTAGE 2 +#define V_PEAK 2.8 +#define V_RMS 2.0 +#define F_LRA 205 /* resonance freq */ + +/* Haptic waveforms */ +// Two mild waveforms +#define DRV_GREETING alert_750ms +#define DRV_MODE_DEFAULT sharp_tick3_60 diff --git a/keyboards/hillside/52/0_1/info.json b/keyboards/hillside/52/0_1/info.json new file mode 100644 index 0000000000..f5cf4486d5 --- /dev/null +++ b/keyboards/hillside/52/0_1/info.json @@ -0,0 +1,34 @@ +{ + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + + "matrix_pins": { + "rows": ["C6", "D7", "E6", "B4", "B5"], + "cols": ["F6", "F7", "B1", "B3", "B2", "B6"] + }, + "diode_direction": "COL2ROW", + + "usb": { + "vid": "0x4D4D", + "pid": "0x4852", + "device_version": "0.0.1" + }, + + "features": { + "encoder": true, + "extrakey": true, + "rgblight": true + }, + "split": { + "soft_serial_pin": "D2" + }, + + "rgblight": { + "led_count": 5, + "pin": "D3", + "split": true, + "hue_steps": 8, + "saturation_steps": 8, + "brightness_steps": 8 + } +} diff --git a/keyboards/hillside/52/0_1/rules.mk b/keyboards/hillside/52/0_1/rules.mk new file mode 100644 index 0000000000..2501147ea8 --- /dev/null +++ b/keyboards/hillside/52/0_1/rules.mk @@ -0,0 +1,8 @@ +SPLIT_KEYBOARD = yes # Use shared split_common code +LTO_ENABLE = yes # Use link time optimization for smaller firmware + +# If you add a haptic board, +# enable it and set its driver here or in your keymap folder +# The Pimoroni board's driver is DRV2605L +# HAPTIC_ENABLE = yes # Enable haptic driver +# HAPTIC_DRIVER = DRV2605L diff --git a/keyboards/hillside/52/info.json b/keyboards/hillside/52/info.json new file mode 100644 index 0000000000..0f2dad336e --- /dev/null +++ b/keyboards/hillside/52/info.json @@ -0,0 +1,79 @@ +{ + "manufacturer": "mmccoyd", + "maintainer": "mmccoyd", + + "keyboard_name": "Hillside 52", + "url": "http://github.com/mmccoyd/hillside/", + + "tags": ["split", "column stagger", "choc v1", "choc spaced" ], + + "layouts": { + "LAYOUT": { + "layout": [ + + {"label": "`~", "x": 0, "y": 1.13}, + {"label": "Q", "x": 1, "y": 0.93}, + {"label": "W", "x": 2.1, "y": 0.31}, + {"label": "E", "x": 3.2, "y": 0}, + {"label": "R", "x": 4.2, "y": 0.28}, + {"label": "T", "x": 5.2, "y": 0.42}, + + {"label": "Y", "x": 9.7, "y": 0.42}, + {"label": "U", "x": 10.7, "y": 0.28}, + {"label": "I", "x": 11.7, "y": 0}, + {"label": "O", "x": 12.8, "y": 0.31}, + {"label": "P", "x": 13.9, "y": 0.93}, + {"label": "Backspace", "x": 14.9, "y": 1.13}, + + + {"label": "Tab", "x": 0.1, "y": 2.13}, + {"label": "A", "x": 1.1, "y": 1.93}, + {"label": "S", "x": 2.15, "y": 1.31}, + {"label": "D", "x": 3.2, "y": 1}, + {"label": "F", "x": 4.2, "y": 1.28}, + {"label": "G", "x": 5.2, "y": 1.42}, + + {"label": "H", "x": 9.7, "y": 1.42}, + {"label": "J", "x": 10.7, "y": 1.28}, + {"label": "K", "x": 11.7, "y": 1}, + {"label": "L", "x": 12.75, "y": 1.31}, + {"label": ";", "x": 13.8, "y": 1.93}, + {"label": "Enter", "x": 14.8, "y": 2.13}, + + + {"label": "Shift", "x": 0.2, "y": 3.13}, + {"label": "Z", "x": 1.2, "y": 2.93}, + {"label": "X", "x": 2.2, "y": 2.31}, + {"label": "C", "x": 3.2, "y": 2}, + {"label": "V", "x": 4.2, "y": 2.28}, + {"label": "B", "x": 5.2, "y": 2.42}, + {"label": "'", "x": 6.2, "y": 2.88}, + + {"label": "/", "x": 8.7, "y": 2.88}, + {"label": "N", "x": 9.7, "y": 2.42}, + {"label": "M", "x": 10.7, "y": 2.28}, + {"label": ", ", "x": 11.7, "y": 2}, + {"label": ".", "x": 12.7, "y": 2.31}, + {"label": "Up", "x": 13.7, "y": 2.93}, + {"label": "Shift", "x": 14.7, "y": 3.13}, + + + {"label": "Mute", "x": 0.3, "y": 4.13}, + {"label": "Esc", "x": 1.3, "y": 3.93}, + {"label": "Ctrl", "x": 2.3, "y": 3.73}, + {"label": "Gui", "x": 3.7, "y": 3.28}, + {"label": "Alt", "x": 4.7, "y": 3.42}, + {"label": "Shift", "x": 5.7, "y": 3.88}, + {"label": "Nav", "x": 6.7, "y": 4.44}, + + {"label": "Sym", "x": 8.2, "y": 4.44}, + {"label": "Space", "x": 9.2, "y": 3.88}, + {"label": "Alt", "x": 10.2, "y": 3.42}, + {"label": "Gui", "x": 11.2, "y": 3.28}, + {"label": "Left", "x": 12.6, "y": 3.73}, + {"label": "Down", "x": 13.6, "y": 3.93}, + {"label": "Right", "x": 14.6, "y": 4.13} + ] + } + } +} diff --git a/keyboards/hillside/52/keymaps/default/config.h b/keyboards/hillside/52/keymaps/default/config.h new file mode 100644 index 0000000000..d209c914bf --- /dev/null +++ b/keyboards/hillside/52/keymaps/default/config.h @@ -0,0 +1,9 @@ +// Copyright 2022 Michael McCoyd (@mmccoyd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Some boards have issues detecting handedness using the vbus voltage. +// Such as Elite-C v3, but not v3.1 on. Also apparently some ProMicro boards. +// For those boands, use usb detection instead. +// #define SPLIT_USB_DETECT diff --git a/keyboards/hillside/52/keymaps/default/keymap.json b/keyboards/hillside/52/keymaps/default/keymap.json new file mode 100644 index 0000000000..0c9853810c --- /dev/null +++ b/keyboards/hillside/52/keymaps/default/keymap.json @@ -0,0 +1,88 @@ +{ "version": 1, + "notes": "", + "documentation": "\"This file is a QMK Configurator export. You can import this at . It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: \n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n", + "keyboard": "hillside/52", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + ["KC_GRV" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T", + "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_BSPC", + + "KC_TAB" , "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G", + "KC_H" , "KC_J" , "KC_K" , "KC_L" , "KC_SCLN", "KC_ENT", + + "KC_LSFT" , "KC_Z" , "KC_X" , "KC_C" , "KC_V" , "KC_B" , "KC_QUOT", + "KC_SLSH" , "KC_N" , "KC_M" , "KC_COMM", "KC_DOT" , "KC_UP" , "KC_RSFT", + + "KC_MUTE" , "KC_ESC" , "KC_LCTL", "KC_LGUI", "KC_LALT", "OSM(MOD_LSFT)", "MO(3)", + "MO(4)" , "KC_SPC" , "KC_LALT", "KC_RGUI", "KC_LEFT", "KC_DOWN" , "KC_RGHT" + + ], + ["KC_GRV" , "KC_QUOT" , "KC_COMM", "KC_DOT" , "KC_P" , "KC_Y", + "KC_F" , "KC_G" , "KC_C" , "KC_R" , "KC_L" , "KC_BSPC", + + "KC_TAB" , "KC_A" , "KC_O" , "KC_E" , "KC_U" , "KC_I", + "KC_D" , "KC_H" , "KC_T" , "KC_N" , "KC_S" , "KC_ENT", + + "KC_LSFT" , "KC_SCLN" , "KC_Q" , "KC_J" , "KC_K" , "KC_X" , "KC_SLSH", + "KC_Z" , "KC_B" , "KC_M" , "KC_W" , "KC_V" , "KC_UP" , "KC_RSFT", + + "KC_MUTE" , "KC_ESC" , "KC_LCTL", "KC_LGUI", "KC_LALT", "OSM(MOD_LSFT)", "MO(3)", + "MO(4)" , "KC_SPC" , "KC_LALT", "KC_RGUI", "KC_LEFT", "KC_DOWN" , "KC_RGHT" + + ], + ["KC_GRV" , "KC_Q" , "KC_W" , "KC_F" , "KC_P" , "KC_B", + "KC_J" , "KC_L" , "KC_U" , "KC_Y" , "KC_SCLN", "KC_BSPC", + + "KC_TAB" , "KC_A" , "KC_R" , "KC_S" , "KC_T" , "KC_G", + "KC_M" , "KC_N" , "KC_E" , "KC_I" , "KC_O" , "KC_ENT", + + "KC_LSFT" , "KC_Z" , "KC_TRNS", "KC_C" , "KC_D" , "KC_V" , "KC_QUOT", + "KC_SLSH" , "KC_K" , "KC_H" , "KC_COMM", "KC_DOT" , "KC_UP" , "KC_RSFT", + + "KC_MUTE" , "KC_ESC" , "KC_LCTL", "KC_LGUI", "KC_LALT", "OSM(MOD_LSFT)", "MO(3)", + "MO(4)" , "KC_SPC" , "KC_LALT", "KC_RGUI", "KC_LEFT", "KC_DOWN" , "KC_RGHT" + + ], + ["LCTL(KC_C)" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5", + "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_TRNS", + + "LCTL(KC_X)" , "KC_LGUI" , "KC_LALT", "KC_LCTL", "KC_LSFT", "LCTL(KC_V)", + "KC_PGUP" , "KC_LEFT" , "KC_UP" , "KC_DOWN", "KC_RGHT", "KC_PGDN", + + "KC_TRNS" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F4" , "KC_F5" , "LCTL(KC_Z)", + "LCTL(KC_Y)" , "KC_F6" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10" , "KC_TRNS", + + "KC_F11" , "KC_F12" , "KC_LCTL", "KC_TRNS", "KC_TRNS", "KC_TRNS" , "KC_TRNS", + "MO(5)" , "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_RCTL", "KC_HOME" , "KC_END" + + ], + ["KC_INS" , "KC_EXLM" , "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", + "KC_CIRC" , "KC_AMPR" , "KC_ASTR", "KC_LPRN", "KC_RPRN", "KC_DEL", + + "ANY(CW_TOGG)", "KC_BSLS" , "KC_MINS", "KC_EQL" , "KC_LBRC", "KC_RBRC", + "KC_VOLU" , "KC_RSFT" , "KC_RCTL", "KC_LALT", "KC_RGUI", "KC_TRNS", + + "KC_TRNS" , "KC_PIPE" , "KC_UNDS", "KC_PLUS", "KC_LCBR", "KC_RCBR" , "KC_MPLY", + "KC_MUTE" , "KC_VOLD" , "KC_0" , "KC_1" , "KC_2" , "KC_NO" , "KC_TRNS", + + "KC_NO" , "KC_NO" , "KC_LCTL", "KC_TRNS", "KC_TRNS", "KC_TRNS" , "MO(5)", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_RCTL", "KC_APP" , "OSM(MOD_RALT)" + + ], + ["KC_NO" , "DF(0)" , "DF(1)" , "DF(2)" , "AG_SWAP", "CG_SWAP", + "KC_NO" , "KC_PSCR" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO", + + "KC_NO" , "KC_NO" , "KC_BRIU", "KC_NO" , "AG_NORM", "CG_NORM", + "RGB_MOD" , "RGB_VAI" , "RGB_HUI", "RGB_SAI", "KC_NO" , "KC_NO", + + "QK_BOOT" , "KC_NO" , "KC_BRID", "KC_NO" , "KC_NO" , "KC_NO" , "EE_CLR", + "RGB_TOG" , "RGB_RMOD", "RGB_VAD", "RGB_HUD", "RGB_SAD", "KC_NO" , "KC_NO", + + "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_TRNS", + "KC_TRNS" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" + + ] + ], + "author": "@mmccoyd" +} diff --git a/keyboards/hillside/52/keymaps/default/readme.md b/keyboards/hillside/52/keymaps/default/readme.md new file mode 100644 index 0000000000..cb09d5852d --- /dev/null +++ b/keyboards/hillside/52/keymaps/default/readme.md @@ -0,0 +1,161 @@ +# Hillside 52 Default Keymap + +For easier initial use, this keymap follows the layout of more standard keyboards where possible. It is a starting point for you to tweak over time to suit your preferences better. You can easily customize it with the [QMK configurator](https://config.qmk.fm/#/hillside/52/LAYOUT). + +Some of its key features are: + +- An inverted-T arrow cluster on the base layer. +- Numbers and symbols along the top row of their layers for familiarity. +- Comfortable modifier and function or symbol combinations on the non-base layers using modifiers on the home row of the navigation/edit and symbol layers. +- A layer with both navigation and editing keys allows document editing without leaving the layer. +- QWERTY, Colemak-DH and Dvorak base layer options. + +## Base Layer + +![Base QWERTY layer](https://imgur.com/pscLDLth.png) + +The base layer provides a very standard key layout with four differences: + +- Numbers, functions and most symbols are accessed with number and symbol shift keys. +- Escape is on the bottom row. +- The left thumb has a shift key that affects the next key pressed. So to get 'A,' press and release the thumb shift key, press 'a'. You can also hold the key down, and it will work like a standard shift key. There are still standard shift keys at either end of the keyboard. +- The Menu and AltGr keys are on a layer. + +The default layout is QWERTY with alternatives of Dvorak and Colemak-DH, and the alt/option and win/command key locations are swappable for windows or mac. + +
+Details of Dvorak and Colemak-DH +The Dvorak and Colemak-DH base layers have identical non-alpha and non-symbol keys as the QWERTY base layer. + +![Base Dvorak layer](https://imgur.com/cVZXtZxh.png) +![Base Colemak layer](https://imgur.com/OsVDdrph.png) +
+ + +## Navigation, Editing, Number and Function Layer + +![Navigation layer](https://imgur.com/y48mEmeh.png) + +Holding down the Nav/Edit key accesses the navigation, editing, number and function layer: + +- Numbers are along the top row, and function keys are on the bottom. +- The arrow keys on the right can be combined with the home row modifiers on the left to easily move around and select text, which can then be cut, copied and pasted. + + +## Symbol and Media Layer + +![Symbol layer](https://imgur.com/zL8re91h.png) + +Holding down the SYM key accesses the symbol layer: + +- The symbols not present on the base layer are along the top row and left side, arranged similarly to a large keyboard. +- Duplicates of the modifier keys are along the right home keys. This positioning allows a very comfortable combination of any set of modifiers plus a key on the left side of the board. +- Forward delete is on the upper right, taking backspace's place. +- Caps word toggles a mode that capitalizes all letters until something other than a letter, digit, dash, underscore, delete or backspace is typed. The mode also times out five seconds after the last key press. +- The Windows OS application menu key is on the lower right. +- The AltGr key affects the next key pressed so that it can combine with a key on any layer. It changes the meaning of the next key pressed after the AltGr key is pressed and released. For example, to do AltGr-h: press SYM, press and release AltGr, release SYM, press and release h. + + +## Adjust Layer + +![Adjust layer](https://imgur.com/9dhChrXh.png) + +Simultaneously holding down the Nav/Edit and Sym keys enables keys to adjust keyboard settings: + +- The base layer can be set to QWERTY, Colemak-DH or Dvorak, although the keyboard reverts to QWERTY each time it is plugged in. +- Alt/option and GUI/command can be swapped for mac users or restored to the windows norm. +- The backlight LEDs can be enabled, disabled, and controlled. +- BOOT allows loading new firmware, such as for keymap changes. + +## Make it Yours + +If you are coming from a traditional keyboard, + with a large set of physical keys, + learning to use a column staggered (ergo) and layer-based keyboard, + which uses layers instead of finger reaches to access numbers, symbols and functions, + will be an adjustment for your muscle memory and your mental keyboard map. +This default layout tries to simplify that adjustment by keeping things in the expected spots when possible. + +Yet this layout is only a decent compromise and is not optimal for each user. +The online [configurator](https://config.qmk.fm/#/hillside/52/LAYOUT) makes it easy to tweak this layout to your needs. +You can add additional layers or completely switch around what these do. + +A good metaphor is to think of your keymap as a bonsai tree that you tweak slightly over time + in response to ideas of how it might serve you better. + +Some changes you might consider making: + +- If you are on a mac, switch the editing keys from ctrl-x to cmd-x. +- Put some of your most-used key combinations on the unused keys + on the symbol layer. +- Remove the pinkie shift keys and just use the one-shot thumb shift key. +- Instead of holding down the thumb key to keep the symbol layer active, + you could use a one-shot layer key. + One-shot modifiers are likely less stress on your hands and may even be faster. + You would still be able to hold it down instead. + +Here are some other keymaps for inspiration and ideas: + +- The [Ferris default](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/keymaps/default) uses more advanced features as it has far fewer keys to work with. +- The [Miryoku](https://github.com/manna-harbour/miryoku/tree/master/docs/reference) keymap ensures that all modifiers are comfortably available with each character key. +- The [Kyria default](https://github.com/qmk/qmk_firmware/tree/master/keyboards/splitkb/kyria/keymaps/default) has different keymap choices. + +## Rationale +Any keymap or keyboard is a set of compromises between priorities. Here are some of the priorities of this keymap. + +- Ease for new users coming from a large keyboard: Making it easier to shift to a split column-stagger keyboard drove: + - Traditional number row and symbol row + - Nearly complete set of modifiers along the bottom rows + - An arrow T cluster on the base layer. +- Simple three layers: Just two extra layers makes shifting to them clearer. (Not counting the infrequent adjust layer.) +- Orthogonal-mods: Being able to choose any combination of modifiers with one hand and any key with the other hand without leaving home is easier on your hands. It generally means a [row of modifiers](https://precondition.github.io/home-row-mods#home-row-mods-order) on the home row of the hand selecting the layer and all the keys of interest on the other hand. But that usually doubles the layers needed. We have the modifiers but also used the space around them on that side. The modifiers along the bottom rows are still there, though they are less ergonomic. +- A Nav/Edit layer: It is very convenient to be able to move, select, cut and paste without moving your fingers away from orientation on the home row. Arrows for that work best on the right, which places the mods on the left. This also makes the mods convenient to use with a mouse while editing. +- Hints toward a better way: + - One shot shift on thumb: Tapping two keys in turn is easier on your hands than holding one while tapping another. The pinkie shifts are still there, but you may find you use them less often. + - The mods on the home row. + - The home row arrows. + - The common digits 0 and 1 on the sym layer, in a spot that might go well with a full number pad on a new layer. + +A theme of the keymap might be "offering but not requiring a better way," offering options for navigation, editing, mods and numbers. + + + +## Why no keymap.c + +The online configurator provides a straightforward visual way + to work with a simple layout and uses a .json keymap format. +So this default ```keymap.json``` was created with the online configurator. + +If you wish, you can edit the ```keymap.json``` directly in a text editor, compile it and flash it. + +Or, you can use the graphical configurator to edit the keymap. To do that: + +- Open the [QMK configurator](https://config.qmk.fm/#/hillside/52/LAYOUT) +- Using the green up arrow button, load the keymap from ```qmk_firmware/keyboards/hillside/52/keymaps/default/keymap.json``` +- Make the changes you wish to the layout +- Save the keymap using the green down arrow button. +- Move the downloaded keymap back into your QMK repository + at the same location as above. +- Rename it back to keymap.json +- Compile and flash the firmware. + +You can combine a .json based keymap with more advanced features + specified in .c files with a bit more complexity. +For example, see + [pierrec83's Kyria map](https://github.com/qmk/qmk_firmware/tree/master/keyboards/splitkb/kyria/keymaps/pierrec83). + + +### Pretty Printing + +The QMK configurator's .json download has only one key per line, +so it is hard to visualize the keymap if editing manually. +If you want, the Hillside git repo has a pretty-printing script for the keymap.json file. + +As with anything downloaded from the internet, you should take some steps to assure yourself that the script will not harm your computer nor steal your data. The script is short, so reading it should at least convince you it is rearranging and printing the keymap provided, not reading your banking data. +See the [Hillside wiki](https://github.com/mmccoyd/hillside/wiki) for the script. + + + + + + diff --git a/keyboards/hillside/52/keymaps/default/rules.mk b/keyboards/hillside/52/keymaps/default/rules.mk new file mode 100644 index 0000000000..4711d2ff74 --- /dev/null +++ b/keyboards/hillside/52/keymaps/default/rules.mk @@ -0,0 +1 @@ +CAPS_WORD_ENABLE = yes diff --git a/keyboards/hillside/52/keymaps/default_dot_c/config.h b/keyboards/hillside/52/keymaps/default_dot_c/config.h new file mode 100644 index 0000000000..d209c914bf --- /dev/null +++ b/keyboards/hillside/52/keymaps/default_dot_c/config.h @@ -0,0 +1,9 @@ +// Copyright 2022 Michael McCoyd (@mmccoyd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Some boards have issues detecting handedness using the vbus voltage. +// Such as Elite-C v3, but not v3.1 on. Also apparently some ProMicro boards. +// For those boands, use usb detection instead. +// #define SPLIT_USB_DETECT diff --git a/keyboards/hillside/52/keymaps/default_dot_c/keymap.c b/keyboards/hillside/52/keymaps/default_dot_c/keymap.c new file mode 100644 index 0000000000..3033f177e7 --- /dev/null +++ b/keyboards/hillside/52/keymaps/default_dot_c/keymap.c @@ -0,0 +1,64 @@ +// Copyright 2022 Michael McCoyd (@mmccoyd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY = 0, + _NAV, + _SYM, + _ADJUST, +}; + +#define xxxxxxx KC_NO + +#define LY_NAV MO(_NAV) +#define LY_SYM MO(_SYM) +#define LY_ADJ MO(_ADJUST) +#define ALT_GR OSM(MOD_RALT) +#define OSM_SFT OSM(MOD_LSFT) +#define PLY_PAU KC_MEDIA_PLAY_PAUSE + +#define UNDO LCTL(KC_Z) +#define CUT LCTL(KC_X) +#define COPY LCTL(KC_C) +#define PASTE LCTL(KC_V) +#define REDO LCTL(KC_Y) +// (For OS X, you'll want to change these editing keys to LGUI(KC_Z) etc.) + + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_QUOT, KC_SLSH, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, + KC_MUTE, KC_ESC, KC_LCTL, KC_LGUI, KC_LALT, OSM_SFT, LY_NAV, LY_SYM , KC_SPC , KC_LALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_NAV] = LAYOUT( + COPY , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, + CUT , KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, PASTE , KC_PGUP, KC_LEFT, KC_UP , KC_DOWN, KC_RGHT, KC_PGDN, + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , UNDO , REDO , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_TRNS, + KC_F11 , KC_F12 , KC_LCTL, _______, _______, _______, _______, LY_ADJ , _______, _______, _______, KC_RCTL, KC_HOME, KC_END + ), + [_SYM] = LAYOUT( + KC_INS, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + CW_TOGG, KC_BSLS, KC_MINS, KC_EQL , KC_LBRC, KC_RBRC, KC_VOLU, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______, + _______, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_MPLY, KC_MUTE, KC_VOLD, KC_0 , KC_1 , KC_2 , xxxxxxx, _______, + xxxxxxx, xxxxxxx, _______, _______, _______, _______, LY_ADJ , _______, _______, _______, _______, KC_RCTL, KC_APP, ALT_GR + ), + [_ADJUST] = LAYOUT( + xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, AG_SWAP, CG_SWAP, xxxxxxx, KC_PSCR, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, + xxxxxxx, xxxxxxx, KC_BRIU, xxxxxxx, AG_NORM, CG_NORM, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, xxxxxxx, xxxxxxx, + QK_BOOT, xxxxxxx, KC_BRID, xxxxxxx, xxxxxxx, xxxxxxx, EE_CLR, RGB_TOG, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, xxxxxxx, xxxxxxx, + XXXXXXX, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, _______, _______, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx + ), +}; + +// Template: +// [_INDEX] = LAYOUT( +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// ), diff --git a/keyboards/hillside/52/keymaps/default_dot_c/readme.md b/keyboards/hillside/52/keymaps/default_dot_c/readme.md new file mode 100644 index 0000000000..f21d13f5f8 --- /dev/null +++ b/keyboards/hillside/52/keymaps/default_dot_c/readme.md @@ -0,0 +1,25 @@ +# Default Hillside 52 Layout (in .c format) + +This layout is for those who prefer defining their layout in a keymap.c, + instead of graphically with a keymap.json. +It is the same as the [default keymap.json layout](https://github.com/qmk/qmk_firmware/blob/master/keyboards/hillside/52/keymaps/default), + except for having only a QWERTY base layer. + +The make and flash commands are + +``` +make hillside/52:default_dot_c +make hillside/52:default_doc_c:flash + +``` + +It also serves as a simple, clean layout + to verify that the configuration and switches work. +Use the [QMK Configurator Tester](https://config.qmk.fm/#/test) + to see that the switches produce output. +All the keys should register on the layout tester + except for the caps word and the two layer keys. +The LEDs should glow a nice red. +If they do not, you may need to clear the persistent EEPROM settings with the + EE_CLR key on the adjust layer, + or enable them with the RGB_TOG key. diff --git a/keyboards/hillside/52/keymaps/default_dot_c/rules.mk b/keyboards/hillside/52/keymaps/default_dot_c/rules.mk new file mode 100644 index 0000000000..4711d2ff74 --- /dev/null +++ b/keyboards/hillside/52/keymaps/default_dot_c/rules.mk @@ -0,0 +1 @@ +CAPS_WORD_ENABLE = yes diff --git a/keyboards/hillside/52/keymaps/manna-harbour_miryoku/config.h b/keyboards/hillside/52/keymaps/manna-harbour_miryoku/config.h new file mode 100644 index 0000000000..388f6b9a91 --- /dev/null +++ b/keyboards/hillside/52/keymaps/manna-harbour_miryoku/config.h @@ -0,0 +1,38 @@ +// Copyright 2022 Davide Masserut (@mssdvd) +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// 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 . + +#pragma once + +#define XXX KC_NO + +// clang-format off +#if defined MIRYOKU_MAPPING_EXTENDED_THUMBS +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT( \ +XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ +XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ +XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ +XXX, XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX, XXX \ +) +#else +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT( \ +XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ +XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ +XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ +XXX, XXX, XXX, K32, K33, K34, XXX, XXX, K35, K36, K37, XXX, XXX, XXX \ +) +#endif diff --git a/keyboards/hillside/52/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/hillside/52/keymaps/manna-harbour_miryoku/keymap.c new file mode 100644 index 0000000000..dbab7f9820 --- /dev/null +++ b/keyboards/hillside/52/keymaps/manna-harbour_miryoku/keymap.c @@ -0,0 +1,4 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// 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 . diff --git a/keyboards/hillside/52/keymaps/via/keymap.c b/keyboards/hillside/52/keymaps/via/keymap.c new file mode 100644 index 0000000000..3033f177e7 --- /dev/null +++ b/keyboards/hillside/52/keymaps/via/keymap.c @@ -0,0 +1,64 @@ +// Copyright 2022 Michael McCoyd (@mmccoyd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY = 0, + _NAV, + _SYM, + _ADJUST, +}; + +#define xxxxxxx KC_NO + +#define LY_NAV MO(_NAV) +#define LY_SYM MO(_SYM) +#define LY_ADJ MO(_ADJUST) +#define ALT_GR OSM(MOD_RALT) +#define OSM_SFT OSM(MOD_LSFT) +#define PLY_PAU KC_MEDIA_PLAY_PAUSE + +#define UNDO LCTL(KC_Z) +#define CUT LCTL(KC_X) +#define COPY LCTL(KC_C) +#define PASTE LCTL(KC_V) +#define REDO LCTL(KC_Y) +// (For OS X, you'll want to change these editing keys to LGUI(KC_Z) etc.) + + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_QUOT, KC_SLSH, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, + KC_MUTE, KC_ESC, KC_LCTL, KC_LGUI, KC_LALT, OSM_SFT, LY_NAV, LY_SYM , KC_SPC , KC_LALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_NAV] = LAYOUT( + COPY , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, + CUT , KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, PASTE , KC_PGUP, KC_LEFT, KC_UP , KC_DOWN, KC_RGHT, KC_PGDN, + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , UNDO , REDO , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_TRNS, + KC_F11 , KC_F12 , KC_LCTL, _______, _______, _______, _______, LY_ADJ , _______, _______, _______, KC_RCTL, KC_HOME, KC_END + ), + [_SYM] = LAYOUT( + KC_INS, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + CW_TOGG, KC_BSLS, KC_MINS, KC_EQL , KC_LBRC, KC_RBRC, KC_VOLU, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______, + _______, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_MPLY, KC_MUTE, KC_VOLD, KC_0 , KC_1 , KC_2 , xxxxxxx, _______, + xxxxxxx, xxxxxxx, _______, _______, _______, _______, LY_ADJ , _______, _______, _______, _______, KC_RCTL, KC_APP, ALT_GR + ), + [_ADJUST] = LAYOUT( + xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, AG_SWAP, CG_SWAP, xxxxxxx, KC_PSCR, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, + xxxxxxx, xxxxxxx, KC_BRIU, xxxxxxx, AG_NORM, CG_NORM, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, xxxxxxx, xxxxxxx, + QK_BOOT, xxxxxxx, KC_BRID, xxxxxxx, xxxxxxx, xxxxxxx, EE_CLR, RGB_TOG, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, xxxxxxx, xxxxxxx, + XXXXXXX, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, _______, _______, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx + ), +}; + +// Template: +// [_INDEX] = LAYOUT( +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// ), diff --git a/keyboards/hillside/52/keymaps/via/rules.mk b/keyboards/hillside/52/keymaps/via/rules.mk new file mode 100644 index 0000000000..fcd5f229ea --- /dev/null +++ b/keyboards/hillside/52/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +CAPS_WORD_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/hillside/52/readme.md b/keyboards/hillside/52/readme.md new file mode 100644 index 0000000000..be4727083c --- /dev/null +++ b/keyboards/hillside/52/readme.md @@ -0,0 +1,29 @@ +# Hillside 52 + +![hillside](https://imgur.com/eDqDMk7h.png) + +[Hillside 52](https://github.com/mmccoyd/hillside) + is a split ergonomic keyboard with 3x6+3+5 choc-spaced keys, + splayed ring and pinkie columns, aggressive column stagger, + a longer thumb arc, an inverted-T arrow cluster and a breakoff outer-pinkie column. + +* Keyboard Maintainer: [Michael McCoyd](https://github.com/mmccoyd) +* Hardware Supported: ProMicro/Elite-C and compatible +* Hardware Availability: https://github.com/mmccoyd/hillside + +Make example for this keyboard (after setting up your build environment): + + make hillside/52/0_1:default + +Flashing example for this keyboard: + + make hillside/52/0_1:default:flash + +## Bootloader + +Enter the bootloader by either: + +* **Physical reset button**: Briefly press the button on the front of the PCB. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/hillside/52/rules.mk b/keyboards/hillside/52/rules.mk new file mode 100644 index 0000000000..402bc6bb95 --- /dev/null +++ b/keyboards/hillside/52/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = hillside/52/0_1 diff --git a/keyboards/hillside/readme.md b/keyboards/hillside/readme.md new file mode 100644 index 0000000000..a1ca944d3a --- /dev/null +++ b/keyboards/hillside/readme.md @@ -0,0 +1,17 @@ +# Hillside + +| Hillside 52 and 48|![hillside](https://imgur.com/bvzLZz4h.png)| +|:-----------|:----------------| +| **Hillside 46** | ![hillside](https://imgur.com/pIVrKSgh.png)| + +[Hillside](https://github.com/mmccoyd/hillside) + is a small family of split ergonomic keyboards. +Inside this directory is support for the three smaller models: + the 52, 48 and 46. + +* Keyboard Maintainer: [Michael McCoyd](https://github.com/mmccoyd) +* Hardware Supported: + * [Hillside 52](https://github.com/qmk/qmk_firmware/blob/master/keyboards/hillside/52): ProMicro/Elite-C and compatible + * [Hillside 48](https://github.com/qmk/qmk_firmware/blob/master/keyboards/hillside/48): ProMicro/Elite-C and compatible + * [Hillside 46/40](https://github.com/qmk/qmk_firmware/blob/master/keyboards/hillside/46): ProMicro/Elite-C and compatible +* Hardware Availability: [https://github.com/mmccoyd/hillside](https://github.com/mmccoyd/hillside) -- cgit v1.2.3