Epiphany-Nautilus integration

Here is my latest little project, integrate epiphany downloads with nautilus. First a mockup.

Nautilus mockup

This shows the normal nautilus spatial window, but in the corner there is a little addition, a download status bar indicating how many files are being downloaded in that particular folder, as well as the global download progress.

Now, the actual screenshot of a live download in nautilus, the result is the same, but the display needs to be cleaned (showing human-readable file sizes, times, etc)

Nautilus integration

So, the concept is quite simple, forward epiphany download events to nautilus via dbus, since gnome-vfs can’t handle downloads from epiphany at the moment. In nautilus, listen for dbus events and store the various downloads. The nautilus windows that are showing a folder where a download is in progress are notified, and show the progress.

Next step is to show files being downloaded with a special emblem, indicating that they are being downloaded and showing the progress of that file, for example using a pie emblem that fills up, or a vertical bar that grows to 100%. A context menu for these files would allow to pause/cancel/resume/abort the transfer.

The final goal is to use nautilus for the actual download, and epiphany would just forward the url to download, but in the meantime this would provide a working UI. When the change is ready, just change the backend, the UI stays the same.

Now i would like to hear you comments about that..

Update: after reading the first comments, i think i must go a bit further in my explanation. This thing does not happen when you drag and drop from epiphany to nautilus, but when you click on a link in epiphany and choose to download the file. Instead of having the current download manager pop-up, the nautilus window would appear, with that ui.

This has at least 2 avantages over the current system: No pop-ups (well the nautilus folder would appear, but this is an option i don’t know if it’s better to not open it..), the download you view will be related to the folder that you are looking at. Maybe the same UI can then be used for regular file move/copy operations.

20 Responses to “Epiphany-Nautilus integration”

  1. Ian says:

    I think the progress emblem is a great idea, but I think it would be even slicker to show the icon filling in from greyed out to full color. Maybe this is to much work though.

  2. Justin says:

    make sure thumbnails are handled well, currently nautilus tries to constantly regenerate them for files that are being downloaded.

  3. Nice idea. I had been working on something related to that a little while ago. I was basically a daemon that would allow you to monitor tasks that were occurring on the system. I haven’t done much with it recently and it probably won’t compile under dbus-0.3x, but it covers some of the same grounds. You can find some old screenshots at: gtask.sourceforge.net (the project and all new code has since been renamed to averti, but the cvs repos is still at sourceforge).

  4. Superb idea … this kind of thing is what gnome is all about for me. Waiting to see it in some release soon 😉

  5. Tobu says:

    Drag and drop of a link from a browser to nautilus is already possible (though it requires you already have nautilus opened at the right place beforehand).
    What this extension brings is calling nautilus when needed, right? I think the global applet that shows all downloads is still useful, but that it should allow opening the target folder (and the source folder, for ftp and such), thus making nautilus available at the right time. The status bar ui is cool, but not that useful (except for saving space).

  6. Tobu says:

    While you’re integrating, I think it would be a good idea to keep track of the source uri. The link name and basename are available by drag and drop, epiphany would maybe have a bit more context. Saving the source url (eg with extended attributes) would be useful for going back to it later.

  7. Markus Bertheau says:

    I always download to the desktop, how will I see download progress?

    What is it that you don’t like about the current epiphany download thing?

    In short, why are you doing this?

  8. Rafael Jannone says:

    what a cool hack! 🙂

    is there any chance of getting firefox to support this as well?

  9. Yury Puzis says:

    1. since desktop has no status bar to show download process, how about panel applet to do that?

    2. how about integrating in the exact similar fashion *copying* from folder to folder? After all, download is nothing more then copying for a user, only from remote location, and longer.

    3. while I am at it: why not replace the usual “copy” / “delete” progress window with an intergrated notification icon, epiphany style, what would include all information about all files being currently moved/copied/deleted/downloaded. and of course will dissapear when done.

  10. Olivier Le Thanh says:

    Nice but it seem you forgot the “pause” and “stop” buttons, how do you plan to integrate these in you UI?

    How about, we could delete a file to stop the download and have somes entries in the popup menu?

  11. Interesting stuff. It strikes me (without having put much thought into it, admittedly), that might be a bit confusing since the download info is so minimal (down in the status-bar). It might appear that you’ve clicked for a download, a window opened, and “nothing is happening”.

  12. Tobias says:

    Here are two Mockups I made some time ago, perhaps they can give you some ideas:

  13. Sam Kaufman says:

    This is an innovative idea, but I think it’s unnecessary and potentially confusing. I hate to bash this hack, but the information is very minimal and having it happen “inside” a folder is just odd. Besides, it doesn’t readily show which files are downloading or provide an obvious way to stop/pause them.

    Of course… having a small progress bar (or some other way to represent a download) on the actual icon in Nautilus would be a fantastic improvement. Right now, the only real way for a user to tell that a file isn’t all there yet is the constant refreshing of the thumbnail (assuming that filetype gets a thumbnail).

  14. Jerry Haltom says:

    Don’t pass the URL to Nautilus. Nautilus cannot connect back to the web site using the same session and cookie information. This would make downloads fail in weird ways if served in this manor.

    I also think the download bar is pretty useless. I like the idea of having a seperate progress window, just like right now, but an indication on the icon. I *love* that idea.

  15. Like someone else posted, I’ve always dreamed of the icon filling up as you download! Specifically, from bottom to top … maybe grains of sand falling down and filling up the icon type.

    May take some gtk hacking, but it must be done!

  16. […] Another aspect is that we would like to seamlessly integrate downloading with Nautilus. Raphaël created a implementation of this, but this way of doing it wasn’t found to be satisfactory by the interested parties. […]

  17. Philip Ganchev says:

    I think it would be more useful to have a central place for downloads and other tasks in progress, like gTask does. This shows more detailed information, and is more general.

    It would also be good to represent the partly-downloaded files using a partly-filled icon (as someone suggested above), because it is more concrete and can be manipulated more directly.

  18. Frederik Hertzum says:

    I think this is pretty bad idea. It will make too epiphany too important and thus makes it more difficult to get rid of in case something better comes around or it just breaks for some reason.

    I think it’s better to the gwget2 solution that is around now — it’s simple, doesn’t actually remove epiphany’s ability to download things and it is very easy to get rid of gwget if you don’t like it or it breaks for any reason.

  19. Anonymous says:

    I think this is a suberp idea. How about doing the same for Transmission downloads? with this little pie emblem on the icon to show something is downloading, and maybe right clicking on properties will give you all the other info you need.