在 Ubuntu 和 Kubuntu 11.10 中,我发现 GTK 文件选择器对话框的行为发生了变化。当我尝试打开新文件(编辑器中的第二个、第三个等,而不是第一个)时,对话框会显示“最近使用”部分。这对我来说非常不合适,在 10.04 中,对话框会显示上次打开的文件所在的文件夹。有人知道我该如何恢复旧的行为吗?
答案1
据我所知,这是 GTK+ 3.x 的一个“功能”,我不确定它是否可以改变。
如果我找到解决方案,我会更新我的答案,但目前我不知道任何解决方案(除了报告错误)。
更新:
我相信我可能找到了部分解决方案。但不幸的是,这不是永久的解决方案。
- 安装
dconf-tools
。 - 跑步
dconf-editor
。 - 导航
org.gtk.settings.file-chooser
。 - 将值更改
last-folder-uri
为您选择的文件夹,例如file:///home/rolandixor/Desktop
。 - 您的文件选择器对话框现在应该默认使用此文件夹。但是,如果您使用该对话框但实际上并未打开/保存文件,它们将恢复为最近使用的文件夹。
更新2:
由于这相当棘手,这里是另一种可能的解决方案(部分):
- 打开
gedit
。 - 打开一个文件(从您想要使用的文件夹中)。
- 将文件保存(另存为)到您想要使用的文件夹。
- 关闭 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:
或通过cli
sudo dnf install dconf-editor
启动它,然后导航至org.gtk.settings.file-chooser.startup-mode
似乎无法从dconf
cli 访问此密钥,但是您可以查看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