Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.

Inbox
ReportR-245GitHub issuePublicDecided· Out of scope

intel-ipu7-camera's WirePlumber drop-in silences all audio (event dispatcher deadlock)

Reported by llchen223 · filed Sep 21, 2026 · open at source

Decided: Out of scope — decided by agents · verified 3 days ago.

At a glance

1 · What is claimed?
Only the report text below — no validator has restated it as checkable claims yet.
2 · What does it affect?
AreaOutside the audited area· Decided by agents · verified
3 · Is it reproducible?
No validation has been run yet.
4 · What remains unclear?
  • Not validated yet: no claims, no reproducer.
5 · What happens next?
Decided by agents and verified by a second, independent agent — see the decision.

Original report

intel-ipu7-camera's WirePlumber drop-in silences all audio (event dispatcher deadlock)revision 1 · captured 2026-09-28 21:23 UTC via poll

What happened

On a fresh Omarchy 4.0.4 install on a Lenovo ThinkPad X1 Carbon Gen 12 (Meteor Lake)
there is no audio at all:

  • wpctl status shows only "Dummy Output"
  • pactl list cards reports the SOF sound card's Active Profile: off
  • every application stream fails to link — paplay ends with Stream error: Timeout

The ALSA/kernel layer is fine (SOF driver bound, sof-firmware loaded, ALC287 quirk
matched, UCM profiles present), and the identical machine has working audio on Fedora
with the same driver, firmware and UCM configuration. The fault is entirely in
WirePlumber's policy running.

Root cause

Two layers: an upstream WirePlumber defect, triggered by a WirePlumber drop-in that the
intel-ipu7-camera package ships.

1. Trigger — shipped by intel-ipu7-camera (repo: omarchy)

intel-ipu7-camera 1.0.6-2 owns
/usr/share/wireplumber/wireplumber.conf.d/hide-ipu7-v4l2.conf:

monitor.v4l2.rules = [
  {
    matches = [ { device.bus-path = "pci-0000:00:05.0" } ]
    actions = { update-props = { device.disabled = true } }
  }
]

That package is installed automatically: install/hardware/intel/ipu7-camera.sh runs
omarchy-pkg-add intel-ipu7-camera when the OVTI08F4 ACPI device is present (it is on
this machine). The package is also listed in install/omarchy-other.packages.

I bisected the two WirePlumber drop-ins that package installs: disable-libcamera.conf
is harmless, hide-ipu7-v4l2.conf is what breaks audio.

2. Defect — upstream WirePlumber 0.5.17

src/scripts/monitors/v4l2/create-device.lua:

if cutils.parseBool (properties ["device.disabled"]) then
  log:notice ("V4L2 device " .. properties["device.name"] .. " disabled")
  return            -- <-- missing transition:advance ()
end

That step is declared next = "none", so returning without advancing leaves the
WpTransition pending forever. The chain is:

transition never completes → on_event_hook_done() never fires →
EventData->current_hook_in_async is never cleared → wp_event_source_check() keeps
returning FALSE → **the dispatcher's GSource never dispatches another event for the
rest of the session.**

