(Xubuntu) 커맨드 라인을 사용하여 배경 화면을 설정하는 방법은 무엇입니까?


11

많은 인터넷 검색을 수행했지만 내 문제에 대한 해결책을 찾지 못했습니다.

저는 교사이며 일부 학생 컴퓨터에서 Xubuntu를 사용하고 있습니다. 모든 것이 잘 고정되어 있지만 키오스크 모드에서 전체 컴퓨터를 꺼내지 않고도 사용자가 배경 화면을 변경하지 못하도록 제한하는 방법을 알 수는 없습니다. 작업 세션 중에 변경해도 상관 없지만 재부팅 할 때 원래 .png로 다시 설정하는 crontab을 만들고 싶습니다.

간단한 cron 항목을 기대하고 있지만 쉘 스크립트가 필요한 경우 쉽게 사용할 수 있습니다.

어떤 아이디어?

답변:


10

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에 추가하려고하면 아무것도하지 않습니다. 어떤 아이디어? `
John

셸 스크립트로 전체를 묶고 cron대신 셸 스크립트를 실행하는 것은 어떻습니까?
체스터

쉘 스크립트를 작성하고 실행 가능하게 만들었습니다. 두 번 클릭하면 실행되며 명령 줄에서 실행할 수 있습니다. 시간에 @reboot를 사용하여 cron에 추가하려고 시도했지만 작동하지 않는 것 같습니다. 스크립트 경로 이외의 다른 항목을 cron에 추가해야합니까?
John

@John cron은 루트 권한으로 작동하기 때문에 cron에서 작동하지 않으며 이는 사용자 별 배경입니다. 사용자로 실행되도록 명령을 변경해보십시오
kamil

1
나를 위해, --property /backdrop/screen0/monitorLVDS1/workspace0/last-image트릭을했다.
Ilmari Karonen

9

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 와 다른 경우이 특성 이름을 사용하십시오.


2

설정 image-path이 시스템에 영향을 미치지 않습니다 (XFCE 4.12, 데비안 버스터 / 시드).

모든 작업 공간의 배경 이미지를 설정하기 위해 다음을 사용합니다.

xfconf-query --channel xfce4-desktop --list | grep last-image | while read path; do
    xfconf-query --channel xfce4-desktop --property $path --set <path>
done

0

시험

gsettings set org.gnome.desktop.background picture-uri file:///your/picture/location.jpg

file://필요합니다.


나는 운없이 그것을 시도했다. XFCE를 사용하고 있기 때문에 혼란이 있습니까? 명령 구문이 의미가 있지만 Xubuntu에 적용하는 방법을 모르겠습니다.
John

0

크론을 사용하지 마십시오. 대신 시작 스크립트를 사용하십시오. 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를 새 배경 이미지의 실제 경로로 바꾸고 사용자에게 이미지를 읽을 수있는 권한이 있는지 확인하십시오.


1
이것이 왜 하향 조정 되었습니까? OP는 재부팅시 영향을 미치는 방식을 요청했습니다. OP가 여러 사용자에게 적용해야했지만 명시 적으로 명시하지 않은 것 같습니다. 이 답변은 괜찮은 것 같습니다 (그러나 테스트하지는 않았습니다). 그렇다면 왜 공감 율이됩니까?
Stéphane Gourichon

0

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

멍청이가 말했다 ^^

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.