Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell Pywal不会在crontab上的GNOME上更改墙纸_Shell_Cron_Gnome - Fatal编程技术网

Shell Pywal不会在crontab上的GNOME上更改墙纸

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

我正在尝试使用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 ~/.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中实现这一点