Nautilus desktop plans

We have been discussing our plans with the desktop part of Nautilus for quite a bit of time and in this blog post I’ll explain them.

Context

Nautilus had have a feature called “the desktop” which adds icons on the background of the user workspace, similar to Windows.

The desktop was disabled for the default experience when GNOME 3 came out now 6 years ago, and so far has been mostly unmaintained. I spent around 3 months of work two years ago to try to save it somehow and did a rearchitectural work to try to separate the desktop from the Nautilus app so it won’t affect Nautilus development, and while it achieved some degree of separation, it didn’t achieve its main purpose and unfortunately brought even more problems than we had before. Now it has got to a point where the desktop is blocking us deeply in basically every major front we have set for future releases.

Also we notice that users rightfully have expectations for the desktop to work decently, and we acknowledge this is far from the reality and we are aware that the desktop is in a very poor state.

If you are interested in more technical details of the issues with the desktop implementation you can read them here.

With these points at hand that have accumulated over the years, we are at the point that we need to remove the desktop code inside Nautilus for Nautilus 3.28 to move forward with Nautilus development. You can check the branch with the removal work here, if you look you will see that the desktop is composed by more than 10.000 lines of code given the complexity to create it with the technologies that were available in 1999 (yes, the code is that old :)).

Solutions

With removing the desktop code from Nautilus we have considered these three options, keeping in mind that the ability to have icons on the desktop can be provided by other projects than Nautilus:

Fork Nautilus desktop, one project being the desktop and the other being Nautilus app. This however doesn’t fix anything at all, the issues will still be there and I’ll be very sad for anyone that has to maintain it.

Use Nemo desktop. This is, as of today, a more featureful desktop than the one in Nautilus, so probably it’s the best short term solution. It however has similar problems than the ones Nautilus desktop faced. You can read how to install it here.

Make the desktop icons a Shell extension.

Proposal

The best option to of those three to move forward is to integrate it in a GNOME Shell extension. Doing what nautilus desktop was doing in an app (Nautilus) while trying to be part of the compositor (GNOME Shell) was a big mistake, and it’s one of the major issues. It’s important if you understand some technical terms to check the issues we were facing to understand how we agreed to this proposal to be the best option. This is true even more nowadays with various technologies being more in the isolation, privacy and secure side (Wayland, sandboxing, etc).

A nice thing of doing a GNOME Shell extension is that it opens the path to a more dynamic desktop workflow, and the good news is that the prototype that we have in place already has fixed one of the oldest bugs we had in the Nautilus desktop, proper multimonitor support!

You can check the extension prototype here (very early prototype). While this extension is the way forward, the time I can spend on it is limited since upstream wise the desktop pattern didn’t make much sense for long time now. So I encourage anyone that knows JavaScript or wants to learn JavaScript and likes the desktop workflow to make it happen, I’ll be there for helping any contributor making code alongside and to expand on new ideas for the desktop workflow that those that like it have in mind. You can check few points that would be nice to have for a first release here. Ping me on IRC if you are interested on it.

Who will experience a change

For those using distributions with desktop pattern workflows (e.g. Ubuntu), I don’t expect anyone to be affected, if those distributions/projects derived from upstream design decisions based on their own design decisions, I expect they will hold into those patterns and provide a desktop workflow in one form or another.

If your distribution didn’t ship a desktop by default and you were using Nautilus desktop, you can check out the options proposed before to continue using a similar workflow.

Fruits of the removal

The question is, when are the fruits of the removal of the desktop going to be noticeable?

Thanks to the removal of the desktop code we are now free to move forward with the complete rework of the Nautilus backend for 3.28, probably the biggest rework ever done in Nautilus. This will allow heavy searches to not make the UI get stuck and to be resource balanced so you could do multiple searches at the same time, it will also provide proper thread handling, ability to pause operations, ability for performance stats (and finally being able to do performance improvements), easy tweak for operations resource balancing, and more.

Another major work that thanks to the removal of the desktop code we can move forward with is the new views that I talked about in a previous blog post. We won’t make it for Nautilus 3.28 since it requires gtk+ work too, but now we can continue improving it in the Nautilus side and hopefully for 3.30 we can finally move to the next generation of content views.

And finally, this also allows for Nautilus to be ported to gtk4. This is really good news in various fronts for Nautilus; hopefully gtk4 stabilizes a little bit more and we can port to it for Nautilus 3.30.

I want to thank Ernestas and Antonio to work on these big changes and the help overall with Nautilus!

Leaving it to the distro runs into the fact that distros usually provide multiple desktops, with different ideas of whether to display icons on the desktop.

