From 7cac1eb6631b76e57bdcdd6643d0947718578774 Mon Sep 17 00:00:00 2001 From: enricobuehler Date: Thu, 11 Jun 2026 18:51:23 +0000 Subject: [PATCH] feat(host): log virtual DualSense pad creation (match the X-Box path) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The uinput X-Box 360 backend logs "virtual gamepad created" on success, but the UHID DualSense backend logged only on failure — so a working DualSense session was silent and indistinguishable in the logs from one where no pad was ever created. Add the matching success log. This makes a DualSense-not-working report self-diagnosing: the host now logs either "virtual DualSense created (UHID hid-playstation)" or the existing "virtual DualSense creation failed — controller input disabled" (which fires when /dev/uhid isn't writable — i.e. the 60-punktfunk.rules uhid rule isn't installed or the user isn't in the 'input' group). Co-Authored-By: Claude Opus 4.8 (1M context) --- crates/punktfunk-host/src/inject/dualsense.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/punktfunk-host/src/inject/dualsense.rs b/crates/punktfunk-host/src/inject/dualsense.rs index bed9e0c..24f6b23 100644 --- a/crates/punktfunk-host/src/inject/dualsense.rs +++ b/crates/punktfunk-host/src/inject/dualsense.rs @@ -607,6 +607,7 @@ impl DualSenseManager { } match DualSensePad::open(idx as u8) { Ok(p) => { + tracing::info!(index = idx, "virtual DualSense created (UHID hid-playstation)"); self.pads[idx] = Some(p); self.state[idx] = DsState::neutral(); self.last_rumble[idx] = (0, 0);