qol-plugin-controllerslisted
Install: claude install-skill qol-tools/qol-skills
# QoL Controllers
Keep the Controllers plugin's native hardware knowledge separate from qol-tray's reusable browser gamepad UI. Preserve raw evidence and its unit or source before deriving a label.
## Read the relevant reference
- Read [browser-gamepad.md](references/browser-gamepad.md) before changing controller layouts, mappings, live input monitoring, native/browser merging, or haptics.
- Read [linux-bluetooth.md](references/linux-bluetooth.md) before changing adapter resolution, signal collection, connection diagnostics, or Linux controller metadata.
## Ownership
| Area | Owner |
| --- | --- |
| Native detection, driver fixes, evdev supplementation, and Linux Bluetooth metadata | the `plugin-controllers` plugin source |
| Generic `type = "gamepad"` rendering, browser monitoring, profiles, haptics, and presentation | `apps/qol-tray/ui/views/plugin-config/fields/` |
| Controller illustration geometry | `apps/qol-tray/ui/assets/gamepad-*` |
| Gamepad styling | `apps/qol-tray/ui/styles/plugin-config.css` |
| Host/plugin query contract | `qol-config.toml`, `qol-runtime.toml`, and the plugin daemon payload |
Do not move a hardware-specific daemon workaround into the generic field. Do not build a plugin-local copy of UI behavior that every gamepad field should share.
## Data flow
1. Snapshot browser-visible axes, buttons, mapping, identity, and haptic capability from `navigator.getGamepads()`.
2. Apply a narrow hardware/browser profile only when its identity and exposed