Для переключения включения/отключения сенсорной панели моего ноутбука согласно подключенной мыши USB я использовал индикатор сенсорной панели, который выполняет демона, чтобы контролировать подключенные устройства и принять соответствующие меры. Когда я отправляю ноутбук, чтобы спать и затем отключить мою мышь на следе, сенсорная панель отключена, таким образом, у меня есть к разъединению подключения мышь для включения его! Я искал этот форум проблему и оба найденных решения (включающий сценарий /etc/pm/sleep.d
или /usr/lib/pm-utils/sleep.d
) не работал! Я поднял вопрос решить его, но в конце концов, даже когда переделано с помощью правил udev вместо индикатора сенсорной панели, проблема все еще сохраняется!
Я хочу разъяснить его: если бы сенсорная панель была отключена на системном уровне (т.е. отключена, то прежде чем даже вход в систему и сценарий легли бы в rc.local
, который, однако, я попробовал, и это не работало), помещая сценарии в/etc/pm, и usr/lib/pm-utils может работать.
Но это отключено на сеансовом уровне или независимо от того, что уровень делает udev, относятся. Можно ли сказать мне, куда поместить сценарии, которые будут работать, когда я введу пароль? НЕ ВХОДЯТ В СИСТЕМУ, НО ВВОДЯТ ПАРОЛЬ, например, после пробуждения.
Обновление: @terdon Вы не вполне получили его. У меня даже нет xscreensaver включенным, я сомневаюсь, установлен ли он даже. Вы видите, потому что моя учетная запись имеет пароль, если я нажимаю "Log out" или "Change user" ИЛИ SLEEP MODE, после этого я должен буду ввести свой пароль, и это не имеет никакого отношения к xscreensaver ИЛИ ЛЮБЫМ ЭКРАННЫМ ЗАСТАВКАМ, у меня НЕТ ИХ.
Я попробовал то, что Вы предложили прежде, чем задать этот вопрос, и он не удался.
Обновление 2: хорошо, после некоторого расследования я могу сказать, что это - Lubuntu определенная проблема. Я работаю теперь над "оказанием поддержки" lightdm (который я предполагаю, применяется на некотором уровне кроме udev), и udev. Кто-либо с любым опытом с lighdm ценится.
Обновление 3: Благодаря Ubuntu Wiki I (правильно?) выяснил, куда поместить вызов моего сценария. Таким образом, я добавил session-setup-script=/home/n76/tptoggle.sh
кому: /etc/lightdm/lightdm.conf
Текущая ситуация совпадает с в начале, за исключением того, что lightdm на самом деле пытается поставить сенсорную панель, когда сеанс пользователя запускается
Проблемы не не стало, но я чувствую, что я близок, и она примерно дает lightdm правильные полномочия.
Предложите, как сделать это.
Я не знаю, существует ли способ выполнить вещи после ввода Вашего пароля, как Вы запрашиваете, и я сомневаюсь, что будет, так как это обрабатывается настольной средой (вероятно, демон экранной заставки). Однако это должно работать отлично, если Вы добавляете правильные сценарии к /etc/pm/sleep.d
. Так как Вы не показали сценарии, которые Вы попробовали, мое предположение - то, что Вы просто не записали сценарий правильно. Следующее хорошо работает в моей системе:
Создают файл, названный /etc/pm/sleep.d/20_resume
со следующим содержанием:
#!/bin/sh
case "$1" in
thaw|resume)
/home/terdon/scripts/onoff.sh
;;
esac
exit $?
Удостоверяются, что адаптировались, путь выше (/home/terdon/scripts/onoff.sh
) к фактическому пути сценария, показанного на шаге 3.
, Дают файлу правильные полномочия (rwxr-xr-x
)
sudo chmod 755 /etc/pm/sleep.d/20_resume
Запись сценарий, который выключает сенсорную панель, если мышь подключена и на том, если нет никакой подключенной мыши:
#!/bin/sh
## Get the xinput ID of the touchpad
TID=$(xinput list | grep -iPo 'touchpad.*id=\K\d+')
## Check if a mouse is connected and act accordingly
xinput list | grep -iq mouse && xinput disable "$TID" || xinput enable "$TID"
Теперь сохраняют сценарий выше использования пути и имени от шага 1 (в этом примере, /home/terdon/scripts/onoff.sh
), делают его исполняемым файлом (chmod +x /home/terdon/scripts/onoff.sh
), и Вы должны быть установлены.
, Если это - то, что Вы уже попробовали, отредактируйте свой вопрос и покажите нам сценарии, которые Вы использовали.
<час> другой подход, о котором я могу думать, должен использовать процедуру, обрисованную в общих чертах в моем ответ на Ваш другой вопрос . Я не понимаю то, что Вы имеете против циклов, они - совершенно допустимое и действительно неоценимая конструкция программирования. Единственная проблема, о которой я могу думать, - то, что выполнение бесконечного цикла может обложить налогом Ваш ЦП, но это не должно быть проблемой, если Ваш сценарий использует sleep
для ожидания в течение секунды или два между каждым выполненным циклом. Так как мое предложение делает просто, что, можно просто использовать это если вышеупомянутые сбои Вы.