我可以阻止应用程序在文件选择器对话框中默认选择“最近使用”吗?

我可以阻止应用程序在文件选择器对话框中默认选择“最近使用”吗?

在 Ubuntu 和 Kubuntu 11.10 中,我发现 GTK 文件选择器对话框的行为发生了变化。当我尝试打开新文件(编辑器中的第二个、第三个等,而不是第一个)时,对话框会显示“最近使用”部分。这对我来说非常不合适,在 10.04 中,对话框会显示上次打开的文件所在的文件夹。有人知道我该如何恢复旧的行为吗?

答案1

据我所知,这是 GTK+ 3.x 的一个“功能”,我不确定它是否可以改变。

如果我找到解决方案,我会更新我的答案,但目前我不知道任何解决方案(除了报告错误)。

更新:

我相信我可能找到了部分解决方案。但不幸的是,这不是永久的解决方案。

  1. 安装dconf-tools
  2. 跑步dconf-editor
  3. 导航org.gtk.settings.file-chooser
  4. 将值更改last-folder-uri为您选择的文件夹,例如file:///home/rolandixor/Desktop
  5. 您的文件选择器对话框现在应该默认使用此文件夹。但是,如果您使用该对话框但实际上并未打开/保存文件,它们将恢复为最近使用的文件夹。

更新2:

由于这相当棘手,这里是另一种可能的解决方案(部分):

  1. 打开gedit
  2. 打开一个文件(从您想要使用的文件夹中)。
  3. 将文件保存(另存为)到您想要使用的文件夹。
  4. 关闭 gedit。只有当您实际从文件夹中打开文件并保存到文件夹时,此操作才会起作用。如果您打开对话框但不执行任何操作,则关闭对话框时会恢复原状。没有办法解决这个问题。

答案2

对于 GTK2,您需要编辑$XDG_CONFIG_HOME/gtk-2.0/gtkfilechooser.ini和设置

StartupMode=cwd

对于 GTK3,没有办法更改它。在旧版本中,此命令可能有效

gsettings set org.gtk.Settings.FileChooser startup-mode cwd

答案3

我也对这种行为感到困扰,并在过去的几天里对其进行了仔细的研究。

到目前为止,我发现只有一个 GTK3 应用程序在每次启动时都会显示“最近使用”:Gedit。我测试过的所有其他应用程序(Totem、Eog、Evince、File-Roller 等)都从文件选择器中的“普通”文件夹开始(使用全新来宾会话进行测试)。

因此我做了一个小补丁,使 Gedit 回到主文件夹而不是最近使用文件夹:http://pastebin.com/GhXCRzNV

如果需要,我还可以提供 debdiff,或者创建 PPA。

答案4

last-folder-uri下次使用文件选择器时将会发生变化,您需要设置startup-mode

通过软件中心安装 dconf-editor:

Dconf 编辑器的 Gnome 软件条目

或通过cli

尝试安装 dconf-editor 的 dconf 自动完成输出

sudo dnf install dconf-editor

启动它,然后导航至org.gtk.settings.file-chooser.startup-mode

在此处输入图片描述

似乎无法从dconfcli 访问此密钥,但是您可以查看gsettings

gsettings set org.gtk.gtk4.Settings.FileChooser startup-mode 'cwd'

如果您收到 gsettings 正在使用内存后端的错误,那么您可能需要检查gsettings您正在使用哪个可执行文件:

which gsettings
# MYHOME/.asdf/shims/gsettings

(就我而言,我忘记我已经安装了带有 asdf 的 anaconda python,它带来了一大堆不必要的垫片)

asdf uninstall python anaconda-2018.12

相关内容