xdotool无法在shell脚本中运行

时间:2017-02-04 12:54:20

标签: 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
        echo 'Invalid file!'
fi

不幸的是,xdotool无法工作,我不知道为什么,因为如果我从终端(脚本之外)发出它,它将完美地重启我的窗口管理器(超级+ ctrl + r重新启动AwesomeWM)。

我知道使用rc.lua中的awesome.restart函数会更好,但我不知道如何在shell脚本中实现或包含此代码。

2 个答案:

答案 0 :(得分:0)

如果你想设置壁纸,最好只使用feh或其他外部壁纸设置器。此外,您不必(也不应该)重新启动Awesome来设置壁纸。 “很棒的方式”是

echo 'require("gears.wallpaper").maximized("'${1}'")' | awesome-client

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

答案 1 :(得分:0)

你不必重启awesome。您可以使用awesome-client调用awesome中的函数来加载壁纸。