桌面迁移与管理指南
GNOME 3 桌面的迁移规划和管理之指南。
摘要
第 1 章 介绍 GNOME 3 桌面系统
1.1. GNOME 3 是什么?

图 1.1. GNOME 3 桌面系统(GNOME 经典版)
- GNOME Shell
- GNOME Shell 系统是图像直观的现代用户界面。它提供了高质量的用户体验,其中包含视觉效果和硬件加速支持。详细信息请参考〈第 1.2 节 “什么是 GNOME shell?”〉。
- GNOME 经典版
- GNOME 经典版是新旧版本的结合;它保持了GNOME 2 熟悉的外观和感受,但增加了 GNOME shell 系统强大的新特点和 3-D 功能。GNOME 经典版是红帽企业版 Linux 7 系统的默认 GNOME 会话和 GNOME shell 模式。详细信息请阅读章节 〈第 1.3 节 “什么是 GNOME Classic?”〉。
- GSetting
- GSettings 是一个配置存储系统,它代替了旧 GNOME 版本中的“
GConf”。更多有关“GConf”到 GSettings 转变的信息,请参见〈第 3 章 GSettings 和 dconf〉。更多关于如何使用 GSettings 配置桌面的信息,请阅读〈第 9 章 用 GSettings 和 dconf 来配置桌面〉。 - GVFS
- 总体来说,“
GVFS”为 GNOME 桌面系统提供了完整的虚拟文件系统设施并对储存器进行管理。GNOME 3 通过“GVFS”与在线文件存储服务、日历和通讯录很好地结合,因此您可以在同一个地方对所有数据进行访问。更多内容请阅读〈第 15 章 虚拟文件系统和磁盘管理‧“GVFS”〉。 - GTK+
- “
GTK+”是用来创建图形用户界面的多平台工具包,它提供了高可用性、功能多样化的应用程序界面。有了“GTK+”,GNOME 3 才能够改变应用程序外观,或者提供平滑的图像外观。除此之外,“GTK+”还包含了大量的特点,比如支持面向对象编程(GObject)、充分支持国际字符集和文本布局(Pango),或者包含一组访问接口(ATK)。
1.2. 什么是 GNOME shell?
- 顶部菜单栏。
- 屏幕顶部的水平导航栏提供对一些 GNOME shell 基本功能的访问路径,比如“
活动概览”,时钟和日历、系统状态图标,以及屏幕左上方的系统菜单。 - 活动概览。
- 视窗和应用视图是“
活动概览”的主要特点,可以使用户运行应用程序和视窗,并在这两者之间进行切换。顶部的“检索入口”允许用户搜索桌面上多个可用的项目,包括应用程序、文档、文件和配置工具。左侧的垂直条被称为“dash”,它包含了收藏的和正在运行中的应用程序列表。“工作区列表”显示在右侧,它允许用户在多个工作区间进行转换,或者将应用程序和视窗从一个工作区转移到另一个工作区。 - 讯息匣。
- “
讯息匣”是靠近屏幕底部的水平栏,它会在用户键入Super+M 时显示。它提供对搁置通知的访问。 - GNOME Classic 的特定组件。
- GNOME Classic 是红帽 Linux 7 系统企业版 GNOME shell 模式的默认设置。它改变了GNOME Shell 某些方面的行为以及 GNOME shell 的外观。其中包括底部栏的窗口列表,和顶部栏中的“” 以及 “”。更多有关 GNOME Classic 的详细信息,请参见〈 第 1.3 节 “什么是 GNOME Classic?”〉 。
1.2.1. 硬件加速和软件渲染
Clutter”提供的硬件加速支持,一个以 OpenGL 为基础的图形库。
llvmpipe”驱动提供的。
glxinfo 命令,来确定系统是否使用软件渲染和“llvmpipe”驱动。
$ glxinfo | grep renderer
OpenGL renderer string: Gallium 0.4 on llvmpipe (LVVM 3.3, 128 bits)1.3. 什么是 GNOME Classic?
- “” 和 “” 菜单。
- “”菜单显示在屏幕的左上方。它准许用户使用按类别分组的应用程序。用户也可以在此菜单上打开“
活动概览”。“”菜单在“”菜单的旁边,并显示在“顶部菜单栏 ”上。它允许用户快速访问重要的文件夹,比如“”或者“”。 - 任务栏。
- 任务栏显示在屏幕的底部,特点有:
- 窗口列表、
- 在窗口列表旁,显示的提示图标、
- 在提示图标旁,现实的当前工作空间短识别符,以及可用空间的总量。
- 四个可用的工作空间。
- 在 GNOME Classic 中,用户可用的默认工作空间量的默认设置为四个。
- 最小化、最大化按钮。
- GNOME Classic 窗口标题栏的特点是最小化和最大化按钮,它们可以让用户快速地将窗口最小化到窗口列表中,或者将窗口最大化到桌面大小。
- 传统的 Super+Tab 窗口切换器。
- 在 GNOME Classic 中,Super+Tab 窗口切换器中的窗口不在应用程序分组中。

图 1.2. 配备计算机应用和应用程序菜单配件子菜单的 GNOME Classic
1.3.1. GNOME Classic 扩展
- AlternateTab (“
alternate-tab@gnome-shell-extensions.gcampax.github.com”)、 - 应用程序菜单 (“
apps-menu@gnome-shell-extensions.gcampax.github.com”)、 - 启用新实例 (“
launch-new-instance@gnome-shell-extensions.gcampax.github.com”)、 - 放置状态显示器 (“
places-menu@gnome-shell-extensions.gcampax.github.com”)、 - 窗口列表 (“
window-list@gnome-shell-extensions.gcampax.github.com”)。
1.3.2. GNOME Classic 与 GNOME 的相互转换
$ gnome-shell --mode=user -r &$ gnome-shell --mode=classic -r &1.3.3. 禁用 GNOME Classic 为默认会话
/var/lib/AccountsService/users/username 文件中修改用户的账户服务来为某个特定用户覆盖这个默认设置。如何修改的细节内容请参见〈 第 14.3.2 节 “配置用户默认会话”〉。
1.4. 获取更多信息
活动概览”,输入 help,然后按 Enter 键。
部分 I. 迁移规划
- 关于诸如“
GRUB 2”引导装载程序、软件包管理、“systemd”,或者计算机配置的部分,请参见《 红帽企业版Linux 7 系统管理员指南》。 - 《红帽企业版Linux 7系统迁移规划指南》是对红帽企业版Linux 6系统和红帽企业版Linux 7系统两者之间的运行状况和兼容性的主要变化概览,同时也介绍了由红帽提供辅助升级至红帽企业版Linux 7 系统所需要的工具。
- 关于安装红帽企业版Linux 7 和使用Anaconda安装程序的详细信息,请参考《红帽企业版Linux 7 系统安装指南》。
第 2 章 logind
logind”(更确切的说,是“systemd-logind”)是管理用户登录的系统服务。这项服务将负责以下内容:
- 追踪用户和会话,其过程以及它们的空闲状态,
- 为用户进程创建控制组,
- 为用户提供以 PolicyKit 为基础的操作访问,比如系统关闭或休眠操作,
- 执行应用程序的关机/休眠抑制逻辑,
- 开机/休眠硬件钥匙的处理,
- 为用户提供 multi-seat (多座位)管理,会话切换管理,以及设备访问管理,
- 在虚拟终端(控制台)激活自动大量生成文本登录(getty),管理用户运行时目录。
logind”服务是红帽企业版 Linux 7 中新的初始化系统,它取代了红帽企业版 Linux 6 中的“upstart”初始化系统,并与“systemd”紧密结合。这个变化带来了许多新特点和新功能。以下是对那些最重要的特点与功能的概述:
- ConsoleKit
- “
ConsoleKit”框架在红帽企业版 Linux 7 中是禁用的。“systemd”提供与之相同的功能。“ConsoleKit”和“logind”都是追踪当前运行用户会话的服务。注意
“ConsoleKit”之前能够在系统中的活动会话改变时,运行任意的外壳脚本(使用虚拟终端切换)。现在将不再提供这个功能。 - /var/log/ConsoleKit/history 文件
- “
ConsoleKit”之前可以向/var/log/ConsoleKit/history发送日志文件,而现在的“logind”则不支持这个功能。这个文件被传统的追踪系统中所有登录和登出的wtmp文件和utmp文件所取代。/var/log/ConsoleKit/history所提供的信息与wtmp文件所提供的信息基本相同,只是格式不同而已。考虑到功能上的重叠,“logind”仅仅扮演了“wtmp”文件的角色。 - seat.d 脚本
- 但是既然已不再使用“
ConsoleKit”,则“seat.d”脚本语言也不再是“ConsoleKit”框架中的一部分,并已由“systemd-logind”替代。 - ck-list-sessions 命令
- “
ConsoleKit”提供了返回最近用户扩展信息的ck-list-sessions命令,不仅是普通用户而且包含对“GDM”进行 GUI 访问。要达到相似结果也可以运行“loginctl”命令。$loginctl list-sessions - multi-seat 支持(多座位支持)
- “
logind”和“GDM”提供了使用户可以将其他显示器,鼠标,或者键盘添加到 multi-seat 的功能。这么做的话,就会出现一个额外的登录界面,用户在使用其他的设备时也可进行登录。运行以下命令可以列出系统中可用的座位:$loginctl list-seats运行以下命令可以显示系统中某个特定座位的状态:$loginctl seat-status seat其中 seat 是座位的名称,比如“seat0”。运行以下命令,为某个特别的座位指派特定的硬件:#loginctl attach seat device其中 seat 是座位的名称,比如“seat1”,同时 device 是用/sys设备路径指定的设备名称,比如/sys/devices/pci0000:00/0000:00:02.0/drm/card0。如果要更改任务,将硬件指定到另一个座位,或者使用loginctl flush-devices命令。
2.1. 获取更多信息
systemd-logind.service(8)–“logind”的手册页提供了更多关于“logind”用量和特征的信息。它同时涵盖了“systemd-logind”提供的 API(logind D-Bus API 文件)。logind.conf(5) – 讨论登录管理员配置文件的logind.conf的手册页。loginctl(1)–“systemd”登录管理员的手册页包含了更多 multi-seat 特点的信息。
第 3 章 GSettings 和 dconf
GConf”(作储存用户偏好用)转变为“GSettings”高级设置系统和“dconf”后端的相结合。除了作为后端,“dconf”同时也是将系统硬件和软件配置细节以单一、紧致、二进制格式储存起来的程序。
- GConf
- 如上所述,“
GConf”配置系统由以下两个系统代替:“GSettings”API 和低级别配置系统“dconf”后端。“gsettings”命令行工具和“dconf”实用工具两者都用来查看和变更用户设置。“dconf”实用工具使用“dconf-editor”GUI 来编辑配置数据库,而“gsettings”实用工具则会直接作用在终端。更多关于“dconf-editor”和“gsettings”实用工具的信息,请参见〈第 9 章 用 GSettings 和 dconf 来配置桌面〉。 - gconftool
- “
gconftool-2”工具已经由“gsettings”和“dconf”替代。同样,“gconf-editor”也已由“dconf-editor”替代。 - 重写
- keyfile(关键文件)的概念在红帽 Linux 7 企业版中已有引用:dconf 实用工具允许程序管理员通过直接安装 default overrides(重写默认设置)来覆盖默认设置。例如,所有的用户现在可以通过执行关键文件目录,比如
/etc/dconf/db/local.d/)中的覆盖应用 dconf 来设置默认背景。想要了解更多有关默认值和覆盖设置的信息,请参见〈第 9.5 节 “设置自定义默认值”〉。 - 锁定设置
- “
dconf”系统现在允许锁定个人或者整个设置子路径,来防止用户自定义。更多如何锁定设置的信息,请参见〈第 9.5.1 节 “锁定特定设置”〉。 - NFS 和 dconf
3.1. 获取更多信息
第 4 章 PolicyKit
PolicyKit”实用工具是一个框架,它提供了一个为无特权程序 subjects 提供服务的特权程序(mechanisms)使用的授权 API。“PolicyKit”的相关变化或者它的系统名称“polkit”所历经的细节改变如下。
4.1. 策略配置
*.pkla 和 *.conf 中,它们通过使用键值对,来定义额外的本地授权。
polkit”规则是储存在 /etc/polkit-1/rules.d/ 目录下的,第三方软件包则储存在 /usr/share/polkit-1/rules.d/ 中的。
.conf 和 .pkla 配置文件与 .rules 文件保存在一起,并同时存在。考虑到兼容性的问题,红帽企业版 Linux 7 中的“polkit”进行了升级。
polkitd”现在按照字母顺序从 /etc/polkit-1/rules.d 和 /usr/share/polkit-1/rules.d 目录中读取 .rules 文件。如果有两个名字相同的文件,相较于 /usr 中的文件,/etc 中的文件则将优先进行处理。除此之外,/etc/polkit-1/rules.d/49-polkit-pkla-compat.rules 文件应用现有规则。因此,只要文件名在字母顺序中排在 49-polkit-pkla-compat 之前,它们就可以由 .rules 在/usr 或者 /etc 中重写。确定您的旧规则没被改写的最简单的方法就是命名所有其它 .rules 时,起始数字都大于49。
/etc/polkit-1/rules.d/10-enable-mount.rules 文件中:
例 4.1. 允许在系统设备中安装文件系统
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" &&
subject.isInGroup("storage")) {
return polkit.Result.YES;
}
});更多信息请参见:
polkit(8) – 描述 JavaScript 规则和优先规则的手册页。pkla-admin-identities(8) 和pkla-check-authorization(8) – 分别是.conf和.pkla文件格式的资料说明手册页。
4.2. 默认策略
/etc/polkit-1/rules.d/50-default.rules 中。
注意
sudo”用户被允许使用其他用户的安全权限去运行程序时,“管理员”将成为 wheel 组的一员去提供额外授权用户执行受限命令的特殊系统权限。
4.3. 脚本语言的检查权限
pkcheck”实用工具,现在为 ----process 选项提供新选项,以新的参数来指定程序,从而使命令更加安全。新格式如下所示:--process pid,start-time,uid
--process 选项本身并不是新的,只有它的参数是新的:pid、start_time,和 uid 可使用确切的值进行替换。在 pkcheck(1) 手册页提及的其它值依然存在,但被认为是不安全的。
重要
pkcheck”的脚本语言需要使用新格式,来避免竞争条件的出现。
4.4. 扩展 polkit 配置
.rules 文件,来调用外部程序从而达到类似的作用。
polkit”取消了对替换“PolkitBackendActionLookup”实现(用来为验证对话框提供数据的界面)的支持。
polkit”的信息,请参见 polkit(8)手册页。
第 5 章 GDM
GDM”是“GNOME 显示管理器”,它提供了一个图形登录环境。在 GNOME 2 向 GNOME 3 的过渡之后,只有通过“systemd”才可以设置“GDM”,因为 GNOME 3 不再支持其他初始化系统。
- gdm 软件包
- gdm 软件包取代了 xorg-x11-xdm 软件包,它为 X Window 系统提供了旧版的显示登录管理器。如前所述,gdm 软件包提供了图形登录屏幕,它在启动、登出,和用户切换不久之后则会显示。
- GDM 和 logind
- “
GDM”现在使用“logind”来定义和追踪用户。更多相关信息,请参见〈第 2 章 logind 〉。系统管理员也可以在 GDM 自定义配置文件/etc/gdm/custom.conf中手动设置自动登录。 - custom.conf
- GDM 设置现在可以在文件
/etc/gdm/custom.conf中找到。但就反向兼容性而言,一旦发现/etc/gdm/custom.conf文件的话,custom.conf文件就会被它取代。升级时,红帽建议您移除旧的gdm.conf文件并将所有的自定义设置迁移到custom.conf文件中。
5.1. 获取更多信息
GDM”的信息,请参见〈第 14.1 节 “何为 GDM?”〉。
第 6 章 GNOME Shell 扩展
6.1. 时钟小程序的置换

