繁体   English   中英

xdotool在shell脚本中不起作用

[英]xdotool not working inside a shell script

我正在尝试通过脚本来简化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无法正常工作,我也不知道为什么,因为如果我从终端(脚本之外)发出它,它将完美地重启我的窗口管理器(super + ctrl + r会重启AwesomeWM)。

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

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

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

$ {1}是路径。 但是同样, feh或类似的工具对于这项工作来说更好。 在3.4版之前,Awesome甚至自己调用了该命令,直到添加了本机墙纸支持。

您无需重新启动即可。 您可以使用awesome-client调用awesome内部的函数来加载壁纸。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM