Shell Pywal不会在crontab上的GNOME上更改墙纸
我正在尝试使用cron和pywal每15分钟运行一次随机墙纸脚本,以更改终端颜色托盘。这是我的剧本:Shell Pywal不会在crontab上的GNOME上更改墙纸,shell,cron,gnome,Shell,Cron,Gnome,我正在尝试使用cron和pywal每15分钟运行一次随机墙纸脚本,以更改终端颜色托盘。这是我的剧本: #!/bin/bash export PATH="$PATH:$HOME/.local/bin/" files=($HOME/Imagens/wallpapers/*) image="$(printf "%s\n" "${files[RANDOM % ${#files[@]}]}")" wal -i $image 这是我正在使用的cron行: */15 * * * * DISPLAY=:0
#!/bin/bash
export PATH="$PATH:$HOME/.local/bin/"
files=($HOME/Imagens/wallpapers/*)
image="$(printf "%s\n" "${files[RANDOM % ${#files[@]}]}")"
wal -i $image
这是我正在使用的cron行:
*/15 * * * * DISPLAY=:0 ~/.scripts/random-wallpaper
当我从终端运行它时,以及在i3wm上使用cron时,这都很好,但是当我切换到gnome时,它只是更改终端的颜色,因为它使用新的墙纸作为参考,但墙纸不会更改。我尝试使用DISPLAY=:0.0,使用。相反,这一切都不起作用
我需要一些帮助来找出问题所在。我在寻找解决方案时遇到了这篇文章。我在wal的最初尝试与我在awesomewm中的做法类似,终端颜色会改变,但背景不会改变。这就是我最终修复它所做的,尽管我确信这不是理想的解决方案。注意,我不确定这是否适用于gnome,因为我正在awesomewm和xmonad之间跳跃。但是,您可以调整我的方法以满足您的需要。我使用以下cron行执行此操作:
* * * * * /bin/wal -a 95 -i "$HOME/wallpaper/" -n; DISPLAY=:0 feh --bg-scale "$(< "${HOME}/.cache/wal/wal")"
***/bin/wal-a95-i“$HOME/wallpaper/”-n;DISPLAY=:0 feh--bg scale“$”(<“${HOME}/.cache/wal/wal”)“
这里需要注意的一个重要部分是,wal的-n标志禁止wal设置背景(这不是您的问题),但是.cache/wal/wal文件中的文件路径仍然会更改。另外,请注意,我只是传递了一个目录,它从目录中随机选取了一个图像。然后我使用feh设置背景,但需要使用DISPLAY=:0来传递环境变量。我不知道feh是否可以为gnome设置背景,但至少以这种方式使用wal可能会简化您的脚本,也许考虑使用除wal之外的其他工具来设置背景可能会有所帮助。也许您可以使用gsettings在gnome中设置背景,但初步看一下,其他人似乎在使用gsettings和cron作业设置背景方面有困难,但我不能真正谈论这一点,因为我不完全熟悉如何从终端在gnome中设置背景(除了从终端运行wal)。如果上面使用feh的方法不起作用,那么S.O.上的这一点可能会进一步帮助您在gnome中实现这一点