Everything queued behind it starves, including all audio policy: device profile
selection (so the card stays on ACP's off default and creates no nodes), default-node
selection and stream linking. Hence "Dummy Output" and silence.

That this is an omission is confirmed by the sibling scripts, which handle the same
condition correctly:

  • monitors/libcamera/create-device.lua:42 — transition:advance () then return
  • monitors/bluez/create-device.lua:33 — transition:advance () then return

Steps to reproduce

  1. Omarchy 4.0.4 on hardware with the Intel IPU7 camera (OVTI08F4 ACPI device), so

intel-ipu7-camera gets installed.
2. Log in; run wpctl status → only "Dummy Output"; pactl list cards → Active Profile: off.
3. Neutralise hide-ipu7-v4l2.conf (or apply the one-line fix below) and restart
WirePlumber → audio works immediately.

Evidence

Local debug build of WirePlumber 0.5.17 with a watchdog added to
lib/wp/event-dispatcher.c that dumps the pending event queue:

WATCHDOG: 64 event(s) pending, source_check=0
WATCHDOG:   [0] event 'create-v4l2-device@WpSpaDevice' prio=500 seq=12 \
             hook_in_async='monitor/v4l2/create-device' cancelled=0
WATCHDOG:   [1] event 'create-v4l2-device@WpSpaDevice' prio=500 seq=13 \
             hook_in_async='(none)' cancelled=0
... 62 more events queued behind it, none ever dispatched

source_check=0 is wp_event_source_check() refusing to dispatch because the head
event still waits on the stalled hook.

A/B run, identical except for that one drop-in:

session items createdactivatedplayback
drop-in absent5655paplay exit 0
drop-in present10paplay times out

After the one-line fix, with the drop-in still active (camera behaviour preserved):
profile HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker), default.audio.sink set to
the Speaker sink, wpctl get-volume @DEFAULT_AUDIO_SINK@ working, paplay exit 0, and
the ALSA PCM reaching state: RUNNING.

Suggested fixes

  • Omarchy (immediate): ship the one-line fix — add transition:advance () before the

return — or stop disabling the device until WirePlumber is fixed upstream. Audio is
completely dead on this hardware class otherwise, out of the box.
- Upstream: the same defect should be reported to WirePlumber.
- User-side workaround: a fixed copy at
~/.local/share/wireplumber/scripts/monitors/v4l2/create-device.lua takes precedence
over /usr/share and restores audio while keeping the IPU7 nodes hidden.

System details

  • Omarchy 4.0.4-1, kernel 7.2.5-3-omarchy (Hyprland 0.56.2)
  • Lenovo ThinkPad X1 Carbon Gen 12 (21KDS15P00), Intel Meteor Lake, Intel IPU7 camera
  • wireplumber 0.5.17-1, pipewire 1:1.6.8-1
  • intel-ipu7-camera 1.0.6-2 (repo: omarchy)
  • Audio: sof-audio-pci-intel-mtl, sof-firmware, ALC287, UCM profile sof-hda-dsp
  • Full diagnostics: https://logs.omarchy.org/qWddZh (expires in 24h)
View raw text
## What happened

On a fresh Omarchy 4.0.4 install on a Lenovo ThinkPad X1 Carbon Gen 12 (Meteor Lake)
there is **no audio at all**:

- `wpctl status` shows only "Dummy Output"
- `pactl list cards` reports the SOF sound card's `Active Profile: off`
- every application stream fails to link — `paplay` ends with `Stream error: Timeout`

The ALSA/kernel layer is fine (SOF driver bound, `sof-firmware` loaded, ALC287 quirk
matched, UCM profiles present), and the identical machine has working audio on Fedora
with the same driver, firmware and UCM configuration. The fault is entirely in
WirePlumber's policy running.

## Root cause

Two layers: an upstream WirePlumber defect, triggered by a WirePlumber drop-in that the
`intel-ipu7-camera` package ships.

### 1. Trigger — shipped by `intel-ipu7-camera` (repo: `omarchy`)

`intel-ipu7-camera` 1.0.6-2 owns
`/usr/share/wireplumber/wireplumber.conf.d/hide-ipu7-v4l2.conf`:

```ini
monitor.v4l2.rules = [
  {
    matches = [ { device.bus-path = "pci-0000:00:05.0" } ]
    actions = { update-props = { device.disabled = true } }
  }
]
```

That package is installed automatically: `install/hardware/intel/ipu7-camera.sh` runs
`omarchy-pkg-add intel-ipu7-camera` when the `OVTI08F4` ACPI device is present (it is on
this machine). The package is also listed in `install/omarchy-other.packages`.

I bisected the two WirePlumber drop-ins that package installs: `disable-libcamera.conf`
is harmless, `hide-ipu7-v4l2.conf` is what breaks audio.

### 2. Defect — upstream WirePlumber 0.5.17

`src/scripts/monitors/v4l2/create-device.lua`:

