Skip to content

Add ThinkPad T14 Intel Gen 6 support #1572

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,7 @@ See code for all available configurations.
| [Lenovo ThinkPad T14 AMD Gen 4](lenovo/thinkpad/t14/amd/gen4) | `<nixos-hardware/lenovo/thinkpad/t14/amd/gen4>` | `lenovo-thinkpad-t14-amd-gen4` |
| [Lenovo ThinkPad T14 AMD Gen 5](lenovo/thinkpad/t14/amd/gen5) | `<nixos-hardware/lenovo/thinkpad/t14/amd/gen5>` | `lenovo-thinkpad-t14-amd-gen5` |
| [Lenovo ThinkPad T14](lenovo/thinkpad/t14) | `<nixos-hardware/lenovo/thinkpad/t14>` | `lenovo-thinkpad-t14` |
| [Lenovo ThinkPad T14 Intel Gen 6](lenovo/thinkpad/t14/intel/gen6) | `<nixos-hardware/lenovo/thinkpad/t14/intel/gen6>` | `lenovo-thinkpad-t14-intel-gen6` |
| [Lenovo ThinkPad T14s AMD Gen 1](lenovo/thinkpad/t14s/amd/gen1) | `<nixos-hardware/lenovo/thinkpad/t14s/amd/gen1>` | `lenovo-thinkpad-t14s-amd-gen1` |
| [Lenovo ThinkPad T14s AMD Gen 4](lenovo/thinkpad/t14s/amd/gen4) | `<nixos-hardware/lenovo/thinkpad/t14s/amd/gen4>` | `lenovo-thinkpad-t14s-amd-gen4` |
| [Lenovo ThinkPad T14s](lenovo/thinkpad/t14s) | `<nixos-hardware/lenovo/thinkpad/t14s>` | `lenovo-thinkpad-t14s` |
Expand Down
27 changes: 0 additions & 27 deletions flake.lock
Copy link

@panchoh panchoh Aug 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi!

Note that there is an issue with flake.lock not being synced with the actual flake.nix that we have, which I’m trying to address on #1570.

At any rate, I’d recommend removing flake.lock from the scope of this PR (to keep things orthogonal, that is).

Thanks!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did end up removing the lock file previously. So that is taken care of. 👍

Copy link

@panchoh panchoh Aug 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Um, that doesn't fly, I'm afraid. If this PR gets accepted, the project as a whole will end up without the flake.lock file. We don't want that. What I propose is that you drop the edit to flake.lock altogether. The resulting PR should then contain no mention of flake.lock. And, when the previous fix is accepted by the project, this PR will have no conflicts as a bonus.

My suggestion would be that you rewrite the history of your PR, and when the changes to flake.lock are gone, then force-push to your branch. Let me know if you need and/or want assistance with this.

Hint: git rebase --interactive is your friend.

Thanks!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My bad! I thought that lock came in on my local test builds. 😨

I have restored it from the main repo. And it no longer shows in the affected files. Should be good there!

Cheers.

This file was deleted.

1 change: 1 addition & 0 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@
lenovo-thinkpad-t14-amd-gen3 = import ./lenovo/thinkpad/t14/amd/gen3;
lenovo-thinkpad-t14-amd-gen4 = import ./lenovo/thinkpad/t14/amd/gen4;
lenovo-thinkpad-t14-amd-gen5 = import ./lenovo/thinkpad/t14/amd/gen5;
lenovo-thinkpad-t14-intel-gen6 = import ./lenovo/thinkpad/t14/intel/gen6;
lenovo-thinkpad-t14s = import ./lenovo/thinkpad/t14s;
lenovo-thinkpad-t14s-amd-gen1 = import ./lenovo/thinkpad/t14s/amd/gen1;
lenovo-thinkpad-t14s-amd-gen4 = import ./lenovo/thinkpad/t14s/amd/gen4;
Expand Down
9 changes: 9 additions & 0 deletions lenovo/thinkpad/t14/intel/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{ lib, pkgs, ... }:

{
imports = [
../.
../../../../common/cpu/intel
../../../../common/gpu/intel
];
}
60 changes: 60 additions & 0 deletions lenovo/thinkpad/t14/intel/gen6/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
lib,
pkgs,
config,
...
}:

{
imports = [
../../.
../../../../../common/cpu/intel/lunar-lake
];

# T14 Gen 6 uses Intel Core Ultra processors (Lunar Lake architecture)
# with integrated Intel Arc graphics
# The lunar-lake module already includes appropriate GPU support

# Ensure modern kernel for full Lunar Lake support
boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.8") pkgs.linuxPackages_latest;

# TODO: Looking for feedback on these kernel parameters for T14 Gen 6
# Force use of the thinkpad_acpi driver for backlight control
# This allows the backlight save/load systemd service to work
boot.kernelParams = [
"acpi_backlight=native"
# TODO: Looking for feedback - touchpad fix needed for proper click registration on some T14 models
"psmouse.synaptics_intertouch=0"
];

# TODO: Looking for feedback - modern Intel CPUs don't typically need throttled service
# which can interfere with newer power management on Lunar Lake
services.throttled.enable = lib.mkDefault false;

# Enable fingerprint reader support
# NOTE: PAM configuration should be done in host config to avoid login issues
# See: https://github.com/NixOS/nixpkgs/issues/171136
services.fprintd.enable = lib.mkDefault true;

# For complete fingerprint authentication in GNOME, add the following to your host config:
#
# security.pam.services = {
# # Enable fingerprint authentication for sudo
# sudo.fprintAuth = lib.mkDefault true;
#
# # Enable fingerprint authentication for su
# su.fprintAuth = lib.mkDefault true;
#
# # Enable fingerprint authentication for screen unlock
# xscreensaver.fprintAuth = lib.mkDefault true;
#
# # WARNING: login.fprintAuth may break GDM password authentication
# # Only enable if you understand the risks:
# # login.fprintAuth = lib.mkDefault true;
# };
#
# After configuration:
# 1. Rebuild your system
# 2. Enroll fingerprint: sudo fprintd-enroll $USER
# 3. Test sudo and screen unlock with fingerprint
}