Create persistent Wireplumber rules that auto-prefer specific microphones when connected — e.g. "if the Jabra headset is connected, always make it the default mic; otherwise fall back to the laptop array". Use when the user is tired of manually switching mics.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin claude-pipewire-skillsThis skill uses the workspace's default tool permissions.
Write persistent device-priority rules so Wireplumber automatically picks the right mic without manual switching after every reconnect.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Guides code writing, review, and refactoring with Karpathy-inspired rules to avoid overcomplication, ensure simplicity, surgical changes, and verifiable success criteria.
Share bugs, ideas, or general feedback.
Write persistent device-priority rules so Wireplumber automatically picks the right mic without manual switching after every reconnect.
Wireplumber Lua/Spa-JSON config (Pipewire ≥ 0.4.x with Wireplumber 0.5+):
~/.config/wireplumber/wireplumber.conf.d/
Use a single file per logical rule set (e.g. 51-mic-priority.conf) so rules are easy to find and remove.
monitor.alsa.rules = [
{
matches = [
{
node.name = "alsa_input.usb-Jabra_Jabra_Evolve2_85-00.mono-fallback"
}
]
actions = {
update-props = {
priority.session = 2000
priority.driver = 2000
}
}
}
{
matches = [
{
node.name = "alsa_input.pci-0000_00_1f.3.analog-stereo"
}
]
actions = {
update-props = {
priority.session = 100
}
}
}
]
Higher priority.session wins. Wireplumber re-evaluates default device on connect/disconnect.
node.name of each mic the user wants to rank — call list-audio-devices and wpctl inspect <id>.~/.config/wireplumber/wireplumber.conf.d/. Use a numeric prefix (e.g. 51-) so it loads after the defaults.systemctl --user restart wireplumber
wpctl status — the preferred mic should now be marked default when connected; disconnect it and confirm the fallback takes over.node.name is the most stable single key — but if a USB hub renames the device on reconnect, fall back to matching on device.product.name or device.serial.wpctl inspect to confirm.matches.*.node.name = "~alsa_input.usb-Jabra.*" for a regex match.Bluetooth headsets switch between A2DP (high-quality output, no mic) and HSP/HFP (mic + low-quality output). The mic only exists in HSP/HFP profile — make sure the rule matches the HSP/HFP node.name, not the A2DP one.
list-preference-rules — show what rules are currently active.delete-preference-rule — remove a rule by file or by matched device.