Отключить сенсорную панель, когда крышка закрыта

Kubuntu 11.10 (издание для нетбуков)

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

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

Я не нашел никакой возможности отключить тачпад, когда крышка закрыта, но, может быть, есть какое-то событие, к которому я мог бы подключиться и отключить / снова включить его вручную?

6
задан 30 December 2011 в 18:35

3 ответа

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

В качестве альтернативы вы можете открыть свой терминал (ctrl + alt + T) и набрать

sudo rmmod psmouse

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

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

sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator

Она будет находиться в разделе «Приложения»> «Аксессуар» ИЛИ, в зависимости от вашего пользовательского интерфейса, будет маленькая кнопка типа «тачпад» рядом с кнопкой регулировки громкости

0
ответ дан 30 December 2011 в 18:35

Мне бы очень хотелось, чтобы такая функция тоже была, но теперь я взял за привычку отключать тачпад перед тем, как закрыть крышку с помощью ярлыка (здесь Fn + F7, зависит от марки и модели ноутбука). Конечно, это совсем не решает проблему, но это большое начало. Если у вас нет предустановки привязки клавиш на вашем ноутбуке, я вполне уверен, что есть способ привязать ее вручную.

0
ответ дан 30 December 2011 в 18:35

Поскольку никто не мог сказать мне, как сделать именно то, что я хотел, вот решение, которое я придумала:

Отключение сенсорной панели / мыши

$ xinput --list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ FSPPS/2 Sentelic FingerSensingPad         id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ USB2.0 UVC PC Camera                      id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ↳ MSI Laptop hotkeys                        id=13   [slave  keyboard (3)]

Как мы видим, мой тачпад с id=12. Чтобы отключить его, мне нужно запустить:

$ xinput set-int-prop 12 "Device Enabled" 8 0

и включить его снова:

$ xinput set-int-prop 12 "Device Enabled" 8 1

Получение состояния крышки

Прежде всего, я могу получить состояние крышки на моей системе из этого файла:

$ cat /proc/acpi/button/lid/LID0/state 
state:      open

Когда я закрываю крышку, состояние становится closed.

Теперь, чтобы получить состояние в качестве переменной, я могу проверить состояние выхода изящной команды grep:

$ grep -q closed /proc/acpi/button/lid/*/state
$ echo $?
1

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

$ grep -q closed /proc/acpi/button/lid/*/state
$ xinput set-int-prop 12 "Device Enabled" 8 $?

Перехват события ACPI lid

Чтобы выполнять вышеуказанные команды каждый раз, когда крышка закрывается или открывается, я создал файл /etc/acpi/local/lid.sh.post со следующим содержимым:

export XAUTHORITY=`ls -1 /home/*/.Xauthority | head -n 1`
export DISPLAY=":`ls -1 /tmp/.X11-unix/ | sed -e s/^X//g | head -n 1`"

grep -q closed /proc/acpi/button/lid/*/state
xinput set-int-prop 12 "Device Enabled" 8 $?

XAUHTORITY и DISPLAY должны быть установлены, чтобы позволить root (который запускает процесс acpid) получить доступ к сеансу пользователя X.

0
ответ дан 30 December 2011 в 18:35

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

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