xdotool 在 shell 脚本中不工作
xdotool not working inside a shell script
我正在尝试使用一个脚本使 AwesomeWM 中的墙纸更换过程更容易,该脚本读取图像的路径并用我提供的路径替换现有墙纸;然后重启WM。
我的代码如下:
#!/bin/bash
if [[ != "" ]] && [ -f ]; then
cp /usr/local/share/awesome/themes/modded/background.png
xdotool key super+ctrl+r
else
echo 'Invalid file!'
fi
不幸的是,xdotool 不起作用,我不知道为什么,因为如果我从终端(脚本之外)发出它,它将完美地重新启动我的 window 管理器(super+ctrl +r 重新启动 AwesomeWM)。
我知道使用 rc.lua 中的 awesome.restart
函数会更好,但我不知道如何在我的 shell 脚本中实现或包含此代码。
如果要设置壁纸,最好使用 feh 或其他外部壁纸 setter。此外,您不必(也不应该)重新启动 Awesome 来设置墙纸。 "awesome way" 是
echo 'require("gears.wallpaper").maximized("''")' | awesome-client
其中 ${1} 是路径。但同样,feh
或类似的工具更适合这项工作。在 3.4 版之前,Awesome 甚至会自己调用该命令,直到添加了本机壁纸支持。
您不必重新启动 awesome。您可以使用 awesome-client
调用 awesome 中的函数来加载壁纸。
我正在尝试使用一个脚本使 AwesomeWM 中的墙纸更换过程更容易,该脚本读取图像的路径并用我提供的路径替换现有墙纸;然后重启WM。
我的代码如下:
#!/bin/bash
if [[ != "" ]] && [ -f ]; then
cp /usr/local/share/awesome/themes/modded/background.png
xdotool key super+ctrl+r
else
echo 'Invalid file!'
fi
不幸的是,xdotool 不起作用,我不知道为什么,因为如果我从终端(脚本之外)发出它,它将完美地重新启动我的 window 管理器(super+ctrl +r 重新启动 AwesomeWM)。
我知道使用 rc.lua 中的 awesome.restart
函数会更好,但我不知道如何在我的 shell 脚本中实现或包含此代码。
如果要设置壁纸,最好使用 feh 或其他外部壁纸 setter。此外,您不必(也不应该)重新启动 Awesome 来设置墙纸。 "awesome way" 是
echo 'require("gears.wallpaper").maximized("''")' | awesome-client
其中 ${1} 是路径。但同样,feh
或类似的工具更适合这项工作。在 3.4 版之前,Awesome 甚至会自己调用该命令,直到添加了本机壁纸支持。
您不必重新启动 awesome。您可以使用 awesome-client
调用 awesome 中的函数来加载壁纸。