[РЕШЕНО] Как избавиться от залипания клавиши Fn в Linux?

improovizator, просьба, будет время, проверь проделать то же самое, но с другим файлом /sys/devices/platform/i8042/serio0/force_release вместо /sys/bus/serio/devices/serio0/force_release ......... я проверить не могу в ввиду отсутствия проблемы ...... а на будущее пригодится. Менять там в принципе не много, только наименование файла ...
Ну и поставь решено
Ошибки не исчезают с опытом - они просто умнеют
РЕШЕНИЕ:

1. Выполняем команду:
cat /sys/bus/serio/devices/serio0/force_release

Результат будет примерно такой:
130-132,134,136-137,177,179-180,197,213,247,249,369-370

2. Ставим утилиту evtest. В DE убираем привязку к комбинации Fn для залипающих комбинаций, чтобы смогли нормально проверить. К примеру, в Gnome это делается в разделе Keyboard (у меня все по англ.).

Запускаем evtest, поочередно выполняем нажатия и фиксируем результат, нужно вычленить примерно такие строки:
Event: time 1484403489.558978, type 4 (EV_MSC), code 4 (MSC_SCAN), value a0
Event: time 1484403489.558978, type 1 (EV_KEY), code 113 (KEY_MUTE), value 2
Event: time 1484403489.558978, -------------- SYN_REPORT ------------
Event: time 1484403492.382100, type 4 (EV_MSC), code 4 (MSC_SCAN), value ae
Event: time 1484403492.382100, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 2
Event: time 1484403492.382100, -------------- SYN_REPORT ------------
Event: time 1484403494.187227, type 4 (EV_MSC), code 4 (MSC_SCAN), value b0
Event: time 1484403494.187227, type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 2
Event: time 1484403494.187227, -------------- SYN_REPORT ------------

На всякий случай можем сверить с информацией из списка, которая отображается в evtest по умолчанию.

3. Берем значения value: a0, ae и b0. Переводим в десятичную систему счисления:
echo $((16#a0))
160
echo $((16#ae))
174
echo $((16#b0))
176

Выполняем следующую команду, которая состоит из цифр вывода cat и наших трех цифр после них:
su -c "echo 130-132,134,136-137,177,179-180,197,213,247,249,369-370, 160, 174, 176 > /sys/bus/serio/devices/serio0/force_release"

Проверяем, все ли работает. В том числе комбинации Fn, которые работали прежде.

Если все хорошо, давайте ДОБАВИМ ЭТО В АВТОЗАПУСК:

1. Создаем файл скрипта:
sudo vi /usr/local/bin/fn-keys-solution.sh

Помещаем в него это:
#!/bin/sh

echo 130-132,134,136-137,177,179-180,197,213,247,249,369-370, 160, 174, 176 > /sys/bus/serio/devices/serio0/force_release

Даем необходимые права скрипту:
sudo chmod 744 /usr/local/bin/fn-keys-solution.sh

2. Создаем файл службы:
sudo vi /etc/systemd/system/fn-keys-solution.service

Помещаем в него это:
[Unit]
After=network.target

[Service]
ExecStart=/usr/local/bin/fn-keys-solution.sh

[Install]
WantedBy=multi-user.target

Даем файлу службы необходимые права:
sudo chmod 664 /etc/systemd/system/fn-keys-solution.service

3. Обновляем информацию:
sudo systemctl daemon-reload

Включаем службу:
sudo systemctl enable fn-keys-solution.service

ГОТОВО, перезагружаемся и радуемся жизни.
Всё меняется.
vasek, проверил, с /sys/devices/platform/i8042/serio0/force_release тоже работает. Делал так:
su -c "echo 130-132,134,136-137,177,179-180,197,213,247,249,369-370, 160, 174, 176 > /sys/devices/platform/i8042/serio0/force_release"
Всё меняется.
improovizator
проверил, с /sys/devices/platform/i8042/serio0/force_release тоже работает
improovizator, спасибо .......... будем знать ...
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.