Nautilus – How to Make Nautilus Automatically Suggest ‘Documents’ Folder for PDF Files

filesfoldernautiluspdf

In Ubuntu 11.10, how can I set up nautilus so that when I select "Save as…" on Evince or some other PDF viewer, for a PDF I downloaded with the browser, it automatically suggests the folder 'Documents' for saving that pdf file?

Right now it just gives me the last folder that was used to save something before. I remember 11.04 was doing exactly this, which is convenient to keep all pdfs in a single folder.

Best Answer

Why...

In this answer I'm concentrating on evince since you mentioned this as your key application in the question.

Looking at the source-code, the Save-As dialog only sets the default filename. Since no folder is defined, the GTK3 libraries assume that the Recently Used folders is the first folder to be displayed in the dialog.

GTK3 applications have to explicitly set the folder to first search in.

Personally I think the default folder for evince should be defined - as such you should file this on bugzilla as a bug/wish-list request.

How...

The following is one way way to force evince to default to the Documents folder rather than the previous recently used.

In summary, the source is changed to obtain the default Document folder and set this as the default folder for the Save-As dialog.

enter image description here

install the basic development tools

sudo apt-get install devscripts build-essential fakeroot 

get the source

cd ~/Downloads
mkdir build
cd build
apt-get source evince
cd evince*

make the change

Open ev-window.c

gedit shell/ev-window.c

Copy and paste the following into the file at the position shown in the image

const gchar *folder;
folder = g_get_user_special_dir (G_USER_DIRECTORY_DOCUMENTS);
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fc),
                             folder ? folder : g_get_home_dir ());

enter image description here

Save and close gedit

give it a unique package name

OK, we need to give the package a unique name to prevent repository updates from overwriting your changed package

gedit debian/changelog

now append +yourname to the top line version and save

i.e. evince (3.2.1-0ubuntu2+fossfreedom)

build the package

sudo apt-get build-dep evince
debuild -us -uc

N.B. this will download 161Mb of dependencies

Go for a coffee... and probably lunch!

cd ..
sudo dpkg -i evince_3.2*.deb

As an aside - to keep this new version of evince from being upgraded in the future, use synaptic to pin this version of evince.