Мне нужно показывать уведомления пользователям с правами root в системе Debian под управлением KDE со скриптом bash или python. Что я пробовал до сих пор:
export DISPLAY=:X (X symbolizes the remote host data)
export XAUTHORITY=~$USERNAME/.Xauthority
zenity --warning --title $TITLE --text " $TEXT
Эти команды делают то, что я хочу, но только через терминал. Когда я пытаюсь использовать их в скрипте Python (используя os.system () или subprocess.call ()) или пытаюсь запустить скрипт оболочки; происходит сбой (обычно показывает уведомление пользователю, который вошел в систему, а не целевому пользователю. Также иногда приводит к ошибкам:
Could not open X display
No protocol specified
Gtk-WARNING **: cannot open display: :X.
XDG_RUNTIME_DIR not set in the environment.
Но также он редко показывает уведомление правильному пользователю. Поэтому я не мог понять, как он себя ведет.)
Я также читал, что zenity не подходит для KDE, предпочтительнее kdialog.
kdialog --title "some title" --passivepopup "some text" 5 & (number for the time-out)
Используя приведенную выше команду с gksu и su, снова ничего не получится. Я также пытался с pynotify. Я предполагаю, что проблема не в том, как я создаю сообщение уведомления, а в том, чтобы показать пользователю, более непосредственно, подключение к X-серверу или передачу пользовательских настроек X-сервера.
Мне нужна помощь на этом этапе; Любое предложение приветствуется.