Сценарий для выполнения конкретно на входе в систему от приостанавливает на 16,04

У меня есть сценарий, который настраивает мои предпочтения мыши, и он помещается в приложения Запуска. Это работает на запуске, но когда крышка закрывается, или компьютер, вручную вставленный, приостанавливают (то же самое действительно), настройки удалены. У меня есть он так, Ubuntu требует, чтобы мой пароль по возврату из приостановил, но этот вход в систему, кажется, не совпадает с регулярным входом в систему, поскольку это не выполняется .profile или .bashrc.

Я пытался поместить свой сценарий в /lib/systemd/system-sleep/ но это выполняется прежде, чем ввести мой пароль, и это не кажется этим xinput команды работают в той точке по следу цикл, потому что изменения не вступают в силу.

Таким образом, я или ищу способ заставить каждый приостанавливать, также выполняют блокировку или цикл выхода (как блокирующий вручную выполняет .profile), или найдите, что способ выполнить сценарий конкретно на вводе пароля на резюме от приостанавливает.

2
задан 18 May 2018 в 18:48

1 ответ

Сценарии в /etc/systemd/system-sleep/ работают как корень, кто не подписывается в X11 система управления окнами. Таким образом, это должно наследовать профиль от зарегистрированного пользователя.

От привлекательной яркости экрана и гамма приложения это работает на меня:

#!/bin/bash

export DISPLAY=:0       # For xrandr commands to work.
SpamLength=2            # How long spam lasts (how many seconds to sleep)

WaitForSignOn () {

    # eyesome daemon is loaded during boot. The user name is required
    # for xrandr external monitor brightness and gamma control. We must
    # wait until user signs on to get .Xauthority file settings.

    TotalWait=0

    # Wait for user to sign on then get Xserver access for xrandr calls
    UserName=""
    while [[ $UserName == "" ]]; do

        sleep "$SpamLength"
        TotalWait=$(( TotalWait + SpamLength ))

        # Find UserName currently logged in.
        UserName="$(who -u | grep -F '(:0)' | head -n 1 | awk '{print $1}')"
    done

    logger "Waited $TotalWait seconds for $UserName to login."

    xhost local:root
    export XAUTHORITY="/home/$UserName/.Xauthority"

} # WaitForSignOn

Можно скопировать вышеупомянутый код в верхнюю часть сценария и затем вставить одну строку перед существующим кодом:

WaitForSignOn
0
ответ дан 2 December 2019 в 07:34

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

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