답변:
Xfce 랜드에서는
xfconf-query --channel xfce4-desktop --property /backdrop/screen0/monitor0/image-path --set /usr/share/backgrounds/xfce/xfce-blue.jpg
(물론 원하는 파일 경로를 대체하십시오.)
xfconf-query --channel xfce4-desktop --list
screen0 / monitor0이 아닌 경우 모든 관련 속성을 나열합니다.
cron
대신 셸 스크립트를 실행하는 것은 어떻습니까?
--property /backdrop/screen0/monitorLVDS1/workspace0/last-image
트릭을했다.
Xubuntu 14.04의 xfce4 의 경우 / backdrop / screen0 / monitor0 / image-path 대신 / backdrop / screen0 / monitorDisplayPort-1 / workspace0 / last-image 속성을 사용하십시오.
또한 DBUS_SESSION_BUS_ADDRESS 환경 변수를 다음과 같이 설정해야합니다.
PID=$(pgrep xfce4-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
필자의 경우 하루에 한 번 배경 화면 (선택한 폴더의 임의 이미지)을 회전하고 싶었지만 PC를 불규칙하게 켜서 30 분마다 cron에서 스크립트를 실행하여 해결했지만 한 번만 적용했습니다. 하루.
crontab의 항목 ( crontab -e
명령 을 통해 추가 ) :
0,30 * * * * /home/lucifer/scripts/rotate-wallpaper.sh
rotate-wallpaper.sh :
#!/bin/bash
wallpaperdir="/home/lucifer/Pictures/wallpapers"
datefile="/home/lucifer/.wallsw"
thisday=$( date +%j )
wallfiles=($wallpaperdir/*)
randompic=`printf "%s\n" "${wallfiles[RANDOM % ${#wallfiles[@]}]}"`
PID=$(pgrep xfce4-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
if [ -f "$datefile" ]
then
lastday=$( cat "$datefile" )
if [ "$lastday" != "$thisday" ]
then
date +%j > "$datefile"
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorDisplayPort-1/workspace0/last-image --set $randompic
fi
else
date +%j > "$datefile"
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorDisplayPort-1/workspace0/last-image --set $randompic
fi
참고 :-영어 이외의 시스템 로캘을 사용하는 경우 속성 이름이 다를 수 있습니다. 등록 정보 이름을 찾고 터미널 창을 열고 다음 명령을 실행하는 가장 좋은 방법은 다음과 같습니다.
xfconf-query -c xfce4-desktop -m
xfce4-desktop 등록 정보 모니터링이 설정됩니다. 이제 배경을 수동으로 변경하십시오. 터미널 창에서이 변경으로 영향을받은 속성 이름이 표시됩니다. / backdrop / screen0 / monitorDisplayPort-1 / workspace0 / last-image 와 다른 경우이 특성 이름을 사용하십시오.
크론을 사용하지 마십시오. 대신 시작 스크립트를 사용하십시오. cron을 사용할 수는 있지만 사용자별로 다르기 때문에이 상황에서는 바람직하지 않습니다.
이런 식으로하십시오 :
sudo vi /etc/rc.local
파일 끝에 다음을 추가하십시오.
sudo -u YOURUSERNAME -g $( id -g YOURUSERNAME ) xfconf-query --channel xfce4-desktop --property /backdrop/screen0/monitor0/image-path --set /usr/share/backgrounds/xfce/xfce-blue.jpg
YOURUSERNAME을 현재 사용자로 바꾸십시오. /usr/share/backgrounds/xfce/xfce-blue.jpg를 새 배경 이미지의 실제 경로로 바꾸고 사용자에게 이미지를 읽을 수있는 권한이 있는지 확인하십시오.
bash 스크립트에서 xfce 배경색을 설정하려면
d=0; r=$d; g=$d; b=$d; \
xfconf-query -c xfce4-desktop \
-p /backdrop/screen0/monitor0/workspace0/color1 \
-s $r -s $g -s $b -s 65535
그림 물감:
black: d=0;
white: d=65535;
red: r=65535; g=0; b=0;
기타
rgb는 16 비트 10 진수 RGB 구성 요소입니다.
65535 = 255 * 257. 16 진수 255 = 0xFF
8 비트 16 진수 색상 코드에서 16 비트 10 진수 RGB 구성 요소로 변환
x='C31717' # dark red
r=$((16#${x:0:2} * 257))
g=$((16#${x:2:2} * 257))
b=$((16#${x:4:2} * 257))
배경색이 변하지 않으면 이미지 스타일을 없음으로 설정하십시오.
xfconf-query -c xfce4-desktop \
-p /backdrop/screen0/monitor0/workspace0/image-style \
-s 0
.... 채우기 스타일을 솔리드로 설정
xfconf-query -c xfce4-desktop \
-p /backdrop/screen0/monitor0/workspace0/color-style \
-s 0
모든 작업 공간에 대해 다른 색상을 설정하려면
xfconf-query -c xfce4-desktop \
-p /backdrop/single-workspace-mode \
-s false
i=1; # workspace id
xfconf-query -c xfce4-desktop \
-p /backdrop/screen0/monitor0/workspace$i/image-style \
-s 0
xfconf-query -c xfce4-desktop \
-p /backdrop/screen0/monitor0/workspace$i/color-style \
-s 0
x=0; r=$x; g=$x; b=$x; \
xfconf-query -c xfce4-desktop \
-p /backdrop/screen0/monitor0/workspace$i/color1 \
-s $r -s $g -s $b -s 65535
멍청이가 말했다 ^^