I don’t think we should let this up to the distro for GNOME sessions. To me this could be set to $HOME by GNOME Shell when it starts the session, and the desktop icons extension would instead set it to ~/Desktop. (because having this extension active means you intend to use it)

This way the default experience makes sense, without the confusion and headaches caused by this unused legacy folder; and those who can’t let it go only need to install am extension.

Hi just a note that a user can manually workaround this by modifying ~/.config/user-dirs.dirs to:
XDG_DESKTOP_DIR=”$HOME”

And to prevent losing files to non-compliant apps:

cd ~; rmdir Desktop
ln -s . Desktop
echo Desktop >> .hidden

Or a different destination symlink like “ln -s Downloads Desktop”. I find if you just delete Desktop some non-compliant apps recreate it. I don’t use the Downloads folder either so I repeat the above steps for it too.

Ironically I actually use this with desktop icons on because I like my home folder contents directly on my desktop, I find it simplifies the desktop metaphor even more!

While GNOME has done some really bad things in past like the removal of background-transparency from GNOME-TERMINAL or Type-Ahead-Find from NAUTILUS (fixed by Carlos!) this is not bad news. Of course somebody will not be happy about this, but the GNOME-SHELL is so much better than the awkward DESKTOP-METAPHER from Windows95. The keyboard-only usage of GNOME-SHELL is really an improvement. Similiar for the removal of the SystemTray which just was always misused by many applications, sadly Steam uses this. And guess what, I like the games (CS:GO, HL…) but don’t Steam.

Farewall to the Desktop. Long live to the SHELL 🙂

PS: Regarding the experimental views in “3.26”. Will the black padding around image-thumnails and the huge gaps between icons changed in Nautilus 3.28? Doesn’t feel intentional.

I don’t care if Nautilus provides desktop icon functionality or something else does that. As long as it works good and users are happy with the result. It’s more or less clear desktop icons aren’t going anywhere anytime soon. Regardless of all heated debates and attempts made in the past. Desktop icons are still here and will be here for years to come. In GNOME.

And i do imagine if the desktop icon extension that GNOME users would accept as suitable would be created before removal of this functionality from Nautilus. That would be better approach compared to saying we knew for 7 years we need a better solution. Therefore lets just remove the existing solution now and do the new one later. If it was possible to develop Nautilus for the past 7 years i am sure it would be for another year and in between a desktop icon extension could be made end users would accept as suitable.

Anyway the important thing we all learned in this past years is for GNOME taking a step back and accepting GNOME will have desktop icons functionality for years to come is inevitable.

Not really, many users are happy with the default GNOME experience without desktop icons (part of our job is to actually evaluate that!). It’s fine if you want to use it though, feel free to use any of the alternatives we explain here.

edit: but yeah it’s perfectly fine to have desktop icons provided by GNOME too, as that extension I started does.

I don’t quite get why there are no Reply icons on innermost comments, but this is to PDXWeb: The extension is in Gnome’s gitlab (project csoriano/org.gnome.desktop-icons) but I don’t think Carlos would object to me saying it’s not remotely usable yet.

The best solution is to install nemo-3.8.2 (if you’re running Fedora 28) and set nemo-desktop to autostart. It’s perfectly happy, surprisingly enough, to launch Nautilus as the default file manager when you double-click on a desktop icon. So, it completely solves the desktop icon problem for Nautilus users, without forcing them to use Nemo as their file browser.

True. But there are many users not happy (extremely unhappy) without having desktop icons. I guess both should be able to use preferred choice in GNOME? And this isn’t about some niche group of users but a whole lot of them.

I do read your answer in a way it gives some reassurance to me. That is upstream GNOME agreeing GNOME desktop icons is still a thing in 2018 and an important aspect of GNOME for years to come. Just not in Nautilus. That gives me the confidence this extension won’t stop working in next version or two of GNOME. In addition as the code in Nautilus was too hard to cope with hopefully the extension will provide some much needed love and innovation that didn’t happen over the years in desktop icon support in GNOME.

Like the ability to vertically or horizontally arrange the icons. In GNOME once desktop space is full. GNOME doesn’t know what to do with the additional icons. Stockpiling them in top right corner. Users having for example web browser set to save the downloads to desktop and things like that. Find themselves in such situation frequently. With the extension i do imagine now it should be possible to simply add a slider once the desktop is full. Like KDE does it. If that isn’t brilliant and modern i don’t know what is.

> That is upstream GNOME agreeing GNOME desktop icons is still a thing in 2018 and an important aspect of GNOME for years to come

Not really, that ship sailed quite a long ago… and it works well with our designs so far. I’m sorry if that doesn’t match your expectations. You can use the alternatives described here. Just remember that doesn’t need to be GNOME the provider of icons on the desktop, in the same way you use more applications for other needs.

