libkookie: audio: init module to handle audio settings

wip/yesman
Katharina Fey 3 years ago
parent 02817098e0
commit 9835b8e8ff
  1. 10
      infra/libkookie/configuration/workstation/audio/default.nix
  2. 23
      infra/libkookie/modules/workstation/audio/core.nix
  3. 16
      infra/libkookie/modules/workstation/audio/default.nix
  4. 1
      infra/libkookie/modules/workstation/default.nix
  5. 6
      infra/libkookie/roots/tempest.nix

@ -0,0 +1,10 @@
{ pkgs, ... }:
{
home.packages = with pkgs;
[
paprefs
pasystray
pavucontrol
];
}

@ -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 [];
};
}

@ -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);
}

@ -3,5 +3,6 @@
# Exposes both a nixos, and home-manager module
./ui/i3
./audio
];
}

@ -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;

Loading…
Cancel
Save