我创建了一个 systemd 服务,该服务执行一个更改系统颜色和壁纸的脚本。我希望脚本在登录后每 10 分钟生效一次。
原则上它可以工作,但第一次执行会丢失。该脚本被调用(我在日志文件中看到它),但在启动时调用时不会生效。第二次执行时,将应用更改。我的猜测是,这是因为桌面会话是同时加载的。
作为解决方法,我等待 2 分钟第一次执行。但我希望在登录后立即拥有它。在桌面会话上等待的正确关键字是什么?
/etc/systemd/user/kde_color_switch.timer
[Unit]
Description=Timer for color switch script
After=graphical.target xdg-user-dirs-update #tried this ones
Requires=graphical.target #what is the kde desktop loaded argument?
[Timer]
OnBootSec=0min
OnUnitActiveSec=10min
[Install]
WantedBy=timers.target
/etc/systemd/user/kde_color_switch.service
[Unit]
Description=Switches the kde color by time between light and dark
[Service]
Type=simple
ExecStart=/my_scripts/kde_auto_color_switch.sh
[Install]
WantedBy=default.target
/my_scripts/kde_auto_color_switch.sh 的一部分:
if [ $(plasma-apply-colorscheme -l | grep "current color scheme" | grep Dracula | wc -l) -eq 1 ]
then #if dark then switch light
plasma-apply-colorscheme BreezeLight #this line fails the first time
sed -i "s/$imgNight/$imgDay/g" $kdeconfigdir/plasma-org.kde.plasma.desktop-appletsrc
konsole -e kquitapp5 plasmashell && kstart5 plasmashell --windowclass plasmashell --window Desktop >>/dev/null 2>&1
fi
正如上面所问的,我想等待第一次执行,直到等离子桌面完全启动。我希望那时等离子应用颜色方案 BreezeLight就会生效。