그놈 3에서 배경 화면을 주기적으로 바꾸시겠습니까?


15

나는 그놈 3과 함께 페도라 15를 사용하고 있으며 Windows 7에서와 같이 배경 화면을 주기적으로 변경하고 싶습니다. RSS / Atom 또는 지정된 디렉토리를 사용할 수 있다면 가장 좋습니다.

저장소에서 도구를 찾지 못했습니다. 나는 당신이 스크립트와 cron으로 바꿀 수 있다고 생각하지만 더 우아한 것을 찾고 있습니다.

답변:



19

다음 쉘 스크립트를 어딘가에 저장하십시오.

#!/bin/bash

WP_DIR=/home/honeyp0t/wallpapers

cd $WP_DIR
while [ 1 ] 
  do
  set -- * 
  length=$#
  random_num=$((( $RANDOM % ($length) ) + 1)) 

  gsettings set org.gnome.desktop.background picture-uri "file://$WP_DIR/${!random_num}"

  sleep 600 
done

그런 다음 .config / autostart의 홈 디렉토리에서 다음을 wallpaper-changer.desktop이라는 파일에 넣습니다.

[Desktop Entry]
Name=wallpaper-changer
Exec=/home/sammhe/bin/setbg.sh
Comment=change wallpaper every so often
Hidden=false
Type=Application
X-GNOME-Autostart-enabled=true

그러면 10 분마다 배경 화면이 변경됩니다.

나는 원래 이것을 OS 배관공 Musings의 "GNOME 쉘 사용자 정의"라는 제목의 게시물에 대한 주석으로 게시했습니다 .


링크에서 배경 화면 또는 Hubert Samm 변경에 대한 내용을 찾을 수 없습니다. 좀 더 구체적으로 말씀해 주시겠습니까?
KovBal

아니면 그냥 :) 여기를 쓸 수 있습니다 (:) 나는 당신의 이름을 확인하지 않았다, 죄송합니다)
KovBal

1
pictures-optionsgsettings set org.gnome.desktop.background picture-options '<zoom|centered|none|scaled|spanned|stretched|wallpaper|zoom>'
다니엘

gnome 2에서는 작동하지 않습니다.
Vicfred

정확히 "set-*"는 무엇입니까?
SergioAraujo

3

init 스크립트 대신 cron 작업을 사용하려면 다음을 수행하십시오. 영감을 준 Hubert에게 감사합니다!

#!/bin/bash

walls_dir=$HOME/.wallpapers
selection=$(find $walls_dir -type f -name "*.jpg" -o -name "*.png" | shuf -n1)
gsettings set org.gnome.desktop.background picture-uri "file://$selection"

스크립트를 어딘가에 저장 (예 :) $HOME/bin/rotate_bg하고 실행 가능하게 chmod +x $HOME/bin/rotate_bg한 다음 ( ) cron배경을 변경할 때마다 실행할 작업을 추가하십시오 . 실행 하여 사용자 crontab -ecron테이블 을 편집하십시오 . 다음은 crontab 형식을 설명하는 링크입니다 . 다음 항목은 10 분마다 배경을 회전시킵니다.

*0 * * * * $HOME/bin/rotate_bg

당신은 여기에 맞지 않습니다. 수면 은 바쁜 대기가 아닙니다
Art Gertner

인용이 있으면 답변을 변경
Nathan Wallace

위의 링크와 동일한 소스에서 The sleep instruction suspends the calling process for at least the specified number of seconds (the default), minutes, hours or days. 예를 들어 프로세스가 호출되지 않고 CPU 사이클을 낭비하지 않습니다. 또한 바쁜 위키에서 위키에서 :Busy-waiting itself can be made much less wasteful by using a delay function (e.g., sleep()) found in most operating systems. This puts a thread to sleep for a specified time, during which the thread will waste no CPU time
Art Gertner

1

어떤 이유로 든 허버트 샘에게 답장하는 방법을 볼 수 없지만 그의 링크가 도움이되었다는 것을 알았습니다. 다운이되거나이 특정 답변을 얻기 위해 모든 것을 읽고 싶지 않은 경우를 대비하여 Gnome 3에서 라이브 업데이트 배경을 달성하는 방법을 추가했습니다.

~ / .cache / gnome-control / center / backgrounds로 이동하면 배경을 설정 한 파일의 캐시 된 버전 인 "a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27"와 같은 긴 이름의 파일을 찾을 수 있습니다. 이 파일을 삭제하고 동일한 이름의 심볼릭 링크를 만들어 바꾸면 :

$ rm a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27 
$ ln -s /path/to/original/file a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27

그런 다음 원본 파일이 업데이트되면 바탕 화면 배경이이를 반영하여 변경됩니다. XPlanetFX 배경을 최신 상태로 유지하기 위해이 기술을 사용하고 있습니다. 예를 들어, "background.jpg"라는 이미지가 있고 배경을 업데이트 할 때마다이 파일을 변경하십시오.

아마도이 문제를 해결하는 더 올바른 방법은 gsettings를 사용하여 선택한 파일을 직접 가리 키도록 picture-uri 주소를 변경하는 것이지만 설정 변경이 얼마나 지속되는지 알지 못했기 때문에 symlink 옵션을 선택했습니다. UI를 사용하여 배경 화면을 변경할 때 그러나 어느 쪽이든 이론적으로 작동해야합니다.

참고 : 테스트하지 않았으므로 확실하게 알 수 없지만 일반 UI를 통해 배경을 변경하면 긴 고유 파일 이름이 변경되고 symlink가 더 이상 유용하지 않을 가능성이 큽니다. .


1

다음 쉘 스크립트를 어딘가에 저장하십시오.

#!/bin/bash
while true; do
file=`/bin/ls -1 $1 | sort --random-sort | head -1`;path=`readlink --canonicalize "$dir/$file"`;
gsettings set org.gnome.desktop.background picture-uri "file://"$1$path;sleep $2;done

다음 구문을 사용하여 실행하십시오.

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