- New unified flake with two nixpkgs channels (unstable for desktops, 25.11 for muffin)
- modules/common-{doas,shell-fish,nix}.nix extracted from duplicated blocks
- modules/desktop-common.nix: renamed from system/common.nix; secret paths point to secrets/desktop/
- hosts/{mreow,yarn}/default.nix import desktop-common; yarn imports modules/no-rgb.nix
- hosts/muffin/default.nix imports common-* + server-prefixed modules + services/; duplicate doas/fish/nix blocks removed; gc retention preserved as mkForce override
- modules/age-secrets.nix: file paths → ../secrets/server/*.age
- services/{minecraft,matrix/livekit}: secret paths → ../secrets/server/
- home/profiles/*.nix: ./progs/ → ../progs/
- hosts/{mreow,yarn}/home.nix: imports rewired to ../../home/profiles/ and ../../home/progs/
- home/progs/pi.nix and hosts/yarn/home.nix: secret reads → ../../secrets/home/
- tests/*.nix: ../modules/security.nix → ../modules/server-security.nix; ../modules/overlays.nix → ../lib/overlays.nix
- lib/default.nix: takes explicit lib param (defaults to nixpkgs-stable.lib)
61 lines
1.8 KiB
Nix
61 lines
1.8 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
username,
|
|
inputs,
|
|
...
|
|
}:
|
|
{
|
|
imports = [
|
|
../../modules/desktop-common.nix
|
|
./disk.nix
|
|
|
|
inputs.nixos-hardware.nixosModules.framework-amd-ai-300-series
|
|
];
|
|
|
|
hardware.framework.laptop13.audioEnhancement.rawDeviceName =
|
|
lib.mkDefault "alsa_output.pci-0000_c1_00.6.analog-stereo";
|
|
|
|
# PST
|
|
# time.timeZone = lib.mkForce "America/Los_Angeles";
|
|
|
|
# weird hack to get swaylock working? idk, if you don't put this here, password entry doesnt work
|
|
# if I move to another lock screen program, i will have to replace `swaylock`
|
|
security.pam.services.swaylock = { };
|
|
|
|
# Kernel-level power tuning. These are boot-time / module-load-time settings
|
|
# that power-profiles-daemon (in common.nix) does not manage. ppd handles
|
|
# governor and EPP at runtime; these cover everything else.
|
|
boot.kernelParams = [
|
|
# Disable NMI watchdog. Eliminates periodic perf-counter interrupts
|
|
# across all cores (~1 W). Kernel softlockup watchdog remains active.
|
|
"nmi_watchdog=0"
|
|
|
|
# Route kernel work items to already-busy CPUs rather than waking idle
|
|
# ones. Reduces C-state exit frequency -- significant on battery where
|
|
# cores idle often.
|
|
"workqueue.power_efficient=1"
|
|
];
|
|
|
|
boot.kernel.sysctl."kernel.nmi_watchdog" = 0;
|
|
|
|
# Power-gate the HDA codec between audio activity. 1-second inactivity
|
|
# timeout; controller powers down fully. Wakes transparently on next
|
|
# audio event -- no audible artifacts on Framework 13 AMD.
|
|
boot.extraModprobeConfig = ''
|
|
options snd_hda_intel power_save=1 power_save_controller=Y
|
|
'';
|
|
|
|
# Greetd display manager
|
|
services.greetd = {
|
|
enable = true;
|
|
settings = {
|
|
default_session = {
|
|
command = "${lib.getExe pkgs.tuigreet} --time";
|
|
user = username;
|
|
};
|
|
};
|
|
};
|
|
}
|