No description
  • C# 83.1%
  • PowerShell 16.9%
Find a file
2026-08-23 19:18:22 +05:30
.github/workflows Slim base binary (~45 MB): OpenCV natives become optional in-app download 2026-08-23 05:49:00 +05:30
docs Fn keys: reflection-only COM access, dynamic binder NREs on enumeration too 2026-08-23 19:04:10 +05:30
src/ThinkPadHelper Fn swap: say it applies after reboot 2026-08-23 19:18:22 +05:30
tools Banner: TrackPoint-red tittle on the i (exact glyph geometry), baseline removed 2026-08-23 04:26:09 +05:30
.gitignore Banner: drop keycap decoration; README: full-width centered screenshots; untrack capture script 2026-08-23 04:12:54 +05:30
AGENTS.md Device page: fix Fn swap write path, async probe, self-test tooling 2026-08-23 17:39:33 +05:30
LICENSE README: banner, screenshots, badges, docs; MIT license; updater slug wired 2026-08-23 04:02:36 +05:30
README.md README: streamlined rewrite, taskbar-aware screenshots (2 per row), agent notes 2026-08-23 05:49:16 +05:30

ThinkPad Helper

ThinkPad Helper - Lightweight control tool for Lenovo ThinkPads

Small and lightweight Lenovo Vantage alternative for ThinkPads, offering the controls you actually use with a much smaller footprint. A single exe that doesn't install anything on your system and doesn't ship any kernel drivers. Built and verified on a ThinkPad P1 Gen 2 - X1 Extreme Gen 2 and other models using the same power management driver are expected to work, feedback welcome.

💾 Download

Linux build - fully self-contained single files, no runtime prerequisites. Optional camera-based ambient light downloads separately from within the app (~34 MB).

⭐ If you like the app - please spread the word about it online



🎁 Advantages

  1. Just one exe to run. Doesn't install anything in your system, runs no services, ships no drivers.
  2. Battery charge limit that lives in the embedded controller - survives reboots even with the app closed.
  3. Performance modes switchable right from the tray menu.
  4. Keyboard backlight automation plus optional camera-based ambient display brightness.
  5. Simple and clean native UI that follows your Windows light/dark theme.
  6. Small: ~45 MB self-contained, and the camera feature stays out until you ask for it.
  7. Fully open source (MIT).

⚡ Features

  1. Performance modes: Quiet - Balanced - Performance (Windows power plans, Linux platform_profile)
  2. Battery charge threshold: set start % and stop %, applied instantly and kept by firmware
  3. Battery vitals: live wattage, voltage, remaining charge in Wh, design vs full capacity, health % and cycle count - the numbers Vantage shows, without Vantage
  4. Keyboard backlight: lights up on any input, goes dark after idle timeout, never fights your Fn+Space
  5. Ambient display brightness: camera samples room light on an interval (optional ~34 MB add-on, downloaded from within the app only if you enable it)
  6. Display brightness control
  7. GPU monitor: model, power limit and temperature via nvidia-smi
  8. Theme: follows OS light/dark live, with manual override
  9. Tray-friendly: start minimized, close to tray, launch at startup, update checks

Fan curves are not here yet: these machines have no user-mode fan interface, and shipping a kernel driver just for that is its own project. The investigation notes live in docs/FINDINGS.md.

Note

🔖 Important Notice

ThinkPad Helper is NOT an operating system, firmware, or driver. It DOES NOT "run" your hardware in real-time anyhow.

It's an app that sets values that already exist on your device - charge thresholds, backlight levels, brightness, performance mode - through the same interfaces Lenovo's own software uses: the IBMPmDrv driver that arrives with Lenovo Vantage's power management component, BIOS-exposed WMI methods, and standard OS APIs. Nothing here invents new hardware states.

If you use equivalent settings as in Lenovo Vantage - the behavior of your device won't be different.

The role of ThinkPad Helper for your laptop is similar to the role of a remote control for your TV.

Building

dotnet publish src/ThinkPadHelper/ThinkPadHelper.csproj -c Release -r win-x64 `
  --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true `
  -o publish

Any recent .NET SDK works (scoop install dotnet-sdk). Tags starting with v produce release binaries automatically via GitHub Actions.

The reverse-engineered hardware protocol notes (including which interfaces provably don't exist) are documented in docs/FINDINGS.md; read-only diagnostic probes used during discovery live in tools/.

Acknowledgements

License

MIT