From bbb1f2681b0e3e897a5ad3665374cf377510a763 Mon Sep 17 00:00:00 2001 From: bashfulrobot Date: Fri, 8 Aug 2025 09:37:37 -0700 Subject: [PATCH 1/9] feat: Add ThinkPad T14 Intel Gen 6 support - Add T14 Gen 6 hardware profile with Lunar Lake CPU/GPU support - Include Intel Arc graphics and modern kernel requirements - Update README.md and flake.nix with new module entries - Follow CONTRIBUTING.md guidelines for profile structure --- README.md | 1 + flake.lock | 22 +--------------------- flake.nix | 1 + lenovo/thinkpad/t14/intel/default.nix | 9 +++++++++ lenovo/thinkpad/t14/intel/gen6/default.nix | 20 ++++++++++++++++++++ 5 files changed, 32 insertions(+), 21 deletions(-) create mode 100644 lenovo/thinkpad/t14/intel/default.nix create mode 100644 lenovo/thinkpad/t14/intel/gen6/default.nix diff --git a/README.md b/README.md index 7a774cf07..5316196b2 100644 --- a/README.md +++ b/README.md @@ -288,6 +288,7 @@ See code for all available configurations. | [Lenovo ThinkPad T14 AMD Gen 4](lenovo/thinkpad/t14/amd/gen4) | `` | `lenovo-thinkpad-t14-amd-gen4` | | [Lenovo ThinkPad T14 AMD Gen 5](lenovo/thinkpad/t14/amd/gen5) | `` | `lenovo-thinkpad-t14-amd-gen5` | | [Lenovo ThinkPad T14](lenovo/thinkpad/t14) | `` | `lenovo-thinkpad-t14` | +| [Lenovo ThinkPad T14 Intel Gen 6](lenovo/thinkpad/t14/intel/gen6) | `` | `lenovo-thinkpad-t14-intel-gen6` | | [Lenovo ThinkPad T14s AMD Gen 1](lenovo/thinkpad/t14s/amd/gen1) | `` | `lenovo-thinkpad-t14s-amd-gen1` | | [Lenovo ThinkPad T14s AMD Gen 4](lenovo/thinkpad/t14s/amd/gen4) | `` | `lenovo-thinkpad-t14s-amd-gen4` | | [Lenovo ThinkPad T14s](lenovo/thinkpad/t14s) | `` | `lenovo-thinkpad-t14s` | diff --git a/flake.lock b/flake.lock index 8f2f2e35d..5999137c9 100644 --- a/flake.lock +++ b/flake.lock @@ -1,26 +1,6 @@ { "nodes": { - "nixpkgs": { - "locked": { - "lastModified": 1751290770, - "narHash": "sha256-u4s8yKAqTzPGY3vTcDyAIet11uXaNCM//93/0O0NlbA=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "0620a50e9a847851bf802c59a4202552ed79b821", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-25.05-small", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "nixpkgs": "nixpkgs" - } - } + "root": {} }, "root": "root", "version": 7 diff --git a/flake.nix b/flake.nix index 3cd9e3551..019c8428f 100644 --- a/flake.nix +++ b/flake.nix @@ -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; diff --git a/lenovo/thinkpad/t14/intel/default.nix b/lenovo/thinkpad/t14/intel/default.nix new file mode 100644 index 000000000..1366ed4ab --- /dev/null +++ b/lenovo/thinkpad/t14/intel/default.nix @@ -0,0 +1,9 @@ +{ lib, pkgs, ... }: + +{ + imports = [ + ../. + ../../../../common/cpu/intel + ../../../../common/gpu/intel + ]; +} \ No newline at end of file diff --git a/lenovo/thinkpad/t14/intel/gen6/default.nix b/lenovo/thinkpad/t14/intel/gen6/default.nix new file mode 100644 index 000000000..a1e3c5b24 --- /dev/null +++ b/lenovo/thinkpad/t14/intel/gen6/default.nix @@ -0,0 +1,20 @@ +{ + 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; +} \ No newline at end of file From 3394443c154c384955c32f5c73eb4d4c5a07c2a0 Mon Sep 17 00:00:00 2001 From: bashfulrobot Date: Fri, 8 Aug 2025 09:53:18 -0700 Subject: [PATCH 2/9] improve: Enhance T14 Intel Gen 6 with common ThinkPad optimizations - Add acpi_backlight=native for proper brightness control - Include touchpad fix for click registration issues - Disable throttled service for modern Intel power management - Mark additions with TODO comments seeking community feedback --- lenovo/thinkpad/t14/intel/gen6/default.nix | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lenovo/thinkpad/t14/intel/gen6/default.nix b/lenovo/thinkpad/t14/intel/gen6/default.nix index a1e3c5b24..3fc31abdc 100644 --- a/lenovo/thinkpad/t14/intel/gen6/default.nix +++ b/lenovo/thinkpad/t14/intel/gen6/default.nix @@ -17,4 +17,17 @@ # 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; } \ No newline at end of file From 16b37dd50da456cb4c8d68389c1b05422878f0f6 Mon Sep 17 00:00:00 2001 From: bashfulrobot Date: Fri, 8 Aug 2025 10:22:46 -0700 Subject: [PATCH 3/9] fix: Remove flake.lock file Hardware profiles should not include lock files to maintain compatibility across different nixpkgs versions --- flake.lock | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 flake.lock diff --git a/flake.lock b/flake.lock deleted file mode 100644 index 5999137c9..000000000 --- a/flake.lock +++ /dev/null @@ -1,7 +0,0 @@ -{ - "nodes": { - "root": {} - }, - "root": "root", - "version": 7 -} From 69b5d17882120e71f3de8015057e15296f7371b9 Mon Sep 17 00:00:00 2001 From: bashfulrobot Date: Fri, 8 Aug 2025 11:38:08 -0700 Subject: [PATCH 4/9] =?UTF-8?q?feat:=20=E2=9C=A8=20add=20fingerprint=20sup?= =?UTF-8?q?port=20to=20ThinkPad=20T14=20Intel=20Gen=206?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enable fprintd service for fingerprint authentication on T14 Gen 6. This allows users to enroll and use fingerprint login after running 'sudo fprintd-enroll $USER'. --- lenovo/thinkpad/t14/intel/gen6/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lenovo/thinkpad/t14/intel/gen6/default.nix b/lenovo/thinkpad/t14/intel/gen6/default.nix index 3fc31abdc..32d70d809 100644 --- a/lenovo/thinkpad/t14/intel/gen6/default.nix +++ b/lenovo/thinkpad/t14/intel/gen6/default.nix @@ -30,4 +30,7 @@ # 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 + services.fprintd.enable = lib.mkDefault true; } \ No newline at end of file From 1369abbd7183b634a0534218dfac1c3aaf18e2f6 Mon Sep 17 00:00:00 2001 From: bashfulrobot Date: Fri, 8 Aug 2025 16:47:33 -0700 Subject: [PATCH 5/9] =?UTF-8?q?feat:=20=E2=9C=A8=20enable=20PAM=20fingerpr?= =?UTF-8?q?int=20authentication=20for=20T14=20Gen=206?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add PAM configuration to enable fingerprint authentication for login, sudo, su, and xscreensaver. This makes the fingerprint interface available in GNOME Settings and enables fingerprint unlock. --- lenovo/thinkpad/t14/intel/gen6/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lenovo/thinkpad/t14/intel/gen6/default.nix b/lenovo/thinkpad/t14/intel/gen6/default.nix index 32d70d809..ba4dd8c1f 100644 --- a/lenovo/thinkpad/t14/intel/gen6/default.nix +++ b/lenovo/thinkpad/t14/intel/gen6/default.nix @@ -33,4 +33,12 @@ # Enable fingerprint reader support services.fprintd.enable = lib.mkDefault true; + + # Enable PAM fingerprint authentication for login and unlock + security.pam.services = { + login.fprintAuth = lib.mkDefault true; + xscreensaver.fprintAuth = lib.mkDefault true; + sudo.fprintAuth = lib.mkDefault true; + su.fprintAuth = lib.mkDefault true; + }; } \ No newline at end of file From 8a715bb2b25629e5fc9d92b255797bc9dd9b2a51 Mon Sep 17 00:00:00 2001 From: bashfulrobot Date: Fri, 8 Aug 2025 16:56:47 -0700 Subject: [PATCH 6/9] fix: remove PAM fingerprint config to prevent login issues Remove PAM fingerprint authentication from hardware profile to avoid breaking GDM password login as described in nixpkgs#171136. Users should configure PAM in their host config for safe fingerprint auth. --- lenovo/thinkpad/t14/intel/gen6/default.nix | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/lenovo/thinkpad/t14/intel/gen6/default.nix b/lenovo/thinkpad/t14/intel/gen6/default.nix index ba4dd8c1f..2e16f98ae 100644 --- a/lenovo/thinkpad/t14/intel/gen6/default.nix +++ b/lenovo/thinkpad/t14/intel/gen6/default.nix @@ -32,13 +32,7 @@ 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; - - # Enable PAM fingerprint authentication for login and unlock - security.pam.services = { - login.fprintAuth = lib.mkDefault true; - xscreensaver.fprintAuth = lib.mkDefault true; - sudo.fprintAuth = lib.mkDefault true; - su.fprintAuth = lib.mkDefault true; - }; } \ No newline at end of file From fce75d6728925175714175b6f5c583ede676c262 Mon Sep 17 00:00:00 2001 From: bashfulrobot Date: Fri, 8 Aug 2025 17:07:12 -0700 Subject: [PATCH 7/9] =?UTF-8?q?docs:=20=F0=9F=93=9D=20add=20PAM=20fingerpr?= =?UTF-8?q?int=20configuration=20guidance=20for=20T14=20Gen=206?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add comprehensive comments explaining how to configure PAM services for complete fingerprint authentication in GNOME, including warnings about potential login issues and step-by-step setup instructions. --- lenovo/thinkpad/t14/intel/gen6/default.nix | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/lenovo/thinkpad/t14/intel/gen6/default.nix b/lenovo/thinkpad/t14/intel/gen6/default.nix index 2e16f98ae..ba840e69c 100644 --- a/lenovo/thinkpad/t14/intel/gen6/default.nix +++ b/lenovo/thinkpad/t14/intel/gen6/default.nix @@ -35,4 +35,26 @@ # 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 } \ No newline at end of file From ee70c10e40aafeff984acdd5a26dd73b3772ffc2 Mon Sep 17 00:00:00 2001 From: bashfulrobot Date: Mon, 11 Aug 2025 21:12:36 -0700 Subject: [PATCH 8/9] refactor: clean up PAM configuration comments formatting Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- lenovo/thinkpad/t14/intel/default.nix | 2 +- lenovo/thinkpad/t14/intel/gen6/default.nix | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lenovo/thinkpad/t14/intel/default.nix b/lenovo/thinkpad/t14/intel/default.nix index 1366ed4ab..330ecd3eb 100644 --- a/lenovo/thinkpad/t14/intel/default.nix +++ b/lenovo/thinkpad/t14/intel/default.nix @@ -6,4 +6,4 @@ ../../../../common/cpu/intel ../../../../common/gpu/intel ]; -} \ No newline at end of file +} diff --git a/lenovo/thinkpad/t14/intel/gen6/default.nix b/lenovo/thinkpad/t14/intel/gen6/default.nix index ba840e69c..e6e6a5f4a 100644 --- a/lenovo/thinkpad/t14/intel/gen6/default.nix +++ b/lenovo/thinkpad/t14/intel/gen6/default.nix @@ -41,13 +41,13 @@ # 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; @@ -57,4 +57,4 @@ # 1. Rebuild your system # 2. Enroll fingerprint: sudo fprintd-enroll $USER # 3. Test sudo and screen unlock with fingerprint -} \ No newline at end of file +} From b8256fdd79a1b5b557556ccf8316c5b53fa2ef8e Mon Sep 17 00:00:00 2001 From: bashfulrobot Date: Tue, 12 Aug 2025 06:05:02 -0700 Subject: [PATCH 9/9] fix: restore flake.lock from upstream --- flake.lock | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 flake.lock diff --git a/flake.lock b/flake.lock new file mode 100644 index 000000000..8f2f2e35d --- /dev/null +++ b/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1751290770, + "narHash": "sha256-u4s8yKAqTzPGY3vTcDyAIet11uXaNCM//93/0O0NlbA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0620a50e9a847851bf802c59a4202552ed79b821", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.05-small", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +}