Bash xdotool在shell脚本中不工作
我正试图用一个脚本使AwesomeWM中的墙纸更改过程更容易,该脚本读取图像的路径,并用我给出的路径替换现有墙纸;然后重新启动WM 我的代码如下所示: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
#!/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