Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.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
Bash xdotool在shell脚本中不工作_Bash_Shell_Lua_Window Managers_Awesome Wm - Fatal编程技术网

Bash xdotool在shell脚本中不工作

Bash xdotool在shell脚本中不工作,bash,shell,lua,window-managers,awesome-wm,Bash,Shell,Lua,Window Managers,Awesome Wm,我正试图用一个脚本使AwesomeWM中的墙纸更改过程更容易,该脚本读取图像的路径,并用我给出的路径替换现有墙纸;然后重新启动WM 我的代码如下所示: #!/bin/bash if [[ $1 != "" ]] && [ -f $1 ]; then cp $1 /usr/local/share/awesome/themes/modded/background.png xdotool key super+ctrl+r else ec

我正试图用一个脚本使AwesomeWM中的墙纸更改过程更容易,该脚本读取图像的路径,并用我给出的路径替换现有墙纸;然后重新启动WM

我的代码如下所示:

#!/bin/bash

if [[ $1 != "" ]] && [ -f $1 ]; then
        cp $1 /usr/local/share/awesome/themes/modded/background.png
        xdotool key super+ctrl+r
else
        echo 'Invalid file!'
fi
不幸的是,xdool无法工作,我也不知道为什么,因为如果我从终端(在脚本之外)发出它,它将完美地重新启动我的窗口管理器(super+ctrl+r重新启动AwesomeWM)


我知道最好使用
awesome。从rc.lua重新启动
函数,但我不知道如何在我的shell脚本中实现或包含此代码。

如果要设置墙纸,最好使用feh或其他外部墙纸设置器。此外,您不必(也不应该)重新启动Awesome来设置壁纸。“令人敬畏的方式”是


其中${1}是路径。但同样,
feh
或类似工具更适合此工作。在版本3.4之前,Awesome甚至调用了该命令本身,直到添加了本机墙纸支持。

您不必重新启动Awesome。您可以使用
awesome client
调用awesome中的函数来加载墙纸。

feh--bg scale$1
替换
xdool
行,使其工作完美。
echo 'require("gears.wallpaper").maximized("'${1}'")' | awesome-client