diff --git a/profiles/hardware.nix b/profiles/hardware.nix index c7cb68b..9aee3d8 100644 --- a/profiles/hardware.nix +++ b/profiles/hardware.nix @@ -27,63 +27,4 @@ with deviceSpecific; { services.logind.extraConfig = "HandlePowerKey=suspend"; # sound.enable = true; - - hardware.pulseaudio.enable = false; - - services.pipewire = { - enable = true; - alsa.enable = true; - pulse.enable = true; - config.pipewire-pulse = { - "context.modules" = [ - { - "args" = { }; - "flags" = [ "ifexists" "nofail" ]; - "name" = "libpipewire-module-rtkit"; - } - { "name" = "libpipewire-module-protocol-native"; } - { "name" = "libpipewire-module-client-node"; } - { "name" = "libpipewire-module-adapter"; } - { "name" = "libpipewire-module-metadata"; } - { - "args" = { - "server.address" = [ "unix:native" "tcp:4713" ]; - "vm.overrides" = { "pulse.min.quantum" = "1024/48000"; }; - }; - "name" = "libpipewire-module-protocol-pulse"; - } - ]; - "context.properties" = { }; - "context.spa-libs" = { - "audio.convert.*" = "audioconvert/libspa-audioconvert"; - "support.*" = "support/libspa-support"; - }; - "stream.properties" = { }; - }; - media-session.config.bluez-monitor = { - properties = { - "bluez5.codecs" = [ "sbc" "aac" "ldac" "aptx" "aptx_hd" ]; - "bluez5.mdbc-support" = true; - }; - rules = [ - { - actions = { - update-props = { - "bluez5.auto-connect" = [ "hsp_hs" "hfp_hf" "a2dp_sink" ]; - "bluez5.hw-volume" = - [ "hsp_ag" "hfp_ag" "a2dp_source" "a2dp_sink" ]; - }; - }; - matches = [{ "device.name" = "~bluez_card.*"; }]; - } - { - actions = { update-props = { "node.pause-on-idle" = false; }; }; - matches = [ - { "node.name" = "~bluez_input.*"; } - { "node.name" = "~bluez_output.*"; } - ]; - } - ]; - }; - }; } diff --git a/profiles/sound.nix b/profiles/sound.nix new file mode 100644 index 0000000..ab8f82c --- /dev/null +++ b/profiles/sound.nix @@ -0,0 +1,60 @@ +{ pkgs, config, lib, ... }: { + hardware.pulseaudio.enable = false; + + services.pipewire = { + enable = true; + alsa.enable = true; + pulse.enable = true; + config.pipewire-pulse = { + "context.modules" = [ + { + "args" = { }; + "flags" = [ "ifexists" "nofail" ]; + "name" = "libpipewire-module-rtkit"; + } + { "name" = "libpipewire-module-protocol-native"; } + { "name" = "libpipewire-module-client-node"; } + { "name" = "libpipewire-module-adapter"; } + { "name" = "libpipewire-module-metadata"; } + { + "args" = { + "server.address" = [ "unix:native" "tcp:4713" ]; + "vm.overrides" = { "pulse.min.quantum" = "1024/48000"; }; + }; + "name" = "libpipewire-module-protocol-pulse"; + } + ]; + "context.properties" = { }; + "context.spa-libs" = { + "audio.convert.*" = "audioconvert/libspa-audioconvert"; + "support.*" = "support/libspa-support"; + }; + "stream.properties" = { }; + }; + media-session.config.bluez-monitor = { + properties = { + "bluez5.codecs" = [ "sbc" "aac" "ldac" "aptx" "aptx_hd" ]; + "bluez5.mdbc-support" = true; + }; + rules = [ + { + actions = { + update-props = { + "bluez5.auto-connect" = [ "hsp_hs" "hfp_hf" "a2dp_sink" ]; + "bluez5.hw-volume" = + [ "hsp_ag" "hfp_ag" "a2dp_source" "a2dp_sink" ]; + }; + }; + matches = [{ "device.name" = "~bluez_card.*"; }]; + } + { + actions = { update-props = { "node.pause-on-idle" = false; }; }; + matches = [ + { "node.name" = "~bluez_input.*"; } + { "node.name" = "~bluez_output.*"; } + ]; + } + ]; + }; + }; +} diff --git a/roles/desktop.nix b/roles/desktop.nix index cfd37f7..70670f0 100644 --- a/roles/desktop.nix +++ b/roles/desktop.nix @@ -10,6 +10,7 @@ # PROFILES applications-setup hardware + sound virtualisation alacritty