Files
nixos-hardware/framework/16-inch/common/default.nix
Daniel Schaefer 3a4da5f8c1 framework: Enable fwupd by default
Users should keep their firmware (not just BIOS) up to date.
Framework 13 Intel 11-13th Gen have some components that can't be
updated with fwupd, so some BIOS versions are better to be installed
through the EFI shell or Windows.

Signed-off-by: Daniel Schaefer <dhs@frame.work>
2025-08-27 01:11:13 +08:00

57 lines
2.1 KiB
Nix

{ lib, config, ... }:
{
imports = [
../../../common/pc/laptop
../../../common/pc/ssd
../../bluetooth.nix
../../kmod.nix
../../framework-tool.nix
];
# Fix TRRS headphones missing a mic
# https://community.frame.work/t/headset-microphone-on-linux/12387/3
boot.extraModprobeConfig = lib.mkIf (lib.versionOlder config.boot.kernelPackages.kernel.version "6.6.8") ''
options snd-hda-intel model=dell-headset-multi
'';
# For fingerprint support
services.fprintd.enable = lib.mkDefault true;
# Custom udev rules
services.udev.extraRules = ''
# Ethernet expansion card support
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0bda", ATTR{idProduct}=="8156", ATTR{power/autosuspend}="20"
# Allow access to the keyboard modules for programming, for example by
# visiting https://keyboard.frame.work with a WebHID-compatible browser.
#
# https://community.frame.work/t/responded-help-configuring-fw16-keyboard-with-via/47176/5
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0012", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
'';
# Needed for desktop environments to detect/manage display brightness
hardware.sensor.iio.enable = lib.mkDefault true;
# Enable keyboard customization
hardware.keyboard.qmk.enable = lib.mkDefault true;
# Allow `services.libinput.touchpad.disableWhileTyping` to work correctly.
# Set unconditionally because libinput can also be configured dynamically via
# gsettings.
#
# This is extracted from the quirks file that is in the upstream libinput
# source. Once we can assume everyone is on at least libinput 1.26.0, this
# local override file can be removed.
# https://gitlab.freedesktop.org/libinput/libinput/-/commit/566857bd98131009699c9ab6efc7af37afd43fd0
environment.etc."libinput/local-overrides.quirks".text = ''
[Framework Laptop 16 Keyboard Module]
MatchName=Framework Laptop 16 Keyboard Module*
MatchUdevType=keyboard
MatchDMIModalias=dmi:*svnFramework:pnLaptop16*
AttrKeyboardIntegration=internal
'';
# Everything is updateable through fwupd
services.fwupd.enable = true;
}