我找到了一个指南,但不确定它是否有效或是否可以安全使用。该指南:http://www.linuxandubuntu.com/home/how-to-automatically-change-gnome-background-in-intervals-using-bash
我想问的是,这些介绍是否安全并且有效?如果不安全,还有其他解决方案吗?
我正在使用 Ubuntu 20.04 LTS
谢谢。
答案1
当我在 GNOME SHELL 3.36.6 中测试时,该脚本有效
[admin@ADMIN ~]$ gnome-shell --version
GNOME Shell 3.36.6
[admin@ADMIN ~]$
以下是我的文件下修改的内容$HOME/.profile
。
# start my custom script for setting random background wallpapers
if [ -f "$HOME/wp.sh" ] ; then
bash $HOME/wp.sh &
fi
以下是我的文件下修改的内容$HOME/wp.sh
。
#!/bin/bash
# script to set random background wallpapers on my GNOME desktop
# set base path
export wallpaper_path=/home/admin/Pictures
shopt -s nullglob
# store all the image file names in wallpapers array
wallpapers=(
"$wallpaper_path"/*.jpg
"$wallpaper_path"/*.jpeg
"$wallpaper_path"/*.png
"$wallpaper_path"/*.bmp
"$wallpaper_path"/*.svg
)
# get array size
wallpapers_size=${#wallpapers[*]}
# set wallpapers in incremental order
index=0
while [ $index -lt $wallpapers_size ]
do
gsettings set org.gnome.desktop.background picture-uri "${wallpapers[$index]}"
# index is maxing out, so reset it
if [ $(($index+1)) -eq $wallpapers_size ]
then
index=0
else
index=$(($index + 1))
fi
# keep the wallpaper for the specified time
sleep 1m
done
壁纸按预期每隔 1 分钟更换一次。
答案2
gsettings list-recursively org.gnome.desktop.background
检查当前设置
org.gnome.desktop.background color-shading-type 'solid'
org.gnome.desktop.background picture-opacity 100
org.gnome.desktop.background picture-options 'zoom'
org.gnome.desktop.background picture-uri 'file:///home/dragon/.config/variety/wallpaper/wallpaper-clock-cf2949fe1879b8c3ec551eca76b4f396.jpg'
org.gnome.desktop.background picture-uri-dark 'file:///home/dragon/.local/share/backgrounds/2022-12-19-00-32-40-wd-wallhaven-wallhaven-l3zmwy.jpg'
org.gnome.desktop.background primary-color '#000000000000'
org.gnome.desktop.background secondary-color '#000000000000'
org.gnome.desktop.background show-desktop-icons true
您可能会看到两个不同的壁纸文件位置。添加额外的重复行,它也会在暗模式下更改桌面背景
gsettings set org.gnome.desktop.background picture-uri-dark "${wallpapers[$index]}"
答案3
另一种方法是定义自定义 XML 文件并将其提供给壁纸设置。无需复杂的crontab
东西。只需让标准壁纸应用程序发挥它的魔力。
这需要一个名为“Gnome tweaks”的工具来指向这个新创建的 XML 文件。
(附注:这也是 Shotwell 可以为您做的事情,但是,它会将文件复制到新位置,在我看来,这不是最佳位置......肖特韦尔网站)
$> sudo apt install gnome-tweaks
然后创建一个 bash 脚本。该脚本可以放在你的~/bin
文件夹中(例如/home/martin/bin/create-slideshow
),这样在使用终端时可以从任何位置访问它:
martin@ubuntu:~> create-slideshow
您还可以在文件中添加一个调用~/.profile
,以便每次登录时运行它。(使用编辑器或仅运行下面的语句一次)。
martin@ubuntu:~> echo '~/bin/create-slideshow' >> ~/.profile
# Change these parameters to change the location of your images and duration
FOLDERNAME=~/Pictures/Wallpapers/Slideshow
CONFIG_FILE=slideshow.xml
DURATION=30
TRANSITION_TIME=2
# Use a HEREDOC to create the first fixed part of the XML
cat << PREAMBLE > $CONFIG_FILE
<background>
<starttime>
<year>2000</year>
<month>01</month>
<day>01</day>
<hour>00</hour>
<minute>00</minute>
<second>00</second>
</starttime>
PREAMBLE
previousfile=""
for filename in $FOLDERNAME/*.{jpg,png,jpeg} ; do
fullpath=$filename
if [ -f "$fullpath" ] ; then
# the next statement might help in some cases!
# chmod a-w "$fullpath"
if [ "$previousfile" != "" ]; then
echo "<transition>" >> $CONFIG_FILE
echo " <duration>$TRANSITION_TIME.00</duration>" >> $CONFIG_FILE
echo " <from>$previousfile</from>" >> $CONFIG_FILE
echo " <to>$fullpath</to>" >> $CONFIG_FILE
echo "</transition>" >> $CONFIG_FILE
fi
echo "<static>" >> $CONFIG_FILE
echo " <duration>$DURATION.00</duration>" >> $CONFIG_FILE
echo " <file>$fullpath</file>" >> $CONFIG_FILE
echo "</static>" >> $CONFIG_FILE
previousfile=$fullpath
fi
done
echo "</background>" >> $CONFIG_FILE
将上述脚本的内容复制到文件夹后~/bin
,使其可执行:
martin@ubuntu:~> chmod u+x ~/bin/create-slideshow
可以使用前四个变量来修改脚本的行为。
然后打开 Gnome Tweak 工具。转到可以设置主题和背景的部分,使用文件选择器选择 XML,而不是图像文件。(抱歉,这里只有荷兰语 GUI,因此屏幕截图没什么用)。另请参阅说明这里在帮助 Ubuntu。