# 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 > keymap.c ``` Finally, to flash the firmware: ```sh qmk flash -kb -km custom ``` ## The layer description 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: ![Base Layer](./img/Layer-0.png) The internal thumb keys move to the nav/numpad layer on hold or space/tap on tap. This layer is the following: ![Num-Nav Layer](./img/Layer-1.png) Finally, pressing both internal thumb keys (or left external one) leads to the function/mouse nav layer: ![Num-Nav Layer](./img/Layer-2.png) 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