Add keymap-drawer workflow
I haven't tuned the output. For now this is just a demonstration of the workflow.
This commit is contained in:
parent
c65ef715d9
commit
63222cc2dd
8 changed files with 32 additions and 3 deletions
4
.envrc
4
.envrc
|
@ -3,4 +3,6 @@ export DIRENV_LOG_FORMAT=$'\033[2mdirenv: %s\033[0m'
|
||||||
|
|
||||||
# Use flake
|
# Use flake
|
||||||
use flake
|
use flake
|
||||||
watch_file keymap_drawer.nix
|
|
||||||
|
# Watch additional files
|
||||||
|
watch_file draw/default.nix
|
||||||
|
|
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -5,3 +5,6 @@
|
||||||
modules
|
modules
|
||||||
firmware
|
firmware
|
||||||
zmk
|
zmk
|
||||||
|
# Ignore keymap-drawer output for now
|
||||||
|
draw/base.svg
|
||||||
|
draw/base.yaml
|
||||||
|
|
8
Justfile
8
Justfile
|
@ -4,6 +4,7 @@ default:
|
||||||
config := absolute_path('config')
|
config := absolute_path('config')
|
||||||
build := absolute_path('.build')
|
build := absolute_path('.build')
|
||||||
out := absolute_path('firmware')
|
out := absolute_path('firmware')
|
||||||
|
draw := absolute_path('draw')
|
||||||
|
|
||||||
# parse combos.dtsi and adjust settings to not run out of slots
|
# parse combos.dtsi and adjust settings to not run out of slots
|
||||||
_parse_combos:
|
_parse_combos:
|
||||||
|
@ -75,6 +76,13 @@ clean:
|
||||||
clean-nix:
|
clean-nix:
|
||||||
nix-collect-garbage --delete-old
|
nix-collect-garbage --delete-old
|
||||||
|
|
||||||
|
# parse & plot keymap
|
||||||
|
draw:
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
keymap -c "{{ draw }}/config.yaml" parse -z "{{ config }}/base.keymap" >"{{ draw }}/base.yaml"
|
||||||
|
keymap -c "{{ draw }}/config.yaml" draw "{{ draw }}/base.yaml" -k "ferris/sweep" >"{{ draw }}/base.svg"
|
||||||
|
|
||||||
# initialize west
|
# initialize west
|
||||||
init:
|
init:
|
||||||
west init -l config
|
west init -l config
|
||||||
|
|
8
draw/config.yaml
Normal file
8
draw/config.yaml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
parse_config:
|
||||||
|
zmk_preamble: "#include <zmk-helpers/key-labels/34.h>"
|
||||||
|
zmk_additional_includes:
|
||||||
|
- "modules/helpers/include"
|
||||||
|
|
||||||
|
draw_config:
|
||||||
|
footer_text: "urob/zmk-config"
|
||||||
|
dark_mode: auto
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 118 KiB |
|
@ -19,7 +19,7 @@
|
||||||
devShells = forAllSystems (system: let
|
devShells = forAllSystems (system: let
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
zephyr = zephyr-nix.packages.${system};
|
zephyr = zephyr-nix.packages.${system};
|
||||||
keymap_drawer = pkgs.python3Packages.callPackage ./keymap_drawer.nix { };
|
keymap_drawer = pkgs.python3Packages.callPackage ./draw { };
|
||||||
|
|
||||||
in {
|
in {
|
||||||
default = pkgs.mkShell {
|
default = pkgs.mkShell {
|
||||||
|
|
10
readme.md
10
readme.md
|
@ -31,7 +31,7 @@ compatible with Zephyr 3.0 is available
|
||||||
- nix-based [local build environment](#local-development-workspace) -- simply
|
- nix-based [local build environment](#local-development-workspace) -- simply
|
||||||
`cd` into your workspace and start building without any setup
|
`cd` into your workspace and start building without any setup
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Timeless homerow mods
|
## Timeless homerow mods
|
||||||
|
|
||||||
|
@ -359,6 +359,14 @@ pristine build can be triggered with `just build all -p`.
|
||||||
(For this particular example, there is also a `just clean` recipe, which clears
|
(For this particular example, there is also a `just clean` recipe, which clears
|
||||||
the build cache. To list all available recipes, type `just`.)
|
the build cache. To list all available recipes, type `just`.)
|
||||||
|
|
||||||
|
#### Drawing the keymap
|
||||||
|
|
||||||
|
The build environment packages
|
||||||
|
[keymap-drawer](https://github.com/caksoylar/keymap-drawer). `just draw` parses
|
||||||
|
`base.keymap` and draws it to `draw/base.svg`. I haven't gotten around to
|
||||||
|
tweaking the output yet, so for now this is just a demonstration of how to set
|
||||||
|
things up.
|
||||||
|
|
||||||
#### Hacking the firmware
|
#### Hacking the firmware
|
||||||
|
|
||||||
To make changes to the ZMK source or any of the modules, simply edit the files
|
To make changes to the ZMK source or any of the modules, simply edit the files
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue