Thunar 1.4 Roadmap (Xfce 4.10)
[FOR 4.12] Improve User Directories Experience
Thunar 1.2 automatically creates user directories if they do not exist upon opening (e.g. via the Go menu). This sucks. What we want is:
- Enabling users to define user directories on their own (if we can).
- Not to show undefined user directories in the Go menu.
- Ask the user to create a user directory if it is defined but does not exist.
We've decided to drop users dirs entirely and instead show user-defined bookmarks in the
Go menu. Perhaps we can add a separate settings dialog for user directories but in Thunar, we leave the choice of what to appear in the menu to users.
[FOR 4.12] Integrate Remote Locations into the Side and Tree Pane
Right now, there is no way to “bookmark” remote locations. Thunar only allows directories as bookmarks. I've heard reports that re-using the existing bookmarks concept for was found to be inappropriate and confusing for end users. http://www.bomahy.nl/hylke/blog/clutter-in-nautilus-sidebar/ might be a good starting point for a better side pane. I'm conerned about high numbers of partitions in the side pane though. We probably want something that can be expanded/collapsed better, e.g. by grouping partitions per drive using a custom composite widget. This would also have user experience benefits as people would be able to mount/unmount entire drives at once and not just individual partitions.
Related item in the Design SIG: shortcuts-pane
[FINISHED] Improve Tumbler Integration
Right now Thunar only generates thumbnails (on-demand, which is good). It should also use the cache API provided by tumbler to e.g. delete a thumbnail when a file is removed or to copy/update the thumbnail when a file is copied. Stuff like that. That needs integration of ThunarThumbnailer in various jobs which is not too complicated. We also need a way to cancel requests when switching between folders. That is a bit more complicated as it implies requester-awareness in ThunarThumbnailer.
At FOSDEM, Nick and I talked about this and we now have a plan:
- Add a ThunarThumbnailer to ThunarPropertiesDialog (or the main properties page at least) and ThunarStandardView.
- In the standard view, the following situations need to be handled:
- When a new path is set all pending requests made by the standard view are unqueued.
- When the scroll position (horizontal or vertical) changes we reschedule a timeout (something like 250ms or 500ms) until at some point the position doesn't change again and the timeout source function is called.
- When the timeout function is called, we queue a single request for all the visible files.
- When there is a new scroll position change, we unqueue that request and reschedule the timeout.
- When the scroll position changes and the last event was a key or mouse button release event, we cancel the timeout and directly queue in an idle handler, assuming that the user won't resume scrolling within that time frame.
- When the viewport size changes (upon window resize, side window resize or switch between path bar and location bar) we unqueue all pending requests and queue a request for the new visible area.
- When a file supported by tumbler changes in any way, we queue a single thumbnail request for this (also for rename, move, delete we need to call the
- Clean up the thumbnail cache every once in a while using the
[FOR 4.12] Sort by Extension
It would be nice if we allow to sort by extension. See this request on the mailing list. Perhaps we can also allow plugins to install their own columns. That's more complicated and a separate (but partly related) feature though.
[FINISHED] Improve Responsiveness of File Operations
With file operations like delete and trash it takes a while for the deleted files to disappear in the view. For new files (create, link etc.) we have added a workaround to reload the view (because there we have the new_files closure). It would be nice to have a similar closure or feature for file trashing/deletion/copy/move and in thunar-uca where g_file_monitor_emit_event is not working.
ThunarVFS used a global timeout for all feed events, maybe we can introduce something similar in Thunar.
Difficulty: Easy - Moderate
[FOR 4.12] Replace xfdesktop by adding a Thunarx Interface for Desktop Extensions
xfdesktop requires a lot of file management functionality for the file icon view. This results in a high amount of code duplication even when using Thunar's D-Bus interface. We'd like to change this by replacing xfdesktop with a plugin for Thunar.
The plugin would reside in a separate shared library to avoid a Thunar dependency on libwnck (for people who don't want to use the Thunar desktop). “thunar –daemon” would typically also take over the desktop but this can be disabled explicitely using an xfconf property and of course by removing the thunar-desktop-plugin package.