In Gnome Shell, Bluetooth can be turned off from the indicator menu in the upper right corner, or through Settings. However it gets turned back on automatically after restarting or after turning airplane mode on and off. How can it be set to stay disabled (i.e. set OFF as default), short of removing the module completely?
I usually solve that problem by installing tlp
and using its config file to define device states. tlp
should also work on non-Thinkpad laptops.
tlp
is already installed, but I’m not familiar with the config file. I want Bluetooth off in all states unless I explicitly turn it on. I don’t like a setting changing itself automatically.
Turning airplane mode on/off seems to “forget” the previous setting. Same with rebooting.
All TLP settings are stored in the config file /etc/default/tlp
.
Edit the file (sudo nano /etc/default/tlp) and make sure your bluetooth device is listed in the line that says:
DEVICES_TO_DISABLE_ON_STARTUP="bluetooth"
Alternatively, you can set
RESTORE_DEVICE_STATE_ON_STARTUP=1
You can find a full documentation of the config options here.
This would address the setting change when rebooting, but not when turning airplane mode on/off. Plus, I’d rather set this with system settings if possible. Is Gnome’s behavior really to override user settings?
I don’t think there is a way to set this within Gnome.
If you want Bluetooth off everytime you start your notebook, simply use
DEVICES_TO_DISABLE_ON_STARTUP="bluetooth"
This will be effective no matter what other settings you may find and change in Gnome (Settings or Tweaks).
It’s surprising and annoying.
In any case, I tried:
RESTORE_DEVICE_STATE_ON_STARTUP=1
and it had no effect. However, this worked:
DEVICES_TO_DISABLE_ON_STARTUP="bluetooth"
Btw, this issue does not exist on MATE. Bluetooth can be turned off in the Control Panel, and blueberry removed from startup applications (not sure if that is necessary), and this disabling persists across reboots.
In Fedora 32 with tlp
v1.3 the config file locations are changed.
It’s no longer /etc/default/tlp
but rather /etc/tlp.conf
and /etc/tlp.d/*.conf
. See man tlp
.
At least now, RESTORE_DEVICE_STATE_ON_STARTUP=1
seems to be working, so I’ll try that for a spell.