Как я могу автоматически повторно запустить наутилус, если я вышел из программы?

Из-за странного фокуса окна и/или поведения привязки клавиш в моей системе, иногда я случайно закрываю окно Nautilus/Files, когда мое намерение состоит в том, чтобы закрыть верхнее окно приложения (например, документ LibreOffice). Я заканчиваю тем, что имел необходимость вручную повторно запустить Наутилус/Файлы. Я должен делать этот путь чаще, чем я хотел бы.

Я не вижу примера использования, где я требовал бы для Наутилуса/Файлов к не, сразу повторно запускаются после выхода в моем ежедневном использовании.

Как я могу автоматически проверить, чтобы видеть, работает ли Наутилус/Файлы, и, если это не, для перезапуска его?

Бонусные очки для эффективности ресурса используют в решении.

За ответы, утвержденные на мне, не желая это поведение, вниз проголосуют.

-2
задан 10 October 2019 в 18:39

1 ответ

Обновление: 16 октября 2019.

Благодаря ответу эксперта гнома по связанному вопросу ниже, был реализован более быстрый более стабильный метод повторно запускающегося Файлового менеджера Наутилуса.


Это оказалось сложной проблемой, потому что Наутилус всегда работает для управления рабочим столом. Если Вы закрываете программу nautilus все Ваши значки на рабочем столе исчезнут. Когда наутилус работает, и Ваши значки на рабочем столе присутствуют, и Вы вводите nautilus в терминале затем появляется Файловый менеджер Наутилуса.

Скопируйте этот сценарий в названный файл ~/ttlus:

#!/bin/bash

# NAME: ttlus (Twenty Thousand Loops Under Startup)
# PATH: $HOME/askubuntu/
# DESC: Answer for: https://askubuntu.com/questions/1180043/how-can-i-automatically-relaunch-nautilus-if-i-quit-the-program
#       Call Nautilus, named after Twenty Thousand Leagues Under the Sea novel,
#       20,000 times in loop from Startup Applications
# DATE: October 10, 2019.  Modified October 16, 2019.

# NOTE: Things that don't work:
#       https://askubuntu.com/questions/965052/how-to-make-script-wait-for-nautilus-to-exit
#       https://ubuntuforums.org/showthread.php?t=1604843

# UPDT: Rpelace loop with occassional focus grabbing and unpredictable delays:
#    while ps -L -p "$PID" -o pid,nice,lwp,comm | grep pool > /dev/null ; do
#       with:
#    while gdbus introspect --session --dest org.gnome.Nautilus \ ... 3 lines

LoopLimit=20000
Program="nautilus"
#Program="/usr/bin/nautilus --gapplication-service"
PID=$(pgrep nautilus)
Sec=3

if [[ $PID == "" ]] ; then
    notify-send "ERROR in $0: Cannot find nautilus PID"
    exit
fi

for (( l=0; l<LoopLimit; l++ )) ; do
    # Is nautilus file manager running? 1 Window only is desktop icons
    while gdbus introspect --session --dest org.gnome.Nautilus \
        --object-path /org/gnome/Nautilus --recurse | \
        grep -q '^ *node /org/gnome/Nautilus/window/' | \
        grep -v '/window/1' ; do
            sleep "$Sec"
    done
    "$Program" "$HOME" 2> /dev/null
    sleep $(( Sec / 2 ))
done

notify-send "ERROR in $0: $Program exceeded $LoopLimit loop limit"

Сделайте это исполняемым файлом с chmod a+x ~/ttlus

Первый тест путем ввода ~/ttlus & в терминале. После того, как Вы будете удовлетворены, добавляет это в Приложениях Запуска.

Если использование амока прогонов программы:

$ pgrep ttlus
7970

$ kill 7970
[1]+  Terminated              ttlus

Примечания:

  • Из-за sleep "$Sec" команда после выходящего Наутилуса с Alt+F4 или X нажатия на окне, трехсекундная задержка (для сокращения использования ресурсов) произойдет перед Наутилусом, вновь появляется на рабочем столе.
3
ответ дан 22 December 2019 в 00:22

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

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