winget install --id=BartoszCichecki.LenovoLegionToolkit -e
Lenovo Legion Toolkit (LLT) is a utility created for Lenovo Legion laptops, that allows changing a couple of features that are only available in Lenovo Vantage or Legion Zone.
Support the Armed Forces of Ukraine and People Affected by Russia’s Aggression on UNITED24, the official fundraising platform of Ukraine: https://u24.gov.ua.
Слава Україні!
Lenovo Legion Toolkit (LLT) is a utility created for Lenovo Legion (and similar) series laptops, that allows changing a couple of features that are only available in Lenovo Vantage or Legion Zone.
It runs no background services, uses less memory, uses virtually no CPU, and contains no telemetry. Just like Lenovo Vantage, this application is Windows only.
Join the Legion Series Discord: https://discord.com/invite/legionseries!
If you are looking for a Vantage alternative that was made for Linux, check LenovoLegionLinux project.
| Keyboard | | ------------------------------------------------------- | | |
| Battery | | ------------------------------------------------------- | | |
| Actions | | ------------------------------------------------------- | | |
| Macro | | ------------------------------------------------------- | | |
| Downloads | | ------------------------------------------------------- | | |
| Custom Mode | | ------------------------------------------------------- | | |
The tool comes with no warranty. Use at your own risk.
Please be patient and read through this readme carefully - it contains important information.
You can download the program by the following ways:
Manually from the Releases page
Using winget:
winget install BartoszCichecki.LenovoLegionToolkit
Using Scoop:
scoop bucket add versions
scoop bucket add extras
scoop install extras/lenovolegiontoolkit
LLT works best when it's running in the background, so go to Settings and enable Autorun and Minimize on close. Next thing is to either disable Vantage and Hotkeys or just uninstall them. After that LLT will always run on startup and will take over all functions that were handled by Vantage and Hotkeys.
If you close LLT completely some functions will not work, like synchronizing Windows Power Modes or Windows Power Plans with current Power Mode, Macros or Actions. This is due to the fact that LLT does not run any background services and won't be able to respond to changes.
If you installed LLT on a clean Windows install, make sure to have necessary drivers installed. If drivers are missing, some options might not be available. Especially make sure that these two are installed on your system:
If for whatever reason LLT installer did not setup .NET properly:
Note: If you installed LLT from Scoop, .NET 8 should have been installed automatically as a dependency. If anything fails, use
scoop update
to update all packages and try to reinstall LLT with--force
argument.
After following these steps, you can open Terminal and type: dotnet --info
. In the output look for section .NET runtimes installed
, in this section you should see something like:
Microsoft.NETCore.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
and
Microsoft.WindowsDesktop.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
The exact version number can be different, but as long as it is 8.x.x
it should be fine. If after these steps LLT still shows an error on startup that .NET couldn't be found or similar, the problem is on your machine and not with LLT.
Join the Legion Series Discord and head to #legion-toolkit
channel. Beta versions of future releases are posted there frequently!
Lenovo Legion Toolkit is made for Lenovo Legion laptops, and other similar laptops like Ideapad Gaming, LOQ and their Chinese variants.
Generations 6 (MY2021), 7 (MY2022) and 8 (MY2023) are supported, although some features also work on the 5th generation (MY2020). Issues related to devices older than Gen 6 or that are not Legions are out of scope of this project.
If you are getting an incompatible message on startup, you can check the Contribution section down at the bottom, to see how can you help. Keep in mind, that not always I can make all options compatible with all hardware since I do not have access to it.
Support for other laptops is not planned.
Overall the recommendation is to disable or uninstall Vantage, Hotkeys and Legion Zone while using LLT. There are some functions that cause conflicts or may not work properly when LLT is working along side other Lenovo apps.
LLT currently does not support installation for multiple users, so if you need to have multiple users on you laptop you might encounter issues. Same goes for accounts without Administrator rights - LLT needs an account with Administrator rights. If you install LLT on an account without such rights, LLT will not work properly.
The app allows to:
Custom Mode is available on all devices that support it. You can find it in the Power Mode dropdown as it basically is 4th power mode and it allows for adjusting power limits and fans. Custom Mode can't be accessed with Fn+Q shortcut. Not all features of Custom Mode are supported by all devices.
If you have one of the following BIOSes:
Make sure to update it to at least minimum version mentioned above for Custom Mode to function properly.
Both Spectrum per-key RGB and 4-zone RGB backlight is supported. Vantage and it's services need to be disabled to avoid conflicts when communicating with hardware. If you use other RGB apps that might conflict with LLT, check FAQ for solutions.
Other lighting features like both 1 and 3 level white keyboard backlight, panel logo and rear ports backlight are also supported, however there are some constraints:
Lighting that required Corsair iCue is not supported by LLT.
Important: Riot Vanguard DRM (used in Valorant for example) is known to cause issues with RGB controls. If you don't see RGB settings and have it installed, make sure it doesn't run on startup or uninstall it.
There are two main way you can use your dGPU:
Switching between two modes requires restart.
On Gen 7 and 8 laptops, there are additional 2 settings for Hybrid mode:
Discrete GPU may not disconnect, and in most cases will not disconnect, when it is used. That includes apps using dGPU, external monitor connected and probably some other cases that aren't specified by Lenovo. If you use the "Deactivate GPU" option in LLT, make sure that it reports dGPU Powered Off and no external screens are connected, before switching between Hybrid Modes in case you encounter problems.
All above settings are using built in functions of the EC and how well they work relies on Lenovo's firmware implementation. From my observations, they are reliable, unless you start switching them frequently. Be patient, because changes to this methods are not instantanous. LLT also attempts to mitigate these issues, by disallowing frequent Hybrid Mode switching and additional attempts to wake dGPU if EC failed to do so. It may take up to 10 seconds for dGPU to reappear when switching to Hybrid Mode, in case EC failed to wake it.
If you encounter issues, you might try to try alternative, experimental method of handling GPU Working Mode - see Arguments section for more details.
Disabling dGPU via Device Manager DOES NOT disconnect the device and will cause high power consumption!
These options are not Advanced Optimus and work separately from it.
Sometimes discrete GPU stays active even when it should not. This can happen for example, if you work with an external screen and you disconnect it - some processes will keep running on discrete GPU keeping it alive and shortening battery life.
There are two ways to help the GPU deactivate:
Deactivate button will be enabled when dGPU is active, you have Hybrid mode enabled and there are no screens connected to dGPU. If you hover over the button, you will see the current P state of dGPU and the list of processes running on it.
Keep in mind that some apps may not like this feature and crash when you deactivate dGPU.
The overclock option is intended for simple overclocking, similar to the one available in Vantage. It is not intended to replace tools like Afterburner. Here are some points to keep in mind:
First of all, the Power Mode you see in LLT (or toggle with Fn+Q) is not the same as Power Plans (that you access from Control Panel) or Power Mode (that you can change from Settings app).
The modern (and recommended) approach is to use Windows Power Modes and only one, default, "Balanced (recommended)" power plan. You should have 3 Power Modes to choose from in Windows Settings app:
You can assign these in LLT settings to each of Legion Power Modes: Quiet, Balance, Performance and Custom. If you choose to do so, respective Windows Power Mode will be automatically set when you change Legion Power Modes.
The legacy approach is to use multiple Power Plans, that some devices had installed from factory. If you decide to use them, or configure your own plans, leave the settings in Windows Settings app on the default "Balanced" setting. You can configure LLT to switch Power Plans automatically whenever you change the "Legion" Power Mode in LLT settings.
If you encounter issues with power mode or plan synchronization, especially when switching between the two approaches, you can reset Windows power settings to default using powercfg -restoredefaultschemes; shutdown /r /t
command. This command will reset all power plans to default and reboot your device. All plans except for the default "Balanced (recommended)" will be deleted, so make sure to make a copy, if you plan on using them again.
On Gen 6 and 7 laptops, it is possible to change the boot logo (the default "Legion" image you see at boot). Boot logo is not stored in UEFI - it is stored on the UEFI partition on boot drive. When setting custom boot logo, LLT conducts basic checks, like resolution, image format and calculates a checksum to ensure compatibility. However, the real verification happens on the next boot. UEFI will attempt to load the image from UEFI partition and show it. If that fails for whatever reason, default image will be used. Exact criteria, except for resolution and image format, are not known and some images might not be shown. In this case, try another image, edited with different image editor.
You can use "Run" step in Actions to start any program or script from Actions. To configure it, you need to provide path to the executable (.exe
) or a script (.bat
). Optionally, you can also provide arguments that the script or program supports - just like running anything from command line.
Here are couple of examples:
Shutdown laptop
shutdown
/s /t 0
Restart laptop
shutdown
/r
Runing a program
C:\path\to\the\program.exe
(if the program is on your PATH variable, you can use the name only)
(optional, for list of supported argument check the program's readme, website etc.)Running a script
C:\path\to\the\script.bat
(if the script is on your PATH variable, you can use the name only)
(optional, for list of supported argument check the script's readme, website etc.)Python script
C:\path\to\python.exe
(or just python
, if it is on your PATH variable)C:\path\to\script.py
LLT automatically adds some variables to the process environment that can be accessed, from within the script. They are useful for more advanced scripts, where context is needed. Depending on what was the trigger, different variables are added:
When AC power adapter is connected
LLT_IS_AC_ADAPTER_CONNECTED=TRUE
When low wattage AC power adapter is connected
LLT_IS_AC_ADAPTER_CONNECTED=TRUE
LLT_IS_AC_ADAPTER_LOW_POWER=TRUE
When AC power adapter is disconnected
LLT_IS_AC_ADAPTER_CONNECTED=FALSE
When Power Mode is changed:
LLT_POWER_MODE=<value>
, where value
is one of: 1
- Quiet, 2
- Balance, 3
- Performance, 255
- CustomLLT_POWER_MODE_NAME=<value>
, where value
is one of: QUIET
, BALANCE
, PERFORMANCE
, CUSTOM
When game is running
LLT_IS_GAME_RUNNING=TRUE
When game closes
LLT_IS_GAME_RUNNING=FALSE
When app starts
LLT_PROCESSES_STARTED=TRUE
LLT_PROCESSES=<value>
, where value
is comma separated list of process namesWhen app closes
LLT_PROCESSES_STARTED=FALSE
LLT_PROCESSES=<value>
, where value
is comma separated list of process namesLid opened
LLT_IS_LID_OPEN=TRUE
Lid closed
LLT_IS_LID_OPEN=FALSE
When displays turn on
LLT_IS_DISPLAY_ON=TRUE
When displays turn off
LLT_IS_DISPLAY_ON=FALSE
When external display is connected
LLT_IS_EXTERNAL_DISPLAY_CONNECTED=TRUE
When external display is disconnected
LLT_IS_EXTERNAL_DISPLAY_CONNECTED=FALSE
When HDR is on
LLT_IS_HDR_ON=TRUE
When HDR is off
LLT_IS_HDR_ON=FALSE
When WiFi is connected
LLT_WIFI_CONNECTED=TRUE
LLT_WIFI_SSID=<value>
, where value
is the SSID of the networkWhen WiFi is disconnected
LLT_WIFI_CONNECTED=FALSE
At specified time
LLT_IS_SUNSET=<value>
, where value
is TRUE
or FALSE
, depending on configuration of the triggerLLT_IS_SUNRISE=<value>
, where value
is TRUE
or FALSE
, depending on configuration of the triggerLLT_TIME"
, where value
is HH:mm
, depending on configuration of the triggerLLT_DAYS"
, where value
is comma separated list of: MONDAY
, TUESDAY
, WEDNESDAY
, THURSDAY
, FRIDAY
, SATURDAY
, SUNDAY
, depending on configuration of the triggerPeriodic action
LLT_PERIOD=<value>
, where value
is the interval in secondsOn startup
LLT_STARTUP=TRUE
On resume
LLT_RESUME=TRUE
If "Wait for exit" is checked, LLT will capture the output from standard output of the launched process. This output is stored in $RUN_OUTPUT$
variable and can be displayed in Show notification step.
If you enjoy using the Lenovo Legion Toolkit, consider donating.
Special thanks to:
Translations provided by:
Many thanks to everyone else, who monitors and corrects translations!
Starting from version 2.14.0, LLT is much more strict about detecting leftover processes related to Vantage. Vantage installs 3 components:
The easiest solution is to go into LLT settings and select options to disable Lenovo Vantage, LegionZone and Hotkeys (only still installed ones are shown).
If you want to remove them instead, make sure that you uninstall all 3, otherwise some options in LLT will not be available. You can check Task Manager for any processes containing Vantage
or ImController
. You can also check this guide for more info: Uninstalling System Interface Foundation V2 Device, if you have troubles getting rid of ImController
processes.
LLT makes use of many low-level Windows APIs that can be falsely flagged by antiviruses as suspicious, resulting in a false-positive. LLT is open source and can easily be audited by anyone who has any doubts as to what this software does. All installers are built directly on GitHub with GitHub Actions, so that there is no doubt what they contain. This problem could be solved by signing all code, but I can't afford spending hundreds of dollars per year for an Extended Validation certificate.
If you downloaded the installer from this projects website, you shouldn't worry - the warning is a false-positive. That said, if you can help with resolving this issue, let's get in touch.
You can customize Fn+F9 hotkey in LLT settings. Other hotkeys can't be customized.
No. Conservation mode threshold is set in firmware to 60% (2021 and earlier) or 80% (2022 and later) and it can't be changed.
No, it isn't possible to customize how the fan works in power modes other than Custom.
Starting with version 2.11.0, LLT's behavior was aligned with Vantage and Legion Zone and it does not allow using them without an appropriate power source.
If for whatever reason you want to use these modes on battery anyway, you can use --allow-all-power-modes-on-battery
argument. Check Arguments section for more details.
Note that power limits and other settings are not applied correctly on most devices when laptop is not connected to full power AC adapter and unpredictable and weird behavior is expected. Therefore, no support is provided for issues related to using this argument.
It seems that some BIOS versions indeed have weird issues when using Fn+Q. Only hope is to wait for Lenovo to fix it.
Sometimes new motherboard does not contain correct model numbers and serial numbers. You should try this tutorial to try and recover them. If that method does not succeed, you can workaround it with --skip-compat-check
argument. Check Arguments section for more details.
Game detection feature is built on top of Windows' game detection, meaning LLT will react to EXE files that Windows considers "a game". That also means that if you nuked Xbox Game Bar from your installation, there is 99.9% chance this feature will not work.
Windows probably doesn't recognize all games properly, but you can mark any program as game in Xbox Game Bar settings (Win+G). You can find list of recognized games in registry: HKEY_CURRENT_USER\System\GameConfigStore\Children
.
In general yes. LLT will disable RGB controls when Vantage is running to avoid conflicts. If you use other RGB software like L5P-Keyboard-RGB or OpenRGB, you can disable RGB in LLT to avoid conflicts with --force-disable-rgbkb
or --force-disable-spectrumkb
argument. Check Arguments section for more details.
No. Check out OpenRGB project.
Only options natively supported by hardware are available; adding support for custom effects is not planned. If you would like more customization check out L5P-Keyboard-RGB or OpenRGB.
Fan control is available on Gen 7 and later models. Older models will not be supported due to technical limitations.
In Windows 10 and 11, Microsoft did plenty of changes to the tray, breaking a lot of things on the way. As a results custom tooltips not always work properly. Solution? Update your Windows and keep fingers crossed.
There are very good tools like Intel XTU (which is used by Vantage) or ThrottleStop made just for that.
If you end up in a situation where your GPU is not stable and you can't boot into Windows, there are two things you can do:
gpu_oc.json
file under LLT settings, which are located in "%LOCALAPPDATA%\LenovoLegionToolkit
.When you change the Boot Logo, LLT verifies that it is in the format that is correct format and correct resolution. If LLT shows that boot logo is applied, it means that the setting was correctly saved to UEFI. If you don't see the custom boot logo, it means that even though UEFI is configured and custom image is saved to UEFI partition, your UEFI for some reason does not render it. In this case the best idea is to try a different image, maybe in different format, edited with different image editor etc. If the boot logo is not shown after all these steps, it's probably a problem with your BIOS version.
On some BIOS versions, toggling Fn Lock causes a brief stutter and since Smart Fn Lock is basically an automatic toggle for Fn Lock, it is also affected by this issue. Try disabling "Fool proof Fn Lock" (or similar) option in BIOS - it was reported that it fixes stutter when toggling Fn Lock.
Check the model number. Example model numbers are 16ACH6H
or 16IAX7
. The last number of the model number indicates generation.
Some, less frequently needed, features or options can be enabled by using additional arguments. These arguments can either be passed as parameters or added to args.txt
file.
--trace
- enables logging to %LOCALAPPDATA%\LenovoLegionToolkit\log
--minimized
- starts LLT minimized to tray--skip-compat-check
- disables compatibility check on startup (No support is provided when this argument is used)--disable-tray-tooltip
- disables tray tooltip that is shown when you hover the cursors over tray icon--allow-all-power-modes-on-battery
- allows using all Power Modes without AC adapter (No support is provided when this argument is used)--enable-hybrid-mode-automation
- allows changing Hybrid Mode/GPU Working Mode with actions (No support is provided when this argument is used)--force-disable-rgbkb
- disables all lighting features for 4-zone RGB keyboards--force-disable-spectrumkb
- disables all lighting features for Spectrum per-key RGB keyboards--force-disable-lenovolighting
- disables all lighting features related to panel logo, ports backlight and some white backlit keyboards--experimental-gpu-working-mode
- changes GPU Working Mode switch to use experimental method, that is used by LegionZone (No support is provided when this argument is used)--proxy-url=example.com
- specifies proxy server URL that LLT should use--proxy-username=some_username
- if applicable, specifies proxy server username to use--proxy-password=some_password
- if applicable, specifies proxy server password to use--proxy-allow-all-certs
- if needed relaxes criteria needed to establish HTTPS/SSL connections via proxy server--disable-update-checker
- disable update checks in LLT, in case you want to rely on winget, scoop etc.If you decide to use the arguments with args.txt
file:
%LOCALAPPDATA%\LenovoLegionToolkit
args.txt
file in thereArguments not listed above are no longer needed or available.
In all troubleshooting situations, logs provide important information. Always attach logs to your issues. Critical error logs are saved automatically and saved under "%LOCALAPPDATA%\LenovoLegionToolkit\log"
.
To collect logs:
Run
(Win+R) and type there: "%LOCALAPPDATA%\Programs\LenovoLegionToolkit\Lenovo Legion Toolkit.exe" --trace
and hit OK[LOGGING ENABLED]
Run
(Win+R) type "%LOCALAPPDATA%\LenovoLegionToolkit\log"
I appreciate any feedback that you have, so please do not hesitate to report issues. Pull Requests are also welcome, but make sure to check out CONTRIBUTING.md first!
Crowdin has been selected as the tool for handling translations. If you want to contribute, go to https://crowdin.com/project/llt and request access.
If you find any bugs in the app, please report them. Always attach logs to your issues. You can find logs in %LOCALAPPDATA%\LenovoLegionToolkit\log
.
It would be great to expand the list of compatible devices, but to do it your help is needed!
If you are willing to check if this app works correctly on your device that is currently unsupported, click Continue on the popup you saw on startup. Lenovo Legion Toolkit will start logging automatically so you can submit them if anything goes wrong.
If your laptop is not part of Legion, IdeaPad Gaming or LOQ series, this software is not for you. Please do NOT open compatibility requests for other devices.
Remember that some functions may not function properly.
I would appreciate it, if you create an issue here on GitHub with the results of your testing.
Make sure to include the following information in your issue:
The more info you add, the better the app will get over time. If anything seems off, write down precisely what was wrong and attach logs (%LOCALAPPDATA%\LenovoLegionToolkit\log
).
Thanks in advance!