modules: hardware: put modules into folders
This commit is contained in:
parent
7bec7ae0f9
commit
836b54b8eb
7 changed files with 6 additions and 6 deletions
67
modules/hardware/sound/default.nix
Normal file
67
modules/hardware/sound/default.nix
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
{ config, lib, ... }:
|
||||
let
|
||||
cfg = config.my.hardware.sound;
|
||||
in
|
||||
{
|
||||
options.my.hardware.sound = with lib; {
|
||||
pipewire = {
|
||||
enable = mkEnableOption "pipewire configuration";
|
||||
};
|
||||
|
||||
pulse = {
|
||||
enable = mkEnableOption "pulseaudio configuration";
|
||||
};
|
||||
};
|
||||
|
||||
config = (lib.mkMerge [
|
||||
# Sanity check
|
||||
{
|
||||
assertions = [
|
||||
{
|
||||
assertion = builtins.all (lib.id) [
|
||||
(cfg.pipewire.enable -> !cfg.pulse.enable)
|
||||
(cfg.pulse.enable -> !cfg.pipewire.enable)
|
||||
];
|
||||
message = ''
|
||||
`config.my.hardware.sound.pipewire.enable` and
|
||||
`config.my.hardware.sound.pulse.enable` are incompatible.
|
||||
'';
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
(lib.mkIf cfg.pipewire.enable {
|
||||
# RealtimeKit is recommended
|
||||
security.rtkit.enable = true;
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
|
||||
alsa = {
|
||||
enable = true;
|
||||
support32Bit = true;
|
||||
};
|
||||
|
||||
pulse = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
jack = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
media-session = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
})
|
||||
|
||||
# Pulseaudio setup
|
||||
(lib.mkIf cfg.pulse.enable {
|
||||
# ALSA
|
||||
sound.enable = true;
|
||||
|
||||
hardware.pulseaudio.enable = true;
|
||||
})
|
||||
]);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue