Будучи предупрежденным, что существуют программы, открытые перед тем, чтобы выходить из системы

Я обычно использую одну рабочую область для всех своих окон, но иногда у меня есть слишком много окон, создающих помехи моему рабочему столу, таким образом, я плюнул ими на двух или больше рабочих областях.

Однако, так как я редко использую рабочие области, это регулярно происходит, что, когда я собираюсь выйти из системы или завершить работу моего ПК, я закрываю все программы на видимой рабочей области и забываю о других с последствиями файлов, не сохраняемых и т.д.

Существует ли способ получить предупреждение, что существуют программы, открытые, прежде чем система зарегистрирует меня прочь или закроется? Или там некоторый Gnome является расширением или обходным решением, о котором Вы могли бы думать?

0
задан 15 October 2019 в 13:08

1 ответ

Кредит: Этот ответ основан на сценарии, найденном здесь. Это для x11 систем, не Уэйленда, и требует этого, wmctrl установлены.

Первое изображение показывает Ubuntu 19.04 с несколькими открытыми приложениями и на различных рабочих столах:

Applications and wmctrl output

Вывод wmctrl -l в терминале рядом с прикреплением перечисляет восемь открытых приложений на различных рабочих столах.

Сверху донизу:

1 Firefox (больше чем с одной открытой вкладкой)
2 терминала GNOME
3 настройки GNOME
4 Gedit с несохраненным открытым файлом
5 Устройств записи LibreOffice с несохраненным открытым файлом
6 Geany с несохраненным открытым файлом
7 Konsole с man man выполнение
8 Kate (частично замеченный) с несохраненным открытым файлом

В то время как прикрепление показывает, что несколько приложений открыты независимо от своего местоположения, это - возможные пользователи, возможно, принял решение автоскрыть прикрепление.

При запущении скрипта, который я связал с Ctrl+Super+W, приложения, которые не должны взаимодействовать с пользователем, сразу закрываются. В изображении ниже, были уже закрыты терминал гнома и настройки гнома. Что остается (как замечено в прикреплении), приложения, бывшие нужные в пользователе для принятия решения.

Следующее изображение показывает стопку собственных диалоговых окон для открытых приложений, разрешающих пользователям решить, сохранить ли их работу в каждом приложении или нет. В частности, Устройство записи LibreOffice закрылось, этот путь не представит подсказку "Восстановления" в следующий раз, когда он запускается.

Applications needing instructions

В этом примере последнее решение состоит в том, закрыть ли Firefox. Снова, GUI является GUI самого Firefox, таким образом, гарантируя чистое закрытие.

Closing Firefox cleanly


Сценарий (на основе ссылки BunsenLabs):

#!/bin/bash
# close_all_windows
# depends on wmctrl
# johnraff's close windows before shutdown from https://forums.bunsenlabs.org/viewtopic.php?id=508

windows_list=($(wmctrl -l | awk ' { print $1 } '))

for i in $windows_list
do
    wmctrl -i -a $i
    wmctrl -i -c $i
done

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

Если этот подход подходит, просто добавьте shutdown на новой строке к сценарию. Это завершит работу системы после одной минуты. С другой стороны, выберите некоторое другое значение из man shutdown.

1
ответ дан 22 December 2019 в 00:20

Другие вопросы по тегам:

Похожие вопросы: