Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

map2

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

map2

  • 2.1.1
  • PyPI
  • Socket score

Maintainers
1

map2

Linux input remapping
Remap your keyboard, mouse, controller and more!

GitHub MIT License Discord Build Donate

Want to remap your input devices like keyboards, mice, controllers and more?
There's nothing you can't remap with map2!

  • 🖱️ Remap keys, mouse events, controllers, pedals, and more!
  • 🔧 Highly configurable, using Python
  • 🚀 Blazingly fast, written in Rust
  • 📦 Tiny install size (around 5Mb), almost no dependencies
  • ❤️ Open source, made with love

Visit our official documentation for the full feature list and API.


If you like open source, consider supporting

Buy Me a Coffee at ko-fi.com

Install

The easiest way is to use pip:

pip install map2

For more, check out the Install documentation.

After installing, please read the Getting started documentation.

Example

import map2

# readers intercept all keyboard inputs and forward them
reader = map2.Reader(patterns=["/dev/input/by-id/my-keyboard"])
# mappers change inputs, you can also chain multiple mappers!
mapper = map2.Mapper()
# writers create new virtual devices we can write into
writer = map2.Writer(clone_from = "/dev/input/by-id/my-keyboard")
# finally, link nodes to control the event flow
map2.link([reader, mapper, writer])

# map the "a" key to "B"
mapper.map("a", "B")

# map "CTRL + ALT + u" to "META + SHIFT + w"
mapper.map("^!u", "#+w")

# key sequences are also supported
mapper.map("s", "hello world!")

# use the full power of Python using functions
def custom_function(key, state):
  print("called custom function")

  # custom conditions and complex sequences
  if key == "d":
    return "{ctrl down}a{ctrl up}"
  return True

mapper.map("d", custom_function)

Build from source

To build from source, make sure python and rust are installed.

# create a python virtual environment
python -m venv .env
source .env/bin/activate

# build the library
maturin develop

While the virtual environment is activated, all scripts ran from this terminal will use the newly built version of map2.

Contributing

If you want to report bugs, add suggestions or help out with development please check the Discord channel and the issues page and open an issue if it doesn't exist yet.

License

MIT

Authors

FAQs


Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc