システムの色と壁紙を変更するスクリプトを実行するsystemdサービスを作成しました。ログイン後10分ごとにスクリプトが適用されるようにしたいと思います。
原則としては機能しますが、最初の実行では失われます。スクリプトが呼び出されますが(ログファイルに表示されます)、起動時に呼び出された場合は適用されません。 2回目の実行時に変更が適用されます。私の考えでは、デスクトップセッションが同時にロードされるためです。
回避策として、最初の実行を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効力が発生します。