https://github.com/kiibohd/kll
KLL Compiler
https://github.com/kiibohd/kll
dsl keyboard keyboard-layout kll python
Last synced: 3 months ago
JSON representation
KLL Compiler
- Host: GitHub
- URL: https://github.com/kiibohd/kll
- Owner: kiibohd
- License: gpl-3.0
- Created: 2014-09-02T16:49:11.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2023-10-10T19:49:17.000Z (over 2 years ago)
- Last Synced: 2026-01-02T12:05:48.726Z (6 months ago)
- Topics: dsl, keyboard, keyboard-layout, kll, python
- Language: Python
- Size: 928 KB
- Stars: 115
- Watchers: 17
- Forks: 67
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# kll - keyboard layout language
[](https://github.com/kiibohd/kll/actions)
[](https://badge.fury.io/py/kll)
[](https://lgtm.com/projects/g/kiibohd/kll/alerts/)
[](https://lgtm.com/projects/g/kiibohd/kll/context:python)
[](https://kiwiirc.com/client/irc.freenode.net/#input.club)
[Visit our Discord Channel](https://discord.gg/GACJa4f)
## If you're trying to compile keyboard firmware, you want [THIS](https://github.com/kiibohd/controller/)
## KLL Compiler
Most current version of the [KLL Spec](https://github.com/kiibohd/kll-spec).
Uses [funcparserlib](https://github.com/vlasovskikh/funcparserlib)
## Dependencies
Dependencies can be installed manually, or by using a pipenv.
* [layouts-python](https://github.com/hid-io/layouts-python) -> [pip](https://pypi.org/project/layouts/)
```bash
pipenv install
pipenv run kll/kll --version
```
*or*
```bash
pip install layouts
```
## Usage
### General Usage
```bash
kll
```
### Kiibohd Controller Usage
```bash
kll --config --base --partial --partial
```
See `kll --help` for the most up to date documentation
## Unit Tests
Unit tests can be found in the [tests](tests) directory.
They are run by Travis-CI, but can be useful when testing your own changes.
Remember to add new tests when adding new features/changes.
## Code Organization
* [kll/common](kll/common) - Main portion of KLL compiler.
* [kll/emitters](kll/emitters) - Various output formats of the KLL compiler.
* [kll/examples](kll/examples) - Example kll files, often used for test cases.
* [kll/extern](kll/extern) - External libraries, copied into git repo for convenience.
* [kll/layouts](kll/layouts) - Layout kll files used for various keyboards and tests.
* [kll/templates](kll/templates) - Templates used by emitters when generating output.
* [tests](tests) - Unit tests for the KLL compiler.
## Patches/Features/Backends
Completely welcome :D