TouchPad не работает после Hibernate

Install diffchar (Github link для тех, кто использует автозагрузку плагинов). Начиная с версии 4.7, с включенным плагином Vim автоматически показывает более точные различия:

enter image description here

  • Вы можете нажать F7 (клавиатура по умолчанию) для переключения между обычной и плагином. Переназначьте с помощью:

    nmap ToggleDiffCharAllLines
    

    заменив на соответствующий код клавиши.

  • Вы можете использовать больше цветов:

    let g:DiffColors=100
    

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


Скопировано из моего сообщения на Vi и Vim Stack Exchange.

3
18.09.2018, 12:42
1 ответ

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

Решение 1

Я столкнулся с той же проблемой, что и вы, и ваш скрипт fix-touchpad.shне работал, пока я не попытался удалить модуль перед переходом в спящий режим и добавить его обратно после.

Основываясь на этом ответе на форуме Fedora, это может быть что-то вроде:

$ cat /usr/lib/systemd/system-sleep/fix-touchpad.sh
#!/bin/bash
[ "$1" = "pre" ] && modprobe -r i2c_hid
[ "$1" = "post" ] && modprobe i2c_hid
exit 0

Решение 2

Я также нашел другой способ выполнения кода в режиме гибернации/возобновления, и он также работал только при удалении модуля перед переходом в режим гибернации . Как описано в Arch's Wiki Управление питанием #Перехватчики сна , вы можете создать службу systemd, которая запускается службой сна.

Опираясь на инструкции вики, я придумал следующее:

$ cat /etc/systemd/system/root-resume.service
[Unit]
Description=(un)load module i2c_hid when going to/from sleep
Before=sleep.target
StopWhenUnneeded=yes

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=modprobe -r i2c_hid
ExecStop=modprobe i2c_hid

[Install]
WantedBy=sleep.target

Служба должна быть включена с помощью systemd enable root-resume. Обратите внимание, что ExecStart будет выполняться до sleep.target, а ExecStop будет выполняться при возобновлении.

Решение 3

Проверьте пакет systemd-suspend-modulesв AUR . По сути, он определяет службу, которая выполняет Решение 1 для каждого модуля, указанного в файле конфигурации пользователя. Это может быть более подходящим для других модулей, поскольку «рекурсивно выгружает данные модули и все, что от них зависит» (https://github.com/parkouss/systemd-suspend-modules/blob/master/suspend-modules#L19).

5
27.01.2020, 21:21

Теги

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