图 6.1. 打开时钟
6.1.1. 获取更多信息
第 7 章 gnome-session
gnome-session”程序也进行了升级。它与之前启动 GNOME 桌面的方式一样,但它的某些部分发生了变化。
- gnome-session-properties
- gnome-session-properties 应用依然是 gnome-session 软件包的一部分。但是,它的功能被限制为,为个人用户管理启动程序,以及在登出时保存当前运行的应用程序。后者在红帽企业版 Linux 6 中保留了下来。
- 被命名的会话
- “”键能够在特定时间保存会话,并为之命名。保存的会话在登录时恢复。您在 gnome-会话-特性 中点击“”后,保存的应用列表也会在登录时显示出来。有了这项更新,就可以创建多个布局并进行重命名,或者为一个用户账号选择多个用户会话。
7.1. 获取更多信息
第 8 章 国际化
8.1. 输入法
8.1.1. 输入法的配置与转换
活动概览”,键入 help,然后按 Enter 键。
ibus-setup 工具中的 XKB 布局和输入法,并通过捷径在两者间进行切换。
8.1.2. IBus 预测输入法
ibus-typing-booster”是IBus 平台的预测输入法。它会根据部分输入的内容预测完整的词句,从而提供了更加快速更加准确的文本输入。用户可以在一列建议列表中选择需要的字。“ibus-typing-booster”也可以使用 Hunspell 拼写检查器字典来为某个语种提供输入建议。
8.1.3. GNOME 桌面中的 IBus 已取代 im-chooser
im-chooser”仅在使用非 IBus 输入法时是可用的。
8.2. 文件位置的改变
.xinputrc文件已从用户家目录转移到~/.config/imsettings/目录中。- 已将
.imsettings.log文件从用户家目录中转移至~/.cache/imsettings/log。 ~/.fonts.conf文件已弃用。建议用户将此文件转移到~/.config/fontconfig/文件目录下。~/.fonts.conf.d目录已弃用。建议用户将此目录转移到~/.config/fontconfig/目录下。/etc/fonts/conf.avail/目录中所有被禁用的“fontconfig”设置文件都被转移到/usr/share/fontconfig/conf.avail/目录下。如果您有任何指向原先位置的本地符号链接,请记得更新这些链接。
部分 II. 配置和管理
第 9 章 用 GSettings 和 dconf 来配置桌面
9.1. 术语解释:GSettings、gsettings,以及 dconf
- dconf
- “
dconf”是管理用户设置,基于键值的配置系统。它是红帽企业版 Linux 7 使用的“GSettings”的后端。“dconf”管理了一系列不同的设置,包括“GDM”、应用程序,以及代理设置。 - dconf
- “
dconf”命令行实用程序用来从“dconf”数据库中读取单个值或整个目录,以及将单独值或整个目录写入“dconf”。 - GSettings
- GSettings 是应用程序设置的高级 API,“
dconf”的前端。 - gsettings
- 使用“
gsettings”命令行工具查看以及更改用户设置。
9.2. 用户和系统设置
dconf”给予系统管理员和用户几个控制配置的级别。
- 管理员可以定义适用于所有用户的默认设置。
- 用户可以用他们自己的设置覆盖默认值。
- 管理员也可以选择性地锁定设置,以防止用户重写设置。更多信息请参见〈第 9.5.1 节 “锁定特定设置”〉。
9.3. 浏览桌面应用的 GSettings 值
GSettings”值:
- dconf-editor GUI 工具。
gsettings命令行实用程序。
gsettings 实用程序可以让您浏览,以及更改系统和应用程序偏好的选项。您甚至可以用它们来更改那些图形用户界面中不存在的偏好设定。
gsettings 可以用来显示以及设置“dconf”值。它还包含命令和设置的 Bash 完成。gsettings 可以用来自动化 shell 脚本中的配置。
gsettings 实用程序是为了浏览和更改当前用户的 GSettings 数据库。也就是说您始终都应以普通用户的身份运行这些工具。

