Если у меня открыт дельфин, и я работаю в терминале или в Windows, файлы могут быть перемещены или добавлены. Как мне убедиться, что он обновляет статус каталога в реальном времени?
В настоящее время я не могу даже использовать back для обновления, и мне постоянно приходится снова открывать дельфина, очень раздражает
Путь для обновления дельфина, состоит в том, чтобы нажать 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
Этот сценарий будет работать на начальной загрузке.
У Вас должен теперь быть непрерывно обновляющий дельфин!
Существуют некоторые протесты к этому сценарию.
cron
задание используется, если Ваш компьютер откажет, то сценарий не будет работать на начальной загрузке. Однако это - проблема с cron
не сценарий.Что сценарий означает, линию за линией:
#!/bin/bash
- хижина для выполнения с ударомwhile true; do
- выполняемый непрерывноPID=$(pgrep "dolphin")
- найдите идентификатор процесса a dolphin
экземпляр. Это должно просто там проверить, существует ли даже экземпляр выполнения дельфина.if [ "$?" -ne "0" ]; then
- проверьте результат того, существует ли выполнение экземпляра дельфина. Если существует, то...xdotool key 'F5'
- нажмите F5fi
- закончите if
блокsleep 5
- ожидайте 5 секунд прежде, чем повторить процессdone
- закончите в то время как блокЯ согласен, что это проблема с Дельфином. Я не использую его, но тестировал некоторые скрипты bash, которые я написал на виртуальной машине KDE, и обнаружил, что хотя Dolphin выполняет обновление в режиме реального времени, находясь в домашней папке, он не делает этого при работе с / dev / shm. Я нашел ваш вопрос здесь и проголосовал, потому что на этот вопрос все еще нужно ответить.
То, что я использовал в своем сценарии, это: xdotool key 'F5'
, который работал для моего сценария, но не в реальном времени. Мой сценарий генерирует кучу файлов, и вы не можете видеть, что это происходит, но как только это будет сделано, он «нажимает» «F5», и файлы становятся видимыми.
Это, похоже, ошибка , все еще активная в Kubuntu 18.04, где Dolphin не всегда автоматически обновляет и показывает мгновенные изменения, сделанные другой программой, и в этом случае требуется ручное обновление. F5 , кажется, отлично работает для этой цели.
Следующий скрипт использует 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
xdotool может отправлять клавишу F5 дельфину при событии ввода мышью или всякий раз, когда его окно получает фокус.
Эти команды выполняются неопределенно, поэтому вы можете настроить одну из них для запуска при загрузке.
Находит окно с классом дельфинов и отправляет F5 всякий раз, когда указатель мыши входит в окно:
xdotool search --onlyvisible --class dolphin behave %@ mouse-enter key F5
Находит окно с классом дельфинов и отправляет F5 всякий раз, когда дельфин получает фокус:
xdotool search --onlyvisible --class dolphin behave %@ focus key F5
Первоначальному вопросу ОП почти 5 лет. В 2009 году была опубликована основная ошибка , на которую указывают 15 повторяющихся ошибок. Исправление ошибки появилось в Debian (комментарий № 58) после того, как был опубликован вопрос OP.
Сообщение о том, что эта ошибка все еще происходит в 2018 году в новом отчете об ошибке , немного вводит в заблуждение, потому что пользователь, который подал отчет (Jeremy9856), опубликовал дюжину комментариев, пробуя различные решения:
inotify
часов tlp
, что приводит диски в спящий режим mkdir
/ rmdir
, чтобы вызвать задача while true ; do mkdir abc ; sleep 1 ; rmdir abc ; sleep 1 ; done
/home/jeremy/Téléchargements/Séries
) В последнем комментарии Jeremy9586 говорится:
Хорошо, я удалил символические ссылки на папки внутри / home (Рабочий стол, Загрузки и т. Д.) ...), который указал на / media / Data и использовал настройки kde (в приложениях) для изменения мест этих папок, и у меня не было проблемы около недели!
Так что это может быть связано с символические ссылки?
blockquote>
Резюме
Ошибка, о которой ОП была впервые сообщена в 2009 году и устранена в 2013 году.
Ошибка, на которую указывает новая награда, не имеет ничего общего с обновлением списка файлов в общем, и ей нужно нажать F5 kbd>. Ошибка была вызвана символическими ссылками между
/home
и/media/home
.