How can I edit Nautilus Places sidebar and Unity QuickList?

I'm running Ubuntu 13.04 with Nautilus 3.6 and I want to edit the Nautilus Places sidebar menu (Not Bookmarks).

By default have the following items: Recent, Home, Desktop, Documents, Downloads, Music, Pictures, Videos & Trash.

I wish:

  • Add folder to Places (Not Bookmarks).
  • Added Folder must be present in Unity QuickList (Right Click Nautilus icon in Launcher).
  • Remove Recent files (Default in Nautilus 3.6).
  • Rename Trash to another name.

how can I achieve these goals?

NOTE: I tried editing ~/.config/user-dirs.dirs file, but not luck. Is there another way to customize Nautilus Places menu?


Solution 1:

In order to achieve that.. you should edit the Nautilus source code and the nautilus.desktop file or using another file manager that allows this, such as nemo.


NOTE: In this example I'm running ubuntu 13.04 with nautilus (files) 3.6.3.
You can test this in a virtual machine to see if everything is OK.


1) Make sure you have enable the Source code repository

  • Open the Ubuntu Software Center
  • In the Menu Bar choose Edit -> Software Sources. Click to enable "Source code repository". Just in case I use the "Main Server" to Download.

enter image description here

Open a Terminal Window to update the repositories.

  • sudo apt-get update

2) In the Terminal type the following to install the necessary packages.

  • sudo apt-get install build-essential quilt

3) Install build dependencies.

  • sudo apt-get build-dep nautilus

4) Create a folder to download the source code.

  • mkdir ~/Downloads/src

  • cd ~/Downloads/src

5) Download the source code & Export variables.

  • apt-get source nautilus

  • export QUILT_PATCHES=debian/patches

  • export EDITOR=gedit

6) Create the patch and edit the source code.

  • cd nautilus-3.6.3/

  • quilt new my_custom_places.patch

  • quilt edit src/nautilus-places-sidebar.c


Custom Trash: To change the name of the Trash.You can change the strings in the lines 567 and 569.

eg: "Trash" to "Custom Trash" & "Open the trash" to "Open the Custom Trash"

enter image description here


Add Folder: In this example I will add the "Test" folder in my home directory /home/virtual/Test. (change the folder according to your needs)

After the line number 562 add the following:

/* add Test directory */
mount_uri = "file:///home/virtual/Test";
icon = g_themed_icon_new (NAUTILUS_ICON_FOLDER);
add_place (sidebar, PLACES_BUILT_IN,
       SECTION_COMPUTER,
       _("Test"), icon, mount_uri,
       NULL, NULL, NULL, 0,
       _("Open Test folder"));
g_object_unref (icon);

enter image description here


Remove Recent Files: To remove the Recent Files from the places... delete the lines from 525 to 534.

enter image description here

Save the changes.


7) Build the deb packages.

  • quilt refresh
  • fakeroot dpkg-buildpackage

8) Install the deb packages.

  • cd ..

  • sudo dpkg -i *deb

9) For system-wide..edit the nautilus.desktop file to add the folder eg:(/home/virtual/Test) in the quick list.

  • sudo nano /usr/share/applications/nautilus.desktop

Change:

Actions=Window;

To:

Actions=Test;Window;

Add:

[Desktop Action Test]
Name=Test             
Exec=nautilus --new-window /home/virtual/Test
OnlyShowIn=Unity;

Before:

enter image description here

After:

enter image description here

10) Finally you can logout and Login to see the changes.

RESULT:

enter image description here

Hope this helps.

Solution 2:

I found an easy way outlined on SO.

Please follow the instructions outlined in this link - this solved the same problem I had.

Excerpts:

gedit ~/.config/user-dirs.dirs

Remove the list you do not want. However, once you login again, it will reset, so

echo "enabled=false" > ~/.config/user-dirs.conf

Solution 3:

For nautilus of ubuntu 14.04, you will have to edit gtk3.10, the same way as stated above, as the SideBar functionality was now ported into gtk (so that the file-open dialogue sidebar and the nautilus-sidebar are not separated implementations any more)

edit /gtk/gtkplacessidebar.c

I also tried this http://pastebin.com/K4GcHrz7 in nautilus-window.c, as there is https://developer.gnome.org/gtk3/stable/GtkPlacesSidebar.html#gtk-places-sidebar-add-shortcut but get a segfault, not a good (gtk) programmer though.

Solution 4:

On my system (Ubuntu 14.04.1 LTS), the file you want is found at ~/.config/gtk-3.0/bookmarks Older versions used to keep this in ~/.gtk-bookmarks. Entries are URIs, so filepaths must be absolute and prefixed with file://.