Создание сценария обоев, который время от времени меняется (желаемое время)

How can I omit this script only when the monitoring service is "logging in?"

Предполагая, что этот сценарий входа находится в /etc/profile.d, вы можете сделать это:

if [[ $(whoami) != "monitor_user" ]]; then
   <run rest of script>
fi

Вам, конечно, потребуется изменить "monitor_user"на правильное имя пользователя для пользователя/агента мониторинга.

0
28.12.2020, 05:41
1 ответ

Вы можете настроить запуск cron в определенное время, может быть, это не точно с точностью до секунды или десятичных знаков, но вы действительно заметите?

Это мой вариант/etc/crontab:

00 * * * * *user* /home/*user*/Documents/WallpaperScript/setWallpaper.sh

А внутри скрипта вы можете иметь переменную типа HH=$(date +%H), чтобы знать, который сейчас час и какое изображение использовать.

Это по-прежнему не будет работать из cron, потому что cron работает в фоновом режиме и не знает о вашем дисплее.

Не знаю насчет at, но думаю, что то же самое.

Попробуйте добавить DISPLAY=:0перед вызовом qdbus.

Итак, вот что вам следует запустить:

DISPLAY=:0 qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript 'var allDesktops = desktops(); print (allDesktops); for (i=0;i<allDesktops.length;i++) {d = allDesktops[i]; d.wallpaperPlugin = "org.kde.image"; d.currentConfigGroup = Array("Wallpaper", "org.kde.image", "General"); d.writeConfig("Image", "<<<<PATH>>>>")}'

В качестве бонуса (У меня тот же скрипт работает из cron ), вы также можете установить локскрин на то же изображение:

DISPLAY=:0 kwriteconfig5 --file /home/*user*/.config/kscreenlockerrc --group Greeter --group Wallpaper --group org.kde.image --group General --key Image "file://<<<<PATH>>>>"
0
18.03.2021, 22:40

Теги

Похожие вопросы