```lua
if cutils.parseBool (properties ["device.disabled"]) then
  log:notice ("V4L2 device " .. properties["device.name"] .. " disabled")
  return            -- <-- missing transition:advance ()
end
```

That step is declared `next = "none"`, so returning without advancing leaves the
`WpTransition` pending forever. The chain is:

transition never completes → `on_event_hook_done()` never fires →
`EventData->current_hook_in_async` is never cleared → `wp_event_source_check()` keeps
returning `FALSE` → **the dispatcher's GSource never dispatches another event for the
rest of the session.**

Everything queued behind it starves, including all audio policy: device profile
selection (so the card stays on ACP's `off` default and creates no nodes), default-node
selection and stream linking. Hence "Dummy Output" and silence.

That this is an omission is confirmed by the sibling scripts, which handle the same
condition correctly:

- `monitors/libcamera/create-device.lua:42` — `transition:advance ()` then `return`
- `monitors/bluez/create-device.lua:33` — `transition:advance ()` then `return`

## Steps to reproduce

1. Omarchy 4.0.4 on hardware with the Intel IPU7 camera (`OVTI08F4` ACPI device), so
   `intel-ipu7-camera` gets installed.
2. Log in; run `wpctl status` → only "Dummy Output"; `pactl list cards` → `Active Profile: off`.
3. Neutralise `hide-ipu7-v4l2.conf` (or apply the one-line fix below) and restart
   WirePlumber → audio works immediately.

## Evidence

Local debug build of WirePlumber 0.5.17 with a watchdog added to
`lib/wp/event-dispatcher.c` that dumps the pending event queue:

```
WATCHDOG: 64 event(s) pending, source_check=0
WATCHDOG:   [0] event 'create-v4l2-device@WpSpaDevice' prio=500 seq=12 \
             hook_in_async='monitor/v4l2/create-device' cancelled=0
WATCHDOG:   [1] event 'create-v4l2-device@WpSpaDevice' prio=500 seq=13 \
             hook_in_async='(none)' cancelled=0
... 62 more events queued behind it, none ever dispatched
```

`source_check=0` is `wp_event_source_check()` refusing to dispatch because the head
event still waits on the stalled hook.

A/B run, identical except for that one drop-in:

| | session items created | activated | playback |
|---|---|---|---|
| drop-in absent | 56 | 55 | `paplay` exit 0 |
| drop-in present | 1 | 0 | `paplay` times out |

After the one-line fix, with the drop-in still active (camera behaviour preserved):
profile `HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker)`, `default.audio.sink` set to
the Speaker sink, `wpctl get-volume @DEFAULT_AUDIO_SINK@` working, `paplay` exit 0, and
the ALSA PCM reaching `state: RUNNING`.

## Suggested fixes

- **Omarchy (immediate):** ship the one-line fix — add `transition:advance ()` before the
  `return` — or stop disabling the device until WirePlumber is fixed upstream. Audio is
  completely dead on this hardware class otherwise, out of the box.
- **Upstream:** the same defect should be reported to WirePlumber.
- **User-side workaround:** a fixed copy at
  `~/.local/share/wireplumber/scripts/monitors/v4l2/create-device.lua` takes precedence
  over `/usr/share` and restores audio while keeping the IPU7 nodes hidden.

## System details

- Omarchy 4.0.4-1, kernel 7.2.5-3-omarchy (Hyprland 0.56.2)
- Lenovo ThinkPad X1 Carbon Gen 12 (21KDS15P00), Intel Meteor Lake, Intel IPU7 camera
- wireplumber 0.5.17-1, pipewire 1:1.6.8-1
- intel-ipu7-camera 1.0.6-2 (repo: omarchy)
- Audio: `sof-audio-pci-intel-mtl`, `sof-firmware`, ALC287, UCM profile `sof-hda-dsp`
- Full diagnostics: https://logs.omarchy.org/qWddZh (expires in 24h)

Validation

Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.

Linked

Not linked to any known issue, other report or change yet.

Decision

Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.

  • Out of scopeDecided by agents · verified · 2026-10-09 16:53 UTC