A graphical user interface for configuring and managing key and mouse remappings using xremap on Linux systems.
xremap_gui provides an intuitive GUI to create, save, load, and delete profiles with custom keybindings, select input devices, and apply remappings for specific applications.
-
Python 3: Required to run the script.
python3 --version
-
Tkinter: Python's standard GUI library (usually included with Python).
python3 -c "import tkinter"
-
PyYAML: For handling YAML configuration files.
pip3 install pyyaml
-
xremap: The key remapping tool.
xremap --version
Install: xremap GitHub
-
wmctrl: For listing open windows to populate app-specific WM_CLASS values.
wmctrl --version
Install:
sudo apt install wmctrl # Ubuntu/Debian
-
xprop: For querying window properties (WM_CLASS) for app-specific remappings.
xprop --version
Install:
sudo apt install x11-utils # Ubuntu/Debian
-
libinput: For listing input devices.
libinput list-devices
Install:
sudo apt install libinput-tools # Ubuntu/Debian
-
Linux with X11: Required for wmctrl and xprop to list and query window properties.
-
User Permissions: User must be in the
input
group to access input devices without sudo.groups | grep input
Add user to group:
sudo usermod -aG input $USER
Then log out and log back in.
-
Write Permissions: Ensure write access to
/home/$USER/.config/xremap_gui/
for profiles and configurations.
pip install -r requirements.txt
python src/xremap_gui/remap.py
Run the GUI to create, save, load, and delete profiles with custom keybindings, select input devices, and apply remappings for specific applications.