Folgendes habe ich gerade als Workaround für das noch nicht verfügbare graphical-session.target
(auf meinem Kubuntu 16.04-System) erstellt:
- Erstellen Sie eine Pseudo-System-Benutzereinheit, die das Ziel "graphical-session.target" auf und ab bringt.
Erstellen Sie ~/.config/systemd/user/xsession.target
mit folgenden Inhalten:
[Einheit]
Beschreibung = Xsession läuft
BindsTo = graphical-session.target
Erzählen Sie systemd von dieser neuen Einheit:
$> systemctl --user daemon-reload
- Erstellen Sie Autostart- und Shutdown-Skripte , die
xsession.target
über die aktuell verfügbaren Mechaniken des Ubuntu 16.04-Desktops steuern .
Erstellen Sie ~/.config/autostart-scripts/xsession.target-login.sh
mit folgenden Inhalten:
#! / bin / bash
ob ! systemctl --user is-active xsession.target &> / dev / null
dann
/ bin / systemctl --user import-environment XAUTHORITY ANZEIGEN
/ bin / systemctl --user start xsession.target
fi
Erstellen Sie ~/.config/plasma-workspace/shutdown/xsession.target-logout.sh
mit folgenden Inhalten:
#! / bin / bash
if systemctl --user is-active xsession.target &> / dev / null
dann
/ bin / systemctl --user stop xsession.target
fi
Machen Sie die Skripte ausführbar:
$> chmod + x ~ / .config / autostart-scripts / xsession.target-login.sh
$> chmod + x ~ / .config / plasma-workspace / shutdown / xsession.target-logout.sh
Hinweis: Diese beiden Dateien werden dort abgelegt, wo sie von KDE zum automatischen Starten und Herunterfahren abgerufen werden. Die Dateien können für andere Desktop-Umgebungen (z. B. Gnome) an einem anderen Ort abgelegt werden - aber ich kenne diese Umgebungen nicht.
Hinweis: Diese Problemumgehung unterstützt keine Multi-Desktop-Sitzungen. Es wird nur dann graphical-session.target
richtig gehandhabt, wenn nur eine aktive X11-Sitzung auf einem Computer ausgeführt wird (dies ist jedoch bei den meisten Linux-Benutzern der Fall).
- Erstellen Sie Ihre eigenen systemd-Benutzereinheiten, von denen Sie abhängig sind
graphical-session.target
und die ordnungsgemäß ausgeführt werden, während Sie auf Ihrem Desktop angemeldet sind.
Als Beispiel sollte @ mkaitos Einheit so aussehen:
[Einheit]
Beschreibung = Rotverschiebung
PartOf = graphical-session.target
[Bedienung]
ExecStart = / bin / redshift -l 28: -13 -t 5300: 3300 -b 0,80: 0,91 -m randr
Neustart = immer
(Vergiss nicht, daemon-reload
nach dem Bearbeiten deiner Einheiten eine zu machen!)
- Starten Sie Ihren Computer neu, melden Sie sich an und vergewissern Sie sich, dass Ihre Geräte wie erwartet gestartet wurden
$> systemctl --user status graphical-session.target
● graphical-session.target - Aktuelle grafische Benutzersitzung
Loaded: loaded (/usr/lib/systemd/user/graphical-session.target; static; Herstellervoreinstellung: enabled)
Aktiv: Aktiv seit Don 2017-01-05 15:08:42 CET; Vor 47min
Docs: man: systemd.special (7)
$> systemctl --user status your-unit ...
Irgendwann in der Zukunft (wird es Ubuntu 17.04 sein?) Ist meine Problemumgehung veraltet, da das System das graphical-session.target
Problem selbst richtig handhaben wird. Entfernen Sie an diesem Tag einfach das Autostart- und Shutdown-Skript und auch die xsession.target
benutzerdefinierten Benutzereinheiten.