MCPcopy Index your code
hub / github.com/ShadowBlip/InputPlumber

github.com/ShadowBlip/InputPlumber @v0.77.7

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.77.7 ↗ · + Follow
1,456 symbols 3,171 edges 190 files 667 documented · 46%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

InputPlumber Logo InputPlumber

Discord Documentation

About

InputPlumber is an open source input routing and control daemon for Linux. It can be used to combine any number of input devices (like gamepads, mice, and keyboards) and translate their input to a variety of virtual device formats.

Features

  • [x] Combine multiple input devices
  • [x] Emulate mouse, keyboard, and gamepad inputs
  • [x] Intercept and route input over DBus for overlay interface control
  • [x] Input mapping profiles to translate source input into the desired target input
  • [ ] Route input over the network

Documentation

You can read documentation about how to configure and use InputPlumber here:

License

InputPlumber is licensed under THE GNU GPLv3+. See LICENSE for details.

Extension points exported contracts — how you extend this code

Unregisterable (Interface)
This trait is used to define how to remove a particular dbus interface. In most cases, you simply need to implement this [10 …
src/dbus/interface/mod.rs
SourceInputDevice (Interface)
A [SourceInputDevice] is a device implementation that is capable of emitting input events. [28 implementers]
src/input/source/mod.rs
MenuWidget (Interface)
A [MenuWidget] is a [Widget] that can also handle key input [3 implementers]
src/cli/ui/menu.rs
TimeoutReceiver (Interface)
Channel receivers that can timeout when receiving messages [1 implementers]
src/sync/mod.rs
AttributeGetter (Interface)
(no doc) [1 implementers]
src/udev/device.rs
Device1 (Interface)
(no doc)
src/bluetooth/device1.rs
ForceFeedbacker (Interface)
[ForceFeedbacker] is any device that can implement force feedback [1 implementers]
src/dbus/interface/force_feedback.rs
SourceOutputDevice (Interface)
A [SourceOutputDevice] is a device implementation that can handle output events such as force feedback, etc. [28 implementers]
src/input/source/mod.rs

Core symbols most depended-on inside this repo

as_str
called by 214
src/input/event/dbus.rs
iter
called by 139
src/input/event/context.rs
check_polkit
called by 91
src/dbus/polkit.rs
send
called by 72
src/input/composite_device/client.rs
get
called by 71
src/input/event/context.rs
normalize_unsigned_value
called by 41
src/input/source/evdev/gamepad.rs
normalize_signed_value
called by 40
src/input/source/tty/oxflyserial.rs
devnode
called by 38
src/udev/device.rs

Shape

Method 905
Class 240
Enum 160
Function 140
Interface 11

Languages

Rust100%

Modules by API surface

src/input/composite_device/client.rs52 symbols
src/udev/device.rs40 symbols
src/config/mod.rs37 symbols
src/input/composite_device/mod.rs36 symbols
src/input/source/mod.rs32 symbols
src/input/manager.rs29 symbols
src/drivers/dualsense/hid_report.rs28 symbols
src/config/capability_map.rs27 symbols
src/dbus/interface/composite_device.rs26 symbols
src/input/composite_device/targets.rs20 symbols
src/dbus/interface/source/evdev.rs20 symbols
src/input/source/hidraw/steam_deck.rs19 symbols

For agents

$ claude mcp add InputPlumber \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact