A simple Python tool that uses the keyboard library to create key layers.
- Customizable profiles: Easily create, delete, modify and transition between profiles.
- Configurable modifier hotkeys: Define modifier hotkeys to activate key layers based on modes
- Layer-based key remapping: Map keys dynamically to different actions using key layers.
- Name
- A set of Key Layers
- A modifier hotkey
- The modifier mode:
- Switch: Temporarily activate a layer by holding the activate hotkey, similar to
Shift
. - Lock: Toggle a layer on/off by pressing the activate hotkey, similar to
CapsLock
.
- Switch: Temporarily activate a layer by holding the activate hotkey, similar to
- A set of Key Remaps
- A source key (the key being remapped).
- A destination key (the key it becomes when the key layer is active).
- Let a profile named "Meaningless" contain 1 key layer:
- Key Layer:
- Modifier hotkey:
CapsLock
- Modifier mode: Switch
- Key remaps:
a
->Delete
s
->F1
d
->up
(up arrow)
- Modifier hotkey:
While CapsLock
is held, the key layer is active (Switch mode):
_____ _____ _____
/\ Del \\ F1 \\ ↑ \
\ \_____\\_____\\_____\
\/_____//_____//_____/
/ / /
___/_ ___/_ ___/_
__________ /\ a \\ s \\ d \
\ CapsLock \ \ \_____\\_____\\_____\
\___________\ \/_____//_____//_____/
- Python 3.12+ needed (Download Page)
- Keyboard library needed (GitHub Repository)
- Pydantic library needed (Install Page)
Note: Currently, Layermp can only be used if you manually modify the json files in the config folder.
- Clone or download the repository:
git clone https://github.com/figdavi/Layermp.git
cd layermp
- Run the program:
python main.py
- Add a CLI with Typer + Rich
- Design a way to check if key names exist as keys (keyboard library doesn't have a support to this by default)
- Error logging
- Keylogger with heatmap
- Implement better printing format for profile and commands classes
- Create a pt-br README
For an in-depth understanding of key layers, refer to: