Linux управление подсветкой клавиатуры

Linux управление подсветкой клавиатуры

Дата и время публикации: 2020-04-16 07:30:00 Дата и время модификации: 2020-05-05 12:00:00

Проблема и решение

1. Cуть проблемы

Во многих современных клавиатурах стало модным использовать подсветку клавиш на клавиатуре, что с одной стороны порождает большой интерес у обычных пользователей, а с другой стороны — определенные проблемы по управлению и настройке этой функции у системных администраторов. О чем и пойдет речь в этой статье.

Как уже писал ранее в дистрибутивах Debian GNU/Linux существует возможность управления яркостью, но ничего не упоминул об управлении цветом, интенсивностью или темпом подсветки. Потому что после включения яркости подсветки клавиш на клавиатуре все может привести, например, к пестрому безобразию в виде циклического чередования цветов с некоторой скважностью и изменения яркости.

Так на клавиатурах, например, у «лэптопов» и их обрезанной версии ноутбуков ASUS , кроме установки цвета, также существует возможность управления темпом подсветки, устанавливая:

  • Static в статическом режиме, при котором цвет клавиш всей клавиатуры остается неизменным.
  • Сolor Cycled с циклическим чередованием цвета с заданной скважностью изменения яркости.
  • Breath с изменением уровнем яркости подсветки с возможностью задания темпа её изменения: slow (медленно), medium (средне) и Fast (быстро).

2.1 Наитивный модуль asus-nb-wmi (asus-wmi)

Определяем возможность управления яркостью клавиш на клавиатуре, а самое главное кто управляет всем этим безобразием .

Чуть ли не в первой строчке узнаем, что всем этим пестрым безобразием управляет драйвер или модуль (ядра linux) asus-nb-wmi , поддерживающий установку не только цвета, но и режимы их изменения.

Примечание. Управление инструментарием Windows ( Windows Management Instrumentation, WMI ) является комплексным набором протоетарных расширений унифицированной Модели драйверов Windows ( Windows Driver Model ), которая обеспечивает прикладные приложения операционной сиситемы интерфейсом, позволяющим инструментальным компонентам уведомлять и информировать. Обычно нам интересен WMI , если рабочая станция или ноутбук используют события горячих клавиш или, как в нашем случае, управление подсветкой. В этом случае нам необходимо иметь драйвер или расширение к уже существующему, чтобы охватить, а вернее включить, соответствующие события WMI и отображение ключевых событий.

Соответственно таким драйвером, в случае asus, является asus-nb-wmi (для текущей версии Linux-5.5 и скорее далее Linux-5.6 ), который позволяет управлять через GPIO или класс /sys/class/leds/ для платформы asus только включать/отключать яркость:

  • всех клавиш на клавиатуре,
  • светоиндикатора WiFi (зажигается в режиме полета),
  • основных CAPS LOCK , NUMLOCK и SCROLLOCK .

2.2 Неофицальный модуль faustus

Поэтому одним из возможных вариантов является установка альтернативного модуля ядра faustus путем замещения сладкой парочки дравейров asus_wmi и asus_nb_wmi из ванильного ядра.

О модуле faustus

Эспериментальный неофициальный платформенный модуль Linux для семейства лаптопов линейки ASUS TUF Gaming , являясь по-сути бэкпортом драйверов asus-wmi и asus-nb-wmi + подсветка RGB грубо урезана, чтобы быть пригодной дя использования на этих лаптов и упакована как модуль DKMS, рассчитанный на Linux-4.x / 5.x .

В случае, если клавиатура на вашем «лэптопе» будет определена, как устройство USB , например с с помощью команды lsusb , то данный драйвер не для Вас.

В таблице, ниже, представлен перечень всех поддерживаемых лаптопов:

Таблица 2.2

Модель Версия BIOS ОС Версия ядра
FX505DD (not tested) ? ? ?
FX505DY FX505DY.308 Arch Linux 5.1.15-arch1-1-ARCH
FX705DY FX705DY.304 openSUSE Tumbleweed 5.1.16-1-default
FX505DT FX505DT.302 Debian 11 «Bullseye» 5.6.0-1-amd64
FX505DT.304 ? ?
FX505DU FX505DU.308 Manjaro 18.1.5 5.4.13-3-MANJARO
FX505DV FX505DV.303 Ubuntu 19.10 5.3.0-29-generic
FX505GD FX505GD.304 ? ?
FX505GM FX505GM.301 Ubuntu 18.04.2 LTS 4.18.0-25-generic
FX705GE ? ? ?
FX705DT FX705DT.308 ? ?
FX705DU FX705DU.308 Arch Linux 5.4.13-zen1-1-zen
FX705GM FX705GM.305 Manjaro 5.3.18-1-MANJARO
Читайте также:  Стандартными приложениями windows не является проводник корзина блокнот

