32 lines
833 B
Nix
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";
|
|
};
|
|
})
|
|
]);
|
|
}
|