caja把它的偏好放在哪里

shi*_*ish 4 debian file-browser caja mate-desktop

我正在运行/使用 mate 1.20.2 amd,使用 caja 作为我的文件和文件夹资源管理器(基于 GUI)。

我试图找出 caja 将其偏好设置在哪里,但失败了。

$ caja --version
MATE caja 1.20.2
Run Code Online (Sandbox Code Playgroud)

我尝试首先在 .config/caja 中查看它是否有我正在寻找的内容 -

~/.config/mate$ ls
eom  panel2.d
Run Code Online (Sandbox Code Playgroud)

这两个文件夹都没有任何有趣的内容。

然后我尝试了——

:~/.cache/mate$ ls
background
Run Code Online (Sandbox Code Playgroud)

即使在那里我也找不到任何信息。

我也看了又看dpkg -L caja/usr/share/metainfo/caja.appdata.xml但找不到任何可以解释它可能在哪里的东西。

即使是直接在 caja 中构建的 F1 也无法说明任何问题。

有人可以帮忙找出它在哪里吗?

Wya*_*ard 5

抱歉,这是一个很长的答案。我希望您能从中学到一些东西,但我尝试在下一段中最直接地回答您的问题,然后使用答案的其余部分来详细说明这对于在 caja GUI 本身之外编辑设置意味着什么。

\n\n

许多 caja 的信息和设置通常可以存储在dconfGVariant 数据库(二进制文件)中,与许多其他 GUI 程序使用的相同。该文件可能存储在~/.config/dconf/user.

\n\n

并非所有 Caja 的功能都使用 dconf 进行更改(例如,根据 freedesktop.org 的规范,文件关联是单独处理且独立于 Caja 本身),但从一般意义上讲,dconf 数据库可能是您需要的地方正在寻找。

\n\n

请注意,以下假设 caja 使用 dconf,只有在 caja 环境中$GSETTINGS_BACKEND未设置或设置为 dconf 时才成立(它在所有安装中至少 90% 使用 dconf,默认情况下在 Debian/Ubuntu/dconf薄荷)。如果变量设置为等于gconf,则适用相同的基本思想,但使用不同的工具,并且设置可能保存在下面的 XML 文件中,~/.gconf而不是二进制数据库中。

\n\n

对于大多数用户来说,几年前dconf已经很大程度上更换为默认使用的 MATE。人们还可以直接使用CLI 工具来很大程度上绕过这种混乱(从技术上讲,MATE 使用 gsettings (GIO的一部分),它可以使用其中之一),但 dconf 语法非常好。几乎每个使用 MATE 的人都会使用 dconf,如果需要,可以很容易地使用 dconf,因为从用户角度来看,它的工作原理大多相似。gconfdconfgsettingsgconf

\n\n

您可以使用 GUIdconf-editor或 CLI 程序dconf来操作 dconf 的数据库。对于简单的编辑,我倾向于更喜欢 GUI,尽管我个人不太喜欢它的 Gnome3 风格的外观。但是,dconf如果您想使用文本编辑器来调整内容或希望以编程方式进行更改,则 CLI 工具非常方便。因此,以下是 CLI 工具的概述dconf以及基于我过去如何使用它的一些建议。

\n\n

在 Debian(可能还有 Ubuntu、Linux Mint 等)中,GUIdconf-editor位于dconf-editor软件包中,而 CLI 工具位于dconf-cli. 在遥远的过去,当我使用 Mint 时,也是如此。

\n\n

对于 CLI 的使用,一些示例可能会很方便。因此,使用dconf(CLI 工具)转储 caja 的所有设置,您可以执行以下操作

\n\n
$ dconf dump /org/mate/caja/\n
Run Code Online (Sandbox Code Playgroud)\n\n

/org/mate/caja/数据库文件中的内部“密钥”在哪里。请注意,该dconf工具要求所有键均以斜杠结尾。如果需要,您可以将dconf\ 的输出重定向到文件,以更传统的方式编辑该文件,然后恢复它:

\n\n
$ dconf dump /org/mate/caja/ > cajaprefs.txt\n$ $EDITOR cajaprefs.txt\n$ dconf load /org/mate/caja/ < cajaprefs.txt\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xe2\x80\xa6$EDITOR你选择的编辑器在哪里(我非常喜欢 emacs,但 MATE 默认编辑器是pluma)。

\n\n

有点有趣的是,dconf load [PATH]恢复了传递的数据stdin。因此,我习惯<从文件中获取输入,但也可以这样做cat cajaprefs.txt | dconf load /org/mate/caja/。我的方法只是避免cat生成进程,但它们应该以相同的方式运行。

\n\n

通过替换//org/mate/caja/还可以以文本形式导出整个数据库。请注意,如果误用,这可能会很危险,但有时在数据库中搜索也非常方便。

\n\n

您还可以使用单个命令读取或写入单独的设置,例如:

\n\n
$ dconf read /org/mate/caja/preferences/use-iec-units\nfalse\n$ dconf write /org/mate/caja/preferences/use-iec-units true\n
Run Code Online (Sandbox Code Playgroud)\n\n

请注意,我认为如果在其自己的 GUI 之外应用这些设置,您可能必须重新启动 caja 才能保留这些设置。程序之间处理 dconf 数据库手动更改的方式可能有所不同。我使用 Caja,但这些天在 FVWM 而不是 MATE 中使用,因此可能某些后台服务未运行,而这些服务通常会处理此类事情。

\n\n

dconf help或者dconf help [COMMAND]有助于找出进一步的用法。

\n\n

此外,您还可以在系统的架构目录中找到系统范围的默认值和一般架构信息。这通常是 的值$GSETTINGS_SCHEMA_DIR,或者通常/usr/share/glib-2.0/schemas/org.mate.caja.gschema.xml是未设置的值。Debian 使用这个路径,我上次检查的 Mint 也是如此。这些 XML 文件通常还包含各种设置实际用途的文本描述,这是一个方便的参考点。如果您比查看 XML 文件更喜欢的话,您还可以使用像这样的外部工具来阅读描述。

\n