3
11
Fork
You've already forked mana2
7
Keyboard layout analyser for layouts including combos, magic keys, layers, and tap hold functionality!
  • Go 100%
2026年06月30日 01:54:28 +10:00
cmd/cli Include stats in main 2026年06月25日 15:41:53 +10:00
core Changed layouts format, and added migrate script. Changed magic to no 2026年06月30日 00:43:28 +10:00
data Changed layouts format, and added migrate script. Changed magic to no 2026年06月30日 00:43:28 +10:00
docs Update layout examples for new fingermap 2026年06月30日 00:54:47 +10:00
engines Changed layouts format, and added migrate script. Changed magic to no 2026年06月30日 00:43:28 +10:00
img Updated README 2026年05月24日 23:00:19 +10:00
internal Add update message 2026年06月30日 01:54:28 +10:00
stats Add off pinky stat 2026年06月28日 22:30:27 +10:00
.gitignore Update .gitignore 2026年05月27日 23:06:17 +10:00
command_history Added json command for stats, added all stat example commands 2026年01月20日 23:57:09 +11:00
config.jsonc Add update message 2026年06月30日 01:54:28 +10:00
go.mod Update go and add package 2026年06月10日 21:27:15 +10:00
go.sum Update go and add package 2026年06月10日 21:27:15 +10:00
LICENSE Update LICENSE 2026年06月19日 12:11:35 +10:00
README.md Fix typo 2026年06月27日 12:58:27 +02:00
weights.toml Add off pinky stat 2026年06月28日 22:30:27 +10:00

Mana2

lgbtq+ friendly

⚠️ Mana2 is still under heavy development, and is not yet released, but it is 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.

TUI of Mana2 showing a layout preview.

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

You should then be able to run any commands in the TUI.

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.

Contributing

You are welcome to contribute to Mana2! Ways on contributing include:

  • Opening issues for bugs, feature suggestions, or questions.
  • Tackling currently open issues. In particular, see the issues tagged with "good first issue".
  • If you would like to add a feature not currently mentioned in the issues, or have a question about getting started, please send a message in the dev thread.

Ask before embarking on doing complicated work that might not be upstreamed.

AI Policy

Your contribution may not contain AI-generated content. This includes, but is not limited to: code, documentation, assets, or issues. You may use neural network based translation tools for issues.

Acknowledgements

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

Consider joining the AKL Discord!