2017-02-04 6 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 не будет работать, и я не знаю, почему, потому что если я выполняю его из терминала (за пределами сценария), он будет перезапущен мой оконный менеджер отлично (супер + 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, чтобы вызвать функцию внутри awesome для загрузки обоев.

Смежные вопросы