helm/modules/hardware/bluetooth.nix
2021-05-22 18:40:41 -04:00

32 lines
833 B
Nix

{ options, config, lib, pkgs, ... }:
with lib;
with lib.my;
let hwCfg = config.modules.hardware;
cfg = hwCfg.bluetooth;
in {
options.modules.hardware.bluetooth = {
enable = mkBoolOpt false;
audio.enable = mkBoolOpt false;
};
config = mkIf cfg.enable (mkMerge [
{ hardware.bluetooth.enable = true; }
(mkIf cfg.audio.enable {
hardware.pulseaudio = {
# NixOS allows either a lightweight build (default) or full build of
# PulseAudio to be installed. Only the full build has Bluetooth
# support, so it must be selected here.
package = pkgs.pulseaudioFull;
# Enable additional codecs
extraModules = [ pkgs.pulseaudio-modules-bt ];
};
hardware.bluetooth.config = {
General.Enable = "Source,Sink,Media,Socket";
};
})
]);
}