forked from NixOS/nixos-hardware
-
Notifications
You must be signed in to change notification settings - Fork 0
/
default.nix
37 lines (30 loc) · 1.34 KB
/
default.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{ lib, pkgs, ... }:
{
imports = [
../../../common/pc/laptop
../../../common/pc/ssd
];
hardware.enableRedistributableFirmware = lib.mkDefault true;
# touchpad identifies itself as DELL0A78:00 27C6:0D42 Touchpad in xinput list
# it sometimes fails to register (ps2 mouse emulation works, but not scrolling)
# hack around it by unloading and reloading module i2c_hid
systemd.services.fix-touchpad = {
path = [ pkgs.kmod ];
serviceConfig.ExecStart = ''${pkgs.systemd}/bin/systemd-inhibit --what=sleep --why="fixing touchpad must finish before sleep" --mode=delay ${./fix_touchpad.sh}'';
serviceConfig.Type = "oneshot";
description = "reload touchpad driver";
# must run at boot (and not too early), and after suspend
wantedBy = [ "display-manager.service" "post-resume.target" ];
# prevent running before suspend
after = [ "post-resume.target" ];
};
# so that post-resume.service exists
powerManagement.enable = true;
# fix suspend
# https://bbs.archlinux.org/viewtopic.php?id=266108 says linux >= 5.12 required
boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "5.12") pkgs.linuxPackages_latest;
# sometimes boots to a black screen, and pressing alt+sysrq+k makes the
# display manager start
# fixed by early kernel modesetting
boot.initrd.kernelModules = [ "amdgpu" ];
}