makima
Makima is a daemon for Linux to bind your controller's buttons to key sequences and macros.
Features:
- Configure your keybindings through a simple TOML config file
- Bind single keys/buttons or entire macros, sequences and shortcuts
- Supports keyboard keys, mouse buttons and any other input event that's in
/usr/include/linux/input-event-codes.h
- Move your cursor using analog sticks with adjustable sensitivity
- Hotplug to connect and disconnect your controllers whenever you want
- Connect multiple controllers at the same time so your little brother can join and close your IDE when you least expect it
- Supports wired and Bluetooth connections
- Written in Rust so it's blazingly fast or something? (it only uses 3.5 MB of RAM)
Tested controllers:
- DualShock 2
- DualShock 3
- DualShock 4
- DualSense
- Xbox 360
- Xbox One
- Xbox Elite 2
- Stadia
- Switch Joy-Cons
How to use:
- Download the executable from the Releases page or compile it yourself using Cargo.
- Pick a config file compatible with your controller(s) from the "config examples" folder and put it in
~/.config/makima
, rename it toconfig.toml
. - Customize the keybindings to your liking. Info about the specific configs is commented inside the config files.
- Make sure the executable has permission to be executed as a program. If not,
cd
to the directory of the executable and usechmod +x makima
. - Make sure your user has access to event devices. If it doesn't, use
sudo usermod -aG input yourusername
. - Launch Makima and it'll automatically recognize all connected controllers.
- You can either:
- Launch it from your file manager by double clicking.
- Launch it from terminal by
cd
ing to the directory of the executable, then using./makima
. - Move the executable to a directory that's in PATH, then launch it using
rofi
,dmenu
or whatever launcher you use. I personally added~/.local/share/bin
to PATH and put all my executables there. - Create a .desktop file and launch it from there.
- Autostart it from your window manager's config file (usually
exec /path/to/makima
).
- You can either: