refactor(fuchsia): reorganize audio and bluetooth configuration

Separated PipeWire audio configuration from bluetooth hardware settings for
better logical organization. Moved bluetooth config to hardware-configuration.nix
alongside kernel module workarounds (disable_ertm, iwlwifi power_save).

Also added documentation for permittedInsecurePackages in global config and
updated flake dependencies.
This commit is contained in:
♥ Minnie ♥ 2025-11-12 14:40:49 +08:00
parent 9a26436dec
commit c1d4fa5255
Signed by: jasmine
GPG key ID: 8563E358D4E8040E
6 changed files with 55 additions and 33 deletions

54
flake.lock generated
View file

@ -8,11 +8,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1754433428, "lastModified": 1761656077,
"narHash": "sha256-NA/FT2hVhKDftbHSwVnoRTFhes62+7dxZbxj5Gxvghs=", "narHash": "sha256-lsNWuj4Z+pE7s0bd2OKicOFq9bK86JE0ZGeKJbNqb94=",
"owner": "ryantm", "owner": "ryantm",
"repo": "agenix", "repo": "agenix",
"rev": "9edb1787864c4f59ae5074ad498b6272b3ec308d", "rev": "9ba0d85de3eaa7afeab493fed622008b6e4924f5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -32,11 +32,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1759255832, "lastModified": 1759699908,
"narHash": "sha256-+8RmfVC7+9bYwUnodGSbRaSGyvkGB/lkFe03xvyvu38=", "narHash": "sha256-kYVGY8sAfqwpNch706Fy2+/b+xbtfidhXSnzvthAhIQ=",
"owner": "oddlama", "owner": "oddlama",
"repo": "agenix-rekey", "repo": "agenix-rekey",
"rev": "cdf62e6ee25c0bba7bf391dace328346a7c27609", "rev": "42362b12f59978aabf3ec3334834ce2f3662013d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -51,11 +51,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1759622618, "lastModified": 1762466517,
"narHash": "sha256-Q46aXz+Vqb1rOUVA2MO46j+KWeR7AL9qPEMU5nnHX0g=", "narHash": "sha256-sFlWhpLBmORSIwdhIinu2nos0xhQkUzFkO3AOHRolps=",
"owner": "sadjow", "owner": "sadjow",
"repo": "claude-code-nix", "repo": "claude-code-nix",
"rev": "730bcc4254f1c72fea59500ab8b25570de757090", "rev": "c75a19ff3b5de3edc68512b31c406338c3c3ce65",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -552,11 +552,11 @@
"systems": "systems_4" "systems": "systems_4"
}, },
"locked": { "locked": {
"lastModified": 1759560900, "lastModified": 1761996900,
"narHash": "sha256-wQiannciIXFWVzoVUpP7TOB3Ajo+EYbrWje2EBfFRhU=", "narHash": "sha256-1XURw0oFac/jDYP/TjxOOO5DWABOQ6HOuAnXS7GGP5k=",
"owner": "theCapypara", "owner": "theCapypara",
"repo": "nix-jetbrains-plugins", "repo": "nix-jetbrains-plugins",
"rev": "58500142f3281d6dcfd503ad108705b54f1d0e3c", "rev": "5a03f5a3d0ab9b465cdab58dc03da2a7b473bc8c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -572,11 +572,11 @@
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_5"
}, },
"locked": { "locked": {
"lastModified": 1758765258, "lastModified": 1762480864,
"narHash": "sha256-orU21BYUJn/7zMhIYbY7T5EDqZ8NtRMSH/f8Qtu047Q=", "narHash": "sha256-OD3/2nATIXFEyTq3cxGUjZyBf8YlCSpIX/iJzSJbWag=",
"owner": "Infinidoge", "owner": "Infinidoge",
"repo": "nix-minecraft", "repo": "nix-minecraft",
"rev": "5a6c66b90ab4519b7578b54300abc308008c544e", "rev": "4f3414fdfce0ddf85c35e95d07809aeb93d2f0ad",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -633,11 +633,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1759381078, "lastModified": 1762363567,
"narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=", "narHash": "sha256-YRqMDEtSMbitIMj+JLpheSz0pwEr0Rmy5mC7myl17xs=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee", "rev": "ae814fd3904b621d8ab97418f1d0f2eb0d3716f4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -681,11 +681,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1759536663, "lastModified": 1762361079,
"narHash": "sha256-hhM8SUI6kQMei5TImFdNQy9EDT8g2hAD161DUtbfAy0=", "narHash": "sha256-lz718rr1BDpZBYk7+G8cE6wee3PiBUpn8aomG/vLLiY=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "27ac93958969b5f3dccd654b402599cf3de633ac", "rev": "ffcdcf99d65c61956d882df249a9be53e5902ea5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -744,11 +744,11 @@
}, },
"nixpkgs_6": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1759580034, "lastModified": 1762233356,
"narHash": "sha256-YWo57PL7mGZU7D4WeKFMiW4ex/O6ZolUS6UNBHTZfkI=", "narHash": "sha256-cGS3lLTYusbEP/IJIWGgnkzIl+FA5xDvtiHyjalGr4k=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3bcc93c5f7a4b30335d31f21e2f1281cba68c318", "rev": "ca534a76c4afb2bdc07b681dbc11b453bab21af8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -923,11 +923,11 @@
"poetry2nix": "poetry2nix" "poetry2nix": "poetry2nix"
}, },
"locked": { "locked": {
"lastModified": 1758470149, "lastModified": 1760908465,
"narHash": "sha256-rT1T1dp9mv0dXsEyeIZoR0ssSP99u7t9WuU/paT7tSM=", "narHash": "sha256-ZdyNTh/O7W7ZJJr8bAeG2kQBFREZGTQ2wXCyzr9z+RQ=",
"owner": "Scrybbling-together", "owner": "Scrybbling-together",
"repo": "remarks", "repo": "remarks",
"rev": "88ae4ec51508e9111820ff2a06af30e24712f34e", "rev": "b8bfd751cf82a47ce24763c5b220a1f4f5ab90a6",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -1,4 +1,3 @@
{ {
"outputStyle": "Explanatory",
"includeCoAuthoredBy": false "includeCoAuthoredBy": false
} }

View file

@ -35,6 +35,12 @@
# Services # Services
"minecraft-server" "minecraft-server"
]; ];
# Allow specific packages with known CVEs when required by dependencies.
# Only add packages here when no secure alternative exists.
permittedInsecurePackages = [
"mbedtls-2.28.10" # required for orca-slicer
];
}; };
}; };