Для определение модели и версии BIOS следует выполнить:

Полученную информацию сравните с таблицей 2.2 : BIOS Information / Version — с версией BIOS (2-й столбец), Base Board Information / Product name — c моделью лаптопа (1-й столбец).

Как в случае, показанным в дампе 2.4

Учитывая, что версия BIOS не сходится, хотя она перекрывается номером версии — FX505DT.304 , поэтому дальнейшую установку проводим на свой страх и риск, например, из-за возможности нарушения управления температурным режимом, потому что данный модууль (драйвер) является строго эксперементальным и управляет ACPI / WMI , которые ответственны за низкоуровневую реализацию этой небезопасной функции .

Установка модуля faustus

Как в случае установки и настройки драйвера WiFi устанавливаем недостающие пакеты для сборки модуля (драйвера) ядра Linux и клонируем проект исходного кода c GitHub:

После чего производим сборку:

Примечание. В случае изменения версии ядра, как это случилось при переходе от версии Linux-5.4 к Linux-5.4 после обновления системы, необходимо произвести обновление модуля faustus : Теперь можно выполнить пересборку модуля asus_nb_wmi , как это делали в дампе 2.6, и повторно инсталлировать только что собранный модуль, как показано в дампе 2.13, и только затем «подбросить» к ядру Debian/Linux :

При этом процесс сборки должен заканчиваться строчкой «Success». После чего приступаем к проверки возможности использования только что скомпилированного драйвера.Но, для этого включим модули asus_wmi и asus_nb_wmi в черный список /etc/modprobe.d/faustus-blacklist.conf :

Проверяем, что добавленные модули включены (автоматически ядром) в черный список:

Не забываем «прибить» ранее запрещенные модули asus_wmi и asus_nb_wmi :

И подключаем только что созданный:

Проверяем по системному журналу, что все Ok:

В файле /etc/modules устанавливаем:

Не забывая перед этим установить модуль faustus в директорию /lib/modules/`uname -r`:

После чего, можно попробовать перегрузить машину, в результате чего, должны наблюдать:

Для включение поддержки DKMS , которая обеспечивает автоматическую сборку при выходе очередных обновлений ядра, в Debian/bullseye необходимо выполнить, как покзано в дампе 2.14а

В результате выше показанных действий исходный код драйвера asus_nb_wmi редакции от faustus буудеи размещен в директорию /usr/src/faustus- / и ,затем, скомпилирован и установлен в директории вместе с модулями ядра /lib/modules/. . Поэтому действия описанные ранее в дампе 2.12 можно пропустить, а строчку с модулем faustus из файла /etc/modules можно удалить или закомментировать.

О модуле faustus

Управление производится через файловую систему /sys/class/leds , что позволяет прикладным приложениям производить доступ к функциям подсветки клавиш на клавиатуре.

Управление яркостью подсветки

Производится через класс устройства светоиндикаторов ( ledclass device ) : /sys/class/leds/faustus::kbd_backlight и принимающий целочисленные значения от 0 до 3 включительно. Например, установка подсветку средней яркости:

Включает подсветку высокой яркости:

или её отключение полностью:

Управление цветовой гаммой RGB

Установка параметров режимам подсветки цветовой гаммы происходит одновременно, файловым способом через атрибуты sysfs в /sys/devices/platform/faustus/kbbl/ , которые можно изменять с использованием скрипта ./set_rgb.sh. Он сохраняет их путем записи 1 (постоянно) или 2 (временно, до снятие питания) sysfs -атрибуту kbbl_set после присвоение значений всем параметрам режимам подсветки цветовой гаммы RGB :

  • атрибут kbbl_red для установки красной составляющей, в HEX [00-ff] ;
  • атрибут kbbl_green для установки зеленной составляющей, в HEX [00-ff] ;
  • атрибут kbbl_blue для установки голубой составляющей, в HEX [00-ff] ;
  • атрибут kbbl_mode для установки режима подсветки цветовой гаммы: 0 — неизменяемый цвет и уровеня яркости, 1 — изменяемый темп яркости подсветки с возможность задания скорости изменения в атрибуте kbbl_speed , 2 — циклическое изменение цвета всех составляющих RGB в заданном диапазоне (атрибуты kbbl_red , kbbl_green и kbbl_blue не учитываются), 3 — тип управление яркостью переменное с постоянным темпом, без изменения составляющих RGB ;
  • атрибут kbbl_speed устанавливает значение темп изменения яркости (kbbl_mode=1): 0 — медленный, 1 — средний, 2 — быстрый;
