40 lines
1.2 KiB
Nix
40 lines
1.2 KiB
Nix
{ config, lib, modulesPath, pkgs, ... }:
|
|
let
|
|
bluetoothSupport = config.sbruder.full;
|
|
in
|
|
lib.mkIf config.sbruder.gui.enable {
|
|
sound.enable = true;
|
|
services.pipewire = {
|
|
enable = true;
|
|
|
|
pulse.enable = true;
|
|
alsa = {
|
|
enable = true;
|
|
support32Bit = true;
|
|
};
|
|
};
|
|
|
|
# not exposed in NixOS module
|
|
environment.etc."pipewire/media-session.d/bluez-hardware.conf".source = lib.mkForce ((pkgs.formats.json { }).generate "bluez-hardware.conf" (
|
|
let
|
|
defaults = (builtins.fromJSON (builtins.readFile "${modulesPath}/services/desktops/pipewire/bluez-hardware.conf.json"));
|
|
in
|
|
defaults // {
|
|
"bluez5.features.device" = defaults."bluez5.features.device" ++ [
|
|
# Sennheiser HD 4.50BTNC has unreliable hardware volume control (too
|
|
# frequent changes cause it to not apply the changes) and sometimes
|
|
# crashes (disconnects and shuts off) after too many changes.
|
|
{ name = "HD 4.50BTNC"; no-features = [ "hw-volume" ]; }
|
|
];
|
|
}
|
|
));
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
pavucontrol
|
|
pulseaudio # pacmd and pactl
|
|
];
|
|
|
|
hardware.bluetooth.enable = lib.mkDefault bluetoothSupport;
|
|
services.blueman.enable = lib.mkDefault bluetoothSupport;
|
|
}
|