nixos-config/modules/sound/default.nix

73 lines
1.9 KiB
Nix
Raw Normal View History

{ pkgs
, config
, lib
, ...
2022-03-01 22:19:03 +01:00
}:
with lib; let
cfg = config.eboskma.sound;
in
{
2021-11-21 19:07:12 +01:00
options.eboskma.sound.enable = mkEnableOption "activate sound settings";
2022-05-03 18:17:38 +02:00
config = mkIf cfg.enable {
2021-11-21 19:07:12 +01:00
sound.enable = true;
services = {
pipewire = {
enable = true;
pulse.enable = true;
2022-05-31 11:38:09 +02:00
alsa.enable = true;
media-session = {
2022-03-09 11:11:24 +01:00
enable = false;
config = {
2022-11-11 11:54:21 +01:00
bluez-monitor.rules = mkIf config.eboskma.bluetooth.enable [
{
matches = [{ "device.name" = "~bluez_card.*"; }];
actions = {
"update-props" = {
"bluez5.reconnect-profiles" = [ "hfp_hf" "hsp_hs" "a2dp_sink" ];
"bluez5.msbc-support" = true;
"bluez5.sbc-xq-support" = true;
};
};
}
{
matches = [
{ "node.name" = "~bluez_input.*"; }
{ "node.name" = "~bluez_output.*"; }
];
actions = {
"node.pause-on-idle" = false;
};
}
];
};
};
2021-11-21 19:07:12 +01:00
};
};
2021-12-18 16:23:14 +01:00
2022-03-09 11:11:24 +01:00
environment.etc = {
2022-11-11 11:54:21 +01:00
bluez_monitor = mkIf config.eboskma.bluetooth.enable {
2022-03-09 11:11:24 +01:00
target = "wireplumber/bluetooth.lua.d/50-bluez-config.lua";
text = ''
bluez_monitor.properties = {
["bluez5.enable-msbc"] = true,
["bluez5.enable-sbc-xq"] = true,
["bluez5.headset-roles"] = "[ hfp_hf hsp_hs hsp_ag hfp_ag ]",
["bluez5.codecs"] = "[ sbc sbc_xq aac ]",
["bluez5.hfphsp-backend"] = "native",
["bluez5.default.rate"] = 48000,
["bluez5.default.channels"] = 2,
}
'';
};
};
2021-12-18 16:23:14 +01:00
security.rtkit.enable = true;
environment.systemPackages = with pkgs; [ pavucontrol ];
2021-11-21 19:07:12 +01:00
users.extraUsers.${config.eboskma.var.mainUser}.extraGroups = [ "audio" ];
2021-11-21 19:07:12 +01:00
};
}