KDE Plasma 桌面加载后执行一次的 Systemd 服务

KDE Plasma 桌面加载后执行一次的 Systemd 服务

我创建了一个 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就会生效。

相关内容