Читайте также:  Астра линукс пропал звук

Дополнительно, в модуле ядра выполнено управление, по нажатию комбинации клавиш Fn+5 , тремя режимами работы вентилятора: 0 — обычный, 1 — кратковременное увеличение обдува за счет увеличения числа оборотов вращения, 2 — бесшумный.

Все описанные режимы вращения можно получить из /sys/devices/platform/faustus/fan_mode , выставленные режимы котрого не сохранются при перезагрузке или состоянии ожидания.

Источник

Клавиатуры с подсветкой в Linux

Хочу купить себе клавиатуру с подсветкой. У меня такой еще ни разу не было, поэтому все в новинку. Хочу понять, как можно управлять подсветкой и обязательно в линуксе. Насколько я понял, для управления подсветкой для клавиатуры используется специальные программы, которые идут в комплекте и нетрудно догадаться, что поддержки Linux у этих программ может не быть. Но может есть производители клавиатур, которые выпускают клавиатуры с 100% поддержкой Linux или может быть для каких-то моделей энтузиасты написали неофициальные программы для управления подсветкой? Я пока нашел только, что у клавиатур Corsair существует неофициальная нативная программа для управления подсветкой. Может быть есть еще производители в таком роде? Подскажите, пожалуйста.
И я еще слышал, что вроде бы из BIOS можно как-то управлять подсветкой на клавиатуре. Можете рассказать поподробнее, пожалуйста?

Не встречал клавиатуры, которые управляются только из ОС. Все, что у меня были, умели регулировать режимы подсветки с помощью сочетания клавиш.

Вот его я и нашел. А какие еще есть производители с подобными программами? Просто чтобы была альтернатива для выбора. У A4Tech, Redragon, Oklick, Logitech что-нибудь подобное есть?

Самый простой вариант — клавиатуры с поддержкой QMК. Управление и режимы подсветки там вкомпиливается и заливается на ардуину, включается/переключается заданной комбой и ничего от оси не требует.

Точно знаю, что у Razer есть программа для управления подсветкой из-под «линукса», но… Сами понимаете, Razer – та ещё вещь.

для logitech некоторых есть. Это был один из пунктов за G413

Источник

elemc blog

I’ll speak to him again. What do you read, my lord?

Подсветка клавиатуры ноутбуков MSI в Linux

Многие знают ноутбуки MSI, наверное самые лучшие игровые ноутбуки Gx серий.
Где-то полтора года назад я себе такой прикупил: GS72-2QD Apache.
Клавиатура ноутбука умеет менять цвета и интенсивность подсветки в трех регионах клавиатуры.
Но в Linux это все, конечно, из коробки не работает. Будем заставлять работать.

Решение, как таковое появилось давно, но уж очень нестабильно-кривое, как и все на node.js.
Погонял я его — погонял, но с каждым обновлением nodejs-пакетов, с каждым обновлением релиза все это переставало работать и требовало от меня не мало времени для того, чтобы заставить работать его.

Появилось у меня время, сел я и переписал все это добро в виде библиотеки на Си и приложения командной строки на Golang’а.

Исходники

Библиотека на Си: https://github.com/elemc/libmsikeyboard (в зависимостях HID API (Signal11) и cmake).
Приложение: https://github.com/elemc/msikeyboard (в зависимостях библиотека и golang).

Можно собирать в любом линуксе.
Команды для сборки и установке библиотеки:

Команды для сборки приложения:

если $GOPATH/bin в переменной окружения PATH, то уже все будет работать после успешного завершения команды go get.

Пакеты для Fedora/RFRemix и Centos 7

