Reply To: Script to add or remove from Full or Base

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

#197343
anticapitalX
Member

    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_pipewire is 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 status method).

    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_pipewire behaves 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