Виталий Алексеев

05 / 06 · Rust · syngui · hidraw

linux-legion

Центр управления ноутбуками Lenovo Legion для Linux — то, что в Windows делают Lenovo Vantage и Legion Space: режимы питания, лимиты мощности CPU, вентиляторы, RGB-подсветка Spectrum по клавишам, режимы батареи и аппаратные переключатели.

Лицензия
MIT
Платформа
Linux · ноутбуки Lenovo Legion
Пакеты
linux-legion (AUR)
Статус
Проверено на Legion Pro 7 16IAX10H
Главная страница linux-legion: режим питания, шкалы CPU / GPU / памяти / батареи и вентиляторы
Главная страница linux-legion: режим питания, шкалы CPU / GPU / памяти / батареи и вентиляторы
эффектов подсветки в редакторе слоёв
12
аппаратных профилей подсветки
6
раз в секунду читаются цвета клавиш
~10/s
сторонних модулей ядра, демонов и root
0
01

Что это

linux-legion написан на Rust и syngui. Он пользуется штатными драйверами ядра (lenovo-wmi-gamezone, lenovo-wmi-other, ideapad-laptop) и общается с RGB-контроллером напрямую через hidraw — без стороннего модуля ядра, без демона и без root при работе.

Правило udev даёт вошедшему пользователю доступ к RGB-контроллеру и открывает настройки в sysfs на запись группе wheel. В README описан и протокол Spectrum, включая особенности 10-го поколения, найденные на живом железе, — для тех, кто захочет перенести его куда-то ещё.

02

Возможности

  • Главная: режим питания в один клик, живые шкалы CPU / GPU / памяти / батареи и обороты вентиляторов; видеокарта NVIDIA опрашивается, только если уже проснулась, так что панель не будит дискретную карту.
  • Производительность: Quiet, Balanced, Performance, Extreme и Custom (то же, что Fn+Q); в Custom — PL1 / PL2 процессора, все остальные лимиты, которые отдаёт прошивка, и ручные обороты вентиляторов.
  • Автоприменение: прошивка забывает свои лимиты после перезагрузки, поэтому необязательный пользовательский сервис возвращает их при входе, при включении Custom и после сна.
  • Подсветка Spectrum: шесть аппаратных профилей, яркость, логотип LEGION на крышке и редактор слоёв на живой карте клавиш с 12 эффектами; профили хранятся в самой клавиатуре.
  • Батарея: Standard, Rapid charge или Conservation (≈80 %), уровень заряда и износ.
  • Устройство: Fn Lock, аппаратное отключение камеры, зарядка по USB в выключенном состоянии и сведения о системе.
  • --simulate показывает весь интерфейс без железа; LEGION_TRACE=1 печатает каждый RGB-пакет.
03

Установка

yay -S linux-legion        # or: paru -S linux-legion

Пакет ставит бинарник, пункт меню, иконки и правило udev. Из исходников: cargo build --release, затем положить packaging/70-linux-legion.rules в /etc/udev/rules.d/ и перезагрузить правила udev.

Полная инструкция — в README →

04

Требования и ограничения

  • Разработан и проверен на одном ноутбуке: Legion Pro 7 16IAX10H (83F5, Core Ultra 9 275HX, RTX 5090 Laptop, контроллер Spectrum 048d:c197), Arch Linux, ядро 7.0.
  • Другие модели Legion с теми же интерфейсами ядра и контроллером Spectrum (048d:c1xx / c9xx) должны работать — каждая страница подстраивается под то, что сообщает прошивка, — но не проверялись.
  • Интерфейс пока только на русском.
  • Неофициальный проект, с Lenovo не связан. Лимиты и обороты задаются через штатные интерфейсы прошивки, но вся ответственность — на вас.
05

Скриншоты

Вайбкодинг в Claude Code

Как сделано

Модель пишет код, тесты и большую часть документации. Каждый формат пакета снят с моего собственного Legion и проверен на нём — живые тесты пишут слои в неактивный профиль клавиатуры, читают обратно и восстанавливают исходный байт в байт.

Всё здесь написано вайбкодингом. github.com/VitaminDB/linux-legion