aboutsummaryrefslogtreecommitdiff
path: root/infra
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
parent02817098e005de516a266b70d344d3b525e9deea (diff)
libkookie: audio: init module to handle audio settings
Diffstat (limited to 'infra')
-rw-r--r--infra/libkookie/configuration/workstation/audio/default.nix10
-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
-rw-r--r--infra/libkookie/roots/tempest.nix6
5 files changed, 55 insertions, 1 deletions
diff --git a/infra/libkookie/configuration/workstation/audio/default.nix b/infra/libkookie/configuration/workstation/audio/default.nix
new file mode 100644
index 000000000000..3e6e9b737b8f
--- /dev/null
+++ b/infra/libkookie/configuration/workstation/audio/default.nix
@@ -0,0 +1,10 @@
+{ pkgs, ... }:
+
+{
+ home.packages = with pkgs;
+ [
+ paprefs
+ pasystray
+ pavucontrol
+ ];
+}
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
];
}
diff --git a/infra/libkookie/roots/tempest.nix b/infra/libkookie/roots/tempest.nix
index 67f67f363d50..80abe29db55c 100644
--- a/infra/libkookie/roots/tempest.nix
+++ b/infra/libkookie/roots/tempest.nix
@@ -36,8 +36,9 @@ in
# home-manager modules that exist entirely in userspace
#
(loadModule <configuration/base> "default")
-
+
(loadModule <configuration/workstation/i3> "tempest")
+ (loadModule <configuration/workstation/audio> "default")
(loadModule <configuration/workstation/kitty> "default")
(loadModule <configuration/workstation/office> "default")
(loadModule <configuration/workstation/firefox> "default")
@@ -55,6 +56,9 @@ in
libkookie.ui.i3 = { enable = true;
videoDrivers = [ "amdgpu" ]; };
+ # Configure audio
+ libkookie.audio = { enable = true; discovery = true; jack = true; };
+
# Enable fish shell handling on the system
libkookie.base.fish.enable = true;