Пакеты находятся в моем хранилище (напомню http://repo.elemc.name ).
Достаточно подключить репу и установить пакет msikeyboard.

Как пользоваться приложением

Например, если мы хотим установить цвета, слева-направо: белый, синий, красный, с высокой интенсивностью подсветки и нормальным режимом подсветки (от root’а):

Пока это все работает от root’а, поскольку я не реализовал еще все планы по данному приложению.
Буду тут обновлять информацию о разработке.

Источник

MagicPast.NET:

Linux Windows Софт Hardware BIOS Вебмастеру Интернет Сеть C++ Звук Статьи Автомобильные устройства PDA

IP адрес: 185.151.241.146

Читайте также:  Mac touch bar windows

Версия протокола: HTTP/1.1

Локальный порт: 56120

Управление подсветкой на клавиатуре OpenSUSE

Defender Galaxy 4710

Клавиатура с подсветкой клавиш просто незаменима для тех, кто привык засиживать за компьютером по ночам и очень хорошо знает, как трудно работать практически в полной темноте, пользуясь тусклым светом монитора, чтобы не доставлять неудобства своим близким.

В некоторых клавиатурах подсветка зажигается только при включенном «Scroll Lock«. В консоли Linux — «Scroll Lock» используется для остановки прокрутки текста.

На некоторых системах индикатор «Scroll Lock» указывает на работу альтернативной раскладки клавиатуры, например, русской — независимо от того, какой клавишей или комбинацией клавиш переключается язык.

В последнем случае подсветка работает только при одной раскладке, что очень неудобно, то есть подсвечивать только один язык.

Данную проблему можно решить 2-мя способами.

Необходимо нажать правой кнопкой мышь на значке раскладки клавиатуры и выбрать «Configure«

Затем, в появившемся окне выбрать «Дополнительно«, развернуть пункт «Использовать клавиатурные индикаторы для отображения дополнительных раскладок» и снять галку со «Scroll Lock«.

После проделанных действий система перестанет реагировать на клавишу «Scroll Lock» при переключении раскладки и нажатии.

В консоли за управление светодиодом «Scroll Lock» отвечает команда xset led 3 , а за выключение xset -led 3 .

Набирать комады в консоли для включения и отключения подсветки — не очень удобно, поэтому можно создать 2 исполняемых файла-скрипта, которые при запуске будут отвечать за подсветку.

Для это, необходимо в любой директории создать 2 обычных (текстовых) файла с любым именем и расширением .sh (к примеру «led_on.sh» и «led_off.sh«) и сделать из них скрипты при запуске которых подсветка будет включаться/выключаться.

Чтобы сделать эти файлы исполняемыми, необходимо набирать в консоли от имени суперпользователя, находясь в директории с этими файлами:

chmod +rx led_on.sh && chmod +rx led_off.sh

После этого наполнить эти файлы содержимым.

led_on.sh:

led_off.sh:

После проделанных действий, запуская файл «led_on.sh«, можно включить подсветку на клавиатуре, а запуская файл «led_off.sh» можно выключить подсветку на клавиатуре.

Нажать правой кнопкой мышь на значке раскладки клавиатуры и выбрать «Configure«

Затем, в появившемся окне выбрать «Дополнительно«, развернуть пункт «Использовать клавиатурные индикаторы для отображения дополнительных раскладок«, снять галку со «Scroll Lock«

Зайти в «Параметры системы» (для вызова необходимо набрать systemsettings в консоли или в строке «Выполнить«) — «Комбинации клавиш и росчерки» и правой кнопкой мышь добавить 2 новые глобальные комбинации (одна для включения, вторая,- для того чтоб отключать подсветку). «Добавить — Глобальная комбинация клавиш — Команда или адрес«. Можно назвать любым именем, для примера «led_on«.

Перейти на вкладку «Активация«, поместить курсор в строке «Комбинация клавиш«, нажать «Scroll Lock«.

Затем на вкладке «Действие«, в строке «Команда или адрес«: xset led 3

Теперь подсветка клавиатуры сработает на «Scroll Lock«, но для ее выключения понадобиться еще одна клавиша/комбинация (для примера — «Shift + Scroll Lock«) и команда для выключеня, привязанная к этой комбинации.

Снова необходимо добавить глобальную комбинацию клавиш, поместить курсор в строку «Комбинация клавиш» и нажать «Shift + Scroll Lock«.

На вкладке «Действие» указать команду xset -led 3

После проделанных действий, подсветка на клавиатуре будет включена при нажатии «Scroll Lock» и отключена при нажатии «Shift + Scroll Lock«.

Источник

Оцените статью