Bash

創建不時更改的桌面腳本(所需時間)

  • January 15, 2021

所以我想複製mac os上桌面桌面更改為時間的內容

我將 Manjaro 與 KDE 一起使用

以下程式碼將使用給定的圖片路徑更改 KDE 上的桌面

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>>>>")}'

這是從另一個使用多張圖片的地方複製的,此程式碼只需在終端上執行即可

所以我想創建其中的 5 個,並將桌面更改為各自的時代

將它們命名為 noon.sh morning.sh 等等

這些文件被製作並被賦予了他們想要的權限

chmod u+x <filename>

在讓那些甚至抨擊他們的人起作用之後

./noon.sh

我不能對此使用 crontab,因為它不會安排到我知道的特定時間(我可能錯了)

所以現在我有了文件,我輸入了終端 ./PATH/noon | 11:00

確實有效並在給定時間內更改了牆紙

所以現在我有另一個文件,其中 24 個 em 從 1H 間隔更改桌面

像這樣

#!/bin/sh


echo "./Documents/WallpaperScript/night.sh\n" | at 00:00
echo "./Documents/WallpaperScript/night.sh\n" | at 01:00
echo "./Documents/WallpaperScript/night.sh\n" | at 02:00
echo "./Documents/WallpaperScript/night.sh\n" | at 03:00
echo "./Documents/WallpaperScript/night.sh\n" | at 04:00
echo "./Documents/WallpaperScript/night.sh\n" | at 05:00
echo "./Documents/WallpaperScript/morning.sh\n" | at 06:00
echo "./Documents/WallpaperScript/morning.sh\n" | at 07:00
echo "./Documents/WallpaperScript/morning.sh\n" | at 08:00
echo "./Documents/WallpaperScript/noon.sh\n" | at 09:00
echo "./Documents/WallpaperScript/noon.sh\n" | at 10:00
echo "./Documents/WallpaperScript/noon.sh\n" | at 11:00
echo "./Documents/WallpaperScript/noon.sh\n" | at 12:00
echo "./Documents/WallpaperScript/noon.sh\n" | at 13:00
echo "./Documents/WallpaperScript/noon.sh\n" | at 14:00
echo "./Documents/WallpaperScript/noon.sh\n" | at 15:00
echo "./Documents/WallpaperScript/evening.sh\n" | at 16:00
echo "./Documents/WallpaperScript/evening.sh\n" | at 17:00
echo "./Documents/WallpaperScript/dusk.sh\n" | at 18:00
echo "./Documents/WallpaperScript/night.sh\n" | at 19:00
echo "./Documents/WallpaperScript/night.sh\n" | at 20:00
echo "./Documents/WallpaperScript/night.sh\n" | at 21:00
echo "./Documents/WallpaperScript/night.sh\n" | at 22:00
echo "./Documents/WallpaperScript/night.sh" | at 23:00

並在設置頁面的幫助下

我用它作為啟動腳本

它似乎不起作用

但是如果我執行atq命令,我可以看到安排 at 程序的輸出

但它不起作用

有人可以幫忙嗎:3

PS 抱歉我的英語不好,我還是 Linux 新手

您可以將 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>>>>"

引用自:https://unix.stackexchange.com/questions/626400