diff options
author | Mx Kookie <kookie@spacekookie.de> | 2020-12-23 14:38:08 +0100 |
---|---|---|
committer | Mx Kookie <kookie@spacekookie.de> | 2020-12-23 14:38:47 +0100 |
commit | 9835b8e8ff63df57a5435dfe8244d9f0e0a09e87 (patch) | |
tree | a15b310eba980f0fc690806241d2169722e852a8 /infra/libkookie/modules/workstation | |
parent | 02817098e005de516a266b70d344d3b525e9deea (diff) |
libkookie: audio: init module to handle audio settings
Diffstat (limited to 'infra/libkookie/modules/workstation')
-rw-r--r-- | infra/libkookie/modules/workstation/audio/core.nix | 23 | ||||
-rw-r--r-- | infra/libkookie/modules/workstation/audio/default.nix | 16 | ||||
-rw-r--r-- | infra/libkookie/modules/workstation/default.nix | 1 |
3 files changed, 40 insertions, 0 deletions
diff --git a/infra/libkookie/modules/workstation/audio/core.nix b/infra/libkookie/modules/workstation/audio/core.nix new file mode 100644 index 000000000000..d37d3a41aa17 --- /dev/null +++ b/infra/libkookie/modules/workstation/audio/core.nix @@ -0,0 +1,23 @@ +{ config, pkgs, ... }: + +let cfg = config.libkookie.audio; +in +{ + sound.enable = cfg.enable; + + # TODO: make jack work ;_; + # services.jack.jackd.enable = cfg.jack; + + hardware.pulseaudio = + let bt = config.hardware.bluetooth.enable; + in + with pkgs; + { + enable = true; + support32Bit = true; + zeroconf.discovery.enable = cfg.discovery; + + package = if bt then pulseaudioFull else pulseaudio; + extraModules = if bt then [ pulseaudio-modules-bt ] else []; + }; +} diff --git a/infra/libkookie/modules/workstation/audio/default.nix b/infra/libkookie/modules/workstation/audio/default.nix new file mode 100644 index 000000000000..1737902ae409 --- /dev/null +++ b/infra/libkookie/modules/workstation/audio/default.nix @@ -0,0 +1,16 @@ +{ config, lib, pkgs, home-manager, ... } @ args: + +let cfg = config.libkookie.audio; +in +with lib; +{ + options.libkookie.audio = { + enable = mkEnableOption "audio server handling"; + + discovery = mkEnableOption "pulseaudio auto discovery"; + + jack = mkEnableOption "jack audio server handling"; + }; + + config = mkIf cfg.enable (import ./core.nix args); +} diff --git a/infra/libkookie/modules/workstation/default.nix b/infra/libkookie/modules/workstation/default.nix index e6f016b4acbe..3f793ec0d2d8 100644 --- a/infra/libkookie/modules/workstation/default.nix +++ b/infra/libkookie/modules/workstation/default.nix @@ -3,5 +3,6 @@ # Exposes both a nixos, and home-manager module ./ui/i3 + ./audio ]; } |