Рейтинг:0

Отображать диалоговое окно, когда пользователь пытается выйти из GNOME

флаг de

Убунту 18.04 и 20.04

Привет,

У меня есть сценарий резервного копирования, работающий как служба systemd (borgmatic) с использованием systemd-запретить запретить пользователю перезагружать/переводить в спящий режим/выключать компьютер. Это хорошо работает.

К сожалению, когда пользователь пытается выключить или перезагрузить компьютер в GNOME, и ничего не происходит, т. е. действие молча терпит неудачу, пользователь сбивается с толку и в конце концов выключает компьютер долгим нажатием кнопки питания :-(

Чего я хотел бы добиться, так это иметь возможность открыть диалоговое окно (с помощью zenity или notify-send) и попросить пользователя немного подождать, но только после того, как он попытается завершить работу.

Я немного поэкспериментировал с systemd --пользователь сервисные единицы, чтобы диалоговое окно zenity отображалось перед различными целями (gnome-session-shutdown.target), но это не работает, так как процедура выключения даже не запускается... (И даже если она запускается, Xorg, похоже, уже отключен, а zenity дает сбой из-за отсутствия DISPLAY.)

Когда systemd-запретить активен, то это регистрируется при попытке пользователя завершить работу:

26 декабря 21:41:18 t410s gnome-shell [8333]: endSessionDialog: нет XDG_SESSION_ID, получено из logind: 17
26 декабря 21:41:19 t410s gnome-shell [8333]: endSessionDialog: нет XDG_SESSION_ID, получено из logind: 17
26 декабря 21:41:22 t410s gnome-session [8314]: gnome-session-binary [8314]: ПРЕДУПРЕЖДЕНИЕ: Ошибка завершения работы: GDBus.Error:System.Error.ESTALE: дескриптор устаревшего файла
26 декабря 21:41:22 t410s gnome-session-binary [8314]: ПРЕДУПРЕЖДЕНИЕ: Ошибка завершения работы: GDBus.Error:System.Error.ESTALE: дескриптор устаревшего файла
26 декабря 21:41:22 t410s gnome-session-binary [8314]: вход в рабочее состояние
26 декабря 21:41:22 t410s gnome-shell [8333]: проигнорированное исключение из метода dbus: Gio.IOErrorEnum: GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code19: 

Любая идея, как отобразить сообщение о том, что резервное копирование выполняется?

РЕДАКТИРОВАТЬ: Как предложил @matigo, я реализовал обходной путь, чтобы отображать разные обои во время резервного копирования, и надеюсь на лучшее...

флаг in
Столкнувшись с подобной ситуацией с моими родителями много лет назад, я обнаружил, что лучшим вариантом было изменить фон рабочего стола в начале резервного копирования, а затем восстановить его после завершения. Это совершенно ясно дало понять, что систему нельзя выключать, и в целом она работала. (Мои родители не читают модальные окна; они просто нажимают «ОК», а затем жалуются мне, когда компьютер не делает того, что, по их *думанию*, он собирается делать)
флаг ar
@natigo, если вы преобразуете свой комментарий в ответ, возможно, с фоновым файлом jpeg / PNG в качестве примера, это будет здорово! Тогда OP может принять ваш ответ как правильный.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.