Skip to content

Conversation

@hollowhemlock
Copy link
Contributor

#191 Pull request.

@caksoylar
Copy link
Owner

Can you split adding the corner legends to a separate PR? That would resolve #151.

@caksoylar
Copy link
Owner

Thanks, I like the approach of a separate command to intentionally merge and output another keymap yaml.

In general I am not a big fan of combined diagrams because they are hard to read, but it might be useful to have the functionality for some cases. I'll review if you can split as above.

@hollowhemlock
Copy link
Contributor Author

Awesome, will do.

@hollowhemlock hollowhemlock force-pushed the feature/merge-layers-with-corner-glyphs branch from 7a6b736 to c34fe50 Compare December 28, 2025 03:01
@hollowhemlock
Copy link
Contributor Author

commit dd711a2 is identical to #193 pull request

@hollowhemlock
Copy link
Contributor Author

Also, I like the combined diagrams because they take less real estate when printing for easy reference.

@caksoylar
Copy link
Owner

Can you rebase this when you get a chance?

@hollowhemlock
Copy link
Contributor Author

yeah

hollowhemlock and others added 2 commits December 29, 2025 09:17
Add a new subcommand that combines multiple layers into a single layer
with multi-position legends. Each key can display:
- Center (t/s/h): primary layer tap, shifted, and hold values
- Corners (tl/tr/bl/br): tap values from up to 4 additional layers

This enables creating compact reference diagrams showing multiple layers
at once, useful for cheat sheets and documentation.

New module: keymap_drawer/stack/
- stacker.py: Core stacking logic
- config.py: StackConfig and CornerLayers models

CLI usage:
  keymap stack-layers --center Base --tl Fun --tr Sys keymap.yaml

Configuration options (stack_config):
- corner_hide: Values to hide in corners
- held_key_colors: Styling for layer activator keys
- held_hide: Values to hide on held keys
@hollowhemlock hollowhemlock force-pushed the feature/merge-layers-with-corner-glyphs branch from c34fe50 to cd3057b Compare December 29, 2025 17:38
@hollowhemlock
Copy link
Contributor Author

Rebased to main and dropped the 1 commit related to #193. Ran the following and still functions.

cd examples/stacked

# With combos stacked
poetry run keymap -c config.yaml stack-layers --center colemak_dh --tl fun --tr sys --bl num --br nav \
  ferris_sweep.yaml --include-combos colemak_dh nav num -o stacked.yaml
poetry run keymap -c config.yaml draw -k "ferris/sweep" stacked.yaml -o stacked.svg

# With combos as separate layer (--separate-combo-layer flag)
poetry run keymap -c config.yaml stack-layers --center colemak_dh --tl fun --tr sys --bl num --br nav \
  ferris_sweep.yaml --include-combos colemak_dh nav num --separate-combo-layer -o stacked.yaml
poetry run keymap -c config.yaml draw -k "ferris/sweep" stacked.yaml -o stacked.svg

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants