각 디스플레이의 다양한 배경화면을 무작위로 순환합니다.

각 디스플레이의 다양한 배경화면을 무작위로 순환합니다.

그래서 Windows 드라이브에 "Display Fusion"이라는 프로그램을 설치했는데 실제로는 한 가지 작업만 수행한다는 점이 마음에 들었습니다.

3대의 모니터에 대해 X분마다 배경화면을 무작위로 변경하도록 설정할 수 있습니다. 500개 이상의 배경화면 폴더를 지정할 수 있으며 각 모니터마다 하나씩 무작위로 선택됩니다(따라서 두 화면마다 동일한 배경화면이 거의 없을 수 있습니다).


저는 Gnome Shell 3.14.4를 사용하여 Debian Jessie를 실행하고 있으며 지금까지 다음 응용 프로그램을 시도한 결과 다음과 같은 문제가 발생했습니다.

질소: 전혀 작동하지 않습니다. Gnome Tweak Tool이 해당 옵션을 어디에도 나열하지 않기 때문에 "파일 관리자가 데스크탑을 처리하도록 허용"을 "끄기"로 설정할 수 없습니다.

Syncwall: 각 모니터에 대해 서로 다른 배경 화면을 설정할 수 있는 방법은 실제로 없지만 무작위 루프 기능이 작업을 완벽하게 수행합니다.


내가 원하는 작업을 수행할 수 있는 누락된 다른 잠재적인 소프트웨어가 있습니까?

이미 사용해 본 소프트웨어에서 분명히 뭔가를 놓치고 있는 걸까요?


업데이트 1:

Giles의 답변에서 두 번째 코드 블록을 시도했습니다.

#!/bin/sh
wallpaper_directory= MY WALLPAPER FOLDER
interval=300 # in seconds
IFS='
'; set -ef
while true; do
  set $(find "$wallpaper_directory" -type f | shuf -r -n 3)
  xloadimage -onroot -at 0,0 "$1" -at 1920,0 "$2" -at 3840,0 "$3"
  sleep "$interval"
done

에 추가하세요/etc/init.d/

그러다가 도망갔어chmod 755 wallpaper_script.sh

그리고update-rc.d wallpaper_script.sh defaults

이제 "Tweak Tool" 설정이 다음과 같이 설정되었습니다.

Gnome3 도구 데스크탑 설정 조정

이제 3개 모니터 모두의 배경이 파란색으로 표시됩니다.

하지만, 재부팅할 때(아마도 Gnome Shell 실행이 중지된 후) 재부팅하기 전에 3개의 배경화면이 깜박이는 것을 볼 수 있습니다.

따라서 스크립트는 작동하는 것 같지만 Gnome이 충돌하고 gsettings 및 dconf-editor를 파고든 후에도 Tweak-Tools가 Gnome2에서 수행하는 작업을 수행하는 설정을 찾을 수 없는 것 같습니다.

답변1

Gnome에 내장된 것이 없다면 이를 수행하는 스크립트를 작성할 수 있습니다. 다음은 ~/wallpapers세 개의 모니터에서 배경 화면이 왼쪽에서 오른쪽으로 배열되어 있고 각 모니터의 너비가 1680픽셀이라고 가정하여 배경 화면을 무작위로 로드합니다. 그것은 사용한다이미지 로드(바라보다ImageMagick을 사용하여 루트 창에 여러 이미지 표시). 필요에 따라 모니터 크기와 배경 화면 위치를 조정합니다. 배경화면을 다르게 하려면 -r옵션을 제거하세요 shuf. 더 많은 모니터를 원하시면 매개변수를 늘리십시오 shuf -n.

#!/bin/sh
IFS='
'; set -f
set $(find ~/wallpapers -type f | shuf -r -n 3)
xloadimage -onroot -at 0,0 "$1" -at 1680,0 "$2" -at 3360,0 "$3"

N분마다 배경화면을 변경하려면 세션 시작 애플리케이션에 다음 스크립트를 추가하세요.

#!/bin/sh
wallpaper_directory=~/wallpapers
interval=300 # in seconds
IFS='
'; set -ef
while true; do
  set $(find "$wallpaper_directory" -type f | shuf -r -n 3)
  xloadimage -onroot -at 0,0 "$1" -at 1680,0 "$2" -at 3360,0 "$3"
  sleep "$interval"
done

다음은 호출하는 더 복잡한 스크립트입니다.xrandr모니터 크기와 위치를 확인하세요. 이 변형은 배경화면이 모니터 크기 이름을 딴 하위 디렉토리에 있다고 가정합니다(예: ~/wallpapers/1680x1050.

#!/bin/sh
wallpaper_directory=~/wallpapers
interval=300 # in seconds

random_wallpaper () {
  find ~/wallpapers/$1 -type f | shuf -n 1
}
command="xloadimage -onroot"
i=1
for m in $(xrandr | sed -n 's/^.* connected.*[^0-9]\([0-9]*x[0-9]*\)+\([0-9]*\)+\([0-9]*\).*$/\1,\2,\3/p'); do
  size="${m%%,*}" position="${m#*,}"
  command="$command -at $position \"\$(random_wallpaper $size)\""
  i=$((i+1))
done

if ! eval "$command"; then
  echo >&2 "Unable to load initial wallpapers, aborting."
  exit 2
fi
while sleep "$interval"; do
  eval "$command"
done

(경고: 이 답변의 모든 코드는 테스트되지 않았습니다.)

또는 올바른 값을 설정하여(Gnome 2의 조정 도구가 수행하는 작업을 모방하여) 질소가 작동하도록 하는 방법이 있을 수 있지만 gsettings어떤 키를 변경해야 하는지 모르겠습니다.

관련 정보