Nov 20,
2017

My Biggest Nautilus Annoyance

Greetings people!

Today I would like to spend some words about user interfaces or how usually some program's design decisions could make you shake your head, shake your fist, rise your voice against the monitor or in the worst cases trigger an even more energetic response1.

This time the culprit is Nautilus, the Gnome file manager, or more specifically the behavior of the new2 long file operations indicator. The Gnome developers decided to review the notification system and now for any operation that takes more than a few seconds a notification pop-up is displayed below the Nautilus title bar.

The pop-up reports the estimated time of completion with an animated progress bar, while a button with a increasing disk sector animation is displayed on the title bar, which both should disappear when the operation is completed.

Or at least that I suppose was the developers' idea.

There's an irritating detail in the new implementation: the pop-up is displayed in every currently opened Nautilus window and the frustrating part is, the thing will not go away until it's acknowledged on every opened Nautilus window. Miss a single one and it will still be displayed on newly created windows. I usually resolved opening a shell and killing the file manager.

(ノ°□°)ノ彡┻━┻

Yup, that bad.

According to bug reports it's fixed upstream, but unfortunately it happened only after it entered in current Debian stable, so I'm stuck with it at least until Buster3 is released.

I can assure the reader it's super annoying.

I found it so really annoying that I was seriously considering to switch to Debian testing or going back to Debian unstable to get rid of it.

Before leaving the cozy Debian stable branch, I grumbling decided to invest a week-end afternoon to see if I could compile a recent Nautilus to my current Gnome installation without importing an avalanche of libraries dependencies4 or try to port the changes back on the current version.

Well, I overestimated the requirements as it didn't took an afternoon to fix it; I would guess I've already spent more time on this fine post.

Profit

The nimble patch is reported below:

--- nautilus-3.22.3.orig/src/nautilus-toolbar.c
+++ nautilus-3.22.3/src/nautilus-toolbar.c
@@ -633,7 +633,7 @@ update_operations (NautilusToolbar *self
         if (gtk_widget_is_visible (GTK_WIDGET (self)))
         {
             gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->operations_button),
-                                          TRUE);
+                                          FALSE);
         }
     }

It simply flips the state for the pop-up toggle button, from enabled to disabled. I wasn't thrilled to peruse the Nautilus code-base, fortunately in this case the rabbit hole wasn't really deep and in retrospect I should have done it earlier, fortunately I didn't destroyed any hardware by rage attack.

On a tangent note with Nautilus, in the strive of minimalism, when copying/moving multi gigabytes of files, there isn't a direct way to see which file is currently processed5, but nothing that can't be revealed with lsof and updated "live" with the watch command:

$ watch lsof -a -p $(pidof nautilus) +D /destination/dir

I seldom need it, but when I do I tend to always forget the correct options, especially the plus sign. Not so long ago I found a nifty command line utility in the Debian repository called progress that can provide a progress indicator of data I/O plus an estimated time of completion for the common commands like cp, mv, dd.


  1. throwing a PC outside of a window usually isn't a viable option but I was tempted more than once in the past ↩︎

  2. "new" is relative, considering that Debian's Gnome is currently 2 releases behind upstream ↩︎

  3. the codename of the next Debian stable release ↩︎

  4. no can do, Nautilus 3.26 needs a newer Gnome tracker, libgnome-autoar and meson package ↩︎

  5. unless monitoring the destination directory, but it's not immediate if, for example, it's already populated ↩︎