为什么 dconf-editor 认为我的模式不存在?

为什么 dconf-editor 认为我的模式不存在?

使用一个相当简单的模式,只有一个布尔键,我无法得到dconf-编辑器接受该键实际上是在任何地方定义的,当我从 dconf-editor 导航到该键时,我收到一条警告,提示该键没有模式,并建议我将其删除。

设定(命令行工具)允许我很好地提取描述,表明架构dconf-editor安装正确。通过 gsettings 操作和读取密钥似乎运行良好,并且结果确实实时显示。

我的架构:

<?xml version="1.0" encoding="UTF-8"?>
<schemalist gettext-domain="example-schema">
  <schema
    id="org.example.schema"
    path="/org/example/schema/"
    >
    <key name="boolean_value" type="b">
      <default>false</default>
      <summary>A boolean value</summary>
      <description>A value that may be either true or false</description>
    </key>
  </schema>
</schemalist>

我已将架构放入/usr/share/glib-2.0/schemas,然后glib-compile-schemas .在 内部运行/usr/ share/glib-2.0/schemas。此后,当我使用 进行查询时gsettings,架构确实会显示出来,并且我可以访问boolean_value密钥。

我正在 Fedora 31(没有 Ask Fedora)上开发这个,使用 dconf-editor 3.34.4 和 gsettings 版本 2.62.5。

答案1

dconf-editor 实际上并不会对数据库进行任何适当的检查,而是在已知路径和 ID 之间进行映射,并利用这些映射来确定如何描述密钥。此列表已硬编码到程序中,需要重新编译才能更新。

结果是,除非您的模式在该列表中,否则 dconf-editor 将不会知道它;如果您希望用户从 dconf-editor 获得良好的反馈,您需要修改他们的程序版本,编译它然后安装它。

相关内容