10

If I have dolphin open and I'm working in the terminal or on Windows files might be moved or added. How would I go about to make sure it updates the status of a directory of real time?

Presently I cannot even use back to update and constantly have to reopen dolphin, verry annoying

4
  • 5
    To refresh the view press F5. Jun 22, 2013 at 4:02
  • 1
    Thanks works. Now if only someone had a solution for real time updating.
    – user140393
    Jun 22, 2013 at 4:07
  • problem still present in Kubuntu 18.04, Dolphin 17.12.3
    – user47206
    May 14, 2018 at 4:59
  • bugs.kde.org/show_bug.cgi?id=387663
    – user47206
    May 14, 2018 at 5:33

6 Answers 6

6
+100

The way in order to refresh Dolphin is to press F5. However, this would be manual.

In order to continuously refresh, an automatic solution, create a bash script that runs on boot. This bash script should press F5 every five seconds if Dolphin is open. Create a file named dolphin-update in /usr/local/bin with the following contents:

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

You may need to first create it as root and then change the owner to your user:

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

Ensure that it has executable permissions:

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

Now we need that to run on boot. To do that run sudo crontab -e and add the following line to the end of the file:

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

This script will run on boot.

You should now have a continuously refreshing Dolphin!

There are some caveats to this script.

  • If you open Dolphin, go to another application where F5 triggers something, (eg Chromium refreshes the page), the script will still run and be a constant annoyance. Solution: Close Dolphin when not actively using it.
  • As a cron job is used, if your computer crashes, the script will not run on boot. However this is a problem with cron not the script.

What the script means, line by line:

  • #!/bin/bash - shebang to run with bash
  • while true; do - run continuously
  • PID=$(pgrep "dolphin") - find the process ID of a dolphin instance. This is purely there to check whether there is even a instance of Dolphin running.
  • if [ "$?" -ne "0" ]; then - check the result of whether there is a Dolphin instance running. If there is, then ...
  • xdotool key 'F5' - press F5
  • fi - end the if block
  • sleep 5 - wait 5 seconds before repeating the process
  • done - end the while block
5
  • The answer is really putting together all that was said under this question.- As far as I can tell, in Kubuntu 18.04 the non-refresh thing rarely happens (while I have seen it happen, hence the bounty). Given the caveats you mention (especially the first one) I hesitate using the script (given that manual F5 is an easy enough solution too).. - I guess my question is naive, but do you think the script could be improved further in order for it to run only when a file/folder is created or deleted? - I guess not.
    – user47206
    May 16, 2018 at 8:37
  • @cipricus It is possible, I did look into it, however it would require a daemon like tracker from GNOME. These daemons require very high CPU resources and disk usage, slowing down the rest of the system. So not easily, no.
    – fosslinux
    May 16, 2018 at 20:40
  • what do you think about this answer, namely the whenever it has focus part? the automatic refreshing in relation to focus is as good as when a file/folder is created or deleted part that I mentioned, isn't it?
    – user47206
    May 17, 2018 at 9:50
  • @cipricus yes it is. :D @MilosPavlovic
    – fosslinux
    May 17, 2018 at 22:37
  • @cipricus Thank you for giving me the bounty. I'm not sure that I entirely deserve it, it is not a full solution. But thanks anyway.
    – fosslinux
    May 21, 2018 at 0:40
4

This seems to be a bug still active in Kubuntu 18.04, where Dolphin would not always automatically refresh and show instantly changes made by another program, in which case manual refresh is needed. F5 seems to work fine for this purpose now.

2
  • 1
    xdotool is to automate the refresh from a script.
    – solsTiCe
    May 15, 2018 at 7:56
  • @solsTiCe - Thanks for pointing that out. The other answer doesn't provide the full solution though, only describes it.
    – user47206
    May 15, 2018 at 7:59
1

I agree this is a problem with Dolphin. I don't use it, but was testing some bash scripts I wrote on a KDE VM and discovered that although Dolphin does real time updating when in the home folder, it doesn't do it when on /dev/shm. I found your question here and upvoted, because this still needs to be answered.

What I resorted to using in my script is: xdotool key 'F5'