> Just not in Nautilus.

Exactly, that’s the point. Nautilus is and should be only a file manager application. And that’s what we work on make it better!

There i guess goes the reassurance any serious plans regarding the desktop icons extension exist ATM. I am really sorry to hear that. I don’t agree that ship already sailed. As until 2018 desktop icons worked just fine in GNOME. Minus the lack of any innovation and development in desktop icon area in GNOME. But OK therefore some of us will just have to except the fact GNOME failed us in a radical manner this time. Fair enough.

I will try not to be too negative about it. But as this is such a huge sore spot that just screams for somebody with a bit of sanity and knowledge to address it. Hopefully somebody will step up in the future and do the right thing. That is all i can say for now.

To be honest, not sure what are you trying to convey apart of just putting everyone in a bad light, the alternatives posted in here are already better than the past nautilus desktop icons, one of the alternatives is actually Nautilus desktop icons forked, so literally what you had until now. Just use that if you believe that is the best option for you (you need a bit of work to not collide with Nautilus in DBUS, but apart from that, it should be straightforward).

As GNOME has an application for everything. Like for managing files, calendars, web, video, text … I don’t see any special reason on why there shouldn’t be an application for managing desktop. That i guess is what my point was.

And as some of us are extremely unhappy with the removal of desktop icon support from GNOME. We sincerely hope such application will be made in the future. And will be a part of GNOME. My hope therefore is somebody capable of creating such application will emerge in hopefully not too distant future and do it.

That is why i had to express my views here on this blog.

I don’t want to make anybody look or feel bad. And please understand my position. I don’t want to feel bad using GNOME too. I just want to continue to use desktop icons in GNOME. By not using some half working hacks instead of a proper GNOME application.

Personally, I’ve embraced the file-free desktop, but I see people using the desktop a lot to keep documents. I’m under the impression that some use it as a more discoverable default folder, and clutter it file countless files, while others use it as a more discoverable alternative to Nautilus’ bookmarks.

I tend to use it as a “to do” or “in progress” work storage, so when I boot my computer I know in a quick way what I need to focus on.
I’ll miss that feature for sure (at least during some time until I change somewhat my WoW), but this is not what is keeping me away from Gnome. Performance is.

Alienating the user base and their needs in my opinion isn’t the way to go. I will wait a few months more to see if a solution emerges. I won’t be a GNOME supporter anymore. If ignoring the users needs in such way will go on.

Release notes with new features are usually greeted with requests for more improvements. Any change in the workflow is met with vocal opposition. Happy or indiferent users mostly just carry on, without posting comments… Without a reliable count of the user base (or sales figures), it’s hard to tell the proportion of users unhappy with the change.

I’m not sure where did you get that, it’s my sincere hope that there is enough interest from people on their features and push for it. This hasn’t been the case for desktop icons, even if I started an initiative, wrote code, and encouraged people for it.

So I would say, encourage people to take the initiative on that? I’m more than willing on helping in that, but it needs people interested like you to take the initiative.

GNOME took the initiative to remove desktop icons, code supporting desktop icons and encouraged end users to believe this is the way to go. Saying that now somebody else has the capacity to change all that around in my opinion isn’t not going to work. Effectively alienating the user base and forcing at least a chunk of it to go elsewhere.

Wait, this is not GNOME, this is Nautilus as a file manager app. There are more providers of desktop icons, namely nemo-desktop is one of the best and you can use that together with Nautilus and the rest of GNOME. Why would you use a worse provider of that functionality?

Now, I still believe for those interested in desktop icons that what I propose here is the way to go, for all the technical reasons I exposed. But requires people interested enough on desktop icons.

I don’t feel it’s fair to say removal of desktop icons support from GNOME was the right call because of the fact nobody emerged yet to fix this problem. That therefore doesn’t indicate nobody is interested in GNOME supporting desktop icons out of the box. In my opinion it says nobody is yet interested in it due to technical knowledge needed. You basically need to develop a file manager for the desktop in a programing language majority of developers don’t know or use. If you want to have things like files, folders, launchers on it … In addition in Nautilus you didn’t have to do much once the functionality was added. With extension you basically need to update it with new GNOME releases?

Once this feature gets reintroduced in GNOME popular news web sites will likely advertise it as the next best thing? Anyway enough from my side for now. I am still hoping the solution will emerge in a couple of month. At some point i will have to upgrade my desktop environment and if GNOME won’t have support for desktop icons i will need to use and support something else. I am not interested in gluing together different pieces of different desktop environments as that never works as good as desktop environment having support by default.