У меня есть сценарий, который настраивает мои предпочтения мыши, и он помещается в приложения Запуска. Это работает на запуске, но когда крышка закрывается, или компьютер, вручную вставленный, приостанавливают (то же самое действительно), настройки удалены. У меня есть он так, Ubuntu требует, чтобы мой пароль по возврату из приостановил, но этот вход в систему, кажется, не совпадает с регулярным входом в систему, поскольку это не выполняется .profile
или .bashrc
.
Я пытался поместить свой сценарий в /lib/systemd/system-sleep/
но это выполняется прежде, чем ввести мой пароль, и это не кажется этим xinput
команды работают в той точке по следу цикл, потому что изменения не вступают в силу.
Таким образом, я или ищу способ заставить каждый приостанавливать, также выполняют блокировку или цикл выхода (как блокирующий вручную выполняет .profile), или найдите, что способ выполнить сценарий конкретно на вводе пароля на резюме от приостанавливает.
Сценарии в /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