move audio to components
This commit is contained in:
parent
4ea7710714
commit
4bee8a47ae
7 changed files with 61 additions and 46 deletions
52
nixos/components/gui/audio.nix
Normal file
52
nixos/components/gui/audio.nix
Normal file
|
@ -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 ]"
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -12,6 +12,7 @@ with lib;
|
||||||
./browser.nix
|
./browser.nix
|
||||||
./suspend.nix
|
./suspend.nix
|
||||||
./pass.nix
|
./pass.nix
|
||||||
|
./audio.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
config = mkIf config.components.gui.enable {
|
config = mkIf config.components.gui.enable {
|
||||||
|
|
|
@ -21,9 +21,6 @@
|
||||||
./borg.nix
|
./borg.nix
|
||||||
./trilium.nix
|
./trilium.nix
|
||||||
|
|
||||||
# todo move to component
|
|
||||||
./pipewire.nix
|
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
users.users.mainUser.extraGroups = [ "pipewire" ];
|
users.users.mainUser.extraGroups = [ "pipewire" ];
|
||||||
|
|
|
@ -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 ]"
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -32,8 +32,8 @@
|
||||||
./programs/vim.nix
|
./programs/vim.nix
|
||||||
./programs/xterm.nix
|
./programs/xterm.nix
|
||||||
|
|
||||||
./system/audio.nix
|
#./system/audio.nix
|
||||||
./system/bluetooth.nix
|
#./system/bluetooth.nix
|
||||||
./system/font.nix
|
./system/font.nix
|
||||||
./system/mainUser.nix
|
./system/mainUser.nix
|
||||||
./system/on-failure.nix
|
./system/on-failure.nix
|
||||||
|
|
|
@ -61,23 +61,23 @@ in
|
||||||
users = {
|
users = {
|
||||||
|
|
||||||
mutableUsers = true;
|
mutableUsers = true;
|
||||||
|
|
||||||
defaultUserShell = pkgs.zsh;
|
defaultUserShell = pkgs.zsh;
|
||||||
|
|
||||||
|
groups.mainUser.name = cfg.userName;
|
||||||
|
|
||||||
users.mainUser = {
|
users.mainUser = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
name = cfg.userName;
|
name = cfg.userName;
|
||||||
uid = cfg.uid;
|
uid = cfg.uid;
|
||||||
home = "/home/${cfg.userName}";
|
home = "/home/${cfg.userName}";
|
||||||
initialPassword = cfg.userName;
|
initialPassword = cfg.userName;
|
||||||
extraGroups = [ "wheel" "networkmanager" "transmission" "wireshark" ]
|
extraGroups = [ "wheel" "networkmanager" "transmission" "wireshark" "audio" "pipewire" ]
|
||||||
++ dockerGroup ++ vboxGroup ++ cfg.extraGroups;
|
++ dockerGroup ++ vboxGroup ++ cfg.extraGroups;
|
||||||
openssh.authorizedKeys.keyFiles = cfg.authorizedKeyFiles;
|
openssh.authorizedKeys.keyFiles = cfg.authorizedKeyFiles;
|
||||||
group = config.users.groups.mainUser.name;
|
group = config.users.groups.mainUser.name;
|
||||||
};
|
};
|
||||||
|
|
||||||
groups.mainUser = {
|
|
||||||
name = cfg.userName;
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
../all
|
../all
|
||||||
|
|
||||||
#./icecast.nix
|
#./icecast.nix
|
||||||
./audio.nix
|
#./audio.nix
|
||||||
./cachix.nix
|
./cachix.nix
|
||||||
./mail-stuff.nix
|
./mail-stuff.nix
|
||||||
./packages.nix
|
./packages.nix
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
|
|
||||||
services.urxvtd.enable = true;
|
services.urxvtd.enable = true;
|
||||||
|
|
||||||
system.custom.bluetooth.enable = true;
|
#system.custom.bluetooth.enable = true;
|
||||||
|
|
||||||
# temperature / power consumption
|
# temperature / power consumption
|
||||||
# https://linrunner.de/en/tlp/docs/tlp-linux-advanced-power-management.html
|
# https://linrunner.de/en/tlp/docs/tlp-linux-advanced-power-management.html
|
||||||
|
|
Loading…
Reference in a new issue