summaryrefslogtreecommitdiffstats
path: root/lenovo
diff options
context:
space:
mode:
authorRobert Helgesson <robert@rycee.net>2019-09-28 23:58:20 +0200
committerRobert Helgesson <robert@rycee.net>2019-09-29 00:17:13 +0200
commitde600352bc4ba2c5ae3dd62a472b54be99d6bfc4 (patch)
tree572866ff67afe81146381dcb9ebbd0428bd1f686 /lenovo
parent043562906168ee6966b6409c89a2b219af1e9752 (diff)
thinkpad/x1-extreme/gen2: add module
Diffstat (limited to 'lenovo')
-rw-r--r--lenovo/thinkpad/x1-extreme/default.nix8
-rw-r--r--lenovo/thinkpad/x1-extreme/gen2/default.nix47
2 files changed, 55 insertions, 0 deletions
diff --git a/lenovo/thinkpad/x1-extreme/default.nix b/lenovo/thinkpad/x1-extreme/default.nix
new file mode 100644
index 0000000..09a0ec1
--- /dev/null
+++ b/lenovo/thinkpad/x1-extreme/default.nix
@@ -0,0 +1,8 @@
+{
+ imports = [
+ ../.
+ ../../../common/cpu/intel
+ ../../../common/pc/laptop/acpi_call.nix
+ ../../../common/pc/laptop/ssd
+ ];
+}
diff --git a/lenovo/thinkpad/x1-extreme/gen2/default.nix b/lenovo/thinkpad/x1-extreme/gen2/default.nix
new file mode 100644
index 0000000..912cc95
--- /dev/null
+++ b/lenovo/thinkpad/x1-extreme/gen2/default.nix
@@ -0,0 +1,47 @@
+{ config, lib, ... }:
+
+with lib;
+
+{
+ imports = [
+ ../.
+ ../../../../common/pc/laptop/cpu-throttling-bug.nix
+ ];
+
+ # Fixes an issue with incorrect battery reporting. See
+ # https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Extreme_(Gen_2)#Invalid_Stats_Workaround
+ boot.initrd.availableKernelModules = [ "battery" ];
+
+ # New ThinkPads have a different TrackPoint manufacturer/name.
+ # See also https://certification.ubuntu.com/catalog/component/input/5313/input%3ATPPS/2ElanTrackPoint/
+ hardware.trackpoint.device = "TPPS/2 Elan TrackPoint";
+
+ # Since the HDMI port is connected to the NVIDIA card.
+ hardware.bumblebee.connectDisplay = true;
+
+ nixpkgs.overlays = [
+ (self: super: {
+ bumblebee = super.bumblebee.override {
+ extraNvidiaDeviceOptions = ''
+ Option "AllowEmptyInitialConfiguration"
+ '';
+ };
+ })
+ ];
+
+ services.xserver = mkMerge [
+ {
+ # Set the right DPI. xdpyinfo says the screen is 508×285 mm but
+ # it actually is 344×193 mm.
+ monitorSection = ''
+ DisplaySize 344 193
+ '';
+ }
+
+ # To support intel-virtual-output when using Bumblebee.
+ (mkIf config.hardware.bumblebee.enable {
+ deviceSection = ''Option "VirtualHeads" "1"'';
+ videoDrivers = [ "intel" ];
+ })
+ ];
+}