LINUX.ORG.RU

kdialog popup от root в сессии пользователя

 , ,


0

2

Нужно показать popup через kdialog:

kdialog --icon system-software-update --passivepopup «$UPD» --title «Update notifier» 5

Запускается скрипт от рута через networkmanager-dispatcher после подключения к любой сети.

Уведомления показываются, но не через kdeшный popup, а отдельный рутовый.

Использовать дыру xhost + не хочу.

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

★★★★★

Последнее исправление: gutaper (всего исправлений: 1)

echo $DISPLAY
:0
#!/bin/bash
DISPLAY=":0" kdialog --passivepopup ...
mexx
()
Ответ на: комментарий от gutaper

Еще что-то нужно

мы не в курсе ваших возможностей :)

В используемом мной дистрибутиве notify-send входит в libnotify-bin и работает наверно с года 2015-2016 (раньше просто не использовал).

Берете тот же скрипт со stackexchange, заменяете notyfy-send на kdialog

#!/bin/bash
PATH=/usr/bin:/bin

XUSERS=($(who|grep -E "\(:[0-9](\.[0-9])*\)"|awk '{print $1$5}'|sort -u))
for XUSER in $XUSERS; do
    NAME=(${XUSER/(/ })
    DISPLAY=${NAME[1]/)/}
    sudo -u ${NAME[0]} DISPLAY=${DISPLAY} \
                       kdialog "$@"
done
и вызываете его вместо kdialog
/usr/local/bin/notify_all --icon system-software-update --passivepopup «$UPD» --title «Update notifier» 5

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.