图 9.1. dconf-editor 显示 org.gnome.destop.background GSettings 键值
#yum install dconf-editor
9.3.1. 获取更多信息
dconf-editor(1) 手册页。
gsettings(1) 手册页。
9.4. 何为 dconf 配置文件?
dconf”系统搜集而来。“dconf”配置文件允许您通过比较相同的系统来排除硬件或软件的故障问题。
dconf”系统将它的配置文件存储在文本文件中。$DCONF_PROFILE 环境变量可以从 /etc/dconf/profile/ 目录中,或者从绝对路径,比如用户家目录中给文件指定一个相对路径。
dconf”“配置文件 ”中的键值对将会覆盖默认设置。
9.4.1. 选择 dconf 配置文件
dconf”将访问环境变量 $DCONF_PROFILE 的变量是否已被设定。如果是的话,“dconf”将尝试打开被命名的配置文件,如果这一步失败了则将放弃此尝试。
dconf”就会尝试打开名为 user 的配置文件。如果这一步不成功,“dconf”将会退回到内部的硬连接配置中。
dconf”数据库。第一列线路指示了写过更改的数据库,而其他的线路则只显示只读数据库。以下是存储在 /etc/dconf/profile/user 中的一个样本配置文件:
user-db:user system-db:local system-db:site
~/.config/dconf 中找到的用户数据库的名称,local 和 site 是位于 /etc/dconf/db/ 中的两个系统数据库。
重要
dconf”配置文件在登录时就已确定,因此用户需登出并重新登录,来应用一个新的“dconf”用户配置文件到他们的会话上。
9.5. 设置自定义默认值
dconf”配置文件中的键值提供默认值的方式来设定。用户可以重写这些默认值。
user”配置文件必须存在,并且必须在“dconf”数据库中为这个键值添加一个值。
例 9.1. 设置默认背景
- 在
/etc/dconf/profile/user中创建一个user配置文件。user-db:user system-db:local
local 是一个“dconf”数据库的名称。 - 在
/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 作渐变梯度时的右侧或底部色彩,不可用于纯色。 - 根据喜好编辑 “关键文件 ”。更多信息请参见〈第 9.3 节 “浏览桌面应用的 GSettings 值”〉。
- 更新系统数据库:
#dconf update
重要
用户”文件后,用户需在应用更改之前登出并重新登录。
user 文件,您可以使用 dconf 命令行实用工具来向“dconf”数据库读取写入单独值或者整个目录。更多信息请参见 dconf(1)手册页。
9.5.1. 锁定特定设置
dconf”中的锁定模式是非常有用的工具,用来防止用户更改特定设置。
GSettings”键值,您需要在关键文件目录中创建一个 locks 子目录(例如, /etc/dconf/db/local.d/locks/)。这个目录中的文件包含了一列需锁定的键值,您可以在此目录中添加多个文件。
重要
例 9.2. 如何锁定默认墙纸
- 设定一张默认墙纸。
- 创建一个名为
/etc/dconf/db/local.d/locks/的目录。 - 编辑
/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
- 更新系统数据库:
#dconf update
9.6. GSettings 键值属性
dconf”数据库中设置一次 GSettings 键值。如果您在“dconf”数据库中不同的地方为不同的值设定了相同的键值,那么它们中只有一个能生效。换句话说,您将会以这个键值设置覆盖其它的键值设置。
dconf”系统数据库中,每一个键值只能拥有一个值。但需要注意的是,对于键值而言,值是以数组存在的。拥有数组类型的键值有多个值,它们被指定在如下所示,并以逗号区分开的列表中。
key=['option1', 'option2']
例 9.3. org.gnome.desktop.input-sources.xkb-options GSettings 键值
org.gnome.desktop.input-sources.xkb-options GSettings 键值的方法如下所示。它只能被设定一次,因此如果您想要一个值中存在两个元素,您需要将它们指定于同一个配置文件中。因为这是一个阵列类型的值,所以它可以有许多元素,从而即使设定多个键值也可以正常工作。
[org/gnome/desktop/input-sources] # Enable Ctrl-Alt-Backspace for all users # Set the Right Alt key as the Compose key and enable it xkb-options=['terminate:ctrl_alt_bksp', 'compose:ralt']
9.7. 存储用户设置于 NFS
dconf”在使用“网络文件系统”(“NFS”)家目录时能够正常运行,就必须使用“dconf”“Keyfile 后端 ”。
dconf”“Keyfile 后端 ”前,必须将 glib2-fam 软件包安装到系统中。否则有关远程计算机设置更改的通知将无法正常运行。
过程 9.1. 设置 dconf 键值文件后端
- 验证 glib2-fam 软件包已安装在系统中。
- 系统必须订阅
Optional通道。想要了解系统如何订阅Optional通道,请阅读以下资源: - 运行以下命令,来安装 glib2-fam 软件包:
#yum install glib2-fam
- 在每一个客户端创建或编辑
/etc/dconf/profile/user文件。 - 在这个文件的开头放置一行
。service-db:keyfile/user - 保存修改。
dconf”“Keyfile 后端 ”只能在用户下次登录时生效。它将轮询关键文件以确定更新是否被执行,这样一来设置可能不会立即更新。
第 10 章 默认外观
anaconda”)、系统启动实用程序(“firstboot”、“GRUB”,和 “Plymouth”)、登录屏幕、字体、键盘布局、帘栅屏蔽,以及桌面背景。
10.1. 在 Anaconda 中置入徽标
Anaconda”。默认情况下,“Anaconda”只会显示运行系统版本的标志,如红帽 “Shadow Man” 的标志,以及 RPM 标志。
Anaconda”的图片相对较少,但也还是有客制化的空间。您可以更改:
- 安装程序映像。
- 产品名称。
过程 10.1. 更改安装程序映像
- 创建一个 “product.img” 文件(计算机文件系统映像)。如何在红帽企业版 Linux 7 中创建此文件的详细信息,请参见《 安装指南》。
- 于此映像中创建
pixmaps/rnotes/language_code/目录,并将您的映像放入其中。如果不支持多方定位(localisation, not location)的话,您还可以使用pixmaps/rnotes/目录。否则您必须把映像放到正确的language_code目录下。
过程 10.2. 更改产品名称
- 按照以下设计的基本格式创建一个
.buildstamp文件:[Main] Product=Name of Product Here Version=Version Number Here
- Anaconda 在
images/子目录中的安装源中寻找 product.img 并编辑产品名称。
10.2. 在 Firstboot 中置入徽标
Firstboot”会在您首次启动红帽企业版 Linux 7 并登录之前启动。在图像模式中,您可以更改出现在“Firstboot”欢迎屏幕中的徽标。
- 用 .png 格式的新徽标创建一个图像文件。
- 将它保存到
/usr/share/firstboot/themes/default/目录下。
Firstboot”时,指向新创建目录的“/firstboot/systemd/firstboot-graphical.service”配置项目的--themedir 选项。
10.3. 引导装载程序屏幕
GRUB 2”。您可以更改“GRUB 2”外观的几个部分。以下几小节将向您展示如何改变 Linux 发行版名称、菜单颜色,和背景图片。
10.3.1. 发行版名称
GRUB 2”显示含有发行版名称的标题。您可以通过自定义 /etc/default/grub 文件中的 GRUB_DISTRIBUTOR 变量,从而更改标题。
过程 10.3. 设置发行版名称
- 以 root 身份,打开
/etc/default/grub文件。 - 使用
GRUB_DISTRIBUTOR变量,来指定您自己的发行版名称。以下是/etc/default/grub文件的摘录。使用GRUB_DISTRIBUTOR变量来更新第二行:GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR=Our Corporate Distro V1.2 GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true ...
- 以 root 身份运行以下命令,以确定更改生效:
grub2-mkconfig -o /boot/grub2/grub.cfg
注意
您需要在每次做更改后更新/etc/default/grub目录。
/etc/grub.d/40_custom 纯文字档,或者通过在 /etc/grub.d/ 目录中添加其他文件,来改变“GRUB 2”屏幕中显示的文本颜色或字体。您可以从以下指令中选择:
- set color_normal=foreground/background
- set color_highlight=foreground/background
- set menu_color_normal=foreground/background
- set menu_color_highlight=foreground/background
grub(8) 手册页。
10.3.2. GRUB 2 背景
GRUB”背景。然而,您依然可以添加图片到引导程序屏幕。
GRUB 2”配置背景图片前,必须为“gfxterm” 图形终端安装一个“GRUB 2”Unicode 字体。因为没有默认提供的字体,所以前提是将现有的 TTF 或者 OTF 文件转换成“GRUB 2”使用的 PF2 格式:
grub2-mkfont 命令,来将现有的 TTF 或者 OTF 文件转换成 PF2 格式。为输出文件 unicode.pf2 命名,从而使之能与 grub2-mkconfig 写入的默认配置正常运行。
例 10.1. 将 TTF 文件转换到 PF2 格式
LiberationSerif-Bold.ttf 到 .pf2 的转换。新的 .pf2 格式文件被命名为为 unicode2,从而使它不与现有的 /grub2/fonts/ 目录下的 unicode.pf2 产生混淆。
grub2-mkfont --output=/boot/grub2/fonts/unicode2.pf2 --size=24 /usr/share/fonts/liberation/LiberationSerif-Bold.ttf
GRUB 2”设置背景图片。图片文件可以位于 boot/ 目录之外。支持的格式有 PNG、JPG、JPEG,以及 TGA。
过程 10.4. 为引导装载程序屏幕添加图片
- 以 root 身份打开
/etc/default/grub文件。 - 编辑文件中的以下配置变量:
GRUB_TERMINAL=gfxterm
GRUB_BACKGROUND=path_to_the_image.png
启动时这个选项的值必须是 GRUB 可读的文件。
- 运行
grub2-mkconfig -o /boot/grub2/grub.cfg,将背景写入配置文件。 - 重启系统。
10.4. Plymouth
Plymouth”是红帽企业版 Linux 7 的图形启动系统和记录器,它使用了基于内核的模式设置(KMS)和直接渲染管理器(DRM)。在启动时,“Plymouth”将对用户交互进行处理。
10.4.1. 在主题中置入徽标
Plymouth”的每一个主题都由一个主题数据文件和一个编译的“启动模块插件 ”组成。这个数据文件有一个安装于 /usr/share/plymouth/themes/ 目录下的 .plymouth 扩展文件。
[Plymouth Theme] 小节中。这个组的有效键值是 “Name(名称)”、“Description(描述)”,和“ModuleName(模块名称)”。其中,前两个键值是自我解释的,第三个键值则指定了“Plymouth”启动插件模块的名称。不同的插件提供了开机时不同的动画和不同主题底层的实现:
例 10.2. 实例 .plymouth 文件
[Plymouth Theme] Name=Charge Description=A theme that features the shadowy hull of my logo charge up and finally burst into full form. ModuleName=two-step
过程 10.5. 更改 Plymouth 主题
- 搜索现有的“
Plymouth”主题,选择一个您最满意的。运行以下命令:#yum search plymouth-theme或者运行plymouth-set-default-theme --list命令,来查看所安装的主题。您还可以在安装所有的 plymouth 软件包的同时,将所有的主题进行安装。但与此同时,您也会安装许多不必要的软件包。# yum install plymouth\*
- 使用
plymouth-set-default-theme theme_name命令,将新主题设置为默认主题。例 10.3. 将 “spinfinity” 设置为默认主题
您已经选择了 spinfinity 主题,接下来请运行:#plymouth-set-default-theme spinfinity - 编辑完成后,重新生成“
initrd”守护程序,否则您设置的主题将不会显示在启动画面上。您可以运行以下命令重新生成守护程序:#dracut -f
10.4.2. 创建一个新的 Plymouth 主题
过程 10.6. 用一个现有的主题来创建您自己的主题
- 复制
plymouth/目录中的所有内容。 作为一个目录模板使用,例如,通过以下设置来使用“two-step”启动插件的红帽企业版 Linux 7 的默认主题,/usr/share/plymouth/themes/charge/charge.plymouth:[Plymouth Theme] Name=Charge Description=A theme that features the shadowy hull of my logo charge up and finally burst into full form. ModuleName=two-step [two-step] ImageDir=/usr/share/plymouth/themes/charge HorizontalAlignment=.5 VerticalAlignment=.5 Transition=none TransitionDuration=0.0 BackgroundStartColor=0x202020 BackgroundEndColor=0x202020
- 将
charge.plymouth文件重命名为以下格式,并保存在/usr/share/plymouth/themes/newtheme/目录下:newtheme.plymouth - 根据您的喜好、颜色改变、对齐,或者转换,来更新您的
/usr/share/plymouth/themes/newtheme/newtheme.plymouth文件。 - 运行以下命令,从而将您的 newtheme 设置成默认主题。
#plymouth-set-default-theme newtheme - 改变主题后运行以下命令,从而重建“
initrd”守护程序:#dracut -f
10.4.2.1. 使用品牌标商标
重要
过程 10.7. 将您的徽标添加至主题
- 为您的徽标创建一个名为
logo.png的图形文件。 - 通过更新 ImageDir 键值来编辑
/usr/share/plymouth/themes/newtheme.plymouth文件,从而使之指向您在步骤一中创建的logo.png图形文件目录:ImageDir=/usr/share/plymouth/themes/newtheme
Plymouth”的信息,请参见plymouth(8)手册页。
10.5. 自定义登录屏幕
10.5.1. 添加欢迎程序徽标
org.gnome.login-screen.logo GSettings 键值管理。由于“GDM”使用它自己的“dconf”配置文件,您可以通过在此配置文件中更改设置,来添加欢迎程序徽标。
dconf”的信息,请参见〈第 9 章 用 GSettings 和 dconf 来配置桌面〉。
- 支持大多数的格式:ANI、BPM、GIF、ICNS、ICO、JPEG、JPEG 2000、PCX、PNM、PBM、PGM、PPM、GTIFF、RAS、TGA、TIFF、XBM、WBMP、XPM,和 SVG。
- 图片大小按比例缩放到 48 像素高度。因此,举例来说,如果您将徽标设置成 1920x1080 的大小,它将变成原图 85x48 的缩略图。
过程 10.8. 为登录界面添加徽标
- 在
/etc/dconf/db/gdm.d/01-logo中以计算机范围设置创建一个gdm数据库:[org/gnome/login-screen] logo='/usr/share/pixmaps/logo/greeter-logo.png'
将 /usr/share/pixmaps/logo/greeter-logo.png 更换成您想要用作欢迎程序徽标的图像文件路径。 - 更新系统数据库:
#dconf update
10.5.1.1. 如果徽标没有更新怎么办?
dconf update 命令,从而更新系统数据库。
GDM”。更多信息,请参见〈第 14.1.1 节 “重启 GDM”〉。
10.5.2. 显示文本标语
org.gnome.login-screen.banner-message-enable- 启用标语信息显示。
org.gnome.login-screen.banner-message-text- 在登录窗口显示文本标语信息。
GDM”使用它自己的“dconf”配置文件,因此您可以更改此配置文件中的设置,从而配置文本标语。
过程 10.9. 在登录界面显示文本标语
- 以计算机范围设置在
/etc/dconf/db/gdm.d/01-banner-message中创建一个gdm数据库:[org/gnome/login-screen] banner-message-enable=true banner-message-text='Type the banner message here'
- 更新系统数据库:
#dconf update
重要
10.5.2.1. 如果标语信息不更新怎么办?
dconf update 命令。
GDM”。更多信息请参见〈第 14.1.1 节 “重启 GDM”〉。
10.5.3. 显示多种键盘布局
过程 10.10. 更改系统键盘布局设置
- 在源代码中一节名为
! layout中的/usr/share/X11/xkb/rules/base.lst文件内,找到想要的键盘布局代码。 - 使用
localectl工具,从而更改以下系统键盘布局:localectl set-x11-keymap layout您可以通过一个以逗号分隔的列表指定多个布局。例如,运行以下命令将es设置为默认布局,将us设置成第二默认布局:$localectl set-x11-keymap es,us - 登出后,即可在登录屏幕的顶部导航栏找到已定义的可用布局。
localectl 工具,来指定计算机范围内的默认键盘模式、变量和选项。更多信息请参见localectl(1) 手册页。
10.5.4. 禁用登录屏幕用户列表
org.gnome.login-screen.disable-user-list GSettings 键值文件,来禁用显示在登录屏幕上的用户列表。
过程 10.11. 设置 org.gnome.login-screen.disable-user-list 键值文件
- 在
/etc/dconf/db/gdm.d/00-login-screen中,以计算机范围设置创建一个gdm数据库:[org/gnome/login-screen] # Do not show the user list disable-user-list=true
- 通过更新“
dconf”实用工具来更新系统数据库:#dconf update
10.6. 自定义桌面背景
dconf” 实用程序设置默认背景、添加额外背景,或者添加多个背景。
10.6.1. 自定义默认桌面背景
org.gnome.desktop.background 架构中设置相关的 GSettings 键值文件,来设置默认桌面背景。
过程 10.12. 设置默认背景
- 在
/etc/dconf/db/local.d/filename中创建一个用于计算机范围设置的local数据库:# Specify the dconf path [org/gnome/desktop/background] # Specify the path to the desktop background image file picture-uri='file:///usr/local/share/backgrounds/wallpaper.jpg' # Specify one of the rendering options for the background image: # 'none', 'wallpaper', 'centered', 'scaled', 'stretched', 'zoom', 'spanned' picture-options='scaled' # Specify the left or top color when drawing gradients or the solid color primary-color='000000' # Specify the right or bottom color when drawing gradients secondary-color='FFFFFF'
- 覆盖用户设置,以避免用户在
/etc/dconf/db/local.d/locks/background中对此修改:# List the keys used to configure the desktop background /org/gnome/desktop/background/picture-uri /org/gnome/desktop/background/picture-options /org/gnome/desktop/background/primary-color /org/gnome/desktop/background/secondary-color
- 更新系统数据库:
#dconf update
/etc/dconf/db/local.d/filename 文件中配置的桌面为您新的默认桌面。
10.6.2. 添加额外背景
- 用 org.gnome.desktop.background schemas 创建一个 filename.xml 文件来指定您的额外背景的外观。这是最常用模式的列表:
表 10.1. org.gnome.desktop.background schemas GSettings 键值
键值名称 可能值 描述 picture-options “none”,“wallpaper”,“centered”,“scaled”,“stretched”,“zoom”,“spanned” 决定由 wallpaper_filename 设置的图片如何渲染。 color-shading-type “horizontal”、 “vertical” 和 “solid” 如何为背景颜色添加底纹。 primary-color 默认:#023c88 当绘制渐变色或者单色时,左侧或者右侧的颜色。 secondary-color 默认:#5789ca 当绘制渐变色时的右侧或者底部色彩,不适用于单色。 - 将 filename.xml 文件储存在
/usr/share/gnome-background-properties/目录中。
例 10.4. 额外背景文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">
<wallpapers>
<wallpaper deleted="false">
<name>Company Background</name>
<name xml:lang="de">Firmenhintergrund</name>
<filename>/usr/local/share/backgrounds/company-wallpaper.jpg</filename>
<options>zoom</options>
<shade_type>solid</shade_type>
<pcolor>#ffffff</pcolor>
<scolor>#000000</scolor>
</wallpaper>
</wallpapers>
<wallpaper> 元素来添加更多的背景。
<wallpaper> 元素的 .xml 文件实例,添加两个不同的背景:
例 10.5. 拥有两个墙纸元素的额外背景文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">
<wallpapers>
<wallpaper deleted="false">
<name>Company Background</name>
<name xml:lang="de">Firmenhintergrund</name>
<filename>/usr/local/share/backgrounds/company-wallpaper.jpg</filename>
<options>zoom</options>
<shade_type>solid</shade_type>
<pcolor>#ffffff</pcolor>
<scolor>#000000</scolor>
</wallpaper>
<wallpaper deleted="false">
<name>Company Background 2</name>
<name xml:lang="de">Firmenhintergrund 2</name>
<filename>/usr/local/share/backgrounds/company-wallpaper-2.jpg</filename>
<options>zoom</options>
<shade_type>solid</shade_type>
<pcolor>#ff0000</pcolor>
<scolor>#00ffff</scolor>
</wallpaper>
</wallpapers>
10.6.3. 设置帘栅屏蔽
org.gnome.desktop.background.picture-uri GSettings 键值所控制。由于“GDM”使用它自己的“dconf”配置文件,所以您可以通过更改此配置文件的设置,来设置默认背景。
dconf”的信息,请参见〈第 9 章 用 GSettings 和 dconf 来配置桌面〉。
过程 10.13. 为帘栅屏幕添加徽标
- 在
/etc/dconf/db/gdm.d/01-corp-login中,以计算机范围设置创建一个gdm数据库:[org/gnome/desktop/background] picture-uri='file:///opt/corp/background.jpg'
用您想用作帘栅屏幕的图像文件途径去代替 /opt/corp/background.jpg。支持的格式为 PNG、JPG、JPEG,和 TGA。必要时图像将被缩放以适应屏幕。 - 更新系统数据库:
#dconf update
10.6.3.1. 如果帘栅屏幕没有更新怎么办?
dconf update 命令更新数据库。
GDM”。更多信息请参见〈第 14.1.1 节 “重启 GDM”〉。
10.7. 设置字体
字体设置” 是设置和自定义字体的资料库。它将字体管理简化,并提供了显示功能,比如抗锯齿功能。“字体设置”允许那些与字体资料库兼容的应用程序,去使用管理员,或者个人用户安装在系统中的字体。
字体设置”搜索 /etc/fonts/fonts.conf 配置文件中默认列出的目录,来整合成一个系统中可用的列表。
fc-list 命令,来列出“字体设置”中已知安装在系统中的所有字体。
$fc-list : file
fc-list 的详情,请参见 fc-list(1) 手册页。
字体设置”及其设置的详情,请参见 fonts-conf(5)手册页。
10.7.1. 为所有用户添加额外字体
fontconfig”处理字体的应用程序中,为用户安装可用的额外字体。
过程 10.14. 安装额外的字体
- 将字体复制到
/usr/local/share/fonts/目录中来安装字体。如果此目录不存在,请重新创建一个。为每一个您安装的字体家族创建子目录,因为一些字体有粗体、斜体等等多个文件夹。 - 运行以下命令,以确保字体缓存已被更新:
$fc-cache /usr/local/share/fonts/
fontconfig”将对新字体进行侦测并确保它们是可用的。不像用户会话,一些应用程序可能需要在允许您使用新字体之前进行重启 。
/usr/local/share/fonts/ 之外的,其它列在 /etc/fonts/fonts.conf 文件夹的系统目录中。如果这个文件夹不在此文件夹中,那么您需在含有您想使用的目录的 /etc/fonts/local.conf 文件夹中,以计算机范围设置创建您自己的配置文件。详细信息请见 fonts-conf(5) 手册页。
fc-cache 命令更新字体缓存时指定目录名:
$fc-cache directory_name
10.7.2. 为个人用户安装额外字体
fontconfig”处理文字的系统应用里,为某个特定用户安装额外字体。
过程 10.15. 安装额外字体
- 将字体复制到
~/.local/share/fonts/目录,来进行安装。 - 运行以下命令以确保字体缓存已被更新:
$fc-cache ~/.local/share/fonts
fontconfig”会对新字体进行侦测并使之可用。您可能需要重启正在运行的应用才能看到改变。用户会话不需要重启。
10.7.3. 更换字体
fontconfig”会读取 /etc/fonts/fonts.conf 配置文件,来判定与所要求的字体最相似的可用字体,并与之进行替换。

