[Keyboard] Move Hillside out of handwired (#18751)

Co-authored-by: mmccoyd <mmccoyd@cs.berkley.edu>
This commit is contained in:
mmccoyd 2022-11-20 00:50:09 -08:00 committed by GitHub
parent 66e4add972
commit 543a863766
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
58 changed files with 180 additions and 311 deletions

View file

@ -1,146 +0,0 @@
#!/usr/bin/env python3
# Copyright 2020-2022 Pierre Viseu Chevalier, Michael McCoyd (@pierrechevalier83, @mmccoyd)
# SPDX-License-Identifier: GPL-2.0-or-later
"""Pretty print keymap json in more readable row/side organized format, based on ROW_SIZES."""
import argparse
import json
import sys
from typing import NamedTuple
"""Print keymap json in row and side format, though as still re-readable json.
For example, for one layer:
["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_LCTL", "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G",
"KC_H" , "KC_J" , "KC_K" , "KC_L" , "KC_SCLN", "KC_QUOT",
"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_ENT" , "KC_LGUI", "KC_LALT", "MO(5)" , "MO(3)",
"MO(4)" , "KC_SPC" , "KC_LALT", "KC_RGUI", "KC_APP"
],
"""
# The structure of the keymap. Tuples describing row sizes.
# (<Keys upto and including (one-indexed) keycount x> <are in half rows of y>)
ROW_SIZES = [(24, 6),
(38, 7),
(48, 5),
]
###
### Below here should not need to changed for different keyboards
###
LAST_KEY = ROW_SIZES[-1][0] - 1
indent_level=4 # number of spaces of initial indent per output line
def parse_cli():
parser = argparse.ArgumentParser(description='Hillside keymap formatter')
parser.add_argument("--input", type=argparse.FileType('r'),
default=sys.stdin, help="Input keymap "
"(json file produced by qmk configurator)")
return parser.parse_args()
class Column(NamedTuple):
"""Column number within keymap side, if it ends side, and ends row.
Position within a keyboard row runs from 0 to n and again 0 to n"""
num: int
ends_side: bool
ends_row: bool
def get_col(key_index):
"""Return Column for key_index."""
index_prior = 0 # index of last key in rows of the prior size
for keys_upto, num_cols in ROW_SIZES: # For row sizes from top
if key_index < keys_upto: # Find range key_index is in
col_num = (key_index - index_prior) % num_cols
return Column(col_num, # Return column plus side and row ends flags
ends_side=col_num == num_cols - 1,
ends_row=(keys_upto - 1 - key_index) %
(2 * num_cols) == 0)
index_prior = keys_upto # Big O: row ranges * keys, but range is small
def format_layers(layers):
formatted = indent_level * " " + "\"layers\": [\n"
# Find max key length per column
max_key_length = {}
for layer in layers:
for (index, keycode) in enumerate(layer):
col = get_col(index)
max_length = max_key_length.get(col.num)
if (not max_length) or len(keycode) > max_length:
max_key_length.update({col.num: len(keycode)})
# Format each layer
for (layer_index, layer) in enumerate(layers):
# Opening [
formatted += 2 * indent_level * " "
formatted += "["
# Split keys into pairs of left and right rows by key row length
for (index, keycode) in enumerate(layer):
col = get_col(index)
# Indent for rows past first
if col.num == 0 and index != 0:
formatted += (1 + 2 * indent_level) * " "
# Print key
formatted += json.dumps(keycode)
# End layer, or end side, or space to next key
if index == LAST_KEY:
formatted += "\n"
elif col.ends_side:
formatted += ",\n"
else:
n_spaces = max_key_length[get_col(index).num] - len(keycode)
formatted += n_spaces * " "
formatted += ", "
# Split groups of row sides
if col.ends_row:
formatted += "\n"
# Closing ] with , or without
formatted += 2 * indent_level * " "
if layer_index < len(layers) - 1:
formatted += "],\n"
else:
formatted += "]\n"
formatted += indent_level * " "
formatted += "]"
return formatted
def format_keymap(keymap_json):
formatted = "{"
for (index, k) in enumerate(keymap_json):
if k == "layers":
formatted += format_layers(keymap_json[k])
else:
formatted += f"{indent_level * ' '}{json.dumps(k)}: {json.dumps(keymap_json[k])}"
if index < len(keymap_json) - 1:
formatted += ","
formatted += "\n"
formatted += "}"
return formatted
def main():
args=parse_cli()
keymap_json = json.loads(args.input.read())
print(format_keymap(keymap_json))
if __name__ == "__main__":
main()

View file

@ -1,14 +0,0 @@
# Hillside
![hillside](https://imgur.com/4POduewh.png)
[Hillside](https://github.com/mmccoyd/hillside)
is a small family of split ergonomic keyboards.
Inside this directory is support for the two smaller models,
the 52 and 48.
* Keyboard Maintainer: [Michael McCoyd](https://github.com/mmccoyd)
* Hardware Supported:
* [Hillside 52](https://github.com/qmk/qmk_firmware/blob/master/keyboards/handwired/hillside/52): ProMicro/Elite-C and compatible
* [Hillside 48](https://github.com/qmk/qmk_firmware/blob/master/keyboards/handwired/hillside/48): ProMicro/Elite-C and compatible
* Hardware Availability: [https://github.com/mmccoyd/hillside](https://github.com/mmccoyd/hillside)

View file

@ -1,7 +1,7 @@
// Copyright 2022 Michael McCoyd (@mmccoyd) // Copyright 2022 Michael McCoyd (@mmccoyd)
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
#include "46.h" #include "0_1.h"
// Keymatrix spots to ignore, as one signals handedness and others have no key // Keymatrix spots to ignore, as one signals handedness and others have no key
const matrix_row_t matrix_mask[] = { const matrix_row_t matrix_mask[] = {

View file

@ -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
}
}

View file

@ -7,39 +7,6 @@
"tags": ["split", "column stagger", "choc v1", "choc spaced" ], "tags": ["split", "column stagger", "choc v1", "choc spaced" ],
"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
},
"layouts": { "layouts": {
"LAYOUT": { "LAYOUT": {
"layout": [ "layout": [

View file

@ -1,7 +1,7 @@
{ "version": 1, { "version": 1,
"notes": "", "notes": "",
"documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\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", "documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\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": "handwired/hillside/46", "keyboard": "hillside/46",
"keymap": "default", "keymap": "default",
"layout": "LAYOUT", "layout": "LAYOUT",
"layers": [ "layers": [

View file

@ -1,6 +1,6 @@
# Hillside 46 Default Keymap # 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/#/handwired/hillside/46/LAYOUT). 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: Some of its key features are:
@ -76,7 +76,7 @@ If you are coming from a traditional keyboard,
This default layout tries to simplify that adjustment by keeping things in the expected spots when possible. 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. Yet this layout is only a decent compromise and is not optimal for each user.
The online configurator makes it easy to tweak this layout to your needs. 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. 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 A good metaphor is to think of your keymap as a bonsai tree that you tweak slightly over time
@ -110,8 +110,8 @@ If you wish, you can edit the ```keymap.json``` directly in a text editor, comp
Or, you can use the graphical configurator to edit the keymap. To do that: Or, you can use the graphical configurator to edit the keymap. To do that:
- Open the [QMK configurator](https://config.qmk.fm/#/handwired/hillside/46/LAYOUT) - Open the [QMK configurator](https://config.qmk.fm/#/hillside/46/LAYOUT)
- Using the green up arrow button, load the keymap from ```qmk_firmware/keyboards/handwired/hillside/46/keymaps/default/keymap.json``` - 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 - Make the changes you wish to the layout
- Save the keymap using the green down arrow button. - Save the keymap using the green down arrow button.
- Move the downloaded keymap back into your QMK repository - Move the downloaded keymap back into your QMK repository

View file

@ -2,14 +2,14 @@
This layout is for those who prefer defining their layout in a keymap.c, This layout is for those who prefer defining their layout in a keymap.c,
instead of graphically with a keymap.json. 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/handwired/hillside/46/keymaps/default), 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. except for having only a QWERTY base layer.
The make and flash commands are The make and flash commands are
``` ```
make handwired/hillside/46:default_dot_c make hillside/46:default_dot_c
make handwired/hillside/46:default_doc_c:flash make hillside/46:default_doc_c:flash
``` ```

View file

@ -13,11 +13,11 @@
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make handwired/hillside/46:default make hillside/46/0_1:default
Flashing example for this keyboard: Flashing example for this keyboard:
make handwired/hillside/46:default:flash make hillside/46/0_1:default:flash
## Bootloader ## Bootloader

View file

@ -0,0 +1 @@
DEFAULT_FOLDER = hillside/46/0_1

View file

@ -1,4 +1,4 @@
// Copyright 2022 Michael McCoyd (@mmccoyd) // Copyright 2022 Michael McCoyd (@mmccoyd)
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
#include "48.h" #include "0_1.h"

View file

@ -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
}
}

View file

@ -7,40 +7,6 @@
"tags": ["split", "column stagger", "choc v1", "choc spaced" ], "tags": ["split", "column stagger", "choc v1", "choc spaced" ],
"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
},
"layouts": { "layouts": {
"LAYOUT": { "LAYOUT": {
"layout": [ "layout": [

View file

@ -1,7 +1,7 @@
{ "version": 1, { "version": 1,
"notes": "", "notes": "",
"documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\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", "documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\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": "handwired/hillside/48", "keyboard": "hillside/48",
"keymap": "default", "keymap": "default",
"layout": "LAYOUT", "layout": "LAYOUT",
"layers": [ "layers": [

View file

@ -1,8 +1,9 @@
# Default Keymap # 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/#/handwired/hillside/48/LAYOUT). 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: Some of its key features are:
- Numbers and symbols along the top row of their layers for familiarity. - 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 - 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. using modifiers on the home row of the symbol and number/function layers.
@ -97,20 +98,21 @@ Simultaneously holding down the Sym and Nav/Edit keys enables keys to adjust key
## Make it Yours ## Make it Yours
If you are coming from a traditional keyboard, If you are coming from a traditional keyboard,
with a row-staggered layout and a large set of physical keys, with a large set of physical keys,
learning to use a column staggered (ergo) and layer-based keyboard, learning to use a column staggered (ergo) and layer-based keyboard,
which uses layers instead of finger reaches to access numbers, symbols and functions, 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. 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. 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. Yet this layout is only a decent compromise and is not optimal for each user.
The online configurator makes it easy to tweak this layout to your needs. 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. 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 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. in response to ideas of how it might serve you better.
Some changes you might consider making: Some changes you might consider making:
- If you are on a mac, switch the editing keys from ctrl-x to cmd-x. - 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, - Change the shift keys to one-shot shift keys,
where pressing and releasing them shifts the next key pressed. where pressing and releasing them shifts the next key pressed.
@ -122,6 +124,7 @@ Some changes you might consider making:
You would still be able to hold it down instead. You would still be able to hold it down instead.
Here are some other keymaps for inspiration and ideas: 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 [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 [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. - 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.
@ -130,30 +133,33 @@ Here are some other keymaps for inspiration and ideas:
## Why no keymap.c ## Why no keymap.c
The online configurator provides a straightforward visual way to work with a simple layout The online configurator provides a straightforward visual way
and uses a .json keymap format. to work with a simple layout and uses a .json keymap format.
So this default ```keymap.json``` was created with the online configurator So this default ```keymap.json``` was created with the online configurator.
and formatted for easier reading and editing.
If you wish, you can edit the ```keymap.json``` directly in a text editor, optionally use the below ```json2hill48.py``` to restore the spacing, and then compile and flash it. 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: Or, you can use the graphical configurator to edit the keymap. To do that:
- Open the [QMK configurator](https://config.qmk.fm/#/handwired/hillside/48/LAYOUT) - Open the [QMK configurator](https://config.qmk.fm/#/hillside/48/LAYOUT)
- Using the green up arrow button, load the keymap from ```qmk_firmware/keyboards/handwired/hillside/48/keymaps/default/keymap.json``` - 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 - Make the changes you wish to the layout
- Save the keymap using the green down arrow button. - Save the keymap using the green down arrow button.
- Copy those changes back into your QMK repository and reformat for easy reading using the format script: - Move the downloaded keymap back into your QMK repository
``` at the same location as above.
./keyboards/handwired/hillside/48/keymaps/json2hill48.py \ - Rename it back to keymap.json
--input <Your download directory>/default.json \ - Compile and flash the firmware.
> ./keyboards/handwired/hillside/48/keymaps/default/keymap.json
```
You may need to make that script executable with ```chmod +x```. After your keymap is safely copied and formatted, you may want to remove the keymap from your download directory so later downloads will automatically receive the same file name.
After either method of editing, compile and flash the keymap as usual. You can combine a .json based keymap with more advanced features
specified in .c files with a bit more complexity.
You can combine a .json based keymap with more advanced features specified in .c files
with a bit more complexity.
For example, see For example, see
[pierrec83's Kyria map](https://github.com/qmk/qmk_firmware/tree/master/keyboards/splitkb/kyria/keymaps/pierrec83). [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.

View file

@ -1,6 +1,6 @@
{ "version": 1, { "version": 1,
"notes": "", "notes": "",
"keyboard": "handwired/hillside/48", "keyboard": "hillside/48",
"keymap": "via", "keymap": "via",
"layout": "LAYOUT", "layout": "LAYOUT",
"layers": [ "layers": [

View file

@ -13,11 +13,11 @@
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make handwired/hillside/48:default make hillside/48/0_1:default
Flashing example for this keyboard: Flashing example for this keyboard:
make handwired/hillside/48:default:flash make hillside/48/0_1:default:flash
## Bootloader ## Bootloader

View file

@ -0,0 +1 @@
DEFAULT_FOLDER = hillside/48/0_1

View file

@ -1,7 +1,7 @@
// Copyright 2022 Michael McCoyd (@mmccoyd) // Copyright 2022 Michael McCoyd (@mmccoyd)
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
#include "52.h" #include "0_1.h"
// Keymatrix spots to ignore, as one signals handedness and others have no key // Keymatrix spots to ignore, as one signals handedness and others have no key
const matrix_row_t matrix_mask[] = { const matrix_row_t matrix_mask[] = {

View file

@ -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
}
}

View file

@ -7,39 +7,6 @@
"tags": ["split", "column stagger", "choc v1", "choc spaced" ], "tags": ["split", "column stagger", "choc v1", "choc spaced" ],
"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
},
"layouts": { "layouts": {
"LAYOUT": { "LAYOUT": {
"layout": [ "layout": [

View file

@ -1,7 +1,7 @@
{ "version": 1, { "version": 1,
"notes": "", "notes": "",
"documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\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", "documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\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": "handwired/hillside/52", "keyboard": "hillside/52",
"keymap": "default", "keymap": "default",
"layout": "LAYOUT", "layout": "LAYOUT",
"layers": [ "layers": [

View file

@ -1,6 +1,6 @@
# Hillside 52 Default Keymap # 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/#/handwired/hillside/52/LAYOUT). 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: Some of its key features are:
@ -77,7 +77,7 @@ If you are coming from a traditional keyboard,
This default layout tries to simplify that adjustment by keeping things in the expected spots when possible. 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. Yet this layout is only a decent compromise and is not optimal for each user.
The online [configurator](https://config.qmk.fm/#/handwired/hillside/52/LAYOUT) makes it easy to tweak this layout to your needs. 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. 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 A good metaphor is to think of your keymap as a bonsai tree that you tweak slightly over time
@ -130,8 +130,8 @@ If you wish, you can edit the ```keymap.json``` directly in a text editor, comp
Or, you can use the graphical configurator to edit the keymap. To do that: Or, you can use the graphical configurator to edit the keymap. To do that:
- Open the [QMK configurator](https://config.qmk.fm/#/handwired/hillside/52/LAYOUT) - Open the [QMK configurator](https://config.qmk.fm/#/hillside/52/LAYOUT)
- Using the green up arrow button, load the keymap from ```qmk_firmware/keyboards/handwired/hillside/52/keymaps/default/keymap.json``` - 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 - Make the changes you wish to the layout
- Save the keymap using the green down arrow button. - Save the keymap using the green down arrow button.
- Move the downloaded keymap back into your QMK repository - Move the downloaded keymap back into your QMK repository

View file

@ -2,14 +2,14 @@
This layout is for those who prefer defining their layout in a keymap.c, This layout is for those who prefer defining their layout in a keymap.c,
instead of graphically with a keymap.json. 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/handwired/hillside/52/keymaps/default), 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. except for having only a QWERTY base layer.
The make and flash commands are The make and flash commands are
``` ```
make handwired/hillside/52:default_dot_c make hillside/52:default_dot_c
make handwired/hillside/52:default_doc_c:flash make hillside/52:default_doc_c:flash
``` ```

View file

@ -13,11 +13,11 @@
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make handwired/hillside/52:default make hillside/52/0_1:default
Flashing example for this keyboard: Flashing example for this keyboard:
make handwired/hillside/52:default:flash make hillside/52/0_1:default:flash
## Bootloader ## Bootloader

View file

@ -0,0 +1 @@
DEFAULT_FOLDER = hillside/52/0_1

View file

@ -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)