How to retain radio (wifi, bluetooth) state after reboot?

Bluetooth is being re-enabled automatically upon rebooting, while it was manually disabled in the previous session. How can the previous state be retained across reboots? I think that would be a sane default, but I see no setting for this in Gnome whether default or not.

Previously I used TLP RESTORE_DEVICE_STATE_ON_STARTUP=1 which worked perfectly, but I think there has been a conflict between TLP and some Gnome power management since recent Fedora releases, so TLP has been disabled.

Is there a simple way to achieve this? Even Windows maintains radio state across reboots by default…

One may see the bluetooth config by clicking on the icons at the upper right of the screen and it should show the config.
If the button is blue then it is active and if grayed out then it is not active. Clicking that button turns it on or off.

Clicking on the gear opens the gnome settings panel where one may select bluetooth and devices to connect to, as well as having another button to turn bluetooth on or off.

For me that works as expected.
image

Sure, but does it maintain the off or on state after rebooting? The question is about maintaining state, not turning off or on.

When I disable bluetooth, after rebooting bluetooth is automatically re-enabled. I have to turn it off manually each time. And on each reboot it gets enabled again.

It does for me. I even did a reboot just now to verify that.
Fedora Workstation 38, fully updated, using gnome.

I disabled and removed Gnome’s power-profiles-daemon and keep using TLP. That solves all the issues for me.

Weird. I tested it many times, and again now, and bluetooth gets re-enabled every time I reboot.

Also running Fedora 38, fully updated, gnome, X. Though I don’t see why, maybe X vs Wayland issue? Ideas what else it could be? Clearly I’m not the only one having this problem.

Yes, it’s tempting since TLP has always worked well, though lately I’m trying to keep customizations to a minimum and trying to stick as much as possible to stock for ease of maintenance.

What is the output of:

systemctl status systemd-rfkill.service
$ systemctl status systemd-rfkill.service
○ systemd-rfkill.service - Load/Save RF Kill Switch Status
     Loaded: loaded (/usr/lib/systemd/system/systemd-rfkill.service; static)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: inactive (dead)
       Docs: man:systemd-rfkill.service(8)