Как отключить подсветку клавиатуры? (Ноутбук sony vaio PCG-41217N 2011 года)

Этот вопрос существует для некоторых других моделей ноутбуков Sony Vaio (без ответа); Я еще не видел ответа для ноутбука sony vaio PCG-41217N.

Предложение выполнить xset led off не отключает подсветку. Поскольку этот ноутбук предназначен для работы, я не хочу рисковать установкой стороннего программного обеспечения .

Глядя на предыдущую работу sony vaio Аскера , мой sudo dmidecode -s system-product-name дает VPCSB1AHJ. У меня есть файлы /sys/devices/platform/sony-laptop/kbd_backlight и kbd_backlight_timeout. Оба файла имеют размер 4,1 кБ, и только текст «-1» при открытии в gedit.

1
задан 20 December 2017 в 10:56

3 ответа

Мне удалось отключить подсветку клавиатуры, изменив значение текстового файла «kbd_backlight» только для чтения на 0 ( первоначально -1 ) после открытия его в gedit с рут-доступом через sudo gedit /sys/devices/platform/sony-laptop/kbd_backlight в Терминале.

Обращаем ваше внимание на то, что использование sudo для открытия gedit проблематично, так как на этом сайте несколько рекомендаций использовать вместо этого gksudo для правильного управления владением файлами между пользователем и пользователем root. Когда я выполнил sudo gedit, я получил несколько предупреждений в Терминале .

1
ответ дан 20 December 2017 в 10:56

На основании исследования @ DBinJP здесь ), здесь представлен путь к полному решению.


1. Запустите следующие строки как одну команду (скопируйте их все вместе и вставьте в терминал). Это создаст скрипт с именем kbdbacklight, который будет помещен в /usr/local/bin и доступен для всей системы команд оболочки.

cat << EOF | sudo tee /usr/local/bin/kbdbacklight && sudo chmod +x /usr/local/bin/kbdbacklight
#!/bin/sh
KBD_BACKLIGHT="/sys/devices/platform/sony-laptop/kbd_backlight"
read VALUE < "\$KBD_BACKLIGHT"
if   [ "\${VALUE}" -eq '0' ]; then echo '-1' > "\$KBD_BACKLIGHT"
elif [ "\${VALUE}" -eq '-1' ]; then echo '0' > "\$KBD_BACKLIGHT"
else echo "Something went wrong."; notify-send "Something went wrong."
fi
EOF

Объяснение:

  • Команда cat << EOF будет выводить следующие строки до следующей строки EOF. Эти строки будут переданы | в команду tee, которая запишет их в файл /usr/local/bin/kbdbacklight. Если эта операция выполнена успешно &&, тогда предоставьте исполняемому файлу права chmod +x. Обратная косая черта \ будет исключать особое значение знака $ в команде cat.

  • В первых двух строках скрипт будет читать значение файла /sys/devices/platform/sony-laptop/kbd_backlight. Затем, если значение равно 0, оно будет изменено на -1 и наоборот.

Теперь скрипт должен быть доступен как команда оболочки. Введите sudo kbdbacklight конец удара Enter . Вам будет предложено ввести пароль для выполнения команды как root по sudo.

<час>

2. Разрешите всем пользователям запускать команду (наш скрипт) без пароля через sudo. Независимо от того, принадлежат ли пользователи к группе sudoers или нет.

Примечание: Всегда используйте команду visudo для редактирования файла sudoers, чтобы убедиться, что вы не блокируете себя из системы - на случай, если вы случайно напишете что-то неправильное в файл sudoers. visudo сохранит ваш измененный файл во временном местоположении и только перезапишет реальный файл sudoers, если измененный файл может быть проанализирован без ошибок ... source .

Для этого создадим файл /etc/sudoers.d/kbdbacklight. Выполните команду:

sudo visudo -f /etc/sudoers.d/kbdbacklight

И поместите следующую строку в качестве содержимого файла. Затем сохраните и закройте файл.

ALL ALL=NOPASSWD: /usr/local/bin/kbdbacklight

Теперь все пользователи могут выполнять команду sudo kbdbacklight без пароля.


3. Создайте настраиваемое сочетание клавиш и привяжите скрипт к нужной клавише (или комбинации клавиш).

  • Перейти к Системные настройки Клавиатура Сочетания клавиш (вкладка) → Пользовательские сочетания клавиш (раздел) → Добавить новый + .

  • В типе окна Custom Ярлык : [ Имя : kbdbacklight], [ Команда : sudo kbdbacklight]. Нажмите Применить .

  • Нажмите на метку Disabled и установите сочетание клавиш или их комбинацию.


Должны быть доступны другие возможные решения, основанные на данных и функциональных возможностях команд, таких как lsusb, xinput, evtest, acpi_listen (apcid) и т. Д. Здесь Есть несколько ссылок, которые могут дать полезные идеи:

1
ответ дан 20 December 2017 в 10:56

Все работает, спасибо!

Я принял сценарий из другого ответа для своих нужд. Теперь мой тачпад работает. С небольшими изменениями этот скрипт работает для подсветки клавиатуры и сенсорной панели. Просто замените KBDBACKLIGHT на TOUCHPAD - посмотрите оригинальный скрипт выше.

Я использую Ubuntu 17.10 с Gnome.

#!/bin/sh
TOUCHPAD="/sys/devices/platform/sony-laptop/touchpad"
read VALUE < "$TOUCHPAD"  
if   [ "${VALUE}" -eq '0' ]; then echo '1' > "$TOUCHPAD"; notify-send "Touchpad ON" 
elif [ "${VALUE}" -eq '1' ]; then echo '0' > "$TOUCHPAD"; notify-send "Touchpad OFF"
else echo "Something went wrong."; notify-send "Something went wrong."
fi

Теперь на моем Sony Vaio пользовательский ярлык ctrl + win + * работает как в / выключить выключить подсветку клавиатуры и отключить и включить сенсорную панель ctrl + win + F1 . Пожалуйста, обратите внимание на VALUE с - значения включения / выключения моего ноутбука равны 1 и 0 не так, как в оригинальном скрипте 0 и -1. (отредактируйте эти цифры, если они не работают на вашем ноутбуке).

Приветствия:)

1
ответ дан 20 December 2017 в 10:56

Другие вопросы по тегам:

Похожие вопросы: