所以我在我的 Windows 驱动器上安装了一个名为“Display Fusion”的程序,我喜欢它实际上只有一个功能:
我可以将其设置为我的 3 个显示器每 X 分钟随机更改一次壁纸。我可以将其指向一个包含 500 多张壁纸的文件夹,每个显示器都会单独随机选择一张(因此它们几乎不会在每两个屏幕上都有相同的壁纸)。
我正在运行 Debian Jessie,使用 Gnome Shell 3.14.4,到目前为止我已经尝试了以下应用程序,但遇到了以下问题:
氮气:根本不起作用。无法将“让文件管理器处理桌面”设置为“关闭”,因为 Gnome 调整工具没有在任何地方列出该选项。
Syncwall:实际上没有任何方法为每个显示器设置不同的壁纸,但完美地完成了随机循环功能。
我还缺少其他任何可以完成我想做的事情的潜在软件吗?
我是否明显遗漏了我已经尝试过的软件的某些内容?
更新1:
尝试了吉尔斯答案中的第二个代码块:
#!/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
现在,我已将“调整工具”设置设置为以下内容:
现在所有 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
(警告:此答案中的所有代码均未经测试。)
或者,可能有一种方法可以通过设置正确的值gsettings
(模仿 Gnome 2 中的调整工具所做的事情)来让 Nitrogen 工作,但我不知道需要更改哪个键。