Skip to content

Stop the system and apps from using Bluetooth

Some apps still check for Bluetooth devices through WirePlumber and PipeWire, even when you never use Bluetooth. The steps below turn off the Bluetooth service, the rfkill state, the PipeWire Bluetooth libraries and the WirePlumber Bluetooth monitor.

  1. Disable the Bluetooth service.

    Terminal window
    sudo systemctl disable bluetooth
  2. Create a udev rule that sets the Bluetooth rfkill state to blocked on boot.

    Terminal window
    sudo micro /etc/udev/rules.d/50-bluetooth.rules

    The file content is:

    # disable bluetooth
    SUBSYSTEM=="rfkill", ATTR{type}=="bluetooth", ATTR{state}="0"
  3. Create or edit the PipeWire config to remove the Bluetooth libraries.

    Terminal window
    micro ~/.config/pipewire/pipewire.conf.d/10-disable-bluez.conf

    The file content is:

    context.spa-libs = {
    api.bluez5.* = ""
    }
  4. Create or edit the WirePlumber config to disable the Bluetooth monitor.

    Terminal window
    micro ~/.config/wireplumber/wireplumber.conf.d/10-disable-bluez.conf

    The file content is:

    wireplumber.profiles = {
    main = {
    monitor.bluez = disabled
    monitor.bluez-midi = disabled
    monitor.bluez.seat-monitoring = disabled
    }
    }
  5. Create or edit the camera config to disable the camera monitors. This step is optional on a machine without a camera.

    Terminal window
    micro ~/.config/wireplumber/wireplumber.conf.d/12-disable-camera.conf

    The file content is:

    wireplumber.profiles = {
    main = {
    monitor.v4l2 = disabled
    monitor.libcamera = disabled
    }
    }
  6. Clear the WirePlumber profile variable. This step is not required.

    Terminal window
    systemctl --user unset-environment WIREPLUMBER_PROFILE
  7. Reboot. Then check the WirePlumber log and the PipeWire client list.

    Terminal window
    journalctl --user -u wireplumber -b --no-pager
    wpctl status

    The log should show the WirePlumber service starting without a Bluetooth message. The wpctl status output should list no Bluetooth client.

The pipewire-control-center package also offers more PipeWire and WirePlumber settings. It was tested on Chaotic-AUR first.

Terminal window
paru -S pipewire-control-center

Source: Prevent system + apps to use bluetooth + monitoring