如何让 nautilus 自动为 pdf 文件建议文件夹“文档”?

719*_*016 14 nautilus pdf folder files

在 Ubuntu 11.10 中,如何设置 nautilus,以便当我在 Evince 或其他一些 PDF 查看器上选择“另存为...”时,对于我使用浏览器下载的 PDF,它会自动建议文件夹“文档”以保存该文件pdf文件?

现在它只是给了我以前用来保存某些东西的最后一个文件夹。我记得 11.04 正是这样做的,这样可以方便地将所有 pdf 文件保存在一个文件夹中。

fos*_*dom 9

为什么...

在这个答案中,我将重点放在 evince 上,因为您提到这是问题中的关键应用程序。

查看源代码,另存为对话框仅设置默认文件名。由于没有定义文件夹,GTK3 库假定最近使用的文件夹是对话框中显示的第一个文件夹。

GTK3 应用程序必须明确设置要首先搜索的文件夹。

我个人认为应该定义 evince 的默认文件夹 - 因此您应该将其作为错误/愿望清单请求提交到 bugzilla 上。

如何...

以下是强制 evince 默认为Documents文件夹而不是之前最近使用文件夹的一种方法。

总之,源更改为获取默认文档文件夹并将其设置为“另存为”对话框的默认文件夹。

在此处输入图片说明

安装基本的开发工具

sudo apt-get install devscripts build-essential fakeroot 
Run Code Online (Sandbox Code Playgroud)

获取来源

cd ~/Downloads
mkdir build
cd build
apt-get source evince
cd evince*
Run Code Online (Sandbox Code Playgroud)

做出改变

打开 ev-window.c

gedit shell/ev-window.c
Run Code Online (Sandbox Code Playgroud)

将以下内容复制并粘贴到文件中如图所示的位置

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 ());
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

保存并关闭gedit

给它一个唯一的包名

好的,我们需要给包一个唯一的名称,以防止存储库更新覆盖您更改的包

gedit debian/更改日志

现在附加+yourname到顶行版本并保存

IE evince (3.2.1-0ubuntu2+fossfreedom)

构建包

sudo apt-get build-dep evince
debuild -us -uc
Run Code Online (Sandbox Code Playgroud)

注意这将下载 161Mb 的依赖项

去喝杯咖啡……可能还有午餐!

cd ..
sudo dpkg -i evince_3.2*.deb
Run Code Online (Sandbox Code Playgroud)

顺便说一句 - 为了防止这个新版本的 evince 在未来升级,使用突触来固定这个版本的 evince。