デスクトップ環境を実行せずにメインウィンドウマネージャ(スタブ WM)。したがって、デスクトップの背景を設定する一般的な方法は、display -window root <image file>
私が望むタスクを実行するWM起動スクリプトで実行することです。
複数のモニターを使用している場合、X-root ウィンドウは両方のモニターにまたがり、デッドスペースが含まれます。したがって、コマンドラインを実行すると、画像がウィンドウ全体に広がるかタイル化されるため、役に立ちません。これを使用して-geometry
両方のモニターのいずれかにイメージを表示できますが、イメージを再実行すると(両方のモニターで表示)、他のモニターを上書きします。display
1回の呼び出しで2つの画像を表示する機能はないようです。
display
2台のモニターに異なる画像を表示するには?または、デスクトップ環境なしで「デスクトップの背景画像」効果をどのように取得できますか?
答え1
使用できるmontage
フルディスプレイを含む単一の画像を作成し、生成されdisplay -window root
た画像を呼び出します。
または、次のものを使用できます。xloadimage
複数の画像を幸せにタイリングします。個々のモニターが認識されないため、画像がフルスクリーンでない場合、または異なるサイズのモニターを使用している場合は、画像の位置を手動で使用または調整する必要があり-at
ます。-geometry
xloadimage -onroot -at 1680,0 image1.jpg -at 0,0 image2.png
答え2
これが私が使用したものです。
DIR=$HOME/Pictures/Desktop
IMG1="$(ls $DIR/*jpg | shuf | head -1)"
IMG2="$(ls $DIR/*jpg | shuf | head -1)"
montage -background "#000000" -geometry 1920x1080 $IMG1 $IMG2 jpg:- | display -foreground "#000000" -backdrop -window root jpg:-
ルートウィンドウには2つのランダム画像が表示されますが、幸いにも私のモニタは同じ解像度で動作します。
答え3
Xサーバーがxrandrをサポートしている場合 - 次のように検索しました。x壁紙よりシンプルで直接的です。これは私のXsetupの一部です。
# Display different wallpapers for each monitor
cmd='xwallpaper '
if xrandr --listactivemonitors
then
# xrandr is available: get output names from xrandr
for output in $(xrandr --listactivemonitors | cut -d ' ' -f6 )
do
# set different image for each monitor
img=$(ls /usr/share/backgrounds/active/*.jpg | shuf | head -1 )
cmd="$cmd --output $output --stretch $img "
done
else
# fallback: xrandr not available
img=$(ls /usr/share/backgrounds/active/*.jpg | shuf | head -1 )
cmd="$cmd --no-randr --stretch $img "
fi
$cmd