From b5486bb1864d5e6e1bb2639cee6b915eda725210 Mon Sep 17 00:00:00 2001
From: Luke Short
Date: Wed, 18 Jun 2025 21:31:44 -0600
Subject: [PATCH 1/3] docs(README): add troubleshooting guide
---
README.md | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 170 insertions(+)
diff --git a/README.md b/README.md
index c3345be6..f3dc4fbb 100644
--- a/README.md
+++ b/README.md
@@ -282,6 +282,176 @@ mapping:
button: West
```
+### Troubleshooting
+
+Find the InputPlumber version:
+
+```bash
+inputplumber --version
+```
+```
+inputplumber 0.58.7
+```
+
+Start InputPlumber with debug logs enabled.
+
+Temporarily:
+
+```bash
+sudo systemctl stop inputplumber
+sudo LOG_LEVEL=debug inputplumber
+```
+
+Permanently:
+
+```bash
+sudo cp /usr/lib/systemd/system/inputplumber.service /etc/systemd/system/
+sudo sed -i 's/LOG_LEVEL=info/LOG_LEVEL=debug/g' /etc/systemd/system/inputplumber.service
+sudo systemctl daemon-reload
+sudo systemctl restart inputplumber
+```
+
+View debug logs:
+
+```bash
+sudo journalctl --unit inputplumber.service
+```
+
+List managed devices:
+
+```bash
+inputplumber devices list
+```
+```
+╭────┬───────────────╮
+│ Composite Devices │
+├────┼───────────────┤
+│ Id │ Name │
+├────┼───────────────┤
+│ 0 │ ASUS ROG Ally │
+╰────┴───────────────╯
+Found 1 composite device(s)
+```
+
+View the current intercept mode for the first managed device:
+
+```bash
+inputplumber device 0 intercept get
+```
+```
+Current intercept mode: none
+```
+
+Change the intercept mode of the first device:
+
+```bash
+inputplumber device 0 intercept set --help
+inputplumber device 0 intercept set $MODE
+```
+
+View what InputPlumber profiles are loaded and what event interfaces are being used:
+
+```bash
+inputplumber device 0 info
+```
+```
+╭────┬───────────────┬──────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Composite Device │
+├────┼───────────────┼──────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Id │ Name │ Profile Name │ Source Devices │
+├────┼───────────────┼──────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ 0 │ ASUS ROG Ally │ Default │ ["/dev/hidraw2", "/dev/input/event3", "/dev/input/event4", "/dev/input/event5", "/dev/iio:device0", ""] │
+╰────┴───────────────┴──────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+```
+
+Find the related configuration file (replace "ASUS ROG Ally" with the "Name" from the previous output):
+
+```bash
+grep --recursive --files-with-matches --basic-regexp "name: ASUS ROG Ally$" /usr/share/inputplumber/devices/
+```
+```
+/usr/share/inputplumber/devices/50-rog_ally.yaml
+```
+
+Start the built-in test tool (recommended to run in a separate window):
+
+```bash
+inputplumber device 0 test
+```
+
+View what input devices are being emulated for the first device:
+
+```bash
+inputplumber device 0 targets list
+```
+```
+╭────────────┬───────────────────────────────╮
+│ Target Devices │
+├────────────┼───────────────────────────────┤
+│ Id │ Name │
+├────────────┼───────────────────────────────┤
+│ mouse │ InputPlumber Mouse │
+├────────────┼───────────────────────────────┤
+│ keyboard │ InputPlumber Keyboard │
+├────────────┼───────────────────────────────┤
+│ xbox-elite │ Microsoft X-Box One Elite pad │
+╰────────────┴───────────────────────────────╯
+```
+
+View what events are being captured by InputPlumber:
+
+```bash
+sudo evtest
+```
+```
+No device specified, trying to scan all of /dev/input/event*
+Available devices:
+/dev/input/event0: Power Button
+/dev/input/event1: Sleep Button
+/dev/input/event10: HD-Audio Generic HDMI/DP,pcm=3
+/dev/input/event11: HD-Audio Generic Mic
+/dev/input/event12: HD-Audio Generic Mic
+/dev/input/event13: HD-Audio Generic Headphone
+/dev/input/event14: Microsoft X-Box One Elite 2 pad
+/dev/input/event15: InputPlumber Mouse
+/dev/input/event16: InputPlumber Keyboard
+/dev/input/event2: AT Translated Set 2 keyboard
+/dev/input/event3: Microsoft X-Box 360 pad
+/dev/input/event4: ROG Ally Keyboard
+/dev/input/event5: ROG Ally Mouse
+/dev/input/event6: NVTK0603:00 0603:F200
+/dev/input/event7: Video Bus
+/dev/input/event8: PC Speaker
+/dev/input/event9: Asus WMI hotkeys
+Select the device event number [0-16]: 14
+```
+
+Stop InputPlumber and then view what events are being captured by the physical device:
+
+```bash
+sudo systemctl stop inputplumber
+sudo evtest
+```
+```
+No device specified, trying to scan all of /dev/input/event*
+Available devices:
+/dev/input/event0: Power Button
+/dev/input/event1: Sleep Button
+/dev/input/event10: HD-Audio Generic HDMI/DP,pcm=3
+/dev/input/event11: HD-Audio Generic Mic
+/dev/input/event12: HD-Audio Generic Mic
+/dev/input/event13: HD-Audio Generic Headphone
+/dev/input/event2: AT Translated Set 2 keyboard
+/dev/input/event3: Microsoft X-Box 360 pad
+/dev/input/event4: ROG Ally Keyboard
+/dev/input/event5: ROG Ally Mouse
+/dev/input/event6: NVTK0603:00 0603:F200
+/dev/input/event7: Video Bus
+/dev/input/event8: PC Speaker
+/dev/input/event9: Asus WMI hotkeys
+Select the device event number [0-13]: 3
+```
+
## License
InputPlumber is licensed under THE GNU GPLv3+. See LICENSE for details.
From 5fedc13eb040d5b68e7e64bda41f5c13be9edf10 Mon Sep 17 00:00:00 2001
From: Luke Short
Date: Wed, 18 Jun 2025 21:40:06 -0600
Subject: [PATCH 2/3] docs(README): add a table of contents
to help navigate the page.
---
README.md | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/README.md b/README.md
index f3dc4fbb..c9daf502 100644
--- a/README.md
+++ b/README.md
@@ -11,6 +11,19 @@
+Table of Contents:
+- [About](#about)
+ - [Features](#features)
+- [Install](#install)
+- [Documentation](#documentation)
+- [Usage](#usage)
+ - [Input Profiles](#input-profiles)
+ - [Intercept Mode](#intercept-mode)
+ - [Virtual Keyboard](#virtual-keyboard)
+ - [Device Compositing & Capability Maps](#device-compositing--capability-maps)
+ - [Troubleshooting](#troubleshooting)
+- [License](#license)
+
## About
InputPlumber is an open source input routing and control daemon for Linux. It can
From e78a541ae458de72c994b2946b676d1e3e095d62 Mon Sep 17 00:00:00 2001
From: Luke Short
Date: Wed, 18 Jun 2025 21:42:46 -0600
Subject: [PATCH 3/3] docs(README): link to license file
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index c9daf502..0280ee92 100644
--- a/README.md
+++ b/README.md
@@ -467,4 +467,4 @@ Select the device event number [0-13]: 3
## License
-InputPlumber is licensed under THE GNU GPLv3+. See LICENSE for details.
+InputPlumber is licensed under THE GNU GPLv3+. See [LICENSE](LICENSE) for details.