Đây là những gì tôi vừa tạo như một cách giải quyết chưa có sẵn graphical-session.target
(Trên hệ thống Kubfox 16.04 của tôi):
- Tạo một đơn vị người dùng hệ thống giả , đưa lên và xuống đồ họa.
Tạo ~/.config/systemd/user/xsession.target
với nội dung sau:
[Đơn vị]
Mô tả = Xsession lên và chạy
BindsTo = Graphics-session.target
Nói với systemd về đơn vị mới này:
$> systemctl --user daemon-reload
- Tạo các kịch bản tự khởi động và tắt máy điều khiển
xsession.target
thông qua các cơ chế hiện có của máy tính để bàn Ubuntu 16.04.
Tạo ~/.config/autostart-scripts/xsession.target-login.sh
với nội dung sau:
#! / bin / bash
nếu ! systemctl --user đang hoạt động xsession.target &> / dev / null
sau đó
/ bin / systemctl - môi trường nhập khẩu người dùng HIỂN THỊ XAUTHORITY
/ bin / systemctl - người dùng bắt đầu xsession.target
fi
Tạo ~/.config/plasma-workspace/shutdown/xsession.target-logout.sh
với nội dung sau:
#! / bin / bash
nếu systemctl --user đang hoạt động xsession.target &> / dev / null
sau đó
/ bin / systemctl - người dùng dừng xsession.target
fi
Làm cho các kịch bản thực thi:
$> chmod + x ~ / .config / autostart-scripts / xsession.target-login.sh
$> chmod + x ~ / .config / plasma-workspace / shutdown / xsession.target-logout.sh
Lưu ý: hai tệp này được đặt trong đó KDE sẽ chọn chúng để tự khởi động và tắt máy. Các tệp có thể được đặt ở một nơi khác cho các môi trường máy tính để bàn khác (ví dụ Gnome) - nhưng tôi không biết về các môi trường đó.
Lưu ý: Cách giải quyết này thiếu hỗ trợ của nhiều phiên máy tính để bàn. Nó chỉ xử lý graphical-session.target
chính xác miễn là chỉ có một phiên X11 hoạt động được chạy trên máy (nhưng đó là trường hợp của hầu hết người dùng linux của chúng tôi).
- Tạo các đơn vị người dùng systemd của riêng bạn phụ thuộc vào
graphical-session.target
và để chúng chạy sạch trong khi đăng nhập trên máy tính để bàn của bạn.
Ví dụ, đơn vị của @ mkaito sẽ trông như thế này:
[Đơn vị]
Mô tả = Dịch chuyển đỏ
PartOf = Graphics-session.target
[Dịch vụ]
ExecStart = / bin / dịch chuyển đỏ -l 28: -13 -t 5300: 3300 -b 0,80: 0,91 -m randr
Khởi động lại = luôn
(Đừng quên làm daemon-reload
sau khi chỉnh sửa các đơn vị của bạn!)
- Khởi động lại máy của bạn, đăng nhập và xác minh các đơn vị của bạn được bắt đầu như mong đợi
$> systemctl - đồ họa trạng thái người dùng-session.target
● Graphics-session.target - Phiên người dùng đồ họa hiện tại
Đã tải: đã tải (/usr/lib/systemd/user/graphical-session.target; static; nhà cung cấp cài sẵn: đã bật)
Hoạt động: hoạt động kể từ Don 2017-01-05 15:08:42 CET; 47 phút trước
Tài liệu: người đàn ông: systemd.special (7)
$> systemctl - người dùng trạng thái đơn vị của bạn ...
Vào một ngày nào đó trong tương lai (sẽ là Ubuntu 17.04?) Cách giải quyết của tôi trở nên lỗi thời vì hệ thống sẽ tự xử lý graphical-session.target
chính xác. Vào ngày đó, chỉ cần xóa tập lệnh tự khởi động và tắt máy và cả xsession.target
- các đơn vị người dùng tùy chỉnh của bạn có thể không bị ảnh hưởng và chỉ hoạt động.