9.5. 设置自定义默认值

计算机范围的默认设置可以通过给“dconf”配置文件中的键值提供默认值的方式来设定。用户可以重写这些默认值。
如要给键值设置默认值,“user”配置文件必须存在,并且必须在“dconf”数据库中为这个键值添加一个值。

例 9.1. 设置默认背景

  1. /etc/dconf/profile/user 中创建一个 user 配置文件。
    user-db:user
    system-db:local
    local 是一个“dconf”数据库的名称。
  2. /etc/dconf/db/local.d/01-background 中为本地数据库创建一个包含以下默认设置的 keyfile
    # dconf path
    [org/gnome/desktop/background]
    
    # GSettings key names and their corresponding values
    picture-uri='file:///usr/local/share/backgrounds/wallpaper.jpg'
    picture-options='scaled'
    primary-color='000000'
    secondary-color='FFFFFF'
    在默认设置 “关键文件 ”的过程中,会使用到以下 GSettings 键值:

    表 9.1. org.gnome.desktop.background schemas GSettings 键值

    键值名可能值描述
    picture-options(图片选项)“none”、“wallpaper”、“centered”、“scaled”、“stretched”、“zoom”、“spanned”决定如何渲染由 wallpaper_filename 设置的图片。
    picture-uri(图片路径)具备路径的文件名背景图片使用的 URI。请注意,后端仅支持本地(file://)URI。
    primary-color(主要色)默认值:000000作渐变梯度或者纯色时的左侧或顶部颜色。
    secondary-color(次要色)默认值:FFFFFF作渐变梯度时的右侧或底部色彩,不可用于纯色。
  3. 根据喜好编辑 “关键文件 ”。更多信息请参见〈第 9.3 节 “浏览桌面应用的 GSettings 值”〉。
  4. 更新系统数据库:
    # dconf update

重要

当创建或更改“用户”文件后,用户需在应用更改之前登出并重新登录。
如果您想避免创建 user 文件,您可以使用 dconf 命令行实用工具来向“dconf”数据库读取写入单独值或者整个目录。更多信息请参见 dconf(1)手册页。

9.5.1. 锁定特定设置

dconf”中的锁定模式是非常有用的工具,用来防止用户更改特定设置。
如果要锁定一个“GSettings”键值,您需要在关键文件目录中创建一个 locks 子目录(例如, /etc/dconf/db/local.d/locks/)。这个目录中的文件包含了一列需锁定的键值,您可以在此目录中添加多个文件。

重要

如果您不通过使用锁定来加强系统设置,用户就能够很容易地用他们自己的设置覆盖系统设置。除非有一个加强系统设置的锁定,否则的话用户设定的任何设置将会优先于系统设置。
下面的例子演示了如何锁定默认墙纸的设置。您可以按照这个步骤锁定任何需要锁定的设置。

例 9.2. 如何锁定默认墙纸

  1. 设定一张默认墙纸。
  2. 创建一个名为 /etc/dconf/db/local.d/locks/ 的目录。
  3. 编辑 /etc/dconf/db/local.d/locks/00-default-wallpaper,并在每行列出一个键值:
    # Prevent users from changing values for the following keys:
    /org/gnome/desktop/background/picture-uri
    /org/gnome/desktop/background/picture-options
    /org/gnome/desktop/background/primary-color
    /org/gnome/desktop/background/secondary-color
  4. 更新系统数据库:
    # dconf update