Forum › Forums › antiX-development › Development › Script to add or remove from Full or Base › Reply To: Script to add or remove from Full or Base
Thanks @andfree for the detailed report, and thank you @Robin and @anti-apXos for the excellent technical context. This gives a clear picture of the problem.
The root cause
When pipewire is removed, programs that were preconfigured to use it (xmms, cmus, and others) are left pointing to a pulse server that no longer exists. The fix is not just removing the packages — it is also reconfiguring those programs to fall back to plain ALSA. The Control Centre pipewire toggle already handles all of this correctly.
Proposed options — pros and cons
Option A — Call toggle_pipewire from within the script (Robin’s suggestion)
- Pro: Fully automated. User does not need to think about it. Covers xmms, cmus, volumeicon, startup entries — everything the toggle already handles.
- Pro: Reuses tested, maintained code. No duplication.
- Pro: Robin confirmed
toggle_pipewireis present on all antiX Full installs by default, so the dependency is safe to assume. - Con: The toggle is interactive by nature. Calling it from a non-interactive script context may require extra handling.
- Con: Should only run when pipewire is actually active — requires a detection check first (Robin’s
wpctl statusmethod).
Option B — Warn the user and let them toggle manually before running the script
- Pro: Zero complexity added to the script. User is in control.
- Pro: Avoids any risk of the script interfering with a running audio session.
- Con: Easy to forget. Non-technical users will miss the warning and hit the same issue @andfree encountered.
- Con: Poor UX — the script removes pipewire silently and leaves the system in a broken audio state.
Option C — Move pipewire packages to PROTECT_LIST
- Pro: Simplest change. Zero risk of breaking audio.
- Con: Defeats the purpose. Pipewire is a significant chunk of the Full edition. Keeping it undermines the goal of producing a lean Base.
- Con: Does not solve the underlying configuration problem — it just avoids it.
Option D — Detect pipewire state, run toggle if active, then proceed (hybrid)
- Pro: Best of both worlds. Pipewire is still removed. Audio config is handled cleanly. Fully automatic.
- Pro: Robin already provided the detection snippet (
wpctl status). The toggle call would follow only when needed. - Con: Slightly more logic in the script. Needs testing to confirm
toggle_pipewirebehaves correctly when called non-interactively.
My current preference
Option D — detect pipewire state with wpctl status, call toggle_pipewire only when active, then proceed with removal. This is clean, automated, and uses Robin’s already-tested code rather than duplicating it.
I will wait for feedback before implementing, as Robin noted this is not set in stone and @anticapitalista may have a better approach.
What does the community think?
Let's accept antiX as it is
Pure and Elegant by its nature