2017-02-04 14 views
0

私は、AwesomeWMで画像へのパスを読み込んで、既存の壁紙を指定したパスに置き換えるスクリプトを使用して、壁紙を変更するプロセスを簡単にしようとしています。 WMを再起動します。xdotoolがシェルスクリプト内で動作しない

私のコードは次のようになります。

#!/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関数をrc.luaから使用する方が良いことは知っていますが、私はこのコードを実装したり、シェルスクリプト内に組み込む方法がわかりません。

答えて

0

あなたが壁紙を設定したい場合は、fehまたは別の外部壁紙設定ツールを使用することをお勧めします。また、壁紙を設定するためにAwesomeを再起動する必要はありません。 「素晴らしい方法」は

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

です。$ {1}はパスです。しかし、もう一度、fehまたは同様のツールがこの仕事のために良いです。バージョン3.4までは、ネイティブの壁紙サポートが追加されるまで、Awesomeはそのコマンド自体を呼び出していました。

+0

'xdotool'行を' feh --bg-scale $ 1'に置き換えると、完全に動作します。 – xvlaze

0

素晴らしい再起動は必要ありません。 awesome-clientを使って壁紙を読み込むための素晴らしい機能を呼び出すことができます。

関連する問題