nixos-framework-laptop-config/nixos/device.nix
2024-12-28 19:33:49 -05:00

62 lines
1.5 KiB
Nix

{
config,
lib,
pkgs,
inputs,
...
}: {
imports = [
inputs.nixos-hardware.nixosModules.framework-16-7040-amd
];
# Set the Wireless Regulatory Domain
# https://github.com/NixOS/nixpkgs/issues/25378
boot.extraModprobeConfig = ''
options cfg80211 ieee80211_regdom="US"
'';
services.fwupd.enable = true;
hardware.bluetooth.enable = true;
boot.kernelPackages =
lib.mkIf
(lib.versionOlder pkgs.linux.version "6.9")
pkgs.linuxPackages_latest;
# Not needed on NixOS 24.05+
# Disable pcr for linux kernel testing 6.9-rc4+
# Per https://community.frame.work/t/tracking-framework-16-linux-6-9-0-rc4-rc5-extreme-screen-flickering-anyone-else/49467/44
boot.kernelParams = let
affectedVersions = ["6.9-rc4" "6.9-rc5" "6.9-rc6"];
version = config.boot.kernelPackages.kernel.version;
affected = builtins.elem version affectedVersions;
in
lib.mkIf affected ["amdgpu.dcdebugmask=0x400"];
environment.systemPackages = lib.mkMerge [
(with pkgs; [
fw-ectool
framework-tool
])
# Show EasyEffects status in GNOME
(lib.mkIf config.services.xserver.desktopManager.gnome.enable [
pkgs.gnomeExtensions.easyeffects-preset-selector
])
];
# The FWL benefits from modifying its speakers
home-manager.sharedModules = [
{
services.easyeffects.enable = true;
}
];
# EasyEffects needs this
programs.dconf.enable = true;
# RGB LED Matrix
services.hardware.openrgb = {
enable = true;
package = pkgs.openrgb-with-all-plugins;
};
}