Ось що я тільки що створив як вирішення ще не доступної graphical-session.target
(У моїй системі Kubuntu 16.04):
- Створіть псевдосистемний користувальницький блок, який приводить графічний графік-session.target вгору та вниз.
Створіть ~/.config/systemd/user/xsession.target
із наступним вмістом:
[Одиниця]
Опис = запущена Xsession
BindsTo = graphical-session.target
Розкажіть systemd про цей новий блок:
$> systemctl --user daemon-reload
- Створіть сценарії автоматичного запуску та відключення, які керують за
xsession.target
допомогою наявної в даний час механіки робочого столу Ubuntu 16.04.
Створіть ~/.config/autostart-scripts/xsession.target-login.sh
із наступним вмістом:
#! / бін / баш
якщо! systemctl --користувач є активним xsession.target &> / dev / null
потім
/ bin / systemctl - середовище імпорту -користувача DISPLAY XAUTHORITY
/ bin / systemctl - запуск користувача xsession.target
фі
Створіть ~/.config/plasma-workspace/shutdown/xsession.target-logout.sh
із наступним вмістом:
#! / бін / баш
якщо systemctl --user активний xsession.target &> / dev / null
потім
/ bin / systemctl - ціль зупинки xsession.target
фі
Зробіть сценарії виконуваними:
$> chmod + x ~ / .config / autostart-script / xsession.target-login.sh
$> chmod + x ~ / .config / плазма-робоча область / вимкнення / xsession.target-logout.sh
Примітка: ці два файли розміщуються там, де KDE підбере їх для автоматичного запуску та вимкнення. Файли, можливо, розміщені десь в інших робочих середовищах (наприклад, Gnome), але я не знаю про ці середовища.
Примітка. У цьому вирішенні бракує підтримки декількох сесій на робочому столі. Він обробляє лише graphical-session.target
правильно, поки на машині працює лише один активний сеанс X11 (але це стосується більшості з нас користувачів Linux).
- Створіть власні системні одиниці користувачів, які залежать від
graphical-session.target
них та примусово вони працюватимуть під час входу на робочий стіл.
Наприклад, блок @ mkaito повинен виглядати так:
[Одиниця]
Опис = Зміна
PartOf = graphical-session.target
[Сервіс]
ExecStart = / bin / redshift -l 28: -13 -t 5300: 3300 -b 0,80: 0,91 -м randr
Перезапуск = завжди
(Не забувайте робити daemon-reload
після редагування своїх підрозділів!)
- Перезавантажте свою машину, увійдіть в систему і підтвердіть, що ваші одиниці запускаються, як очікувалося
$> systemctl - ціль статусукористувача
● graphical-session.target - Поточний графічний сеанс користувача
Завантажено: завантажено (/usr/lib/systemd/user/graphical-session.target; статичний; попередньо встановлений постачальник: увімкнено)
Активний: активний з Дон 2017-01-05 15:08:42 CET; 47 хв тому
Документи: людина: systemd.special (7)
$> systemctl - користувацький статус вашої одиниці ...
У якийсь майбутній день (це буде Ubuntu 17.04?) Моє вирішення застаріло, оскільки система graphical-session.target
сама поправить себе. У цей день просто видаліть сценарій автоматичного запуску та відключення, а також xsession.target
- ваші користувацькі одиниці користувача можуть залишитися недоторканими та просто працювати.