1
0
Fork
You've already forked mana2
0
forked from Zakkkk/mana2
Keyboard layout analyser for layouts including combos, magic keys, layers, and tap hold functionality!
  • Go 100%
2026年04月11日 14:02:40 +01:00
cmd/cli Added package doc strings 2026年03月02日 19:36:44 +11:00
core Fixed extended engine bugs 2026年04月11日 01:51:44 +10:00
data Add layouts 2026年04月11日 01:51:27 +10:00
docs Fixed stretch stat 2026年04月10日 18:16:10 +10:00
engines Fixed extended engine bugs 2026年04月11日 01:51:44 +10:00
internal Adds a minimal layouts command to list layouts 2026年04月11日 14:02:40 +01:00
.gitignore Renamed private layouts folder 2026年03月22日 02:34:50 +11:00
command_history Added json command for stats, added all stat example commands 2026年01月20日 23:57:09 +11:00
config.jsonc Update corpus loading/downloading 2026年03月08日 17:17:10 +11:00
go.mod new corpus on new options functionality 2026年01月22日 02:26:30 +11:00
go.sum new corpus on new options functionality 2026年01月22日 02:26:30 +11:00
LICENSE Add license 2025年12月23日 10:44:46 +08:00
README.md Update README.md 2026年04月09日 18:08:04 +10:00

Mana2

⚠️ Mana2 is still under heavy development, and is not yet released, or ready to use. ⚠️

A sequel to my old magic analyser!

Planned/completed features:

  • Modular analyses algorithms; choose between traditional analyses, old Mana algorithms, or optimal pathfinding analyses considering combos, layers, and magic.
  • Custom board shapes, allowing for custom row or column staggers.
  • Composable commands with s-expressions, for example: compare sturdy (swap sturdy ab).
  • Customisable layout generation for regular layouts, or layouts with magic.
  • Many included layouts.
  • Customisable corpus parsing options.
  • Simple user definable stats.

Installing and Running

Mana2 requires Go to be installed. Install it with your package manager or see the website.

git clone https://codeberg.org/Zakkkk/mana2.git
cd mana2
go run ./cmd/cli

Alternatively, you can run Mana2 as a CLI tool, rather than in the TUI by appending the desired commands after the run command:

go run ./cmd/cli load sturdy

You can run multiple commands by putting parentheses around your commands:

go run ./cmd/cli (load sturdy) (compare night (swap night ae))

You may need to wrap your commands in "quotes" if your terminal misinterprets your input: go run ./cmd/cli "(compare sturdy (swap sturdy ab))".

Documentation

To get started for for any questions, please see the /docs/ folder for full documentation and examples. I've specifically made this to be easy to understand and read so please don't be intimidated!

Engines

Mana2 uses 'engines' to achieve its modular analyses. There are different algorithms for analysing a layout, depending on what is needed, for example, you might have a layout with simple magic, complex magic, layers, or combos, and it would make sense to choose the fastest engine which still supports all the features of your layout. This will especially matter for generation as layouts needs to be analysed thousands of times.

If you only intend on using Mana2 as a regular analyser, you can keep using the Standard Engine and ignore further mentions of it.

Acknowledgements

Special thanks to Apfel, StrawberryTurtle aka BerryKate, yuli for their suggestions and contributions.

Consider joining the AKL Discord!