diff options
Diffstat (limited to 'infra')
-rw-r--r-- | infra/libkookie/configuration/workstation/audio/default.nix | 10 | ||||
-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 | ||||
-rw-r--r-- | infra/libkookie/roots/tempest.nix | 6 |
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; |