图 10.1. 使用字体调整工具替换字体
#yum install fonts-tweak-tool
过程 10.16. 替换字体
- 按 Super 键进入“
活动概览”,来启动 Fonts Tweak Tool,键入Fonts Tweak Tool,然后按 Enter 键。 - 单击 “字体替换” 选项卡。
- 单击左窗格中左下角的 “” 按钮,选择或者键入您想要替换的字体名称,然后单击 “”。
- 单击右窗格中左下角的 “” 按钮,选择您想要用来更换第一个字体的字体名称,然后点击 “”。
- 点击 “”。
10.7.4. 配置字体别名
- Sans Serif(灯芯体)、
- Serif(衬线体)、
- Monospace(等宽字体)、
- Cursive(草书),以及
- Fantasy(有衬线的字体)。
#yum install fonts-tweak-tool

图 10.2. 使用字体调整工具配置字体别名
过程 10.17. 配置字体别名
- 按 Super 键进入“
活动概览”来启动 Fonts Tweak Tool,键入Fonts Tweak Tool,然后按 Enter 键。 - 单击 “字体别名” 选项卡。
- 单击左窗格左下角的 “” 按钮,选择或者输入您想要配置字体别名的区域名称,然后单击 “”。除了使用过的区域,从区域列表中选择默认来配置默认字体别名。
- 在右侧窗格中选定您想要用来覆盖系统默认设置的字体别名,然后选择下拉列表中的自定义字体。
- 单击“”。
10.7.5. 多语言顺序
#yum install fonts-tweak-tool
过程 10.18. 配置多种语言
- 按 Super 键进入“
活动概览”来启动 Fonts Tweak Tool,键入Fonts Tweak Tool,然后按 Enter 键。 - 单击 “Language Ordering” 选项卡。
- 单击窗口左下方的 “” 按钮,选择或者键入您想要配置成主要语言的语言名称,然后点击 “”。
- 单击窗口左下方的 “” 按钮,选择您想要配置成次要语言的语言名称,然后点击 “” 来添加其他语言。重复此项操作以增加更多语言。
- 点击 “”。
重要
Xft”应用程序)可能不会准确显示用户语言的所有字符。这是因为这些应用程序,或者应用程序所使用的渲染库无法支持备用字体。
10.7.6. 配置字体属性
#yum install fonts-tweak-tool
过程 10.19. 更改字体属性
- 按 Super 键进入“
活动概览”来启动 Fonts Tweak Tool,键入Fonts Tweak Tool,然后按 Enter 键。 - 点击 “字体属性” 选项卡。
- 单击窗口左下方的 “” 按钮,选择或者键入您想要更改属性的字体名称,然后单击 “”。重复此项操作来增加更多字体。
- 根据需要更改字体属性。
- 单击 “”。
- 如果可以的话,使用植入式位图。
- 这对喜欢点阵字体多于外框字体的用户来说很适用。添加一个合适的字体并单击 “Use embedded bitmap font if any” 来使用植入式点阵字体。
- 使用 JIS X 2013:2004 字形。
- 使用 JIS X 2013:2004 标准的日文字形,而不是 JIS X 2013:2000 或者更老的版本,添加支持 JIS X 2013:2004 的字体,然后单击 “特性” 列表中的 “”。
第 11 章 GNOME Shell 扩展
dconf”设置以下两个 GSetting 键值:
org.gnome.shell.enabled-extensionsorg.gnome.shell.development-tools
11.1. GNOME Shell 扩展是什么?
~/.local/share/gnome-shell/extensions/uuid 中为每一个用户安装扩展,或者在 /usr/share/gnome-shell/extensions/uuid 中进行计算机范围的安装。
- 您的通用唯一标识符必须不包含 Unicode 字符。
- 您的通用唯一标识符必须不包含以 gnome.org 结尾的字串,因为它不能附属于 GNOME 项目。
- 您的通用唯一标识符必须只包含字母数字字符与下列符号:句号(.)、at 符号(@),和下划线(_)。
重要
过程 11.1. 查看已安装的扩展
- 按 Alt+F2 键。
- 键入
lg,然后按 Enter 键,来打开 Looking Glass。 - 在 Looking Glass 的顶部菜单栏中,点击 “”,来打开已安装的扩展列表。

