С тех пор, как я сначала загруженная двойным образом Ubuntu 16.04 на моей Surface Pro 3, мой индикатор Caps Lock Вовлек мою клавиатуру, не работал. Я решил попытаться делать с этим что-то недавно. Когда я ввожу команду
echo 1 | sudo tee /sys/class/leds/input45\:\:capslock/brightness
Свет продвигается, таким образом, это, по крайней мере, доступно. Я не уверен, что сделать, чтобы заставить свет продолжиться или прочь в зависимости от состояния Caps Lock все же. Любая справка значительно ценилась бы.
По-видимому, так или иначе ведомый не установлен автоматически. Фон - исправляет ниже, будет заботиться об этом:
#!/usr/bin/env python3
import subprocess
import time
led = "/sys/class/leds/input45::capslock/brightness"
while True:
time.sleep(1)
ledstate = open(led).read().strip() == "1"
capstate = "Caps Lock: on" in \
subprocess.check_output(["xset", "-q"]).decode("utf-8")
if ledstate != capstate:
newled = "0" if capstate == False else "1"
open(led, "wt").write(newled)
fix_led
(никакое расширение) в /usr/local/bin
и сделайте это исполняемым файлом./sys/class/leds/input45::capslock/brightness
необходимо добавить сценарий к sudoers файлу, как объяснено, например, здесь.Тестовый прогон сценарий путем выполнения
sudo /usr/local/bin/fix_led
в терминале протестируйте свою клавишу Caps Lock.
Теперь добавьте сценарий к своим приложениям запуска: Тире> Приложения Запуска> Добавляет. Добавьте команду:
/bin/bash -c "sleep 10 && sudo /usr/local/bin/fix_led"
Именно. На следующем перезапуске (входят в систему), он должен работать.
Конечно, патч должен работать во всех ситуациях, где ведомый не функционирует. точное местоположение файла capslock/brightness
может варьироваться как бы то ни было. Набор, при необходимости, местоположение в строке:
led = "/sys/class/leds/input45::capslock/brightness"
в заголовке сценария (не выходят :
в python
). Я протестировал сценарий, заставив это установить ведомый неправильный путь :) (уведенный, когда Caps Lock шла, на том, когда это было выключено).
Информация о текущем состоянии Caps Lock может быть выбрана командой:
xset -q
Однажды в секунду, сценарий проверяет если Caps Lock: on
находится в выводе. Сценарий также проверяет, соответствует ли текущее состояние состоянию светодиода (или 1 или 0), как считано из capslock/brightness
файл.
Если эти два не соответствуют, сценарий устанавливает состояние светодиода согласно реальному состоянию Caps Lock.