View file

@ -29,6 +29,14 @@
# The set of kernel modules to be loaded in the second stage of the boot process. # The set of kernel modules to be loaded in the second stage of the boot process.
kernelModules = ["i2c-dev" "i2c-piix4"]; kernelModules = ["i2c-dev" "i2c-piix4"];
# Hardware-specific kernel module workarounds
extraModprobeConfig = ''
# Disable Bluetooth Enhanced Retransmission Mode to fix connectivity issues
options bluetooth disable_ertm=1
# Disable WiFi power saving to prevent connection drops
options iwlwifi power_save=0
'';
# Our boot loader configuration # Our boot loader configuration
loader = { loader = {
efi = { efi = {
@ -47,6 +55,14 @@
bluetooth = { bluetooth = {
enable = true; enable = true;
powerOnBoot = true; powerOnBoot = true;
settings = {
General = {
ControllerMode = "dual";
FastConnectable = true;
Experimental = true;
MultiProfile = "multiple";
};
};
}; };
graphics = { graphics = {
enable = true; enable = true;

View file

@ -1,18 +1,19 @@
{ pkgs, ... }: { { pkgs, ... }: {
# Realtime scheduler # Realtime scheduler for low-latency audio
security.rtkit.enable = true; security.rtkit.enable = true;
# Sound server # PipeWire sound server
services.pipewire = { services.pipewire = {
enable = true; enable = true;
# Enable components # Enable ALSA, PulseAudio compatibility, and WirePlumber session manager
alsa.enable = true; alsa.enable = true;
alsa.support32Bit = true; alsa.support32Bit = true;
pulse.enable = true; pulse.enable = true;
wireplumber.enable = true;
}; };
# Sound mixer # Audio control utilities
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
pulsemixer pulsemixer
]; ];

View file

@ -1,11 +1,11 @@
{...}: { {...}: {
imports = [ imports = [
./amdgpu-clocks ./amdgpu-clocks
./audio
./borgbackup ./borgbackup
./flatpak ./flatpak
./internet-sharing ./internet-sharing
./libinput ./libinput
./pipewire
./printing ./printing
./snapper ./snapper
./ssh ./ssh