Bash
創建不時更改的桌面腳本(所需時間)
所以我想複製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>>>>"