{ config, pkgs, lib, ... }: { # Add i2c_hid_acpi kernel module for proper input device support boot.kernelModules = [ "i2c_hid_acpi" ]; # Commands to run after resume from suspend/hibernate # This is the NixOS-native way to ensure proper execution timing powerManagement.resumeCommands = '' # Reload i2c_hid_acpi module to fix keyboard/touchpad after suspend ${pkgs.kmod}/bin/rmmod i2c_hid_acpi || true ${pkgs.kmod}/bin/modprobe i2c_hid_acpi # Sync filesystem to ensure all pending writes are committed ${pkgs.util-linux}/bin/sync # Remount all btrfs subvolumes read-write if they became read-only # This fixes the issue where LUKS + btrfs can remount read-only after suspend ${pkgs.util-linux}/bin/mount -o remount,rw /nix || true ${pkgs.util-linux}/bin/mount -o remount,rw /nix/store || true ${pkgs.util-linux}/bin/mount -o remount,rw /nix/persist || true ${pkgs.util-linux}/bin/mount -o remount,rw /swap || true ''; }