aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/modules/workstation
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-12-23 14:38:08 +0100
committerMx Kookie <kookie@spacekookie.de>2020-12-23 14:38:47 +0100
commit9835b8e8ff63df57a5435dfe8244d9f0e0a09e87 (patch)
treea15b310eba980f0fc690806241d2169722e852a8 /infra/libkookie/modules/workstation
parent02817098e005de516a266b70d344d3b525e9deea (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.nix23
-rw-r--r--infra/libkookie/modules/workstation/audio/default.nix16
-rw-r--r--infra/libkookie/modules/workstation/default.nix1
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
];
}