그래서 Mac OS의 바탕화면이 시간에 따라 바뀌는 것을 복사하고 싶습니다.
KDE에서 Manjaro를 사용합니다
다음 코드는 주어진 이미지 경로를 사용하여 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 |
이것은 작동하며 주어진 시간 내에 배경화면을 변경합니다.
이제 1시간마다 배경화면을 바꾸는 24개의 em이 포함된 또 다른 파일이 생겼습니다.
이와 같이
#!/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
추신: 제 영어 실력이 부족해서 죄송합니다. 아직 Linux를 처음 접하는 사람입니다.
답변1
특정 시간에 실행되도록 cron을 설정할 수 있습니다. 어쩌면 초나 소수까지 정확하지 않을 수도 있지만 실제로 눈치챌 수 있을까요?
내 제안은 다음과 같습니다 /etc/crontab
.
00 * * * * *user* /home/*user*/Documents/WallpaperScript/setWallpaper.sh
스크립트 내에는 HH=$(date +%H)
현재 시간과 사용할 이미지 등을 아는 변수가 있을 수 있습니다.
cron은 백그라운드에서 실행되고 디스플레이에 대해 모르기 때문에 여전히 cron을 통해 작동하지 않습니다.
잘은 모르겠지만 비슷한 것 같아요.
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>>>>"