caja把它的偏好放在哪里

caja把它的偏好放在哪里

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

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

$ caja --version
MATE caja 1.20.2

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

~/.config/mate$ ls
eom  panel2.d

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

然后我尝试了——

:~/.cache/mate$ ls
background

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

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

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

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

答案1

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

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

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

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

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

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

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

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

$ dconf dump /org/mate/caja/

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

$ dconf dump /org/mate/caja/ > cajaprefs.txt
$ $EDITOR cajaprefs.txt
$ dconf load /org/mate/caja/ < cajaprefs.txt

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

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

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

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

$ dconf read /org/mate/caja/preferences/use-iec-units
false
$ dconf write /org/mate/caja/preferences/use-iec-units true

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

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

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

答案2

我想这现在是在 mime 配置中。有很多位置大致与open with 对话框中的重复次数有关!对于配置文件的多次重复,该算法可能不够干净。

  • /home/user/.config/mimeapps.list
  • /home/user/.local/share/applications/mimeinfo.cache
  • /var/lib/flatpak/exports/share/applications/mimeinfo.cache
  • /var/lib/snapd/desktop/applications/mimeinfo.cache
  • /usr/share/applications/mimeinfo.cache
  • /usr/share/mime/mime.cache

对于 xfce4 有一个额外的应用程序/usr/bin/xfce4-mime-settings

获得更多洞察的方法是检查文件管理器(caja)或 mime 设置应用程序正在读取的内容:
strace caja |& grep -E "stat|access|open" | grep -v ENOENT | grep mime

然而这仍然是一项乏味的工作。我设法将一些配置文件移开,它变得更好了一些,但还不够完美:(

相关内容