
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
mathkeyboardengine
Advanced tools
MathKeyboardEngine provides the logic for a highly customizable virtual math keyboard. It is intended for use together with any LaTeX typesetting library.
MathKeyboardEngine for Python provides the logic for a highly customizable virtual math keyboard. It is intended for use together with any LaTeX typesetting library (for example matplotlib.mathtext, sympy in combination with the official latex install or Katex in a webview).
Also available:
insert(some_matrix_node) or move_up(), delete_left(), etc.get_edit_mode_latex() outputs the total of LaTeX you typed, for example \frac{3}{4}\blacksquare (if \blacksquare is your cursor), which you then feed to the typesetting library for display.get_view_mode_latex() outputs the LaTeX without a cursor.Live (JavaScript) examples can be tested at mathkeyboardengine.github.io.
A Python example for the PyQt6 GUI framework can be found in the examples folder. Note that the Python example is limited, because it does not handle physical keyboard input. Also, there are many more GUI frameworks for which there is no example. However, the PyQt6 example might provide insight in how to use MathKeyboardEngine in any project.
Unique about MathKeyboardEngine:
StandardLeafNode, StandardBranchingNode, AscendingBranchingNode and DescendingBranchingNode can be used for almost all LaTeX, including fractions, powers, combinations, subscript, etc. with ready-to-use up/down/left/right navigation.A con:
More pros:
Run the following command in the VS Code Terminal:
py -m pip install --upgrade mathkeyboardengine
Then use
from mathkeyboardengine import *
k = KeyboardMemory()
latexconfiguration = LatexConfiguration()
# subscribe to button click events of virtual key presses, etc.
or
import mathkeyboardengine as mke
k = mke.KeyboardMemory()
latexconfiguration = mke.LatexConfiguration()
Note: "mke" is an abbreviation of "MathKeyboardEngine". You can choose something different.
Visit the documentation and the (latest version of the)* examples folder for more implementation details.
* If you use a version tag in the url like this: https://github.com/MathKeyboardEngine/MathKeyboardEngine.Python/tree/v0.2.0, you can see the git repository as it was for that version. That may not be needed if the changelog doesn't note any important changes.
Follow these steps to set up (and verify) a development environment for this repository:
pip.py -m pip install pytest==7.4.4.py -m pytest tests/.py -m pip install pytest-cov==5.0.0py -m pytest tests/ --cov=src --cov-report term-missing.py -m pip install nox==2023.4.22py -m nox (this uses noxfile.py from the root of the repository).The MathKeyboardEngine repositories use the most permissive licensing available. The "BSD Zero Clause License" (0BSD) allows for
commercial + non-commercial use, closed + open source, with + without modifications, etc. and is equivalent to licenses like:
The "BSD Zero Clause License" (0BSD) does not have the condition
(...), provided that the above copyright notice and this permission notice appear in all copies.
which is part of the "MIT License" (MIT) and its shorter equivalent "ISC License" (ISC). Apart from that they are all equivalent.
FAQs
MathKeyboardEngine provides the logic for a highly customizable virtual math keyboard. It is intended for use together with any LaTeX typesetting library.
We found that mathkeyboardengine demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.