71 lines
2.0 KiB
Markdown
71 lines
2.0 KiB
Markdown
# QMK Userspace
|
||
|
||
This is a repository which allows for an external set of QMK keymaps to be
|
||
defined and compiled. This is useful to maintain keymaps without having to fork
|
||
the main QMK repository.
|
||
|
||
## Howto use it
|
||
|
||
This repository contains my somewhat unified configurations for the following
|
||
keyboards:
|
||
|
||
- Ferris bling 0.2
|
||
- Atreus42 promicro
|
||
- Xbows nature
|
||
|
||
Prerequisites:
|
||
1. `qmk` installed in the computer
|
||
2. Userspace configured on the computer
|
||
- `qmk config user.overlay_dir=$(realpath qmk_userspace)`
|
||
|
||
The goal of this repo is to store my custom configurations for
|
||
`PERMISSIVE_HOLD_PER_KEY` for instance and timings for mouse emulation and so on
|
||
to simplify further changes and synchronise the qmk configuration on different
|
||
computers.
|
||
|
||
The keyboard configuration can be done on the [online
|
||
configurator](https://config.qmk.fm/) using the [json files](./json).
|
||
|
||
Then, it can simply be transformed in a C file that can be used as is in the corresponding repository with:
|
||
|
||
```sh
|
||
qmk json2c <json file location> > keymap.c
|
||
```
|
||
|
||
Finally, to flash the firmware:
|
||
```sh
|
||
qmk flash -kb <keyboard type> -km custom
|
||
```
|
||
|
||
|
||
## Description of the layers
|
||
|
||
The main configuration relies on a 34 keys keyboard, let’s say the ferris, as a
|
||
base with GASC homerow mods.
|
||
|
||
The base layer looks like this:
|
||
|
||

|
||
|
||
`PERMISSIVE_HOLD` is disabled on home row keys to avoid false positive on rolls,
|
||
and enabled for thumb keys as there are few false positives in this case.
|
||
|
||
The internal thumb keys move to the nav/numpad layer on hold or space/tap on
|
||
tap. This layer is the following:
|
||
|
||

|
||
|
||
Finally, pressing both internal thumb keys (or left external one) leads to the
|
||
function/mouse nav layer:
|
||
|
||

|
||
|
||
This layer also allows accessing custom layers, such as here layer 3 that is the
|
||
`qwerty-ergol` compatibility layer or the layer 4 which is a gaming layer (not
|
||
described here).
|
||
|
||
## Left to do
|
||
|
||
- [ ] Replace `png` images with `svg`
|
||
- [ ] Automatize the firmware generations
|