diff --git a/hosts/herugrim/default.nix b/hosts/herugrim/default.nix index 5872cd2..894c92d 100644 --- a/hosts/herugrim/default.nix +++ b/hosts/herugrim/default.nix @@ -30,7 +30,6 @@ username = "itsdrike"; sound.enable = true; - bluetooth.enable = true; impermanence = { root = { @@ -61,6 +60,7 @@ cpu.type = "amd"; gpu.type = "hybrid-nvidia"; hasTPM = true; + bluetooth.enable = true; }; security = { diff --git a/hosts/voyager/default.nix b/hosts/voyager/default.nix index c83db29..8e17d6b 100644 --- a/hosts/voyager/default.nix +++ b/hosts/voyager/default.nix @@ -35,7 +35,6 @@ username = "itsdrike"; sound.enable = true; - bluetooth.enable = true; impermanence = { root = { @@ -115,6 +114,7 @@ cpu.type = "amd"; gpu.type = "amd"; hasTPM = true; + bluetooth.enable = true; }; security = { diff --git a/options/device/hardware.nix b/options/device/hardware.nix index 5b03a78..c097978 100644 --- a/options/device/hardware.nix +++ b/options/device/hardware.nix @@ -1,4 +1,5 @@ -{ lib, ... }: with lib; let +{ lib, ... }: let + inherit (lib) mkOption mkEnableOption types; in { options.myOptions.device = { @@ -34,9 +35,25 @@ in }; hasTPM = mkOption { - type = lib.types.bool; + type = types.bool; default = false; description = "Does this device have a TPM (Trusted Platform Module)?"; }; + + bluetooth = { + enable = mkEnableOption "bluetooth modules, drivers and configuration program(s)"; + powerOnBoot = mkOption { + type = types.bool; + default = false; + description = '' + Should bluetooth be powered on automatically during boot? + + This will worsen the battery life and is not recommended. Instead, you can + always turn bluetooth on manually once booted, when you need it. Unless you + have constant need for bluetooth / have some devices to connect to automatically + you, leave this off. + ''; + }; + }; }; } diff --git a/system/shared/hardware/bluetooth.nix b/system/shared/hardware/bluetooth.nix index f32fba8..a4ef4d1 100644 --- a/system/shared/hardware/bluetooth.nix +++ b/system/shared/hardware/bluetooth.nix @@ -6,14 +6,14 @@ }: let inherit (lib) mkIf; - sys = config.myOptions.system.bluetooth; + cfg = config.myOptions.device.bluetooth; in { - config = mkIf sys.enable { + config = mkIf cfg.enable { hardware.bluetooth = { enable = true; package = pkgs.bluez5-experimental; + powerOnBoot = cfg.powerOnBoot; #hsphfpd.enable = true; - powerOnBoot = true; disabledPlugins = ["sap"]; settings = { General = { diff --git a/system/shared/multimedia/sound/pipewire.nix b/system/shared/multimedia/sound/pipewire.nix index 44ea9e6..5444256 100644 --- a/system/shared/multimedia/sound/pipewire.nix +++ b/system/shared/multimedia/sound/pipewire.nix @@ -9,7 +9,7 @@ inherit (lib.generators) toLua; cfg = config.myOptions.system.sound; - cfgBluetooth = config.myOptions.system.bluetooth; + cfgBluetooth = config.myOptions.device.bluetooth; in { config = mkIf cfg.enable { # in case pipewire was force disabled for whatever reason, fall