From 9835b8e8ff63df57a5435dfe8244d9f0e0a09e87 Mon Sep 17 00:00:00 2001 From: Mx Kookie Date: Wed, 23 Dec 2020 14:38:08 +0100 Subject: [PATCH] libkookie: audio: init module to handle audio settings --- .../workstation/audio/default.nix | 10 ++++++++ .../modules/workstation/audio/core.nix | 23 +++++++++++++++++++ .../modules/workstation/audio/default.nix | 16 +++++++++++++ .../libkookie/modules/workstation/default.nix | 1 + infra/libkookie/roots/tempest.nix | 6 ++++- 5 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 infra/libkookie/configuration/workstation/audio/default.nix create mode 100644 infra/libkookie/modules/workstation/audio/core.nix create mode 100644 infra/libkookie/modules/workstation/audio/default.nix diff --git a/infra/libkookie/configuration/workstation/audio/default.nix b/infra/libkookie/configuration/workstation/audio/default.nix new file mode 100644 index 00000000000..3e6e9b737b8 --- /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 00000000000..d37d3a41aa1 --- /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 00000000000..1737902ae40 --- /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 e6f016b4acb..3f793ec0d2d 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 67f67f363d5..80abe29db55 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 "default") - + (loadModule "tempest") + (loadModule "default") (loadModule "default") (loadModule "default") (loadModule "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;