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

Проблема в том, что file.readlines() возвращает список строк - по одному для каждой строки в файле - а не одну строку. Символы [' и '] - это всего лишь способ python указывать содержащий объект списка. Он не знает заранее, что ваш файл содержит только одну строку.

Вы можете распечатать отдельные строки (в этом случае есть только один), перейдя по списку, например

for SaveDir in lines :
    print SaveDir
5
задан 30 December 2011 в 20:35

3 ответа

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

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

$ 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.

Теперь, чтобы получить состояние как переменную, я могу проверить статус выхода команды nifty 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 со следующим содержимым:

[ f7]

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

7
ответ дан 25 May 2018 в 15:35
  • 1
    Привет, Аттила, и спасибо за этот ответ! Я провел около часа, прежде чем нашел ваше объяснение о $XAUHTORITY и $DISPLAY. Я создал свой собственный скрипт, который может быть вам интересен: askubuntu.com/a/980999/566421 – pa4080 28 November 2017 в 16:21

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

Альтернативно, вы можете открыть терминал (ctrl + alt + T) и ввести

sudo rmmod psmouse

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

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

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

Он будет находиться в разделе Application> Accesory OR, в зависимости от вашего пользовательского интерфейса, будет небольшая кнопка с сенсорной панелью рядом с кнопкой регулировки громкости

2
ответ дан 25 May 2018 в 15:35
  • 1
    Это не будет хорошо, поскольку могут быть задачи, которые я не хочу останавливать (например, музыкальный проигрыватель или процесс загрузки), но я все еще хочу закрыть крышку. – Attila O. 30 December 2011 в 20:55

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

0
ответ дан 25 May 2018 в 15:35

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

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