From 4bee8a47aef802e6d3774e98b8ba9017e05ecbc9 Mon Sep 17 00:00:00 2001 From: Ingolf Wagner Date: Thu, 1 Jun 2023 12:08:59 +0200 Subject: [PATCH] move audio to components --- nixos/components/gui/audio.nix | 52 ++++++++++++++++++++++++++ nixos/components/gui/default.nix | 1 + nixos/machines/cream/configuration.nix | 3 -- nixos/machines/cream/pipewire.nix | 35 ----------------- nixos/modules/default.nix | 4 +- nixos/modules/system/mainUser.nix | 8 ++-- nixos/system/desktop/default.nix | 4 +- 7 files changed, 61 insertions(+), 46 deletions(-) create mode 100644 nixos/components/gui/audio.nix delete mode 100644 nixos/machines/cream/pipewire.nix diff --git a/nixos/components/gui/audio.nix b/nixos/components/gui/audio.nix new file mode 100644 index 0000000..42f0448 --- /dev/null +++ b/nixos/components/gui/audio.nix @@ -0,0 +1,52 @@ +# TODO test `alsactl init` after suspend to reinit mic +{ pkgs, config, lib, ... }: +with lib; +{ + options.components.gui.audio.enable = mkOption { + type = lib.types.bool; + default = config.components.gui.enable; + }; + + config = mkIf (config.components.gui.pass.enable) { + + security.rtkit.enable = true; + + hardware.pulseaudio.enable = false; + + hardware.bluetooth = { + enable = true; + powerOnBoot = true; + }; + + environment.systemPackages = with pkgs; [ + alsa-utils + alsaUtils + + # PulseAudio control + # ------------------ + ponymix + pavucontrol + lxqt.pavucontrol-qt + ]; + + services.pipewire = { + enable = true; + systemWide = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + jack.enable = true; + }; + + environment.etc = { + "wireplumber/bluetooth.lua.d/51-bluez-config.lua".text = '' + bluez_monitor.properties = { + ["bluez5.enable-sbc-xq"] = true, + ["bluez5.enable-msbc"] = true, + ["bluez5.enable-hw-volume"] = true, + ["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag ]" + } + ''; + }; + }; +} diff --git a/nixos/components/gui/default.nix b/nixos/components/gui/default.nix index f164c06..36b777d 100644 --- a/nixos/components/gui/default.nix +++ b/nixos/components/gui/default.nix @@ -12,6 +12,7 @@ with lib; ./browser.nix ./suspend.nix ./pass.nix + ./audio.nix ]; config = mkIf config.components.gui.enable { diff --git a/nixos/machines/cream/configuration.nix b/nixos/machines/cream/configuration.nix index 20ed355..271d505 100644 --- a/nixos/machines/cream/configuration.nix +++ b/nixos/machines/cream/configuration.nix @@ -21,9 +21,6 @@ ./borg.nix ./trilium.nix - # todo move to component - ./pipewire.nix - ]; users.users.mainUser.extraGroups = [ "pipewire" ]; diff --git a/nixos/machines/cream/pipewire.nix b/nixos/machines/cream/pipewire.nix deleted file mode 100644 index da94086..0000000 --- a/nixos/machines/cream/pipewire.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ config, lib, pkgs, ... }: -# TODO test `alsactl init` after suspend to reinit mic -{ - security.rtkit.enable = true; - - hardware.bluetooth = { - enable = true; - powerOnBoot = true; - }; - - environment.systemPackages = with pkgs; [ - alsa-utils - pulseaudio - ponymix - ]; - - services.pipewire = { - enable = true; - systemWide = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - jack.enable = true; - }; - environment.etc = { - "wireplumber/bluetooth.lua.d/51-bluez-config.lua".text = '' - bluez_monitor.properties = { - ["bluez5.enable-sbc-xq"] = true, - ["bluez5.enable-msbc"] = true, - ["bluez5.enable-hw-volume"] = true, - ["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag ]" - } - ''; - }; -} diff --git a/nixos/modules/default.nix b/nixos/modules/default.nix index 713a7e3..0044ec5 100644 --- a/nixos/modules/default.nix +++ b/nixos/modules/default.nix @@ -32,8 +32,8 @@ ./programs/vim.nix ./programs/xterm.nix - ./system/audio.nix - ./system/bluetooth.nix + #./system/audio.nix + #./system/bluetooth.nix ./system/font.nix ./system/mainUser.nix ./system/on-failure.nix diff --git a/nixos/modules/system/mainUser.nix b/nixos/modules/system/mainUser.nix index 0ff1ab4..34da7c6 100644 --- a/nixos/modules/system/mainUser.nix +++ b/nixos/modules/system/mainUser.nix @@ -61,23 +61,23 @@ in users = { mutableUsers = true; + defaultUserShell = pkgs.zsh; + groups.mainUser.name = cfg.userName; + users.mainUser = { isNormalUser = true; name = cfg.userName; uid = cfg.uid; home = "/home/${cfg.userName}"; initialPassword = cfg.userName; - extraGroups = [ "wheel" "networkmanager" "transmission" "wireshark" ] + extraGroups = [ "wheel" "networkmanager" "transmission" "wireshark" "audio" "pipewire" ] ++ dockerGroup ++ vboxGroup ++ cfg.extraGroups; openssh.authorizedKeys.keyFiles = cfg.authorizedKeyFiles; group = config.users.groups.mainUser.name; }; - groups.mainUser = { - name = cfg.userName; - }; }; diff --git a/nixos/system/desktop/default.nix b/nixos/system/desktop/default.nix index ee824b1..b0282be 100644 --- a/nixos/system/desktop/default.nix +++ b/nixos/system/desktop/default.nix @@ -5,7 +5,7 @@ ../all #./icecast.nix - ./audio.nix + #./audio.nix ./cachix.nix ./mail-stuff.nix ./packages.nix @@ -45,7 +45,7 @@ services.urxvtd.enable = true; - system.custom.bluetooth.enable = true; + #system.custom.bluetooth.enable = true; # temperature / power consumption # https://linrunner.de/en/tlp/docs/tlp-linux-advanced-power-management.html