图 11.1. 通过 Looking Glass 来查看已安装的扩展
11.2. 启用计算机范围的扩展程序
/usr/share/gnome-shell/extensions 目录下。注意新安装的计算机范围的扩展程序是默认不启用的。为了使所有用户可以启用扩展程序,您需要设置 org.gnome.shell.enabled-extenstions 的键值。
过程 11.2. 启用计算机范围的扩展程序
- 在
/etc/dconf/db/local.d/00-extensions中创建一个用于计算机范围设置的local数据库文件。[org/gnome/shell] # List all extensions that you want to have enabled for all users enabled-extensions=['myextension1@myname.example.com', 'myextension2@myname.example.com']
enabled-extensions的键值通过扩展程序的 uuid 规定了被启用的扩展程序。(myextension1@myname.example.com 和 myextension2@myname.example.com) - 更新系统数据库:
#dconf update
11.3. 锁定被启用的应用程序
org.gnome.shell.enabled-extensions 和 org.gnome.shell.development-tools 的键值来阻止用户启用或停用扩展程序。
org.gnome.shell.development-tools 的键值可以确保用户无法用 GNOME Shell 的内置调试器和检查工具(Looking Glass)停用任何强制性的扩展程序。
过程 11.3. 锁定被启用的应用程序
- 在
/etc/dconf/db/local.d/00-extensions中创建一个用于计算机范围设置的local数据库文件。[org/gnome/shell] # List all extensions that you want to have enabled for all users enabled-extensions=['myextension1@myname.example.com', 'myextension2@myname.example.com'] # Disable access to Looking Glass development-tools=false
enabled-extensions的键值通过扩展程序的 uuid 规定了被启用的扩展程序(myextension1@myname.example.com 和 myextension2@myname.example.com)。development-tools的键值被设置为假(false),以阻止用户使用应用程序 Looking Glass。 - 覆盖用户设置,并阻止用户在文件
/etc/dconf/db/local.d/locks/extensions中对此修改:# Lock the list of mandatory extensions and access to Looking Glass /org/gnome/shell/enabled-extensions /org/gnome/shell/development-tools
- 更新系统数据库:
#dconf update
org.gnome.shell.enabled-extensions 和 org.gnome.shell.development-tools 的键值之后,GNOME Shell 将不会加载任何安装在 ~/.local/share/gnome-shell/extensions 或 /usr/share/gnome-shell/extensions 中的没有被列在 org.gnome.shell.enabled-extensions 键值中的扩展程序,从而阻止用户使用它们。
11.4. 设置强制性扩展程序
/usr/share/gnome-shell/extensions 目录中安装这些扩展程序,然后锁定 org.gnome.shell.enabled-extensions 和 org.gnome.shell.development-tools 的键值。
org.gnome.shell.development-tools 的键值可以确保用户无法用 GNOME Shell 的内置调试器和检查工具(Looking Glass)停用任何强制性的扩展程序。
过程 11.4. 设置强制性扩展程序
- 在
/etc/dconf/db/local.d/00-extensions-mandatory中创建一个用于计算机范围设置的local数据库文件。[org/gnome/shell] # List all mandatory extensions enabled-extensions=['myextension1@myname.example.com', 'myextension2@myname.example.com'] # Disable access to Looking Glass development-tools=false
enabled-extensions的键值通过扩展程序的 uuid 规定了被启用的扩展程序(myextension1@myname.example.com 和 myextension2@myname.example.com)。development-tools的键值被设置为假(false),以阻止用户使用应用程序 Looking Glass。 - 覆盖用户设置,并阻止用户在
/etc/dconf/db/local.d/locks/extensions-mandatory中对此修改:# Lock the list of mandatory extensions and access to Looking Glass /org/gnome/shell/enabled-extensions /org/gnome/shell/development-tools
- 更新系统数据库:
#dconf update
第 12 章 整合应用程序
- 通过创建或修改子菜单为应用程序添加或修改一个菜单项,或自定义“”的菜单结构。关于菜单定制的更多信息,请参见 〈第 12.1 节 “自定义菜单”〉。
- 在“
活动概览”中自定义 GNOME Shell dash 上可见的默认最热门程序。关于如何操作的更多信息,请参见 〈第 12.2 节 “自定义默认的最热门程序”〉。 - 添加或修改应用程序的 MIME 类型,并赋予应用程序某一特定的 MIME 类型。关于配置 MIME 类型的更多信息,请参见 〈第 12.3 节 “配置文件关联”〉。
12.2. 自定义默认的最热门程序
活动概览”中的 GNOME Shell dash 上可见的程序。可以使用“dconf”来为个别用户设置最热门程序,或为所有用户设置相同的最热门程序。
12.2.1. 为个别用户设置不同的最热门程序
~/.config/dconf/user 中找到的用户数据库文件来为个别用户设置默认最热门程序。以下样本文件中通过“dconf”将 gedit,Terminal 和 Nautilus 设置为某个用户的默认最热门程序。如果用户希望的话,该例子代码可以允许他们以后修改清单。
例 12.3. /etc/dconf/profile 文件的内容:
# This line allows the user to change the default favorites later user-db:user
例 12.4. ~/.config/dconf/user 文件的内容:
# Set gedit, terminal and nautilus as default favorites [org/gnome/shell] favorite-apps = ['gedit.desktop','gnome-terminal.desktop','nautilus.desktop']
注意
12.2.2. 为所有用户设置相同的最热门程序
dconf”密钥文件修改系统的数据库文件。以下样本文件修改了“dconf”配置文件,然后创建了一个键值文件来设置某个机构内一楼所有员工的默认最热门程序。
例 12.5. /etc/dconf/profile 文件的内容:
user-db:user # This line defines a system database called first_floor system-db:first_floor
注意
用户”数据库文件中的设置优先于“first_floor”数据库文件中的设置,但“first_floor”数据库文件中引入的锁定优先于出现在“用户”中的锁定。关于锁定的更多信息,请参见〈第 9.5.1 节 “锁定特定设置”〉。
例 12.6. /etc/dconf/db/first_floor.d/00_floor1_settings 文件的内容:
# This sample sets gedit, terminal and nautilus as default favorites # for all users in the first floor [org/gnome/shell] favorite-apps = ['gedit.desktop','gnome-terminal.desktop','nautilus.desktop']
dconf update 命令将您的更改合并到系统数据库中。
12.3. 配置文件关联
12.3.1. 什么是 MIME 类型?
- 确定默认用哪个应用程序打开某种特定的文件格式。
- 注册同样能打开某种特定文件格式的其它应用程序。
- 在例如 文件 应用程序的文件属性对话框中,提供了描述文件类型的字符串。
- 在例如 文件 应用程序的文件属性对话框中,提供了代表某种特定文件格式的图标。
media-type/subtype-identifier
例 12.7. MIME 类型格式
image/jpeg”是 MIME 类型的一个例子,其中“image”是媒体类型,“jpeg”是子类型识别符。
- 存储所有 MIME 类型说明文件的位置,包括计算机范围的位置和用户特定的位置。
- 如何注册一种 MIME 类型,使得桌面环境知道哪些应用程序可以用来打开某种特定的文件格式。
- 用户如何更改哪种应用程序打开哪种文件格式。
12.3.1.1. 什么是 MIME 数据库?
/usr/share/mime/packages/ 目录,其中存储着对已知 MIME 类型信息进行说明的 MIME 类型相关文件。这种文件的一个例子是 /usr/share/mime/packages/freedesktop.org.xml,它对默认设置下系统中可用的标准 MIME 类型的信息作了说明。该文件由 shared-mime-info 软件包提供。
12.3.1.2. 获得更多信息
12.3.2. 为所有用户添加某种自定义的 MIME 类型
/usr/share/mime/packages/ 目录下创建一个新的 MIME 类型说明文件,在 /usr/share/applications/ 目录下创建一个 .desktop 文件。
过程 12.3. 为所有用户添加自定义的“application/x-newtype”MIME 类型。
- 创建
/usr/share/mime/packages/application-x-newtype.xml文件:<?xml version="1.0" encoding="UTF-8"?> <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"> <mime-type type="application/x-newtype"> <comment>new mime type</comment> <glob pattern="*.xyz"/> </mime-type> </mime-info>上述application-x-newtype.xml样本文件定义了一种新的 MIME 类型“application/x-newtype”,并指定拓展名是.xyz的文件为该 MIME 类型。 - 创建一个名为例如
myapplication1.desktop的新的.desktop文件,并将它放置在/usr/share/applications/目录下:[Desktop Entry] Type=Application MimeType=application/x-newtype Name=My Application 1 Exec=myapplication1
上述myapplication1.desktop样本文件将“application/x-newtype”MIME 类型与一个名为 My Application 1 的应用程序相关联,该应用程序由myapplication1命令运行。 - 请以 root 身份更新 MIME 数据库以使您的更改生效:
#update-mime-database /usr/share/mime - 请以 root 身份更新应用程序数据库:
#update-desktop-database /usr/share/applications - 如需确认您已成功将
*.xyz文件与“application/x-newtype”MIME 类型相关联,首先需要创建一个空白文档,例如文件test.xyz:$touch test.xyz然后运行gvfs-info命令:$gvfs-info test.xyz | grep "standard::content-type"standard::content-type: application/x-newtype - 如需确认
myapplication1.desktop文件已被正确设置为“application/x-newtype”MIME 类型的默认注册应用程序,请运行gvfs-mime --query命令:$gvfs-mime --query application/x-newtypeDefault application for 'application/x-newtype': myapplication1.desktop Registered applications: myapplication1.desktop Recommended applications: myapplication1.desktop
12.3.3. 为个别用户添加自定义的 MIME 类型
~/.local/share/mime/packages/ 目录下创建一个 新的 MIME 类型说明文件,并在 ~/.local/share/applications/ 目录下创建一个 .desktop 文件。
过程 12.4. 为个别用户添加自定义的 application/x-newtype MIME 类型
- 创建
~/.local/share/mime/packages/application-x-newtype.xml文件:<?xml version="1.0" encoding="UTF-8"?> <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"> <mime-type type="application/x-newtype"> <comment>new mime type</comment> <glob pattern="*.xyz"/> </mime-type> </mime-info>上述application-x-newtype.xml样本文件定义了一种新的 MIME 类型“application/x-newtype”,并指定拓展名是.xyz的文件为该 MIME 类型。 - 创建一个名为例如
myapplication1.desktop的新的.desktop文件,并将它放置在~/.local/share/applications/目录下:[Desktop Entry] Type=Application MimeType=application/x-newtype Name=My Application 1 Exec=myapplication1
上述myapplication1.desktop样本文件将application/x-newtypeMIME 类型与一个名为 My Application 1 的应用程序相关联,该应用程序由myapplication1命令运行。 - 更新 MIME 数据库以使您的更改生效:
$update-mime-database ~/.local/share/mime - 更新应用程序数据库:
$update-desktop-database ~/.local/share/applications - 如需确认您已成功将
*.xyz文件与“application/x-newtype”MIME 类型相关联,首先需要创建一个空白文档,例如文件test.xyz:$touch test.xyz然后运行gvfs-info命令:$gvfs-info test.xyz | grep "standard::content-type"standard::content-type: application/x-newtype - 如需确认
myapplication1.desktop文件已被正确设置为“application/x-newtype”MIME 类型的注册默认应用程序,请运行gvfs-mime --query命令:$gvfs-mime --query application/x-newtypeDefault application for 'application/x-newtype': myapplication1.desktop Registered applications: myapplication1.desktop Recommended applications: myapplication1.desktop
12.3.4. 为所有用户覆盖默认注册的应用程序
/usr/share/applications/defaults.list 文件说明了哪个应用程序被注册默认打开特定的 MIME 类型。如需为系统所有用户覆盖系统默认设置,您需要创建一个 /usr/share/applications/mimeapps.list 文件,其中包括了您想要覆盖的默认注册应用程序所对应的 MIME 类型的清单。
过程 12.5. 为所有用户覆盖默认注册的应用程序
- 查阅
/usr/share/applications/defaults.list文件来确定您想要更改的默认注册应用程序所对应的 MIME 类型。例如,如下defaults.list样本文件中说明了text/html和application/xhtml+xmlMIME 类型所对应的默认注册应用程序:[Default Applications] text/html=firefox.desktop application/xhtml+xml=firefox.desktop
通过规定对应的.desktop文件(firefox.desktop)来定义默认应用程序(Firefox)。其它应用程序的.desktop文件的默认位置是/usr/share/applications/。 - 创建
/usr/share/applications/mimeapps.list文件。在文件中说明 MIME 类型和它们对应的默认注册应用程序:[Default Applications] text/html=myapplication1.desktop application/xhtml+xml=myapplication2.desktop [Added Associations] text/html=myapplication1.desktop; application/xhtml+xml=myapplication2.desktop;
这将text/htmlMIME 类型的默认注册应用程序设置为myapplication1.desktop,将application/xhtml+xmlMIME 类型的默认注册应用程序设置为myapplication2.desktop。为了使这些设置正确起作用,请确保myapplication1.desktop文件和myapplication2.desktop文件都放置于/usr/share/applications/目录下。 - 您可以使用
gvfs-mime --query命令来确认默认注册应用程序已正确设置:$gvfs-mime --query text/htmlDefault application for 'text/html': myapplication1.desktop Registered applications: myapplication1.desktop firefox.desktop Recommended applications: myapplication1.desktop firefox.desktop
12.3.5. 为个别用户覆盖默认注册的应用程序
/usr/share/applications/defaults.list 文件说明了哪个应用程序被注册默认打开特定的 MIME 类型。如需为个别用户覆盖系统默认设置,您需要创建一个 ~/.local/share/applications/mimeapps.list 文件,其中包括了您想要覆盖的默认注册应用程序所对应的 MIME 类型的清单。
过程 12.6. 为个别用户覆盖默认注册的应用程序
- 查阅
/usr/share/applications/defaults.list文件来确定您想要更改的默认注册应用程序所对应的 MIME 类型。例如,如下defaults.list样本文件中说明了text/html和application/xhtml+xmlMIME 类型所对应的默认注册应用程序:[Default Applications] text/html=firefox.desktop application/xhtml+xml=firefox.desktop
通过规定对应的.desktop文件(firefox.desktop)来定义默认应用程序(Firefox)。其它应用程序的.desktop文件的系统默认位置是/usr/share/applications/。个别用户的.desktop文件可以储存在~/.local/share/applications/中。 - 创建
~/.local/share/applications/mimeapps.list文件。在文件中说明 MIME 类型和它们对应的默认注册应用程序:[Default Applications] text/html=myapplication1.desktop application/xhtml+xml=myapplication2.desktop [Added Associations] text/html=myapplication1.desktop; application/xhtml+xml=myapplication2.desktop;
这将text/htmlMIME 类型的默认注册应用程序设置为myapplication1.desktop,将application/xhtml+xmlMIME 类型的默认注册应用程序设置为myapplication2.desktop。为了使这些设置正确起作用,请确保myapplication1.desktop文件和myapplication2.desktop文件都放置于/usr/share/applications/目录下。 - 您可以使用
gvfs-mime --query命令来确认默认注册应用程序已正确设置:$gvfs-mime --query text/htmlDefault application for 'text/html': myapplication1.desktop Registered applications: myapplication1.desktop firefox.desktop Recommended applications: myapplication1.desktop firefox.desktop
第 13 章 自定义 GNOME 系统的桌面功能
dconf”实用工具。用户在退出和再次登录之后将体会到不同之处。
13.1. 启用 Ctrl+Alt+Backspace 快捷方式
- 某个程序使 X 服务器停止工作。
- 您需要从已登录会话中快速切换出来。
- 您启动的一个程序运行失败。
- 由于各种原因您无法在当前会话中执行操作。
- 屏幕冻结
org.gnome.desktop.input-sources.xkb-options GSettings键值(关于GSettings键值的更多信息,请参见〈第 9.6 节 “GSettings 键值属性”〉)。
过程 13.1. 启用 Ctrl-Alt-Backspace 快捷方式
- 在
/etc/dconf/db/local.d/00-input-sources中创建一个用于计算机范围设置的local数据库:[org/gnome/desktop/input-sources] # Enable Ctrl-Alt-Backspace for all users xkb-options=['terminate:ctrl_alt_bksp']
- 覆盖用户设置,并阻止用户在
/etc/dconf/db/local.d/locks/input-sources中对此修改:# Lock the list of enabled XKB options /org/gnome/desktop/input-sources/xkb-options
- 更新系统数据库以使更改生效:
#dconf update
13.2. 启用构成键
构成键”是一种能使您输入键盘上无法找到的特殊符号或字符的功能。在 GNOME 桌面系统中,您可以将键盘上现有的其中一个键定义为“构成键”。“构成键”和其它被称为构成键序列的键一起使用,用来输入您经常打的特殊字符。
例 13.1. 使用构成键
构成键”,然后输入 AE(大写),您将得到“Æ”。如果输入小写字母,您将得到“æ”。
构成键”,并将键盘上的某特定键设为“构成键”,需要设置 org.gnome.desktop.input-sources.xkb-options GSettings 键值。这样一来,系统所有用户都将默认启用该设置(关于 GSettings 键值的更多信息,请参见〈第 9.6 节 “GSettings 键值属性”〉)。
过程 13.2. 将右侧的 Alt 键设为构成键
- 在
/etc/dconf/db/local.d/00-input-sources中创建一个用于计算机范围设置的local数据库:[org/gnome/desktop/input-sources] # Set the Right Alt key as the Compose key and enable it xkb-options=['compose:ralt']
如果您想要设置右侧 Alt 键以外的其它键,将 ralt 替换成那个键的名称,该名称在〈构成键位置〉一节中的 xkeyboard-config(7)手册页上有说明。 - 覆盖用户设置,并阻止用户在
/etc/dconf/db/local.d/locks/input-sources中对此修改:# Lock the list of enabled XKB options /org/gnome/desktop/input-sources/xkb-options
- 更新系统数据库,以使更改生效:
#dconf update
构成键”。只要按住再释放“构成键”,然后输入按键的组合,就可以得到特殊符号。
注意
13.3. 禁用命令行
- 设置“
org.gnome.desktop.lockdown.disable-command-line”GSettings 键值,这将阻止用户进入终端或指定运行某个命令行(Alt+F2 命令提示符)。 - 通过修改 X 服务器配置,禁止用 Ctrl+Alt+function key 快捷方式切换至虚拟终端(VT)。
- 移除终端,对于其它任何提供从“”菜单到终端路径,和提供从 GNOME Shell 系统中“
活动概览”到终端路径的应用程序,也一并移除。这可以通过移除这些应用程序的菜单项实现。关于如何移除菜单项的详细信息,请参见〈第 12.1.2 节 “为所有用户移除某个菜单项”〉。
13.3.1. 设置 org.gnome.desktop.lockdown.disable-command-line 键值
- 在
/etc/dconf/db/local.d/00-lockdown中创建一个用于计算机范围设置的local数据库。[org/gnome/desktop/lockdown] # Disable command line access disable-command-line=true
- 覆盖用户设置,并阻止用户在
/etc/dconf/db/local.d/locks/lockdown中对此修改:# Lock the disabled command line access /org/gnome/desktop/lockdown
- 更新系统数据库:
#dconf update
13.3.2. 禁止虚拟终端切换
/etc/X11/xorg.conf.d/ 目录下 X 配置文件中的Serverflags 部分添加一个 DontVTSwitch 选项,来禁止到所有虚拟终端的通路。
过程 13.3. 禁止进入虚拟终端
- 在
/etc/X11/xorg.conf.d/目录下创建或编辑一个 X 配置文件:Section "Serverflags" Option "DontVTSwitch" "yes" EndSection
- 重启 X 服务器,以使您的更改生效。
第 14 章 会话管理
14.1. 何为 GDM?
GNOME 显示管理器”(“GDM”)是一个在后台运行的图形登录程序,它运行并管理本地和远程登录的 X 服务器。
GDM”代替 X 显示管理器“XDM”。然而,“GDM”并不是从“XDM”衍生而来,也不包括“XDM”的任何原始代码。另外,在“GDM”中不支持图形配置工具,因此要更改“GDM”设置,就需要编辑 /etc/gdm/custom.conf 配置文件。
14.1.1. 重启 GDM
GDM”,以使您的更改生效。
警告
GDM”服务,请运行以下命令:
# systemctl restart gdm.service14.2. 认证
14.2.1. 使用企业凭证登录 GNOME
@ 符号,然后输入域名称。例如,如果您的域名称是 example.com,用户名是 User,就输入:
User@example.com14.2.1.1. 在欢迎界面中选择使用企业凭证
过程 14.1. 配置企业凭证
- 在“登录”欢迎界面,选择“”。
- 如果“域”信息栏还未填写,请在其中输入您的域名称。
- 在相关信息栏输入您的域账户用户和密码。
- 点击“”。
14.2.1.2. 改为使用企业凭证登录 GNOME
过程 14.2. 配置企业凭证
- 点击顶栏上您的名字,从菜单中选择“设置”。
- 从项目清单中选择“用户”。
- 点击“解锁”按钮,并输入计算机管理员的密码。
- 在窗口左下方点击“”按钮。
- 选择“企业版登录”窗格。
- 输入您企业账户的域、用户和密码,然后点击“添加”。
14.2.1.3. 疑难解答与高级设置
领域命令及其各种各样的子命令,来解答(troubleshoot)关于企业版登录功能的疑难问题。例如,如需检查计算机是否已经为企业版登录配置好,运行以下命令:
$realm list
realm join 命令,或透过脚本自动运行 realm join。
14.2.1.4. 获得更多信息
- http://www.freedesktop.org/software/realmd/docs/ – 该领域的《管理指南 》提供了更多关于使用企业版登录功能的详细信息。
14.2.2. 启用指纹认证
org.gnome.login-screen.enable-fingerprint-authentication GSettings 键值。
过程 14.3. 启用指纹认证
- 在
/etc/dconf/db/gdm.d/00-fingerprint中创建一个用于系统范围设置的gdm数据库。[org/gnome/login-screen] # Enable fingerprint authentication enable-fingerprint-authentication=true
- 更新系统数据库:
#dconf update
- org.gnome.login-screen.enable-password-authentication
- 将该键值设置为假(false),使用户总是使用其它方式登录(指纹和智能卡)。关于智能卡认证的更多信息,请参见〈第 14.2.3 节 “启用智能卡认证”〉。
14.2.3. 启用智能卡认证
org.gnome.login-screen.enable-smartcard-authentication GSettings 键值。
过程 14.4. 启用智能卡认证
- 在
/etc/dconf/db/gdm.d/00-smartcard中创建一个用于系统范围设置的gdm数据库。[org/gnome/login-screen] # Enable smart card authentication enable-smartcard-authentication=true
- 更新系统数据库:
#dconf update
- org.gnome.login-screen.enable-password-authentication
- 将该键值设置为假(false),使用户总是使用其它方式登录(指纹和智能卡)。关于指纹认证的更多信息,请参见〈第 14.2.2 节 “启用指纹认证”〉。
14.3. 用户会话
14.3.1. 什么是用户会话中的典型流程?
- dbus-daemon
- dbus-daemon 提供了信息总线守护程序,它可以用来在程序之间交换消息。dbus-daemon 和 D-Bus 库一起执行,后者在任意两个应用程序之间提供一对一的交流。更多信息请参见
dbus-daemon(1)手册页。 - gnome-keyring-daemon
- 通过“
gnome-keyring-daemon”安全地存储着各类程序和网站的凭据,如用户名和密码。该信息被写入一份名为 keyring 文件的加密文件中,并存储于用户的家目录中。更多信息请参见gnome-keyring-daemon(1)手册页。 - gnome-session
- 在 GDM 等显示管理器的帮助下,gnome-session 程序负责运行 GNOME 桌面环境。为用户安排的默认会话在安装系统时由系统管理员设定。一般情况下 gnome-session 会加载上一次系统成功运行的会话。更多信息请参见
gnome-session(1)手册页。 - gnome-settings-daemon
- “
gnome-settings-daemon”负责 GNOME 会话设置以及该会话中运行的所有程序。更多信息请参见gnome-settings-daemon(1)手册页。 - gnome-shell
- “
gnome-shell”提供 GNOME 的核心用户界面功能,例如启动程序、浏览目录、查看文件等等。更多信息请参见gnome-shell(1)手册页。 - pulseaudio
- PulseAudio 是红帽企业版 Linux 的声音服务器,它允许程序通过 Pulseaudio 守护程序输出声音。更多信息请参见
pulseaudio(1)手册页。
- “
dconf-service” - “
ibus” - “
at-spi2-dbus-launcher” - “
at-spi2-registryd” - “
gnome-shell-calendar-server” - “
goa-daemon” - “
gsd-printer” - 各种各样的 Evolution 中心进程
- 各种各样的“
GVFS”进程
14.3.2. 配置用户默认会话
/var/lib/AccountsService/users/ 目录下。
注意
.dmrc 文件用来创建默认会话。现在 .dmrc 文件已经不再使用。
过程 14.5. 为用户规定默认会话
- 请确保您已经通过运行以下命令安装了 gnome-session-xsession 软件包:
#yum install gnome-session-xsession - 前往
/usr/share/xsessions目录,在那里您可以找到每个可用会话的.desktop文件。查阅.desktop文件的内容,来确定您想要使用的会话。 - 如需为用户规定一个默认会话,请更新
/var/lib/AccountsService/users/username file中用户的“账户服务”。[User] Language= XSession=gnome
在此样本文件中,通过/usr/share/xsessions/gnome.desktop文件将 GNOME 设为默认会话。请注意在红帽企业版 Linux 7 中的默认系统是 GNOME 经典版(/usr/share/xsessions/gnome-classic.desktop文件)。
14.3.3. 创建自定义会话
- 在
/etc/X11/sessions/new-session.desktop中创建一个.desktop文件。请确保该文件规定了以下条目:[Desktop Entry] Encoding=UTF-8 Type=Application Name=Custom Session Comment=This is our custom session Exec=gnome-session --session=new-session
Exec项可能通过参数规定了要执行的命令。您可以通过gnome-session --session=new-session命令运行自定义会话。要了解更多关于您可以通过gnome-session使用的参数信息,请参见gnome-session(1)手册页。 - 在
/usr/share/gnome-session/sessions/new-session.session中创建一个自定义会话文件,您可以在其中规定会话的名字和所需组件:[GNOME Session] Name=Custom Session RequiredComponents=gnome-shell-classic;gnome-settings-daemon;
请注意,您在RequiredComponents中规定的所有项目需要在/usr/share/applications/中有其对应的.desktop文件。
GDM”登录界面的会话列表中找到该新的会话。
14.3.4. 查看用户会话日志
systemd”日志。因为红帽企业版 Linux 7 是一个基于“systemd”的系统,用户会话日志数据以二进制格式直接存储在“systemd”日志中。
注意
~/.xsession-errors 文件中,现在该文件已不再使用。
过程 14.6. 查看用户会话日志
- 通过运行以下命令确定您的用户 ID(
uid):$id --user1000 - 查看以上确定的用户 ID 的分类日志:
$journalctl _UID=1000
14.3.4.1. 获得更多信息
journalctl(1)手册页提供了关于“systemd”日志使用情况的更多信息。- 关于在红帽企业版 Linux 7 上使用“
systemd”日志的进一步信息,请参见《红帽企业版 Linux 7 系统管理员指南 》,可从 http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/ 中获得。
14.3.5. 为所有用户添加自动启动的应用程序
/etc/xdg/autostart/ 目录下为该应用程序创建一个 .desktop 文件。
过程 14.7. 为所有用户添加一个自动启动的应用程序
- 在
/etc/xdg/autostart/目录下创建一个.desktop文件:[Desktop Entry] Type=Application Name=Files Exec=nautilus -n OnlyShowIn=GNOME; AutostartCondition=GSettings org.gnome.desktop.background show-desktop-icons
- 用应用程序的名字代替 Files。
- 用您想用来运行该应用程序的命令代替 nautilus -n。
- 您可以使用
AutostartCondition键值来查看 GSettings 键值的内容。如果键值为正确的话,会话管理器将自动运行应用程序。如果在当前运行的会话中键值发生改变,会话管理器会根据之前的键值来判断启动或停止应用程序。
14.3.6. 设置自动登录
GDM”自定义配置文件中手动设置自动登录:
例 14.1. 为用户 john 设置自动登录
/etc/gdm/custom.conf 文件并确保文件中的 [daemon] 部分指定了以下内容:
[daemon]
AutomaticLoginEnable=True
AutomaticLogin=john14.3.7. 设置自动退出
警告
过程 14.8. 连接电源的计算机自动退出的设置
- 在
/etc/dconf/db/local.d/00-autologout中创建一个用于计算机范围设置的local数据库。[org/gnome/settings-daemon/plugins/power] # Set the timeout to 900 seconds when on mains power sleep-inactive-ac-timeout=
900# Set action after timeout to be logout when on mains power sleep-inactive-ac-type='logout' - 覆盖用户设置,并阻止用户在
/etc/dconf/db/local.d/locks/autologout中对此修改:# Lock automatic logout settings /org/gnome/settings-daemon/plugins/power/sleep-inactive-ac-timeout /org/gnome/settings-daemon/plugins/power/sleep-inactive-ac-type
- 更新系统数据库:
#dconf update
org.gnome.settings-daemon.plugins.power.sleep-inactive-ac-timeout- 如果计算机是连接交流电源运行,则它至少需要不活跃这么多秒,才会进入睡眠。
org.gnome.settings-daemon.plugins.power.sleep-inactive-ac-type- 如果计算机是连接交流电源运行,超时后会如何。
org.gnome.settings-daemon.plugins.power.sleep-inactive-battery-timeout- 如果计算机是靠电源运行,则它至少需要不活跃这么多秒,才会进入睡眠。
org.gnome.settings-daemon.plugins.power.sleep-inactive-battery-type- 如果计算机是靠电池运行,超时后会发生什么。
gsettings range 命令,来查看可以使用的一系列值。例如:
$gsettings range org.gnome.settings-daemon.plugins.power sleep-inactive-ac-typeenum 'blank' 'suspend' 'shutdown' 'hibernate' 'interactive' 'nothing' 'logout'
14.3.8. 设置屏幕亮度和闲置时间
例 14.2. 设置亮度下降程度
/etc/dconf/db/local.d/00-power 中创建一个用于计算机范围设置的 local 数据库,如下例中所示:
[org/gnome/settings-daemon/plugins/power]
idle-dim=true例 14.3. 设置亮度
/etc/dconf/db/local.d/00-power 中创建一个用于计算机范围设置的 local 数据库,并用您想要使用的整数值代替 30:
[org/gnome/settings-daemon/plugins/power] idle-brightness=30
例 14.4. 设置闲置时间
/etc/dconf/db/local.d/00-session 中创建一个用于计算机范围设置的 local 数据库,并用您想要使用的整数值代替 900:
[org/gnome/desktop/session] idle-delay=900
dconf update 命令,将您的更改合并到系统数据库中。
注意
14.3.9. 在用户闲置计算机时锁定屏幕
过程 14.9. 启用屏保和锁定屏幕
- 在
/etc/dconf/db/local.d/00-screensaver中创建一个用于系统范围设置的local数据库:[org/gnome/desktop/session] # Set the lock time out to 180 seconds before the session is considered idle idle-delay=
180[org/gnome/desktop/screensaver] # Set this to true to lock the screen when the screensaver activates lock-enabled=true# Set the lock timeout to 180 seconds after the screensaver has been activated lock-delay=180 - 覆盖用户设置,并阻止用户在
/etc/dconf/db/local.d/locks/screensaver中对此修改:# Lock desktop screensaver settings /org/gnome/desktop/session/idle-delay /org/gnome/desktop/screensaver/lock-enabled /org/gnome/desktop/screensaver/lock-delay
- 更新系统数据库:
#dconf update
14.3.10. 屏幕录像记录
webm 格式的高分辨率视频文件。
过程 14.10. 制作屏幕录像
- 如需开始录制,请按 Ctrl+Alt+Shift+R。在记录器捕捉屏幕活动时,屏幕右下角会显示一个红色的圈。
- 如需停止录制,请按 Ctrl+Alt+Shift+R。屏幕右下角的红圈会消失。
- 前往
~/Videos文件夹,在那里您可以找到录制的视频,它的文件名以Screencast开头,并包括录制的日期和时间。
第 15 章 虚拟文件系统和磁盘管理
15.1. GVFS
GVFS”(“GNOME 虚拟文件系统”)是对虚拟文件系统界面的拓展,由建立 GNOME 桌面的库提供。“GVFS”提供虚拟文件系统完整的基础结构,并在 GNOME 桌面处理存储空间。
GVFS”根据 URI(统一资源标识符)标准用地址进行完整的身份认证,它在语法上类似于网页浏览器中使用的 URL 地址。这些 schema://user@server/path 格式的地址是确定服务类型的核心信息。
15.2. GVFS 后端
GVFS”中有许多后端,它们提供通往某特定类型资源的路径。以下列表是可用的“GVFS”后端及其说明:
表 15.1. 可用的后端
| 后端 | 描述 |
|---|---|
| afc | 与 MTP(媒体传输协议(Media Transfer Protocol))相似,在您的苹果电子设备上显示文件(通过 USB 连接)。 |
| afp | Apple 文件协议(AFP)客户端,用于获得 Mac 操作系统 X 和初代 Mac 操作系统的文件服务。 |
| archive | 以只读形式处理各种存档文件(ZIP,TAR)。 |
| burn | 一个虚拟后端,被刻录程序用来作为新型 CD/DVD/BD 媒体内容的临时存储空间。 |
| cdda | 通过不同的波形音频格式(WAV)文件,显示音频 CD。 |
| computer | 用于合并活跃装载和物理卷的虚拟后端,它与路标的行为相似。之前 Nautilus 将它用于“计算机”视图。 |
| dav, davs | WebDAV 客户端,包括安全变量。仅可在装载期间进行认证,不支持之后基于每个文件夹的重新认证。 |
| dns-sd | DNS 服务探索 – Avahi 客户端,在浏览网页时使用,为已探索到的服务生成连续的 URI。 |
| ftp | 一个极具特色的 FTP(文件传输协议(File Transfer Protocol))客户端,目前没有 FTPS 的支持。默认支持被动传输。 |
| gphoto2 | 图片传输协议(PTP)客户端,用来访问通过 USB 或 FireWire 连接的相机。 |
| http | 处理所有 HTTP 请求;有助于在客户端应用程序中简便地从网站下载文件。 |
| locatest | 简单的测试后端代理文件:/// URI.; 支持错误输入。 |
| mtp | 用于访问媒体播放器和智能手机记忆卡的媒体转移协议后端。 |
| network | 用于浏览网页,显示附近的 Avahi 和 Samba 服务器。 |
| obexftp | 蓝牙客户端 |
| recent | 在“GtkFileChooser”中使用的一个后端,用于列出 GNOME 应用程序最近使用的文件。 |
| sftp | 一个极具特色的 SFTP(SSH 文件传输协议)客户端。 |
| smb | 访问 Samba 和 Windows 共享 |
| trash | 一个回收站后端,允许恢复被删除的文件。 |
注意
yum”软件包管理器。
GVFS”中使用的一个基本标识符,它携带了唯一识别所需的所有必要信息,例如服务类型(后端 ID)、绝对路径、用户名(如果需要的话)。您可以在 Nautilus 的地址栏与 GTK+ 的【打开】或【保存】文件对话中看到这项信息。
例 15.1. 指向根目录的 URI 字符串
ftp://ftp.myserver.net/
例 15.2. 指向文本文件的 URI 字符串
ssh://joe@ftp.myserver.net/home/joe/todo.txt
15.3. 装载、卸载和弹出
过程 15.1. 手动装载
- 在 Nautilus 中打开一个文件(即文件应用程序)。
- 在屏幕顶端的地址栏输入一个结构良好的 URI 字符串。如果地址栏没有显示,请按 Ctrl+L。或者, Nautilus 提供了“”对话,您可以通过进入“ → ”找到它。
- 当系统要求输入登录凭证时,在相应的输入框中输入您的户名和密码。
- 装载过程一结束,您就可以运行文件。
过程 15.2. 卸载
- 点击所选装载的弹出图标。
- 等待装载消失或显示安全移除的通知。
重要
重要
GVFS”装载(还有物理卷)仅面向它们的拥有者,其他用户无法侵犯您的隐私。
15.4. Nautilus 和【打开】或【保存】文件对话书签
过程 15.3. 为某个地址添加书签:
- 选择您想要添加书签的文件夹或文件。
- 请按 Ctrl+D。
GVFS”子系统首先寻找现存装载,如果没找到再生成新装载。通过这种方式,您只要在【打开】或【保存】对话中就完成验证。
GtkFileChooser”)的应用程序都会在对话左侧版面列出书签。“Nautilus”及其复制品也会在边栏(或者更普遍的,在“文件”菜单中)显示书签。
注意
GVFS”卷和装载都列在“GtkFileChooser”的边栏中。有时,书签和“GVFS”卷合并成单独一项,以防止重复和混淆。这样一来,“书签”可以像“GVFS”装载一样拥有弹出图标。
~/.config/gtk-3.0/bookmarks 文件中。在下例中,书签位置是 ~/Music、~/Pictures、~/Videos、~/Downloads和 ~/bin,因此 ~/.config/gtk-3.0/bookmarks 文件的内容看起来如下所示:
例 15.3. ~/.config/gtk-3.0/bookmarks 文件
file:///home/username/Music file:///home/username/Pictures file:///home/username/Videos file:///home/username/Downloads file:///home/username/bin
过程 15.4. 编辑书签:
- 打开顶栏中的文件菜单。
- 点击“书签”,打开书签编辑器。
15.5. 设置默认服务器列表
~/.config/nautilus/servers 文件中以 XBEL 格式存储了文件共享服务器的列表。可以向该文件添加文件共享服务器列表,使用户得以轻易访问文件共享。
注意
~/.config/nautilus/servers 文件中以 URI ftp://ftp.gnome.org/ 创建了一个名为 GNOME FTP 的书签。
例 15.4. ~/.config/nautilus/servers 文件
<?xml version="1.0" encoding="UTF-8"?>
<xbel version="1.0"
xmlns:bookmark="http://www.freedesktop.org/standards/desktop-bookmarks"
xmlns:mime="http://www.freedesktop.org/standards/shared-mime-info">
<bookmark href="<input>ftp://ftp.gnome.org/</input>">
<title><input>GNOME FTP</input></title>
</bookmark>
</xbel>15.6. 向所有其它应用程序显示 GNOME 虚拟文件系统
GVFS”还提供了一个显示活跃 GVFS 装载的“FUSE”守护程序。这意味着,任何应用程序都可以使用标准 POSIX API 访问活跃的“GVFS”装载,就好像它们是常规文件系统一样。
GVFS”提供了一个“FUSE”(“用户空间的文件系统”)守护程序,它通过自身用于标准 POSIX(便携式操作系统界面)访问的装载显示活跃装载。该守护程序透明转换传入请求,来为应用程序模拟一个本地文件系统。
重要
GVFS”后端的组合中遇到困难。
FUSE”守护程序随着“GVFS”主控守护程序自动启动,并将其装载作为后备放置在 /run/user/UID/gvfs 文件或 ~/.gvfs 文件中。手动浏览显示每个“GVFS”装载都有单独的目录。当您使用非本地应用程序打开来自“GVFS”位置的文件时,经过了一条作为参数的转换路径。请注意,本地 GIO 应用程序自动将这条路径转回本地 URI。
15.7. GVFS 装载的密码管理
GVFS”装载在激活时会要求身份凭证。在标准的 GTK+ 对话中,用户可以选择是否保存密码。
过程 15.5. 示例:已进行身份验证的装载过程
- 打开文件,并通过按 Ctrl+L 激活地址栏。
- 输入需要身份验证的服务的 URI 字符串,要求结构良好(例如,
sftp://localhost/)。 - 出现一个要求用户名、密码,以及密码存储选项的身份凭证对话。
- 填入身份凭证并确认。
GNOME Keyring”是存储机密的中心位置。它是加密的,并通过登录时默认提供的密码在桌面会话开始时自动解锁。如果有另一个不同的密码保护它,那么该密码是在首次使用时设置。
GNOME Keyring”本身,系统提供了应用程序 Seahorse,它允许移除个别记录或更改密码。关于Seahorse的更多信息,请查阅直接安装在桌面上的 Seahorse 帮助手册。
15.8. GNOME 中的 GVFS 工具和 xdg-utils
GVFS”与一些可能有助于脚本编制或测试的命令一起推出。提供一组 POSIX 命令的对应命令:
gvfs-catgvfs-lessgvfs-mkdirgvfs-mountgvfs-renamegvfs-set-attributegvfs-copygvfs-lsgvfs-movegvfs-rmgvfs-trashgvfs-infogvfs-savegvfs-tree
GVFS”的特性,提供了一些附加命令:
gvfs-monitor-dirgvfs-monitor-filegvfs-mimegvfs-open
FUSE”。它们的目的是不要成为 POSIX 命令的插入式替代,实际上,它们支持很小范围内的交换。在基本形式之下,一条 URI 字符串(而非一条本地路径)看成一个参数。
xdg-tools”(一个 freedesktop.org 互操作性项目)中得到很好的支持。例如,当检测到一个正在运行的 GNOME 会话时,经常使用的“xdg-open”实际上会调用“gvfs-open”,并从正确的位置读取文件类型关联。
- 如需在
/tmp中列出本地文件系统上的所有文件,请执行:$gvfs-ls file:///tmp - 以下命令列出了来自远程计算机的文本文件的内容:
$gvfs-cat ssh://joe@ftp.myserver.net/home/joe/todo.txt - 如需将引用的文本文件复制到本地目录
/tmp中,请运行:$gvfs-copy ssh://joe@ftp.myserver.net/home/joe/todo.txt /tmp/
注意
bash”自动完成功能作为软件包的一部分:
15.9. 使用 GVFS 元数据
GVFS”将元数据存成一组与特定文件绑定的简单键值/值对信息。因此,用户或应用程序可以使用工具保存一些小数据,它们是为运行时间信息设计的,例如图标位置,最后使用位置,文档、徽标、笔记中的位置等等。
GVFS”私下存储所有元数据,以便它仅在该计算机上可用。但是也会追踪“GVFS”装载和可移动媒体。
注意
/run/media/ 目录下,而非 /media 目录下。
gvfs-info命令;gvfs-set-attribute命令;- 或其它任何处理属性的本机 GIO 方式。
gvfs-info 调用与数据持久性之间的差异(注意 gvfs-info 命令的输出):
例 15.5. 设置自定义的元数据属性
$ touch /tmp/myfile $ gvfs-info -a 'metadata::*' /tmp/myfile attributes: $ gvfs-set-attribute -t string /tmp/myfile 'metadata::mynote' 'Please remember to delete this file!' $ gvfs-info -a 'metadata::*' /tmp/myfile attributes: metadata::mynote: Please remember to delete this file! $ gvfs-move /tmp/myfile /tmp/newfile $ gvfs-info -a 'metadata::*' /tmp/newfile attributes: metadata::mynote: Please remember to delete this file!
15.10. 疑难解答
15.10.1. 活跃的 VFS 装载不可见
gvfs-fuse”服务作为后备。
gvfs-fuse”过程是否在运行。由于“gvfs-fuse”自动运行,我们也不建议您自己启动它,请尝试退出和登录作为首选。
- 通过运行
id命令找出/run/user/UID/gvfs/路径的系统用户 ID“UID”(守护程序“gvfsd-fuse”需要一条用于显示其服务的路径)。或者,如果/run/user/UID/gvfs/路径不可用,“gvfsd-fuse”会使用您家目录下的.gvfs路径。 - 通过运行
/usr/libexec/gvfsd-fuse -f /run/user/UID/gvfs命令,来启动“gvfsd-fuse”守护程序。 - 现在,VFS 装载可供使用,且您可以在应用程序中手动浏览路径。
15.10.2. 连接的 USB 磁盘不可见
- 您无法在磁盘应用程序中看到该设备。
- 您运行了
udisksctl dump命令,它会列出守护程序“udisks”的当前状态,并显示除您的闪存驱动器之外所有对象的信息。 - 您运行了
dmesg命令。在记录末端有一些关于 USB 设备检测的消息,以及一张除您的闪存驱动器之外的已检测到分区的列表。
- 通过按 Super 键进入“
活动概览”,并输入Disks,然后按 Enter,来打开“磁盘”。 - 在“”操作菜单中,点击“”。
- 点击“在用户界面显示”。
- 通过点击“”确认。
15.10.3. Nautilus 显示未知的或不需要的分区
/etc/fstab 文件中是否列有该设备。 通常,/etc/fstab 文件会列出被设计用于操作系统中的磁盘分区,并显示它们是如何装载的。特定的装载选项可能会允许或阻止在用户界面显示该卷。
- 通过按 Super 键进入“
活动概览”,并输入Disks,然后按 Enter,来打开“磁盘”。 - 在“”操作菜单中,点击“”。
- 取消选中“在用户界面显示”,并通过点击“”确认。
15.10.5. 如果磁盘忙碌该怎么做?
在哪里以及如何查看系统进程?
- 请运行
lsof命令,来获得被打开文件的列表及其进程。如果lsof不可用,请运行ps ax命令,它也会提供正在运行的进程的列表。 - 另一种选择是,您可以使用系统监视器应用程序,以 GUI 格式显示正在运行的进程。
- 请确保您已经通过运行以下命令安装了“
iotop”:#yum install iotop接下来,请以 root 身份运行“iotop”,以查看系统进程。
- 在命令行执行
kill命令。 - 在系统监视器中,右击含有程序进程名称的行,并点击“”或“”下拉菜单项。
第 16 章 硬件配置
16.1. 数位屏
16.1.1. 我的 Wacom 数位屏没有映射到正确的屏幕
libwacom”数据库和“udev”规则文件(/lib/udev/rules.d/50-libwacom.rules)中必须包含对您的数位屏的支持。
libwacom”是一个存储 Wacom 模型数据的数位屏信息客户端库。“gnome-settings-daemon”组件和 GNOME 中的Wacom 数位屏设置面板均使用该库。
libwacom”添加对一个新的数位屏的支持,必须创建一个新的数位屏定义文件。数位屏定义文件包括在 libwacom-data 软件包中。如果安装了这个软件包,就可以在本地目录 /usr/share/libwacom/ 中找到可用的数位屏定义文件。
libwacom”的更多信息,请参见以下链接:
16.1.2. Wacom 数位屏的配置存储在哪?
/org/gnome/settings-daemon/peripherals/wacom/machine-id-device-id GSettings 键值中,其中 machine-id 是 D-Bus 计算机 ID,device-id 是数位屏设备 ID。数位屏的配置架构是 org.gnome.settings-daemon.peripherals.wacom。
/org/gnome/settings-daemon/peripherals/wacom/device-id/tool-id 键值中。对于不支持 tool-id 的客户范围,改为使用一般标识符。触笔的配置架构是 org.gnome.settings-daemon.peripherals.wacom.stylus,橡皮擦的配置架构是 org.gnome.settings-daemon.peripherals.wacom.eraser。
gsd-list-wacom 工具,获得某一特定计算机上所使用的数位屏配置路径的完整列表。
Optional 通道,并运行以下命令:
#yum install gnome-settings-daemon-devel
Optional 通道,请阅读以下资源:
$/usr/libexec/gsd-list-wacom
16.1.3. 不同计算机之间共享家目录时,Wacom 设置仅应用于一台计算机
/org/gnome/settings-daemon/peripherals/wacom/machine-id-device-id GSettings 键值的配置路径中包括 Wacom 数位屏的 D-Bus 计算机 ID(machine-id),该配置路径中存储着您的数位屏配置。
附录 A. 访问红帽文档
- 《红帽企业版 Linux 7 系统管理员指南 》,可从 http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/ 获得,它包括了关于各种系统组件的详细信息,如“
GRUB 2”启动加载程序、软件包管理、“systemd”或打印机配置。 - 《红帽企业版 Linux 7 安装指南 》,可从 http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/ 获得,它包括了关于安装红帽企业版 Linux 7 和使用 Anaconda 安装器的详细信息。
- 《红帽企业版 Linux 7 迁移计划指南 》,可从 http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/ 获得,它包括了对红帽企业版 Linux 6 和红帽企业版 Linux 7 在运行状况与兼容性上主要变化的概览。迁移计划指南也介绍了红帽提供的工具,帮助红帽企业版 Linux 7 升级。
- 《红帽企业版 Linux 7 网络指南 》,可从 http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/ 获得,它包括了用于红帽企业版 Linux 7 的网络配置和管理的信息。
- 《红帽企业版 Linux 7 虚拟化部署与管理指南 》,可从 http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/ 获得,它包括了关于安装、配置和管理红帽企业版 Linux 虚拟化的信息。
附录 B. 修订历史
| 修订历史 | ||||||||
|---|---|---|---|---|---|---|---|---|
| 修订 0.1-69.1 | Thu Apr 30 2015 | |||||||
| ||||||||
| 修订 0.1-69 | Mon 02 Jun 2014 | |||||||
| ||||||||
| 修订 0.1-35 | Wed 11 Dec 2013 | |||||||
| ||||||||
