diff --git a/lenovo/thinkpad/x1/6th-gen/QHD/default.nix b/lenovo/thinkpad/x1/6th-gen/QHD/default.nix new file mode 100644 index 0000000..0b8555f --- /dev/null +++ b/lenovo/thinkpad/x1/6th-gen/QHD/default.nix @@ -0,0 +1,36 @@ +# X1 6th generation with a QHD (2560x1440px) display +{ config, lib, pkgs, ... }: + +{ + imports = [ + ../. + ]; + + # Fix font sizes in X + services.xserver.dpi = 210; + fonts.fontconfig.dpi = 210; + + # Fix sizes of GTK/GNOME ui elements + environment.variables = { + GDK_SCALE = lib.mkDefault "2"; + GDK_DPI_SCALE= lib.mkDefault "0.5"; + }; + # Enable readable font on console. The example configuration that + # follows is taliored towards western languages. To see how to + # configure the font download the source tarball from + # http://terminus-font.sourceforge.net/ and read the README file on + # the root dir + + # i18n = { + # # this means ISO8859-1 or ISO8859-15 or Windows-1252 codepages + # # (ter-1), 16x32 px (32), normal font weight (n) + # consoleFont = "ter-132n"; + # consoleKeyMap = "us"; + # defaultLocale = "en_US.UTF-8"; + # consolePackages = [ pkgs.terminus_font ]; + # }; + + # Early configure the console to make the font readable from the + # start + # boot.earlyVconsoleSetup = true; +} diff --git a/lenovo/thinkpad/x1/6th-gen/default.nix b/lenovo/thinkpad/x1/6th-gen/default.nix new file mode 100644 index 0000000..b28fb5b --- /dev/null +++ b/lenovo/thinkpad/x1/6th-gen/default.nix @@ -0,0 +1,75 @@ +# A good source of information about how to fix the issues still +# standing with kernel 4.6.11 is the following wiki page: +# https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carbon_(Gen_6). The +# TrackPoint and TouchPad issues there seem to have been fixed already. + +{ config, pkgs, ... }: +{ + imports = [ + ../. + ]; + # Give TLP service more control over battery + boot = { + extraModulePackages = with config.boot.kernelPackages; [ + acpi_call + ]; + kernelModules = [ + "acpi_call" + ]; + }; + + # See https://linrunner.de/en/tlp/docs/tlp-faq.html#battery + services.tlp.extraConfig = '' + START_CHARGE_THRESH_BAT0=75 + STOP_CHARGE_THRESH_BAT0=80 + CPU_SCALING_GOVERNOR_ON_BAT=powersave + ENERGY_PERF_POLICY_ON_BAT=powersave + ''; + + # Temporary fix for cpu throttling issues visible in the kernel log + # (journalctl -k) by setting the same temperature limits used by + # Window$ + # See https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carbon_(Gen_6)#Power_management.2FThrottling_issues + systemd.services.cpu-throttling = { + enable = true; + description = "Sets the offset to 3 °C, so the new trip point is 97 °C"; + documentation = [ + "https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carbon_(Gen_6)#Power_management.2FThrottling_issues" + ]; + path = [ pkgs.msr-tools ]; + script = "wrmsr -a 0x1a2 0x3000000"; + serviceConfig = { + Type = "oneshot"; + }; + wantedBy = [ + "timers.target" + ]; + }; + + systemd.timers.cpu-throttling = { + enable = true; + description = "Set cpu heating limit to 97 °C"; + documentation = [ + "https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carbon_(Gen_6)#Power_management.2FThrottling_issues" + ]; + timerConfig = { + OnActiveSec = 60; + OnUnitActiveSec = 60; + Unit = "cpu-throttling.service"; + }; + wantedBy = [ + "timers.target" + ]; + }; + + # Enable S3 suspend state: you have to manually follow the + # instructions shown here: https://delta-xi.net/#056 in order to + # produce the ACPI patched table. Put the CPIO archive in /boot and + # then enable the following lines + # boot.kernelParams = [ + # "mem_sleep_default=deep" + # ]; + # boot.initrd.prepend = [ + # "/boot/acpi_override" + # ]; +} diff --git a/lenovo/thinkpad/x1/default.nix b/lenovo/thinkpad/x1/default.nix new file mode 100644 index 0000000..870d9a8 --- /dev/null +++ b/lenovo/thinkpad/x1/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ../. + ../../../common/cpu/intel + ]; +}