LINUX.ORG.RU

Смена обоев пользователя в gnome из под другого пользователя через консоль

 , , ,


0

1

Появилась необходимость менять централизованно обои, делаю это через ансибл, соответственно кидая команду из-под нужного пользователя(manager-1117):

gsettings set org.gnome.desktop.background picture-uri "file:///home/files/5.jpg"

все работает успешно, но при этом запуская ее в даже к кроне:

*  *    * * *   manager-1117 gsettings set org.gnome.desktop.background picture-uri "file:///home/files/5.jpg"

ничего не происходит, так же пробовал следующие вариации:

su manager-1117 -c "gsettings set org.gnome.desktop.background picture-uri \"file:///home/files/6.jpg\""
sudo -u manager-1117 gsettings set org.gnome.desktop.background picture-uri "file:///home/files/8.jpg"
sudo -u manager-1117 dbus-launch --exit-with-session gsettings set org.gnome.desktop.background picture-uri "file:///home/files/7.jpg"

Также через sticky-bit пробовал запихнув в sh файл, такой же результат, что я упускаю?

Ответ на: комментарий от anonymous

я пробую из под рута соответственно у него она пустая, попробовал export сделать, не получилось

manager-1117@manager1117-H81H3-TI2:~/Рабочий стол$ echo $DBUS_SESSION_BUS_ADDRESS unix:path=/run/user/1000/bus

Ramzes_116
() автор топика
Ответ на: комментарий от anonymous
root@manager1117-H81H3-TI2:/home/manager-1117/Рабочий стол# su - manager-1117 -c "gsettings set org.gnome.desktop.background picture-uri \"file:///home/files/8.jpg\""

(process:9267): dconf-WARNING **: 02:37:57.498: failed to commit changes to dconf: Невозможно автоматически запустить D-Bus без X11 $DISPLAY
root@manager1117-H81H3-TI2:/home/manager-1117/Рабочий стол# echo $DISPLAY
:0
Ramzes_116
() автор топика
Ответ на: комментарий от Ramzes_116

Из под юзера без su которому обои меняете запускаете чтоб узнать адрес

echo $DBUS_SESSION_BUS_ADDRESS

а потом этот адрес уже экспортируете export DBUS_SESSION_BUS_ADDRESS=xxxxx && команда. Это все работает через dbus поэтому надо подключиться к сессии dbus юзера.

Вы кстати можете просто поставить юзеру в автостарт скрипт выполняющийся от его имени который и будет менять обои в определенное время или по событию

anonymous
()
Ответ на: комментарий от anonymous
manager-1117@manager1117-H81H3-TI2:~/Рабочий стол$ echo $DBUS_SESSION_BUS_ADDRESS
unix:path=/run/user/1000/bus

root@manager1117-H81H3-TI2:/home/manager-1117/Рабочий стол# export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus && gsettings set org.gnome.desktop.background picture-uri "file:///home/files/1.jpg"

(process:10008): dconf-WARNING **: 02:53:32.038: failed to commit changes to dconf: Соединение закрыто

может я что-то не так понял

Ramzes_116
() автор топика
Ответ на: комментарий от Ramzes_116

РЕШЕНИЕ:

sudo -H -u manager-1117 DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus gsettings set org.gnome.desktop.background picture-uri "file:///home/files/7.jpg"

всем спасибо

Ramzes_116
() автор топика
Ответ на: комментарий от Ramzes_116
>~ cat ~/.config/systemd/user/wallpaper.timer 
[Unit]
Description=Change wallpapers every 15 minutes

[Timer]
OnActiveSec=10sec
OnUnitActiveSec=15min

[Install]
WantedBy=default.target
>~ cat ~/.config/systemd/user/wallpaper.service 
[Unit]
Description=Change wallpaper at regular intervals

[Service]
Type=oneshot
ExecStart=%h/.local/bin/wallpaper.sh
eternal_sorrow ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.