Как запустить скрипт, когда пароль вводится в экране блокировки?

Для переключения включения/отключения сенсорной панели моего ноутбука согласно подключенной мыши 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 правильные полномочия.

Предложите, как сделать это.

6
задан 13 April 2017 в 05:25

1 ответ

Я не знаю, существует ли способ выполнить вещи после ввода Вашего пароля, как Вы запрашиваете, и я сомневаюсь, что будет, так как это обрабатывается настольной средой (вероятно, демон экранной заставки). Однако это должно работать отлично, если Вы добавляете правильные сценарии к /etc/pm/sleep.d. Так как Вы не показали сценарии, которые Вы попробовали, мое предположение - то, что Вы просто не записали сценарий правильно. Следующее хорошо работает в моей системе:

  1. Создают файл, названный /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.

  2. , Дают файлу правильные полномочия (rwxr-xr-x)

    sudo chmod 755 /etc/pm/sleep.d/20_resume
    
  3. Запись сценарий, который выключает сенсорную панель, если мышь подключена и на том, если нет никакой подключенной мыши:

    #!/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 для ожидания в течение секунды или два между каждым выполненным циклом. Так как мое предложение делает просто, что, можно просто использовать это если вышеупомянутые сбои Вы.

2
ответ дан 23 November 2019 в 08:09

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

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