Which worked for my script, but isn't exactly real time. My script generates a bunch of files and you can't see it happening, but as soon as done, it "presses" 'F5' and the files are visible.

6
  • could you provide more details so that anyone could use your solution?
    – user47206
    May 15, 2018 at 8:00
  • 1
    Just a shell script with an infinite loop will do the trick while true; do sleep 5; xdotool key 'F5';done. However xdotool only works in X11 not in wayland.
    – solsTiCe
    May 15, 2018 at 8:22
  • @solsTiCe - (I'm in KDE. ) Would you post the full script and full details on how/when to run it?
    – user47206
    May 15, 2018 at 16:31
  • the problem is this rarely happens. so I wonder whether it's worth adding the script
    – user47206
    May 15, 2018 at 16:50
  • @solsTiCe - the script was posted with full details in a new answer
    – user47206
    May 16, 2018 at 8:39
1
+200

Next script uses xdotool to send F5 key to reset dolphin window whenever it has focus. Save it, make it executive and run it on boot.


#!/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
5
  • what is the differences between the two answers? you should post them under one answer for convenience anyway.
    – user47206
    May 17, 2018 at 9:53
  • once the window gets focus how often does the script refreshes it?
    – user47206
    May 17, 2018 at 9:54
  • Once dolphin gets the focus, every 5 seconds. You can change the sleep interval.
    – user829010
    May 17, 2018 at 14:49
  • so, I'm a bit embarrassed by the success of my bounty post :) , what I'll do is grant it to @ubashu and then grant a new one for you too. Unifying your two answers would be good.
    – user47206
    May 20, 2018 at 8:49
  • It should be used fixed by inotify. It's useless answer. If you have 10^6 files you will be stuck on such update.
    – RedEyed
    Jun 1, 2018 at 19:26
1

OP's original question is almost 5 years old. There is a master bug posted in 2009 with 15 duplicate bugs pointing to it. The bug fix appeared in Debian (comment # 58) after OP's question was posted.

The report that this bug is still happening in 2018 by a new bug report is a little misleading because the user that filed the report (Jeremy9856) has posted a dozen comments trying different solutions:

  • updated the number of allowed kernel inotify watches
  • disabling tlp which puts drives to sleep
  • do mkdir / rmdir several time to trigger the problem
  • Another user (comment #10) tested a one-liner and states the problem doesn't exist while true ; do mkdir abc ; sleep 1 ; rmdir abc ; sleep 1 ; done
  • when there is an accent in the path (eg. /home/jeremy/Téléchargements/Séries)

The last comment by Jeremy9586 states:

Well I removed the symlinks of the folders inside /home (Desktop, Downloads, etc...) that pointed to /media/Data and used kde settings (in applications) to change the places of these folders and I didn't had the problem for about a week !

So can it be related to the symlinks ?


Summary

The bug the OP had was first reported in 2009 and solved in 2013.

The bug the new bounty points to appears to have nothing to do with refreshing file list in general and need to press F5. The bug was caused by symbolic links between /home and /media/home.

2
  • The latest bug is happening only rarely on my system.
    – user47206
    May 21, 2018 at 7:48
  • @cipricus The rare bugs are hardest to pin down. Every couple months when rebooting grub and selecting a distro a tiny little fist will appear on a black screen and I have to cold boot. Although annoying when it happens, the many hours to fix are too expensive compared to the 10 seconds of lost time. May 21, 2018 at 12:29
0

xdotool can send F5 key to dolphin on mouse-enter event or whenever it's window gets focus.

These commands run indefinetely so you can set one of them to run on boot.

Finds the window with class dolphin and sends the F5 whenever mouse pointer enters window:

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

Finds the window with class dolphin and sends the F5 whenever dolphin gets focus:

xdotool search --onlyvisible --class dolphin  behave %@ focus key F5
2
  • whenever mouse pointer enters window - that sounds great. is the other answer you posted better in any way?
    – user47206
    May 17, 2018 at 9:56
  • This is the manual way of refreshing the window and requres to move the mouse pointer away from the dolphin and back in. Or in the case of second command giving focus to another window and then focusing dolphin again. In the other answer it's automatic.
    – user829010
    May 17, 2018 at 14:44

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .