Как обновить файловый менеджер Dolphin в режиме реального времени

Если у меня открыт дельфин, и я работаю в терминале или в Windows, файлы могут быть перемещены или добавлены. Как мне убедиться, что он обновляет статус каталога в реальном времени?

В настоящее время я не могу даже использовать back для обновления, и мне постоянно приходится снова открывать дельфина, очень раздражает

5
задан 26 February 2019 в 00:58

6 ответов

Путь для обновления дельфина, состоит в том, чтобы нажать F5. Однако это было бы ручным.

Для непрерывного обновления, автоматическое решение, создайте сценарий удара, который работает на начальной загрузке. Этот сценарий удара должен нажимать F5 каждые пять секунд, если дельфин открыт. Создайте названный файл dolphin-update в /usr/local/bin со следующим содержанием:

#!/bin/bash
while true; do
    PID=$(pgrep "dolphin")
    if [ "$?" -ne "0" ]; then
        xdotool key 'F5'
    fi
    sleep 5
done

Вы, возможно, должны сначала создать его как корень и затем изменить владельца на Вашего пользователя:

sudo chown username:username /usr/local/bin/dolphin-update 

Удостоверьтесь, что это имеет исполняемые полномочия:

chmod +x /usr/local/bin/dolphin-update

Теперь нам нужно это для работы начальной загрузки. Сделать то выполнение sudo crontab -e и добавьте следующую строку в конец файла:

@reboot /usr/local/bin/dolphin-update

Этот сценарий будет работать на начальной загрузке.

У Вас должен теперь быть непрерывно обновляющий дельфин!

Существуют некоторые протесты к этому сценарию.

  • При открытии Dolphin перейдите к другому приложению, где F5 инициировал что-то, (например, Хром обновляет страницу), сценарий будет все еще работать и является постоянным раздражением. Решение: Закройте дельфина если не активно использование его.
  • Как a cron задание используется, если Ваш компьютер откажет, то сценарий не будет работать на начальной загрузке. Однако это - проблема с cron не сценарий.

Что сценарий означает, линию за линией:

  • #!/bin/bash - хижина для выполнения с ударом
  • while true; do - выполняемый непрерывно
  • PID=$(pgrep "dolphin") - найдите идентификатор процесса a dolphin экземпляр. Это должно просто там проверить, существует ли даже экземпляр выполнения дельфина.
  • if [ "$?" -ne "0" ]; then - проверьте результат того, существует ли выполнение экземпляра дельфина. Если существует, то...
  • xdotool key 'F5' - нажмите F5
  • fi - закончите if блок
  • sleep 5 - ожидайте 5 секунд прежде, чем повторить процесс
  • done - закончите в то время как блок
4
ответ дан 26 February 2019 в 00:58

Я согласен, что это проблема с Дельфином. Я не использую его, но тестировал некоторые скрипты bash, которые я написал на виртуальной машине KDE, и обнаружил, что хотя Dolphin выполняет обновление в режиме реального времени, находясь в домашней папке, он не делает этого при работе с / dev / shm. Я нашел ваш вопрос здесь и проголосовал, потому что на этот вопрос все еще нужно ответить.

То, что я использовал в своем сценарии, это: xdotool key 'F5'

, который работал для моего сценария, но не в реальном времени. Мой сценарий генерирует кучу файлов, и вы не можете видеть, что это происходит, но как только это будет сделано, он «нажимает» «F5», и файлы становятся видимыми.

0
ответ дан 26 February 2019 в 00:58

Это, похоже, ошибка , все еще активная в Kubuntu 18.04, где Dolphin не всегда автоматически обновляет и показывает мгновенные изменения, сделанные другой программой, и в этом случае требуется ручное обновление. F5 , кажется, отлично работает для этой цели.

0
ответ дан 26 February 2019 в 00:58

Следующий скрипт использует xdotool для отправки клавиши F5 для сброса окна дельфина, когда оно имеет фокус. Сохраните его, сделайте его исполнительным и запустите его при загрузке.


#!/bin/bash
     # indefinite loop
     while  : ; do
         # gets root window property _NET_ACTIVE_WINDOW
         WIN=($(xprop -root _NET_ACTIVE_WINDOW))

         # extracts window id (base seven)
         WIN="${WIN[4]%%","*}"

         WIN="$(printf "%s\n" ${WIN})"  # bypass weird array bug

          # Decimal window id of dolphin
          WindowID="$(xdotool search --class "dolphin" 2>/dev/null | tail -1)"

          # Convert dolphin's win id to base seven
          WindowIDbSeven=$(printf "0x%07x" ${WindowID})

         # test if an acive window id mathes with the dolphin's window id
         if [[ "${WIN}" == "${WindowIDbSeven}" ]]; then
             # sends F5 to dolphin's window id
             xdotool key --clearmodifiers "$WindowIDbSeven" F5
         fi

          # clears array
          WIN=()

         sleep 5
     done
0
ответ дан 26 February 2019 в 00:58

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

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

Находит окно с классом дельфинов и отправляет F5 всякий раз, когда указатель мыши входит в окно:

xdotool search --onlyvisible --class dolphin  behave %@ mouse-enter key F5

Находит окно с классом дельфинов и отправляет F5 всякий раз, когда дельфин получает фокус:

xdotool search --onlyvisible --class dolphin  behave %@ focus key F5
0
ответ дан 26 February 2019 в 00:58

Первоначальному вопросу ОП почти 5 лет. В 2009 году была опубликована основная ошибка , на которую указывают 15 повторяющихся ошибок. Исправление ошибки появилось в Debian (комментарий № 58) после того, как был опубликован вопрос OP.

Сообщение о том, что эта ошибка все еще происходит в 2018 году в новом отчете об ошибке , немного вводит в заблуждение, потому что пользователь, который подал отчет (Jeremy9856), опубликовал дюжину комментариев, пробуя различные решения:

  • обновил количество разрешенных для ядра inotify часов
  • отключив tlp, что приводит диски в спящий режим
  • несколько раз mkdir / rmdir, чтобы вызвать задача
  • Другой пользователь (комментарий № 10) проверил однострочник и утверждает, что проблема не существует while true ; do mkdir abc ; sleep 1 ; rmdir abc ; sleep 1 ; done
  • , когда на пути есть ударение (например, /home/jeremy/Téléchargements/Séries )

В последнем комментарии Jeremy9586 говорится:

Хорошо, я удалил символические ссылки на папки внутри / home (Рабочий стол, Загрузки и т. Д.) ...), который указал на / media / Data и использовал настройки kde (в приложениях) для изменения мест этих папок, и у меня не было проблемы около недели!

Так что это может быть связано с символические ссылки?


Резюме

Ошибка, о которой ОП была впервые сообщена в 2009 году и устранена в 2013 году.

Ошибка, на которую указывает новая награда, не имеет ничего общего с обновлением списка файлов в общем, и ей нужно нажать F5 . Ошибка была вызвана символическими ссылками между /home и /media/home.

0
ответ дан 26 February 2019 в 00:58

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

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