各ディスプレイのさまざまな壁紙をランダムに循環します。

各ディスプレイのさまざまな壁紙をランダムに循環します。

だから私はWindowsドライブに「Display Fusion」というプログラムをインストールしましたが、実際には1つのことしか実行しないことが気に入りました。

3台のモニターに対してX分ごとに壁紙をランダムに変更するように設定できます。 500以上の壁紙フォルダを指定でき、モニターごとに1つずつランダムに選択されます(したがって、2つの画面に同じ壁紙がほとんどない場合があります)。


私はGnome Shell 3.14.4を使用してDebian Jessieを実行していますが、これまでに次のアプリケーションを試してみましたが、次の問題が発生しました。

窒素:まったく動作しません。 Gnome Tweak Tool はそのオプションをどこにも表示しないため、「ファイル管理者がデスクトップを処理できるようにする」を「オフ」に設定することはできません。

Syncwall:各モニターに異なる壁紙を設定する方法は実際にはありませんが、ランダムループ機能は完璧に動作します。


私が望むことを行うことができる不足している他の潜在的なソフトウェアはありますか?

すでに使っているソフトウェアで明らかに何かを見逃しているのでしょうか?


アップデート1:

Gilesの答えで2番目のコードブロックを試しました。

#!/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に組み込みのものがない場合は、これを行うスクリプトを作成できます。以下は、~/wallpapers3つのモニターで壁紙が左から右に配置され、各モニターの幅が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キーを変更するのかわかりません。

関連情報