Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
桌面迁移和管理指南
RHEL 7 中的 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 经典是 Red Hat Enterprise Linux 7 中默认的 GNOME 会话和 GNOME Shell 模式。如需更多信息,请参阅 第 1.3 节 “GNOME 经典是什么?” 部分。
- GSettings
- GSettings 是一个配置存储系统,替换了旧 GNOME 版本中的
GConf
。有关从GConf
过渡到 GSettings 的更多信息,请参阅 第 3 章 GSettings 和 dconf。要了解有关使用 GSettings 配置桌面的更多信息,请参阅 第 9 章 使用 GSettings 和 dconf 配置桌面。 - GVFS
GVFS
提供完整的虚拟文件系统基础架构,并通常处理 GNOME 桌面中的存储。通过GVFS
,GNOME 3 与在线文档存储服务、日历和联系列表进行了很好的集成,以便您的所有数据都可以从同一个地方访问。请阅读 第 15 章 虚拟文件系统和磁盘管理 中有关GVFS
的更多信息。- GTK+
GTK+
是用于创建图形用户界面的多平台工具包,提供了一个高度可用的功能丰富的 API。得益于GTK+
,GNOME 3 能够改变应用程序的外观或提供平滑的图形外观。此外,GTK+
包含很多特性,如面向对象的编程支持(GObject)、国际字符集和文本布局(Pango)的广泛支持或一组可访问的接口(ATK)。
1.2. 什么是 GNOME Shell?
- 顶部栏。
- 屏幕顶部的水平栏提供了对 GNOME Shell 的一些基本功能的访问,如
活动概览
、时钟和日历、系统状态图标以及屏幕左上角的系统菜单。 - 系统菜单。
系统菜单
位于右上角。您可以更新一些设置,查找有关 Wi-Fi 连接的信息,切换用户、退出登录,并从这个菜单关闭计算机。- 活动概览。
活动概览
提供了窗口和应用程序视图,允许用户运行应用程序和窗口,并在它们之间进行切换。顶部的搜索条目
可以搜索桌面上的各种项目,包括应用程序、文档、文件和配置工具。左侧的竖栏被称为短线
,它包含一个喜欢和运行的应用程序的列表。工作区列表
显示在右侧,允许用户在多个工作区之间切换,或者将应用程序和窗口从一个工作区移到另一个工作区。- 消息栏。
消息栏
是接近屏幕底部附近的横向栏,会在用户按下 Super+M 时显示。它提供对待处理的通知的访问。- 特定于 GNOME 经典的组件。
- GNOME 经典 是 Red Hat Enterprise Linux 7 中默认的 GNOME Shell 模式。它改变了 GNOME Shell 行为的某些方面,以及 GNOME Shell 外观。其包括带有窗口列表的底部栏,以及顶栏中的 Applications 和 Places 菜单。有关 GNOME 经典的详情,请参考 第 1.3 节 “GNOME 经典是什么?”。
1.2.1. 硬件加速和软件渲染
Clutter
提供的硬件加速支持,是一个基于 OpenGL 的图形库。
llvmpipe
驱动程序提供。
llvmpipe
驱动程序,您可以运行 glxinfo 命令:
$ glxinfo | grep renderer
OpenGL renderer string: Gallium 0.4 on llvmpipe (LVVM 3.3, 128 bits)
1.3. GNOME 经典是什么?
- Applications 和 Places 菜单.
- Applications 菜单显示在屏幕的左上角。它允许用户访问按类别组织的应用程序。用户也可以从该菜单打开
活动概览
。Places 菜单显示在 顶部栏 上 Applications 菜单的旁边。它让用户可以快速地访问重的要文件夹,如 Downloads 或 Pictures。 - 任务栏。
- 任务栏显示在屏幕底部,具有以下特性:
- 一个窗口列表,
- 通知图标显示在窗口列表的旁边,
- 当前工作区的简短标识,可用工作区的总数显示在通知图标的旁边。
- 四个可用的工作区:
- 在 GNOME 经典中,用户可使用的工作空间数默认设置为 4。
- 最小化和最大化按钮。
- GNOME 经典中的窗口标题栏具有最小化和最大化按钮的功能,使用户能够快速最小化到窗口列表中,或者将它们最大化以占据桌面上的所有空间。
- 传统的 Super+Tab 窗口切换器。
- 在 GNOME 经典中,Super+Tab 窗口切换器中的窗口不是按应用程序分组的。
- 系统菜单。
系统菜单
位于右上角。您可以更新一些设置,查找有关 Wi-Fi 连接的信息,切换用户、退出登录,并从这个菜单关闭计算机。
图 1.2. 带有计算器应用程序的 GNOME 经典和应用程序菜单的附件子菜单

1.3.1. GNOME 经典扩展
- 备用选项卡(
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 经典切换到 GNOME ,并切换回来
$ gnome-shell --mode=user -r &
$ gnome-shell --mode=classic -r &
1.3.3. 禁用 GNOME 经典作为默认会话
/var/lib/AccountsService/users/username
文件中修改用户的帐户服务。有关如何进行此操作的详情,请查看 第 14.3.2 节 “配置用户默认会话”。
获取更多信息
活动概览
,输入 help
,然后按 回车 。
1.4. 有关可访问性的说明

活动概览
和输入 help 就可轻松访问。在 GNOME Help 菜单中,选择 Universal access
。
部分 I. 迁移规划
- Red Hat Enterprise Linux 7 系统管理员指南,用于
GRUB 2
引导装载程序、软件包管理、systemd
或者打印机配置等组件。 - Red Hat Enterprise Linux 7 迁移规划指南 概述了 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 之间在行为和兼容性方面的主要变化。迁移规划指南还介绍了红帽提供的工具,以帮助升级到 Red Hat Enterprise Linux 7。
- 有关安装 Red Hat Enterprise Linux 7 和使用 Anaconda 安装程序的详细信息,请参考 Red Hat Enterprise Linux 7 安装指南。
第 2 章 logind
logind
(或更确切地说是 systemd-logind
)是管理用户登录的系统服务。此服务负责以下操作:
- 记录用户和会话、它们的进程及空闲状态,
- 为用户进程创建控制组,
- 为用户提供基于 PolicyKit 的访问,如系统关闭或休眠等操作。
- 为应用程序实现一个关闭/休眠阻止逻辑,
- 处理电源/休眠硬件键,
- 用户的多席位管理、会话切换管理和设备访问管理。
- 对虚拟终端(控制台)激活和用户运行时目录管理自动生成文本登录(gettys)。
logind
服务与 systemd
深度集成(Red Hat Enterprise Linux 7 中的新初始化系统),并替换了 Red Hat Enterprise Linux 6 中的 upstart
初始化系统。这一变化带来了许多新的特性和功能。以下是对其中一些最重要的总结:
- ConsoleKit
ConsoleKit
框架在 Red Hat Enterprise Linux 7 中已被弃用。systemd
现在提供同等的功能。ConsoleKit
和logind
都是用于跟踪当前运行的用户会话的服务。注意ConsoleKit
能够在系统上的活动会话发生改变时(使用虚拟终端切换)运行任意 shell 脚本。不再提供此功能。- /var/log/ConsoleKit/history 文件
- 在以前的版本中,
ConsoleKit
将日志文件发送到/var/log/ConsoleKit/history
,当前的logind
并不支持。该文件已被传统的wtmp
和utmp
文件所替代,这两个文件现在跟踪系统上所有的登录和退出登录。/var/log/ConsoleKit/history
提供与wtmp
文件类似的信息,但使用不同的格式。考虑到功能上的重叠,logind
仅采用wtmp
文件的职能。 - seat.d 脚本
- 由于
ConsoleKit
不再使用,因此hy.d
脚本不再补充ConsoleKit
框架,已被systemd-logind
取代。 - ck-list-sessions 命令
ConsoleKit
提供了 ck-list-sessions 命令,该命令返回了有关最新用户的扩展信息,不仅仅是常规用户,还有使用GDM
的 GUI 访问的信息。现在,可以通过运行loginctl
命令达到类似的结果:$
loginctl list-sessions
- 多席位支持
logind
与GDM
一起提供 多席位 功能,用户可以使用它来为他们的机器附加另外的监视器、鼠标或键盘。这样做会出现另一个登录屏幕,用户可以登录,就像他们在使用另一台机器一样。要列出系统上可用的席位,请运行以下命令:$
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 命令。
获取更多信息
logind
手册页提供了有关 logind
使用和功能的更多信息。它还涵盖了 systemd-logind
提供的 API(logind D-Bus API 文档)。
logind.conf
手册页讨论了登录管理器配置文件。
systemd
登录管理器手册页包括了更多关于多席位功能的信息。
第 3 章 GSettings 和 dconf
GConf
(用于存储用户首选项)转变为 GSettings
高级别配置和 dconf
后端的组合。
- GConf
- 如上所述,
GConf
配置系统已被两个系统替代:GSettings
API 和dconf
后端作为一个低级配置系统和以一个紧凑的二进制格式收集系统硬件和软件配置详情的程序提供服务。
gsettings
命令行工具和dconf
工具都用于查看和更改用户设置。gsettings
工具直接在终端中进行此操作,而dconf
工具使用dconf-editor
GUI 来编辑配置数据库。有关dconf-editor
和gsettings
工具的更多信息,请参阅 第 9 章 使用 GSettings 和 dconf 配置桌面。 - gconftool
gconftool-2
工具已被gsettings
和dconf
替代。同样,gconf-editor
已被dconf-editor
替代。- 覆盖
- Red Hat Enterprise Linux 7 中引入了 keyfiles 概念:dconf 工具允许系统管理员通过直接安装 defaults overrides 来覆盖默认设置。例如,现在通过使用放置在 keyfile 目录(如
/etc/dconf/db/local.d/)
中 keyfile 中的 dconf 覆盖来对所有用户的默认背景进行设置。要了解更多有关默认值和覆盖的信息,请参阅 第 9.5 节 “配置自定义默认值”。 - 锁定设置
dconf
系统现在允许锁定单个设置或整个设置子路径,以防止用户自定义。有关如何锁定设置的详情,请参考 第 9.5.1 节 “锁定特定设置”。- NFS 和 dconf
获取更多信息
第 4 章 PolicyKit
PolicyKit
工具是一个框架,它通过特权程序(也称为 机制)提供的一个授权 API,来为非特权程序(也称为 主题)提供服务。以下是对 PolicyKit
或其系统名称 polkit
所做的更改的详情。
4.1. 策略配置
*.pkla
和 *.conf
,它使用键/值对来定义其它的本地授权。
polkit
规则则存储在 /etc/polkit-1/rules.d/
目录中,第三方软件包存储在 /usr/share/polkit-1/rules.d/
中。
.conf
和 .pkla
配置文件已保留,并与 .rules 文件一起存在。polkit
针对 Red Hat Enterprise Linux 7 进行了升级,并考虑了兼容性问题。
polkitd
现在按字典顺序从 /etc/polkit-1/rules.d
和 /usr/share/polkit-1/rules.d
目录中读取 .rules 文件。如果两个文件的名称相同,则 /etc
中的文件先于 /usr
中的文件进行处理。另外,现有规则通过 /etc/polkit-1/rules.d/49-polkit-pkla-compat.rules
文件进行应用。因此,它们可以被 /usr
或 /etc
中文件名按字典顺序排在 49-polkit-pkla-compat 之前的 .rules 文件所覆盖。确保您的旧规则不被覆盖的最简单方法是在所有其它 .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
用户被允许使用其他用户的安全权限运行程序,但 Administrator 是 wheel 组成员,其授予用户额外的特殊系统权限来执行受限的命令。
4.3. 检查脚本的权限
pkcheck
工具用来检查进程是否被授权进行操作,现在支持 --process
选项指定的参数的新格式。这样可以安全地运行 pkcheck
,避免出现竞争情况。新格式类似如下:$
pkcheck --process pid,start-time,uid
--process
选项不要使用光秃秃的 pid
或 pid,start-time
格式。调用 pkcheck
的所有脚本都需要使用新格式 pid
, start-time
,uid
来避免竞争情况。
4.4. 扩展 polkit 配置
.rules
文件,可以取得类似级别的灵活性。
PolkitBackendActionLookup
实现(用来将数据提供给身份验证对话框的接口)也已从 Red Hat Enterprise Linux 7 中的 polkit
中删除。
polkit
的更多信息,请参阅 polkit(8)手册页。
第 5 章 GDM
GDM
是 GNOME 显示管理器
,它提供图形化的登录环境。从 GNOME 2 转换到 GNOME 3 后,只有通过 systemd
才能够配置 GDM
,因为它不再支持其他 init 系统。
- gdm 软件包
- gdm 软件包已替换了 xorg-x11-xdm,后者为 X Window 系统提供了传统的显示登录管理器。如前所述,gdm 软件包提供了图形登录屏幕,在启动、注销和用户切换后不久显示。
- GDM 和 logind
- custom.conf
- GDM 配置现在可在
/etc/gdm/custom.conf
中找到。但是,为了向后兼容,如果找到/etc/gdm/gdm.conf
将使用它,而不是使用custom.conf
。升级时,红帽建议删除旧的gdm.conf
文件,并将任何自定义配置迁移到custom.conf
。
获取更多信息
GDM
的详情,请参考 第 14.1 节 “GDM 是什么?”。
第 6 章 GNOME Shell 扩展
6.1. 替换时钟小程序
图 6.1. 打开时钟

获取更多信息
第 7 章 gnome-session
gnome-session
程序也已更新。它像以前一样启动 GNOME 桌面;尽管如此,它的一些组件也已发生了变化。
- gnome-session-properties
- gnome-session-properties 应用程序仍然是 gnome-session 软件包的一部分。但是,其功能已限制为管理单个用户的启动程序,并在退出登录时保存当前运行的应用程序。后一种功能已在 Red Hat Enterprise Linux 6 中保留下来。
- 命名的会话
- Save now 按钮能够在特定的时间保存会话,并命名它。保存的会话会在登录时恢复。当您在 gnome-session-properties 中点击 Automatically remember running applications when logging out 时,保存的应用程序列表也会在登录时显示。有了这个更新,也可以创建多个布局并重命名它们,或者为一个用户帐户选择多个用户会话。
获取更多信息
第 8 章 国际化
8.1. 输入法
8.1.1. 配置和切换输入法
活动概览
,输入 help
,然后按 回车 。
8.1.2. IBus 的预测输入法
ibus-typing-booster
是 IBus 平台的预测输入法。它根据部分输入预测完整的词,允许更快速、更准确的文本输入。用户可以从建议的列表中选择所需的词。ibus-typing-booster
也可以使用 Hunspell 字典来为语言提供建议。
8.1.3. GNOME 桌面中的 iBus 替换了 im-chooser
im-chooser
已被弃用。
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
是一个基于键的配置系统,用于管理用户设置。它是 Red Hat Enterprise Linux 7 中使用的GSettings
的后端。dconf
管理一系列不同的设置,包括GDM
、应用程序和代理设置。- dconf
dconf
命令行工具用于从/向dconf
数据库读写单个值或整个目录。- GSettings
- GSettings 是应用设置的高级 API,是
dconf
的前端。 - gsettings
gsettings
命令行工具用于查看和更改用户设置。
9.2. 用户和系统设置
dconf
允许系统管理员和用户对配置进行多级控制。
- 管理员可以定义适用于所有用户的默认设置。
- 用户可以使用自己的设置来覆盖默认值。
- 另外,管理员也可以锁定设置,以防止用户覆盖它们。更多信息请参阅 第 9.5.1 节 “锁定特定设置”。
9.3. 浏览桌面应用程序的 GSettings 值
GSettings
值:
- dconf-editor GUI 工具。
- gsettings 命令行工具。
#
yum install dconf-editor
dconf
值。它还包括命令和设置的 Bash 补全。gsettings 可用来在 shell 脚本中自动配置。
图 9.1. dconf-editor 显示 org.gnome.destop.background GSettings 键

获取更多信息
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
中为 local 数据库创建一个 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'
在 keyfile 的默认设置中,使用以下 GSettings 键:表 9.1. org.gnome.desktop.background 模式 GSettings 键
键名称 可能的值 描述 picture-options "none", "wallpaper", "centered", "scaled", "stretched", "zoom", "spanned" 决定由 wallpaper_filename 设置的图像如何渲染。 picture-uri 带路径的文件名 用于后台镜像的 URI。请注意,后端只支持本地(file://)URI。 primary-color 默认值:000000 绘制渐变或纯色时,左或上的颜色。 second-color 默认值:FFFFF 绘制渐变时右或底部的颜色,不用于纯色。 - 根据您的偏好编辑 keyfile。更多信息请参阅 第 9.3 节 “浏览桌面应用程序的 GSettings 值”。
- 更新系统数据库:
#
dconf update
user
配置文件创建或更改后,用户需要退出登录,然后再次登录,才能应用更改。
user
配置文件,您可以使用 dconf 命令行工具从/向 dconf
数据库读写入单个值或整个目录。如需更多信息,请参阅 dconf(1)手册页。
9.5.1. 锁定特定设置
dconf
中的锁定模式是一个非常有用的工具,可防止用户更改特定的设置。
GSettings
键,您需要在 keyfile 目录中创建一个 locks
子目录(例如:/etc/dconf/db/local.d/locks/
)。此目录中的文件包含一个要锁定的键的列表,您可以向该目录添加任意数量的文件。
例 9.2. 锁定默认的壁纸
- 按照 第 10.5.1 节 “自定义默认桌面背景” 中的步骤设置默认的壁纸。
- 创建一个名为
/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 存储用户设置
网络文件系统
(NFS
)主目录时,要使 dconf
正常工作,必须使用 dconf
keyfile 后端。
dconf
keyfile 后端 时,系统上必须安装 glib2-fam 软件包。否则,在远程计算机上有关配置更改的通知将无法正常工作。
过程 9.1. 设置 dconf Keyfile 后端
- 验证系统上是否安装了 glib2-fam 软件包。
- 运行以下命令安装 glib2-fam 软件包:
#
yum install glib2-fam
- 在每个客户端上创建或编辑
/etc/dconf/profile/user
文件。 - 在此文件的最开始,添加以下行:
service-db:keyfile/user
dconf
keyfile 后端 仅在用户下次登录时生效。它将轮询 keyfile 来确定是否已进行了更新,因此设置可能不会立即更新。
第 10 章 默认外观
GRUB
、Plymouth
)、登录屏幕、字体、键盘布局、屏幕屏蔽和桌面背景。
10.1. 创建 Anaconda 品牌
10.2. 引导加载程序屏幕
GRUB 2
。您可以更改 GRUB 2
外观的几个部分。以下小节展示了如何更改发行版名称、菜单颜色和后台图像。
10.2.1. 发行版名称
GRUB 2
显示一个包含发行版名称的标题。您可以通过自定义 /etc/default/grub
文件中的 GRUB_DISTRIBUTOR
变量来更改标题。
过程 10.1. 设置发行版名称
- 以 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
10.2.2. GRUB 2 背景
GRUB
背景。不过,可以向引导装载程序屏幕添加一张图像。
GRUB 2
配置背景图像前,必须为 gfxterm
图形终端安装 GRUB 2
Unicode 字体。默认情况下不提供任何字体,因此先决条件是将现有的 TTF 或 OTF 文件转换为 GRUB 2
使用的 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/
目录之外。
过程 10.2. 向引导加载程序屏幕添加图像
- 以 root 用户身份打开
/etc/default/grub
文件。 - 编辑文件中的以下配置变量:
GRUB_TERMINAL=gfxterm GRUB_BACKGROUND=path_to_the_image.png
支持的格式有 PNG、JPG、JPEG 和 TGA。 - 使用背景图像创建新的配置文件:
grub2-mkconfig -o /boot/grub2/grub.cfg
- 重启您的系统。
10.3. Plymouth
Plymouth
是 Red Hat Enterprise Linux 7 的图形化引导系统和日志记录器,它使用基于内核的模式设置(KMS)和直接渲染管理器(DRM)。Plymouth
还在引导过程中处理用户交互。
10.3.1. 创建主题品牌
Plymouth
的每个主题都是由一个主题数据文件和一个编译的 splash 插件模块 组成。数据文件具有 .plymouth
扩展名,并安装在 /usr/share/plymouth/themes/
目录下。
[Plymouth Theme]
部分中指定。这个组的有效键为 Name、Description 和 ModuleName。虽然前两个键一目了然,但第三个指定了 Plymouth
splash 插件模块的名称。不同的插件在引导时提供不同的动画,以及各种主题的底层实现:
例 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.3. 更改 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.3.2. 创建一个新的 Plymouth 主题
过程 10.4. 从现有的主题创建您自己的主题
- 复制
plymouth/
目录的全部内容。例如,作为模板目录,使用 Red Hat Enterprise Linux 7 的默认主题/usr/share/plymouth/themes/charge/charge/charge.plymouth
,它使用两步 splash 插件(两步 是两阶段引导过程中一种流行的启动加载功能,它从同步到引导时间的渐进动画开始,然后以一个简短、快速的一次性动画结束):[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.3.2.1. 使用品牌徽标
过程 10.5. 将您的徽标添加到主题中
- 创建一个带有您的徽标的、名为
logo.png
的图像文件。 - 通过更新 ImageDir 键来指向存放您在第 1 步中创建的
logo.png
图像文件的目录,来编辑/usr/share/plymouth/themes/newtheme.plymouth
文件:ImageDir=/usr/share/plymouth/themes/newtheme
Plymouth
的详情,请查看 plymouth(8)手册页。
10.4. 自定义登录屏幕
10.4.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.6. 向登录屏幕添加徽标
- 创建或编辑
/etc/dconf/profile/gdm
中的gdm
配置文件,其中包含以下行:user-db:user system-db:gdm file-db:/usr/share/gdm/greeter-dconf-defaults
gdm
是dconf
数据库的名称。 - 在
/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.4.2. 显示文本横幅
org.gnome.login-screen.banner-message-enable
- 启用显示横幅消息。
org.gnome.login-screen.banner-message-text
- 在登录窗口中显示文本横幅消息。
GDM
使用其自己的 dconf
配置文件,因此您可以通过更改该配置文件中的设置来配置文本横幅。
过程 10.7. 在登录屏幕上显示文本横幅
- 创建或编辑
/etc/dconf/profile/gdm
中的gdm
配置文件,其中包含以下行:user-db:user system-db:gdm file-db:/usr/share/gdm/greeter-dconf-defaults
gdm
是dconf
数据库的名称。 - 在
/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'
注意横幅消息没有字符限制。GNOME Shell 会自动检测较长的文本,并进入两列模式。但是,横幅消息文本无法从外部文件读取。 - 更新系统数据库:
#
dconf update
10.4.2.1. 如果横幅消息没有更新会怎样?
GDM
。更多信息请参阅 第 14.1.1 节 “重启 GDM”。
10.4.3. 显示多键盘布局
过程 10.8. 更改系统键盘布局设置
- 在
/usr/share/X11/xkb/rules/base.lst
文件的名为! layout
的部分中找到所需语言布局的代码。 - 使用 localectl 工具来更改系统键盘布局设置,如下所示:
$
localectl set-x11-keymap layout您可以用逗号分开的列表指定多个布局。例如,要将es
设为默认布局,并将us
设置为次要布局,请运行以下命令:$
localectl set-x11-keymap es,us
- 退出登录,看看是否可在登录屏幕的顶栏中找到已定义的布局。
10.4.4. 禁用登录屏幕用户列表
org.gnome.login-screen.disable-user-list
GSettings 键来禁用登录屏幕上显示的用户列表。
过程 10.9. 设置 org.gnome.login-screen.disable-user-list 键
- 创建或编辑
/etc/dconf/profile/gdm
中的gdm
配置文件,其中包含以下行:user-db:user system-db:gdm file-db:/usr/share/gdm/greeter-dconf-defaults
gdm
是dconf
数据库的名称。 - 在
/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.5. 自定义桌面背景
dconf
工具,您可以配置默认背景、添加额外的背景或添加多个背景。
10.5.1. 自定义默认桌面背景
org.gnome.desktop.background
模式中设置相关的 GSettings 键来配置默认的桌面背景及其外观。
过程 10.10. 设置默认背景
- 在
/etc/dconf/db/local.d/00-background
中为机器范围的设置创建一个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
更多信息请参阅 第 9.5.1 节 “锁定特定设置”。 - 更新系统数据库:
#
dconf update
- 在系统范围的设置生效前,用户必须退出并重新登录。
10.5.2. 添加额外的背景
- 使用 org.gnome.desktop.background 模式 创建一个指定额外背景的外观的 filename.xml 文件(对文件名没有要求)。以下是最常用的模式的列表:
表 10.1. org.gnome.desktop.background 模式 GSettings 键
键名称 可能的值 描述 picture-options "none", "wallpaper", "centered", "scaled", "stretched", "zoom", "spanned" 决定由 wallpaper_filename 设置的图像如何渲染。 color-shading-type "horizontal", "vertical" 和 "solid" 如何渐变背景颜色。 primary-color 默认值:#023c88 绘制渐变或纯色时,左或上的颜色。 second-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.5.3. 设置屏幕屏蔽
org.gnome.desktop.screensaver.picture-uri
GSettings 键控制。由于 GDM
使用它自己的 dconf
配置文件,因此您可以通过更改该配置文件中的设置来设置默认背景。
dconf
的详情,请参考 第 9 章 使用 GSettings 和 dconf 配置桌面。
过程 10.11. 向屏幕屏蔽中添加徽标
- 在
/etc/dconf/db/gdm.d/01-screensaver
中为机器范围的设置创建一个gdm
数据库:[org/gnome/desktop/screensaver] picture-uri='file:///opt/corp/background.jpg'
将 /opt/corp/background.jpg 替换为您要用作屏幕屏蔽的图像文件的路径。支持的格式有 PNG、JPG、JPEG 和 TGA。如果需要,可以扩展图像,以适合屏幕。 - 更新系统数据库:
#
dconf update
- 在系统范围的设置生效前,您必须退出登录。
10.5.3.1. 如果屏幕屏蔽没有更新会咋样?
GDM
。更多信息请参阅 第 14.1.1 节 “重启 GDM”。
10.6. 配置字体
fontconfig
工具进行字体管理和自定义。fontconfig
简化了字体管理,并提供了显示功能,如反别名。本节描述了以下字体管理任务:
- 添加新字体(为一个用户及为所有用户)
- 指定用来替换缺失字体的字体
- 配置字体别名
- 按语言定义字体首选项
- 自定义字体属性
fontconfig
会搜索 /etc/fonts/fonts.conf
配置文件中默认列出的目录。
fontconfig
已知的所有字体,您可以使用 fc-list 命令:
$
fc-list : file
fontconfig
及其配置的详情,请查看 fonts-conf(5)手册页。
10.6.1. 为所有用户添加额外的字体
fontconfig
进行字体处理的应用程序中的用户。
过程 10.12. 安装额外的字体
- 以
root
用户身份,创建/usr/local/share/fonts/
目录,并将字体复制到其中。为每个要安装的字体集创建一个子目录,因为某些字体有多个用于粗体、斜体等的文件。 - 运行以下命令,确保字体缓存已更新:
#
fc-cache /usr/local/share/fonts/
fontconfig
将检测新的字体,并使其可用。与用户会话不同,在允许您使用新字体之前,一些应用程序可能需要重新启动。
10.6.2. 使用替代目录为所有用户添加额外的字体
/usr/local/share/fonts/
之外的其他系统目录中,如果那个目录列在 /etc/fonts/fonts.conf
文件中。
/etc/fonts/fonts.conf
文件中,则 您需要在 /etc/fonts/local.conf
中创建您自己的机器范围的配置文件。
/etc/fonts/fonts.conf
文件,因为当 fontconfig
库更新时它会被替换。
过程 10.13. 安装额外的字体
- 以
root
用户身份,创建您自己的机器范围的/etc/fonts/local.conf
配置文件,包括字体的目录。<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <dir>/PATH/TO/YOUR/DIRECTORY_NAME</dir> </fontconfig>
- 确保目录的权限设为
755
。# chmod -R 755 /PATH/TO/YOUR/DIRECTORY_NAME
- 使用 fc-cache 命令更新字体缓存时,请指定目录名称。
# fc-cache DIRECTORY_NAME
10.6.3. 为单个用户添加额外的字体
fontconfig
进行字体处理的特定的用户。
过程 10.14. 安装额外的字体
- 将字体复制到
~/.local/share/fonts/
目录以进行安装。 - 运行以下命令,确保字体缓存已更新:
$
fc-cache ~/.local/share/fonts
fontconfig
将检测新的字体,并使其可用。您可能需要重启正在运行的应用程序来查看更改是否有效。用户会话不需要重启。
10.6.4. 替换字体
fontconfig
会读取 /etc/fonts/fonts.conf
配置文件,以确定可替换请求字体的最相似的可用字体。如果单个字符在请求的字体中不存在,则它们也可以被替换。
图 10.1. 使用字体调整工具替换字体

#
yum install fonts-tweak-tool
过程 10.15. 替换字体
- 按 Super 键进到
活动概览
,输入Fonts Tweak Tool
,然后按 回车 键,启动 字体调整工具。 - 点击 Font Substitutions 选项卡。
- 单击左窗格左下角的 + 按钮,选择或输入您要替换的字体的名称,然后点击 Add。
- 点击右侧窗格左下角的 + 按钮,选择您要用来替换第一个字体的字体名称,然后点击 Add。
- 点击 Close。
10.6.5. 配置字体别名
- Sans Serif,
- Serif,
- Monospace,
- Cursive 和
- Fantasy。
#
yum install fonts-tweak-tool
图 10.2. 使用字体调整工具配置字体别名

过程 10.16. 配置字体别名
- 按 Super 键进到
活动概览
,输入Fonts Tweak Tool
,然后按 回车 键,启动 字体调整工具。 - 点击 Font Aliases 选项卡。
- 点击左窗格左下角的 + 按钮,选择或输入您要为其配置字体别名的区域的名称,然后点击 Add。要配置默认的字体别名,而无论使用的区域是什么,请从区域列表中选择 Default。
- 在右侧窗格中,找到您要覆盖系统默认值的字体别名,然后从下拉菜单中选择自定义字体。
- 点击 Close。
10.6.6. 多语言顺序
#
yum install fonts-tweak-tool
过程 10.17. 配置多语言
- 按 Super 键进到
活动概览
,输入Fonts Tweak Tool
,然后按 回车 键,启动 字体调整工具。 - 点击 Language Ordering 选项卡。
- 单击窗口左下角的 + 按钮,选择或输入您要配置为主语言的语言名称,然后点击 Add。
- 要添加其他语言,请单击窗口左下角的 + 按钮,选择要配置为次要语言的语言名称,然后点击 Add。重复此步骤来添加更多的语言。
- 点击 Close。
Xft
应用程序)可能无法正确显示用户语言的所有字符。这是因为在这些应用程序中或在这些应用程序使用的渲染库中缺少对回退字体的支持。
10.6.7. 配置字体属性
#
yum install fonts-tweak-tool
过程 10.18. 更改字体属性
- 按 Super 键进到
活动概览
,输入Fonts Tweak Tool
,然后按 回车 键,启动 字体调整工具。 - 点击 Fonts Properties 选项卡。
- 点击窗口左下角的 + 按钮,选择或键入您要为其更改属性的字体的名称,然后迪点击 Add。重复此步骤来添加更多字体。
- 根据需要更改字体属性。
- 点击 Close。
- 如果可用,请使用嵌入的位图字体。
- 这对于喜欢位图字体而不是轮廓字体的用户很有用。要使用嵌入的位图字体,请添加合适的字体,并点击 Use embedded bitmap font if any。
- 使用 JIS X 2013:2004 符号。
- 要使用 JIS X 2013:2004 标准中的日语符号,而不是 JIS X 2013:2000 或更早的版本,请添加支持 JIS X 2013:2004 的字体,然后点击 Features 列表中的 jp04。
第 11 章 GNOME Shell 扩展
dconf
,来设置以下两个 GSettings 键:
org.gnome.shell.enabled-extensions
org.gnome.shell.development-tools
11.1. GNOME Shell 扩展是什么?
~/.local/share/gnome-shell/extensions/uuid
中 按用户安装扩展,或在 /usr/share/gnome-shell/extensions/uuid
中按机器范围安装扩展。
- 您的 uuid 不得包含 Unicode 字符。
- 您的 uuid 不得包含 gnome.org 结尾,它不能看起来与 GNOME 项目有关联。
- 您的 uuid 必须仅包含字母数字字符、句点(.)、at 符号(@)和下划线(_)。
过程 11.1. 查看已安装的扩展
- 按 Alt+F2。
- 输入
lg
,然后按 回车 键来打开 Looking Glass。 - 在 Looking Glass 的顶部栏,点击 Extensions 来打开已安装的扩展的列表。
图 11.1. 使用 Looking Glas 查看已安装的扩展

11.2. 启用机器范围的扩展
/usr/share/gnome-shell/extensions
目录中。
org.gnome.shell.enabled-extensions
键。但是,目前无法为已经登录的用户启用额外的扩展。这不适用于已安装并启用了他们自己的 GNOME 扩展的现有用户。
过程 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
键后,在 ~/.local/share/gnome-shell/extensions
或 /usr/share/gnome-shell/extensions
中安装的、未在 org.gnome.shell.enabled-extensions
键中列出的任何扩展都不会被 GNOME Shell 加载,因此会防止用户使用它们。
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 章 集成应用程序
- 为应用程序添加或修改菜单项,或通过创建或修改子菜单来自定义 Applications 菜单结构。有关菜单自定义的更多信息,请参阅 第 12.1 节 “定制菜单”。
- 自定义
活动概览
中 GNOME Shell dash 上看到的默认喜欢的应用程序。有关如何进行此操作的更多信息,请参阅 第 12.2 节 “自定义默认喜欢的应用程序”。 - 为应用程序添加或修改 MIME 类型,并将应用程序与特定的 MIME 类型关联。有关配置 MIME 类型的更多信息,请参阅 第 12.3 节 “配置文件关联”。
12.1. 定制菜单
- 桌面条目文件(
.desktop
) .desktop
文件提供有关每个菜单项的数据,如其名称、要运行的命令及其图标。.desktop
条目文件还指定菜单项在菜单层次结构中的位置,以及在活动概览
中用于应用程序搜索的关键字。系统.desktop
文件位于/usr/share/applications/
目录中。特定于用户的.desktop
文件位于~/.local/share/applications/
目录中。以下是一个名为~/.local/share/applications/myapplication1.desktop
的.desktop
文件示例:[Desktop Entry] Type=Application Name=My Application 1 Icon=myapplication1 Exec=myapplication1 Categories=Network;WebBrowser; MimeType=application/x-newtype
上面的文件指定了应用程序的名称(My Application 1)、应用程序的图标(myapplication1
),以及运行应用程序的命令(myapplication1)。它也会将应用程序放在指定的类别(Network;WebBrowser;
)中,并将应用程序与application/x-newtype
MIME 类型相关联。- 菜单定义文件(
.menu
) .menu
文件是 XML 配置文件,其指定菜单和菜单项的顺序、层次结构和合并。机器范围的.menu
文件位于/etc/xdg/menus/
目录中。特定于用户的.menu
文件位于~/.config/menus/
目录中,可用于覆盖机器范围的.menu
文件中指定的值。特别是/etc/xdg/menus/applications.menu
文件包含 Applications 菜单布局的定义。- 目录条目文件(
.directory
) .directory
文件提供关于每个菜单的数据,如其名称,该文件位于/usr/share/desktop-directories/
中。
获取更多信息
12.1.1. 为单个用户删除菜单项
~/.config/menus/gnome-applications.menu
定义文件中。可以通过设置 $XDG_DATA_HOME
环境变量来覆盖该文件的位置。
gnome-applications.menu
文件。请注意,从 Applications 菜单中删除项目,其子菜单也会将其从 活动概览
中的 Applications 视图中删除,从而防止用户在 活动概览
中搜索该项目。
过程 12.1. 示例:从附件子菜单中删除计算器菜单项
- 咨询
/usr/share/applications/
目录的内容,并确定与您要删除的菜单项对应的.desktop
文件:$
grep -r "Name=Calculator" /usr/share/applications/
/usr/share/applications/gcalctool.desktop:Name=Calculator如上所示,Calculator 菜单项对应于/usr/share/applications/gcalctool.desktop
文件。 - 创建一个
~/.config/menus/gnome-applications.menu
文件:<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"> <Menu> <Name>Applications</Name> <MergeFile type="parent">/etc/xdg/menus/gnome-applications.menu</MergeFile> <!-- Removes the Calculator from the Accessories submenu --> <Menu> <Name>Accessories</Name> <Exclude> <Filename>gcalctool.desktop</Filename> </Exclude> </Menu> <!-- END of Calculator removal content --> </Menu>
如上所示,文件包含一个<Menu>
部分,该部分指定了子菜单的名称(Accessories),.desktop
文件的名称(gcalctool.desktop),并包含<Exclude>
元素。
12.1.2. 删除所有用户的菜单项
/etc/xdg/menus/applications.menu
定义文件中。可以通过设置 $XDG_CONFIG_DIRS
环境变量来覆盖该文件的位置。
.menu
文件。请注意,从 Applications 菜单中删除项目,其子菜单也会将其从 活动概览
中的 Applications 视图中删除,从而防止用户在 活动概览
中搜索该项目。
过程 12.2. 示例:从附件子菜单中删除计算器菜单项
- 咨询
/usr/share/applications/
目录的内容,并确定与您要删除的菜单项对应的.desktop
文件:$
grep -r "Name=Calculator" /usr/share/applications/
/usr/share/applications/gcalctool.desktop:Name=Calculator如上所示,Calculator 菜单项对应于/usr/share/applications/gcalctool.desktop
文件。 - 编辑
/etc/xdg/menus/applications.menu
文件,并使用<Exclude>
元素在该.menu
文件末尾处最后一个</Menu>
标签之前添加一个新的<Menu>
部分,如下所示:<!-- Removes the Calculator from the Accessories submenu --> <Menu> <Name>Accessories</Name> <Exclude> <Filename>gcalctool.desktop</Filename> </Exclude> </Menu> <!-- END of Calculator removal content --> </Menu> <!-- End Applications -->
12.1.3. 删除单个用户的子菜单
~/.config/menus/gnome-applications.menu
定义文件中。可以通过设置 $XDG_DATA_HOME
环境变量来覆盖该文件的位置。
gnome-applications.menu
文件。请注意,从 Applications 菜单中删除子菜单也会删除 活动概览
中 Applications 视图中子菜单所包含的所有菜单项,从而防止用户在 活动概览
中搜索这些项目。
例 12.1. 从应用程序菜单中删除系统工具子菜单
~/.config/menus/gnome-applications.menu
文件:
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"> <Menu> <Name>Applications</Name> <MergeFile type="parent">/etc/xdg/menus/gnome-applications.menu</MergeFile> <!-- Removes the System Tools submenu from the Applications menu--> <Menu> <Name>System Tools</Name> <Deleted/> </Menu> <!-- END of System Tools removal content --> </Menu>
<Menu>
部分,并包含 <Deleted/>
标签。
12.1.4. 删除所有用户的子菜单
/etc/xdg/menus/applications.menu
定义文件中。可以通过设置 $XDG_CONFIG_DIRS
环境变量来覆盖该文件的位置。
.menu
文件。请注意,从 Applications 菜单中删除子菜单也会删除 活动概览
中 Applications 视图中子菜单所包含的所有菜单项,从而防止用户在 活动概览
中搜索这些项目。
例 12.2. 从应用程序菜单中删除系统工具子菜单
<Deleted/>
元素编辑 /etc/xdg/menus/applications.menu
文件,并在该 .menu
文件末尾最后一个 </Menu>
标签之前添加一个新的 <Menu>
部分,如下所示:
<!-- Removes the System Tools submenu from the Applications menu--> <Menu> <Name>System Tools</Name> <Deleted/> </Menu> <!-- END of System Tools removal content --> </Menu>
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
keyfiles 修改系统数据库文件。以下示例编辑 dconf
配置文件,然后创建一个 keyfile 来为机构的第一层中的所有员工设置默认喜欢的应用程序。
例 12.5. /etc/dconf/profile
的内容:
user-db:user # This line defines a system database called first_floor system-db:first_floor
user
数据库文件中的设置优先于 first_floor
数据库文件中的设置,但 first_floor
数据库文件中引入的锁将优先于 user
中存在的锁。有关锁的详情,请参考 第 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'
]
12.3. 配置文件关联
12.3.1. 什么是 MIME 类型?
- 确定默认情况下,哪个应用应打开特定的文件格式。
- 注册那些也可以打开特定文件格式的其他应用程序。
- 提供描述文件类型的字符串,例如,在 Files 应用程序的文件属性对话框中。
- 提供一个代表特定文件格式的图标,例如,在 Files 应用程序的文件属性对话框中。
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.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 类型分配了文件名。 - 创建一个新的
.desktop
文件,例如myapplication1.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-newtype
Default 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 类型分配了文件名。 - 创建一个新的
.desktop
文件,例如myapplication1.desktop
,并将其放在~/.local/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 命令来运行。 - 更新 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-newtype
Default application for 'application/x-newtype': myapplication1.desktop Registered applications: myapplication1.desktop Recommended applications: myapplication1.desktop
12.3.4. 覆盖所有用户的默认注册的应用程序
/usr/share/applications/mimeapps.list
和 /usr/share/applications/[desktop environment name]-mimeapps.list
文件是软件包默认安装的,其指定默认情况下注册了哪个应用程序来打开特定的 MIME 类型。
/etc/xdg/mimeapps.list
或 /etc/xdg/[desktop environment name]-mimeapps.list
文件,其中包含想要为其覆盖默认注册的应用程序的 MIME 类型的列表。
/usr/share/applications/
/etc/xdg/
mimeapps.list
[desktop environment name]-mimeapps.list
defaults.list
文件,而不是 mimeapps.list
文件。
过程 12.5. 覆盖所有用户的默认注册的应用程序
- 查询
/usr/share/applications/mimeapps.list
文件,以决定您要为其更改默认注册的应用程序的 MIME 类型。例如,以下mimeapps.list
文件示例为text/html
和application/xhtml+xml
MIME 类型指定了默认注册的应用程序:[Default Applications] text/html=firefox.desktop application/xhtml+xml=firefox.desktop
默认应用程序(Firefox)是通过指定其相应的.desktop
文件(firefox.desktop
)来定义的。其他应用程序的.desktop
文件的默认位置为/usr/share/applications/
。 - 创建
/etc/xdg/mimeapps.list
文件。在文件中,指定 MIME 类型及其相应的默认注册的应用程序:[Default Applications] text/html=myapplication1.desktop application/xhtml+xml=myapplication2.desktop
这会将text/html
MIME 类型的默认注册的应用程序设为myapplication1.desktop
,将application/xhtml+xml
MIME 类型的默认注册的应用程序设为myapplication2.desktop
。要使这些设置正常工作,请确保myapplication1.desktop
和myapplication2.desktop
文件都放在/usr/share/applications/
目录中。 - 您可以使用 gvfs-mime query 命令来验证默认注册的应用程序是否已正确设置:
$
gvfs-mime query text/html
Default application for 'text/html': myapplication1.desktop Registered applications: myapplication1.desktop firefox.desktop Recommended applications: myapplication1.desktop firefox.desktop
12.3.5. 覆盖单个用户的默认注册的应用程序
/usr/share/applications/mimeapps.list
和 /usr/share/applications/[desktop environment name]-mimeapps.list
文件是软件包默认安装的,其指定默认情况下注册了哪个应用程序来打开特定的 MIME 类型。
~/.local/share/applications/mimeapps.list
或 ~/.local/share/applications/[desktop environment id]-mimeapps.list
文件,其中包含您要为其覆盖默认注册的应用程序的 MIME 类型的列表。
/usr/share/applications/
/etc/xdg/
~/.local/share/application/
mimeapps.list
[desktop environment name]-mimeapps.list
defaults.list
文件,而不是 mimeapps.list
文件。
过程 12.6. 覆盖单个用户的默认注册的应用程序
- 查询
/usr/share/applications/mimeapps.list
文件,以决定您要为其更改默认注册的应用程序的 MIME 类型。例如,以下mimeapps.list
文件示例为text/html
和application/xhtml+xml
MIME 类型指定了默认注册的应用程序:[Default Applications] text/html=firefox.desktop application/xhtml+xml=firefox.desktop
默认应用程序(Firefox)是通过指定其相应的.desktop
文件(firefox.desktop
)来定义的。其他应用程序的.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
这会将text/html
MIME 类型的默认注册的应用程序设为myapplication1.desktop
,将application/xhtml+xml
MIME 类型的默认注册的应用程序设为myapplication2.desktop
。要使这些设置正常工作,请确保myapplication1.desktop
和myapplication2.desktop
文件都放在/usr/share/applications/
目录中。 - 您可以使用 gvfs-mime --query 命令来验证默认注册的应用程序是否已正确设置:
$
gvfs-mime --query text/html
Default application for 'text/html': myapplication1.desktop Registered applications: myapplication1.desktop firefox.desktop Recommended applications: myapplication1.desktop firefox.desktop
第 13 章 自定义 GNOME 桌面功能
dconf
工具。用户退出登录并再次登录时会体验到不同。
13.1. 允许和禁止在线帐户
- 启用所有在线帐户;
- 有选择地启用几个在线帐户;
- 禁用所有在线帐户。
过程 13.1. 配置在线帐户
- 如果系统上没有 gnome-online-accounts 软件包,请以 root 身份运行以下命令安装它:
#
yum install gnome-online-accounts
- 在
/etc/dconf/db/local.d/goa
中为 local 数据库创建一个 keyfile ,其中包含以下配置:- 仅有选择地启用几个提供商:
[org/gnome/online-accounts] whitelisted-providers= ['google', 'facebook']
- 禁用所有提供商:
[org/gnome/online-accounts] whitelisted-providers= ['']
- 允许所有可用的提供商:
[org/gnome/online-accounts] whitelisted-providers= ['all']
- 锁定设置,以防止用户覆盖它们。
- 如果不存在,请创建一个名为
/etc/dconf/db/local.d/locks/
的新目录。 - 在
/etc/dconf/db/local.d/locks/goa
中创建一个新文件,内容如下:# Prevent users from changing values for the following key: /org/gnome/online-accounts
- 更新系统数据库以使更改生效:
#
dconf update
- 在系统范围的设置生效前,用户必须退出并重新登录。
13.2. 启用 Ctrl+Alt+Backspace 快捷键
- 程序导致 X 服务器停止工作。
- 您需要从登录的会话快速切换。
- 您已启动了失败的程序。
- 由于各种原因,您无法在当前会话中操作。
- 您的屏幕冻结了。
org.gnome.desktop.input-sources.xkb-options
GSettings 键。(有关 GSettings 键的更多信息,请参阅 第 9.6 节 “GSettings 键属性”。)
过程 13.2. 启用 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.3. 启用组合键
组合键
是一个功能,可让您输入键盘上找不到的特殊符号或字符。在 GNOME 桌面中,您可以将键盘上一个现有的键定义为 组合键
。组合键
与其他键组合使用(称为组合键序列),来输入您经常输入的特殊字符。
例 13.1. 使用组合键
组合键
,则键入 AE(大写),您将得到 "Æ"。如果输入小写字符,则得到 "æ"。
组合键
,并将键盘上的某个键配置为 组合键
,请设置 org.gnome.desktop.input-sources.xkb-options
GSettings 键。这样,设置将会对系统上的所有用户默认启用。(有关 GSettings 键的更多信息,请参阅 第 9.6 节 “GSettings 键属性”。)
过程 13.3. 将右 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 键不同的键,请按照 xkeyboard-config (7)手册页 组合键位置 部分中所描述的,用那个键的名称替换 ralt 。 - 覆盖用户的设置,并阻止用户在
/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.4. 禁用命令行访问
- 设置
org.gnome.desktop.lockdown.disable-command-line
GSettings 键,这将阻止用户访问终端或指定要执行的命令行( Alt+F2 命令提示)。 - 通过修改 X 服务器配置,禁止使用 Ctrl+Alt+功能键 快捷键切换到虚拟终端(VT)。
- 删除 Terminal 和任何其他提供从 Applications 菜单和 GNOME Shell 中的
活动概览
访问终端的应用程序,。这可以通过删除这些应用程序的菜单项来完成。有关如何删除菜单项的详情,请参考 第 12.1.2 节 “删除所有用户的菜单项”。
13.4.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.4.2. 禁止虚拟终端切换
/etc/X11/xorg.conf.d/
目录中 X 配置文件中的 Serverflags
部分添加 DontVTSwitch
选项来禁止对所有虚拟终端的访问。
过程 13.4. 禁止访问虚拟终端
- 创建或编辑
/etc/X11/xorg.conf.d/
目录中的 X 配置文件:注意按照惯例,这些特定于主机的配置文件名称以两个数字和一个连字符开头,并且总是以 .conf 为扩展名。因此,以下文件名可以是/etc/X11/xorg.conf.d/10-xorg.conf
。Section "Serverflags" Option "DontVTSwitch" "yes" EndSection
- 重启 X 服务器以使更改生效。
13.5. 锁定打印
org.gnome.desktop.lockdown.disable-printing
键来防止应用程序打印。按照以下流程操作。
过程 13.5. 锁定 org.gnome.desktop.lockdown.disable-printing
键
- 如果不存在,请创建用户配置文件(
/etc/dconf/profile/user
):user-db:user system-db:local
- 在
etc/dconf/db/local.d/00-lockdown
中为机器范围的设置创建一个local
数据库:[org/gnome/desktop/lockdown] # Prevent applications from printing disable-printing=true
- 覆盖用户的设置,并阻止用户在
/etc/dconf/db/local.d/locks/lockdown
中更改它:# List the keys used to configure lockdown /org/gnome/desktop/lockdown/disable-printing
- 运行以下命令来更新系统数据库
#
dconf update
13.6. 锁定保存在磁盘上的文件
org.gnome.desktop.lockdown.disable-save-to-disk
键来防止应用程序保存文件。按照以下流程操作:
过程 13.6. 锁定 org.gnome.desktop.lockdown.disable-save-to-disk
键
- 在
/etc/dconf/profile/user
中创建user
配置文件,除非它已存在:user-db:user system-db:local
- 在
/etc/dconf/db/local.d/00-lockdown
文件中为机器范围的设置创建一个local
数据库。[org/gnome/desktop/lockdown] # Prevent the user from saving files on disk disable-save-to-disk=true
- 覆盖用户的设置,并阻止用户在
/etc/dconf/db/local.d/locks/lockdown
中更改它:# Lock this key to disable saving files on disk /org/gnome/desktop/lockdown/disable-save-to-disk
- 运行以下命令来更新系统数据库
#
dconf update
13.7. 锁定重新分区
polkit
可让您为单个操作设置权限。对于 udisks2
,磁盘管理服务工具,其配置位于 /usr/share/polkit-1/actions/org.freedesktop.udisks2.policy
。此文件包含一组操作和默认值,它们可被系统管理员覆盖。
/etc
中的 polkit
配置会覆盖 /usr/share/
中软件包所提供的配置。
过程 13.7. 要禁止用户更改磁盘设置
- 创建一个与
/usr/share/polkit-1/actions/org.freedesktop.udisks2.policy
具有相同内容的文件。cp /usr/share/polkit-1/actions/org.freedesktop.udisks2.policy /etc/share/polkit-1/actions/org.freedesktop.udisks2.policy
不要更改/usr/share/polkit-1/actions/org.freedesktop.udisks2.policy
文件,您的更改会被下一个软件包更新覆盖。 - 删除您不需要的操作,并将以下行添加到
/etc/polkit-1/actions/org.freedesktop.udisks2.policy
文件中:<action id="org.freedesktop.udisks2.modify-device"> <message>Authentication is required to modify the disks settings</message> <defaults> <allow_any>no</allow_any> <allow_inactive>no</allow_inactive> <allow_active>yes</allow_active> </defaults> </action>
如果只想确保只有 root 用户才可以执行操作,则需要把no
替换为auth_admin
。 - 保存更改。
Authentication is required to modify the disks settings
13.8. 锁定用户退出登录和用户切换
- 创建包含以下行的
/etc/dconf/profile/user
配置文件:user-db:user system-db:local
local
是dconf
数据库的名称。 - 如果不存在,请创建目录
/etc/dconf/db/local.d/
。 - 创建键文件
/etc/dconf/db/local.d/00-logout
,来为local
数据库提供信息:[org/gnome/desktop/lockdown] # Prevent the user from user switching disable-log-out=true
- 覆盖用户的设置,并阻止用户在
/etc/dconf/db/local.d/locks/lockdown
中更改它:# Lock this key to disable user logout /org/gnome/desktop/lockdown/disable-log-out
- 更新系统数据库:
# dconf update
- 在系统范围的设置生效前,用户必须退出并重新登录。
过程 13.8. 防止用户切换到不同的用户帐户
- 创建包含以下行的
/etc/dconf/profile/user
配置文件:user-db:user system-db:local
local
是dconf
数据库的名称。 - 如果不存在,请创建目录
/etc/dconf/db/local.d/
。 - 创建键文件
/etc/dconf/db/local.d/00-user-switching
,来为local
数据库提供信息:[org/gnome/desktop/lockdown] # Prevent the user from user switching disable-user-switching=true
- 覆盖用户的设置,并阻止用户在
/etc/dconf/db/local.d/locks/lockdown
中更改它:# Lock this key to disable user switching /org/gnome/desktop/lockdown/disable-user-switching
- 更新系统数据库:
# dconf update
- 在系统范围的设置生效前,用户必须退出并重新登录。
13.9. 单应用程序模式
过程 13.9. 设置单应用程序模式
- 使用以下内容创建以下文件:
/usr/bin/redhat-kiosk
#!/bin/sh if [ ! -e ~/.local/bin/redhat-kiosk ]; then mkdir -p ~/.local/bin ~/.config cat > ~/.local/bin/redhat-kiosk << EOF #!/bin/sh # This script is located in ~/.local/bin. # It's provided as an example script to show how # the kiosk session works. At the moment, the script # just starts a text editor open to itself, but it # should get customized to instead start a full screen # application designed for the kiosk deployment. # The "while true" bit just makes sure the application gets # restarted if it dies for whatever reason. while true; do gedit ~/.local/bin/redhat-kiosk done EOF chmod +x ~/.local/bin/redhat-kiosk touch ~/.config/gnome-initial-setup-done fi exec ~/.local/bin/redhat-kiosk "$@"
重要/usr/bin/redhat-kiosk
文件必须是可执行的。将 gedit ~/.local/bin/redhat-kiosk 代码替换为您要在 kiosk 会话中执行的命令。此示例启动了一个为专为 kiosk 部署而设计的全屏应用程序,名为 http://mine-kios-web-app:[...] while true; do firefox --kiosk http://mine-kios-web-app done [...]
/usr/share/applications/com.redhat.Kiosk.Script.desktop
[Desktop Entry] Name=Kiosk Type=Application Exec=redhat-kiosk
/usr/share/applications/com.redhat.Kiosk.WindowManager.desktop
[Desktop Entry] Type=Application Name=Mutter Comment=Window manager Exec=/usr/bin/mutter Categories=GNOME;GTK;Core; OnlyShowIn=GNOME; NoDisplay=true X-GNOME-Autostart-Phase=DisplayServer X-GNOME-Provides=windowmanager; X-GNOME-Autostart-Notify=true X-GNOME-AutoRestart=false X-GNOME-HiddenUnderSystemd=true
/usr/share/gnome-session/sessions/redhat-kiosk.session
[GNOME Session] Name=Kiosk RequiredComponents=com.redhat.Kiosk.WindowManager;com.redhat.Kiosk.Script;
/usr/share/xsessions/com.redhat.Kiosk.desktop
[Desktop Entry] Name=Kiosk Comment=Kiosk mode Exec=/usr/bin/gnome-session --session=redhat-kiosk DesktopNames=Red-Hat-Kiosk;GNOME;
- 重启
GDM
服务:systemctl restart gdm.service
- 为 kiosk 会话创建一个单独的用户,并选择
Kiosk
作为 kiosk 会话的用户的会话类型。图 13.1. 选择 kiosk 会话
Kiosk
会话,用户将启动一个专为 kiosk 部署而设计的全屏应用程序,。
13.10. 防止计算机在合上盖子时挂起
过程 13.10. 配置盖子开关
- 打开
/etc/systemd/logind.conf
文件进行编辑。 - 在文件中找到
HandleLidSwitch=suspend
行。如果开头是用#
字符引用的,请去掉引用。如果文件中不存在该行,请添加它。 - 将默认
suspend
参数替换为lock
用于锁定屏幕;ignore
用于什么事情都没发生;poweroff
用于关闭计算机。
例如:[Login] HandleLidSwitch=
lock
- 保存更改并关闭编辑器。
- 运行以下命令,以便您的更改保留到下一次系统重启:
# systemctl restart systemd-logind.service
警告请记住,重启服务会强制中断任何已登录的桌面用户当前运行的 GNOME 会话。这会导致用户丢失未保存的数据。
/etc/systemd/logind.conf
文件的详情,请查看 logind.conf(5)
手册页。
13.11. 在图形目标模式下按下 Power 按钮时,会更改行为
过程 13.11. 按下 power 按钮后,使用 dconf 将系统配置为关机
- 在
/etc/dconf/db/local.d/01-power
文件中为系统范围的设置创建一个local
数据库:[org/gnome/settings-daemon/plugins/power] power-button-action='interactive'
- 覆盖用户的设置,并阻止用户在
/etc/dconf/db/local.d/locks/01-power
文件中更改它:/org/gnome/settings-daemon/plugins/power/power-button-action
- 更新系统数据库:
#
dconf update
- 在系统范围的设置生效之前,退出并重新登录。
特定按钮的选项
nothing
- 什么都不做
suspend
- 挂起系统
hibernate
- 休眠系统
interactive
- 显示一个弹出查询,询问用户要做什么使用交互模式时,在按下 power 按钮后,系统会在 60 秒后自动关闭。但是,您可以从弹出查询中选择不同的行为,如下图所示。
图 13.2. 交互模式的弹出查询

第 14 章 会话管理
14.1. GDM 是什么?
GNOME 显示管理器
(GDM
)是一个图形登录程序,其在后台运行,为本地和远程登录运行和管理 X 服务器。
GDM
是 XDM
(X 显示管理器)的替代品。但是,GDM
并不来自 XDM
,不包含任何原始的 XDM
代码。另外,在 GDM
中不支持图形配置工具,因此需要编辑 /etc/gdm/custom.conf
配置文件来更改 GDM
设置。
14.1.1. 重启 GDM
GDM
以使更改生效。
GDM
服务,请运行以下命令:
#
systemctl restart gdm.service
14.1.2. 显示 GDM 配置的结果
GDM
配置的结果,请运行以下命令:
$ DCONF_PROFILE=gdm gsettings list-recursively org.gnome.login-screen
14.2. 身份验证
14.2.1. 使用企业凭证登录到 GNOME
@
符号,然后是域名。例如,如果您的域名是 example.com,用户名是 User,则输入:
User@example.com
14.2.1.1. 在欢迎屏幕中选择使用企业凭证
过程 14.1. 配置企业凭证
- 在 登录 欢迎屏幕中,选择 Use Enterprise Login。
- 如果事先没有填,请在 Domain 字段中输入您的域名。
- 在相关字段中输入您的域帐户用户和密码。
- 点击 Next。
14.2.1.2. 更改为使用企业凭据登录到 GNOME
过程 14.2. 配置企业凭证
- 点击顶部栏中您的名字,然后从菜单中选择 Settings。
- 从项目列表中选择 Users。
- 点击 Unlock 按钮,并输入计算机管理员的密码。
- 点击窗口左下角的 + 按钮。
- 选择 Enterprise Login 窗格。
- 输入您企业帐户的域、用户和密码,然后点击 Add。
14.2.1.3. 故障排查和高级设置
$
realm list
获取更多信息
14.2.2. 启用智能卡验证
- 配置 GDM 以允许提示智能卡
- 配置操作系统以允许使用智能卡登录
1.配置 GDM 以允许提示智能卡
过程 14.3. 使用 dconf 编辑器 GUI 启用智能卡验证
- 取消选中 org.gnome.login-screen enable-password-authentication dcof 键的框。
- 选中 org.gnome.login-screen enable-smartcard-authentication dcof 键的框。
过程 14.4. 使用 dconf-tool 启用智能卡验证
- 在
/etc/dconf/db/gdm.d
目录中创建一个 keyfile 。 - 将以下内容添加到此 keyfile 中:
[org/gnome/login-screen] enable-password-authentication='false' enable-smartcard-authentication='true'
- 更新系统 dconf 数据库:
#
dconf update
2. 配置操作系统以允许使用智能卡登录
14.2.3. 启用指纹身份验证
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
- gnome-session 程序负责在显示管理器(如 GDM )的帮助下运行 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 是 Red Hat Enterprise 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 文件
中用户的账户服务
:[User] Language= XSession=gnome
在这个示例中,已使用/usr/share/xsessions/gnome.desktop
文件将GNOME 设为默认会话。请注意,Red Hat Enterprise 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
日志。由于 Red Hat Enterprise Linux 7 是基于 systemd
的系统,因此用户会话日志数据是以二进制格式直接存储在 systemd
日志中的。
~/.xsession-errors
文件中,该文件已不再使用。
过程 14.6. 查看用户会话日志
- 运行以下命令来确定您的用户 ID(
uid
):$
id --user
1000 - 查看上面确定的用户 ID 的日志:
$
journalctl _UID=1000
获取更多信息
systemd
日志使用方法的更多信息。
systemd
日志的详情,请查看 Red Hat Enterprise Linux 7 系统级身份验证指南 。
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 键的值。如果键的值为 true,则会话管理器会自动运行应用程序。如果键值在运行的会话中发生了更改,会话管理器将启动或停止应用程序,具体取决于键之前的值是多少。
14.3.6. 配置自动登录
GDM
自定义配置文件中手动设置自动登录,如下所示:
例 14.1. 为用户 john 配置自动登录
/etc/gdm/custom.conf
文件,并确保文件中的 [daemon]
部分指定了如下内容:
[daemon]
AutomaticLoginEnable=True
AutomaticLogin=john
14.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
如果计算机是通过 AC 电源运行的,则它在休眠前需要处于非活动状态的秒数。org.gnome.settings-daemon.plugins.power.sleep-inactive-ac-type
如果计算机通过 AC 电源运行,则超时时会发生什么。org.gnome.settings-daemon.plugins.power.sleep-inactive-battery-timeout
如果计算机通过电源运行,它在休眠前需要处于非活动状态的秒数。org.gnome.settings-daemon.plugins.power.sleep-inactive-battery-type
如果计算机通过电池运行,超时时会发生什么。
$
gsettings range org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type
enum '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=uint32 900
uint32
以及整数值,如上所示。
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=uint32
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=uint32180
您必须包含uint32
以及整数键值,如上所示。 - 覆盖用户的设置,并阻止用户在
/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 (统一资源标识符)标准使用地址进行完全识别,其语法类似于 web 浏览器中使用的 URL 地址。这些 schema://user@server/path 形式的地址是确定服务类型的关键信息。
15.2. GVFS 的后端
GVFS
中有多个后端,它们提供了对特定类型资源的访问。以下是可用的 GVFS
后端及其规范的列表:
表 15.1. 可用的后端
后端 | 描述 |
---|---|
afc | 与 MTP (媒体传输协议)类似,公开 苹果 iDevice(通过 USB 连接)上的文件。 |
afp | 苹果文件协议(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 (文件传输协议)客户端,暂不支持 FTPS 。默认支持被动传输。 |
gphoto2 | 图片传输协议(PTP)客户端,用于访问通过 USB 或 FireWire 连接的相机。 |
http | 处理所有 HTTP 请求;对于在客户端应用程序中从 web 轻松下载文件非常有用。 |
locatest | 简单的测试后端代理 file:/// 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 中打开一个文件(即 Files 应用程序)。
- 在屏幕顶部的位置栏中,输入一个格式良好的 URI 字符串。如果没有显示位置栏,请按 Ctrl+L。或者,Nautilus 提供了 连接到服务器 对话框,您可以通过转至 Files → 连接到服务器 。
- 当系统要求登录凭据时,在相关条目框中输入您的名字和密码。
- 挂载过程完成后,您可以使用文件。
过程 15.2. 卸载
- 点击所选挂载上的弹出图标。
- 等待,直到挂载消失或有关安全移除的通知出现。
GVFS
挂载(以及物理卷)也仅限于其所有者,不允许其他用户利用您的隐私。
15.4. 管理书签
过程 15.3. 为位置添加书签:
- 选择您要为其建立书签的文件夹或文件。
- 按 Ctrl+D。
GVFS
子系统会查找现有的挂载,并生成一个新的挂载(如果不存在的话)。这样,您可以在打开或保存对话框中进行身份验证。
GtkFileChooser
)的应用程序都会在对话框左侧面板中列出书签。另外,Nautilus
及其克隆会在边栏中显示书签,或者更普遍的情况,是在 Files 菜单中显示书签。
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. 要编辑书签:
- 打开顶部栏中的 Files 菜单。
- 单击 Bookmark 以打开书签编辑器。
15.5. 配置默认服务器列表
~/.config/nautilus/servers
文件中存储一个文件共享服务器的列表。可以将文件共享服务器的列表添加到该文件,以便用户可以轻松地访问文件共享。
~/.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 打开 Files,并激活地址栏。
- 输入需要验证的、服务的格式良好的 URI 字符串(例如
sftp://localhost/
)。 - 此时会显示凭证对话框,要求输入用户名、密码和密码存储选项。
- 填写凭证并确认:
GNOME Keyring
是 secret 存储的中心位置。它是加密的,默认情况下,它会使用登录时提供的密码自动解锁桌面会话启动。如果它被其他密码保护,则在第一次使用时设置密码。
GNOME Keyring
本身,会提供 Seahorse 应用程序。它允许删除单个记录或更改密码。有关 Seahorse 的更多信息,请查阅有关直接嵌入在桌面中的 Seahorse 的帮助手册。
15.8. GNOME 中的 GVFS 工具和 xdg-utils
GVFS
附带了几个可能对编写脚本或测试很有用的命令。提供了一组对应的 POSIX 命令:
- gvfs-cat
- gvfs-less
- gvfs-mkdir
- gvfs-mount
- gvfs-rename
- gvfs-set-attribute
- gvfs-copy
- gvfs-ls
- gvfs-move
- gvfs-rm
- gvfs-trash
- gvfs-info
- gvfs-save
- gvfs-tree
GVFS
细节:
- gvfs-monitor-dir
- gvfs-monitor-file
- gvfs-mime
- gvfs-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 方式。
例 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
,是作为非GIO 客户端的回退提供的。
gvfs-fuse
进程是否在运行。由于 gvfs-fuse
会自动运行,因此不建议自己启动它,请尝试退出登录,然后再登录作为第一选项。
- 通过运行 id 命令(
gvfsd-fuse
守护进程需要一个公开其服务的路径)找到/run/user/UID/gvfs/
路径的UID
(系统用户 ID)。或者,当/run/user/UID/gvfs/
路径不可用时,gvfsd-fuse
会使用主目录中的.gvfs
路径。 - 通过运行 /usr/libexec/gvfsd-fuse -f /run/user/UID/gvfs 命令启动
gvfsd-fuse
守护进程。 - 现在,VFS 挂载可用,您可以手动浏览应用程序中的路径。
15.10.2. 连接的 USB 磁盘不可见
- 您不能在 Disks 应用程序中看到该设备。
- 您已经运行了
udisksctl dump
命令,它会列出udisks
守护进程的当前状态,并显示有关所有对象的信息,但您的闪存驱动器不在其中。 - 您已运行了 dmesg 命令。在日志的末尾,有与 USB 设备检测相关的消息,以及检测到的分区的列表,但您的闪存驱动器不在其中。
- 按 Super 键打开 Disks ,以进入到
活动概览
,输入Disks
,然后按 回车 键。 - 在 Volumes 操作菜单中点击 Edit Mount Options...。
- 点 Show in user interface。
- 通过单击 OK 进行确认。
15.10.3. Nautilus 显示未知或不需要的分区
/etc/fstab
文件中,因为设备默认不在用户界面中显示。/etc/fstab
文件通常会列出要在操作系统中使用的磁盘分区,并指示它们的挂载方式。某些挂载选项可能会允许或阻止在用户界面中显示卷。
- 按 Super 键打开 Disks ,以进入到
活动概览
,输入Disks
,然后按 回车 键。 - 在 Volumes 操作菜单中点击 Edit Mount Options...。
- 取消勾选 Show in user interface,然后单击 OK 确认。
15.10.4. 到远程文件系统的连接不可用
- 连接中断(例如,您的笔记本电脑与 Wi-Fi 的连接断开了)。
- 用户在一段时间内不活跃,被服务器断开连接(空闲超时)。
- 计算机从休眠模式恢复。
15.10.5. 如果磁盘忙,该怎么办?
在何处以及如何查看系统进程?
- 运行 lsof 命令来获取打开的文件列表和进程。如果 lsof 不可用,请运行 ps ax 命令,其也提供正在运行的进程的列表。
- 或者,您可以使用 System Monitor 应用程序来在 GUI 中显示正在运行的进程。
- 运行以下命令确保您已安装了
iotop
:#
yum install iotop
然后,以 root 用户身份运行iotop
来查看系统进程。
- 在命令行上执行 kill 命令。
- 在 System Monitor 中,右击带有程序进程名称的行,然后点击 End Process 或 Kill Process 下拉菜单项。
第 16 章 硬件配置
16.1. 平板电脑
16.1.1. 为新平板添加支持
libwacom
是一个平板电脑信息客户端库,存储了有关 Wacom 模型的数据。该库被 GNOME 中的 gnome-settings-daemon
组件和 Wacom Tablet 设置面板所使用。
libwacom
中,必须创建一个新的平板电脑定义文件。平板电脑定义文件包含在 libwacom-data 软件包中。如果安装了此软件包,则平板电脑定义文件会位于本地 /usr/share/libwacom/
目录中。
libwacom
数据库和 udev
规则文件中。
libwacom
支持的设备的一个常见标志是它通常在 GNOME 会话中工作,但设备没有正确映射到屏幕上。
过程 16.1. 如何添加平板电脑描述
- 使用
libwacom-list-local-devices
工具来列出libwacom
识别的所有本地设备。如果您的设备没有被列出,但可作为内核(请参阅/proc/bus/input/devices
)和 X 会话(请参阅 xinput list)中的事件设备提供,则libwacom
的数据库中会缺少该设备。 - 创建一个新的平板电脑定义文件。使用以下的 data/wacom.example ,并编辑相应的行。注意新的 .tablet 文件可能已经提供,因此先在 https://sourceforge.net/p/linuxwacom/libwacom/ci/master/tree/ 检查上游存储库。如果在列表中找到了您的平板电脑型号,只需将该文件复制到本地机器就可。
# Example model file description for a tablet [Device] # The product is the product name announced by the kernel Product=Intuos 4 WL 6x9 # Vendor name of this tablet Vendor=Wacom # DeviceMatch includes the bus (usb, serial), the vendor ID and the actual # product ID DeviceMatch=usb:056a:00bc # Class of the tablet. Valid classes include Intuos3, Intuos4, Graphire, Bamboo, Cintiq Class=Intuos4 # Exact model of the tablet, not including the size. Model=Intuos 4 Wireless # Width in inches, as advertised by the manufacturer Width=9 # Height in inches, as advertised by the manufacturer Height=6 # Optional features that this tablet supports # Some features are dependent on the actual tool used, e.g. not all styli # have an eraser and some styli have additional custom axes (e.g. the # airbrush pen). These features describe those available on the tablet. # # Features not set in a file default to false/0 [Features] # This tablet supports styli (and erasers, if present on the actual stylus) Stylus=true # This tablet supports touch. Touch=false # This tablet has a touch ring (Intuos4 and Cintiq 24HD) Ring=true # This tablet has a second touch ring (Cintiq 24HD) Ring2=false # This tablet has a vertical/horizontal scroll strip VStrip=false HStrip=false # Number of buttons on the tablet Buttons=9 # This tablet is built-in (most serial tablets, Cintiqs) BuiltIn=false
- 添加和安装以 .tablet 为后缀的新文件:
cp the-new-file.tablet /usr/share/libwacom/
安装后,平板电脑是libwacom
的数据库的一部分。然后,可通过libwacom-list-local-devices
提供平板电脑。 - 创建包含以下内容的新文件
/etc/udev/rules/99-libwacom-override.rules
,以便您的设置不会被覆盖:ACTION!="add|change", GOTO="libwacom_end" KERNEL!="event[0-9]*", GOTO="libwacom_end" [new tablet match entries go here] LABEL="libwacom_end"
- 重启您的系统。
16.1.2. Wacom 平板电脑配置存储在哪里?
/org/gnome/settings-daemon/peripherals/wacom/machine-id-device-id
键中,其中 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 是用于专业范畴的手写笔的标识符。对于不支持 tool-id 的消费者范畴,改为使用通用标识符。手写笔的配置模式是 org.gnome.settings-daemon.peripherals.wacom.stylus
,橡皮擦 的配置模式是 org.gnome.settings-daemon.peripherals.wacom.eraser
。
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 键的配置路径中,该键存储了您的平板电脑设置。
附录 A. KDE Plasma 工作区
附录 B. 访问红帽文档
B.1. 产品文档
- Red Hat Enterprise Linux 7 系统管理员指南 ,可从 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html-single/System_Administrators_Guide/index.html 获得,包含有关各种系统组件的详细信息,如
GRUB 2
引导装载程序、软件包管理、systemd
或打印机配置。 - Red Hat Enterprise Linux 7 安装指南 ,可从 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/index.html 获得,包含关于安装 Red Hat Enterprise Linux 7 和使用 Anaconda 安装程序的详细信息。
- Red Hat Enterprise Linux 7 迁移规划指南 ,可从 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html-single/Migration_Planning_Guide/index.html 获得,包含了 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 之间在行为和兼容性方面的重要变化的概述。迁移规划指南还介绍了红帽提供的工具,以帮助升级到 Red Hat Enterprise Linux 7。
- Red Hat Enterprise Linux 7 网络指南 ,可从 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html-single/Networking_Guide/index.html 中获得,包含了有关配置和管理 Red Hat Enterprise Linux 7 网络的信息。
- Red Hat Enterprise Linux 7 虚拟化部署和管理指南 ,可从 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Virtualization_Deployment_and_Administration_Guide/ 中获得,包含了安装、配置和管理 Red Hat Enterprise Linux 虚拟化的信息。
B.2. Red Hat Access GUI
附录 C. 致谢
附录 D. 修订历史记录
修订历史 | |||
---|---|---|---|
修订 0.1-95 | Mon Aug 05 2018 | Marie Doleželová | |
| |||
修订 0.1-87 | Wed Jul 26 2017 | Jana Heves | |
| |||
修订 0.1-86 | Mon Oct 17 2016 | Marie Doleželová | |
| |||
修订 0.1-85 | Mon Oct 17 2016 | Marie Doleželová | |
| |||
修订 0.1-84 | Wed 17 Aug 2016 | Marie Doleželová | |
| |||
修订 0.1-83 | Fri 01 Apr 2016 | Jana Heves | |
| |||
修订 0.1-82 | Wed 11 Nov 2015 | Jana Heves | |
| |||
修订 0.1-80 | Wed 24 Jun 2015 | Petr Kovář | |
| |||
修订 0.1-78 | Tue 07 Apr 2015 | Petr Kovář | |
| |||
修订 0.1-76 | Tue 17 Feb 2015 | Petr Kovář | |
| |||
修订 0.1-74 | Thu 04 Dec 2014 | Petr Kovář | |
| |||
修订 0.1-69 | Mon 02 Jun 2014 | Petr Kovář | |
| |||
修订 0.1-35 | Wed 11 Dec 2013 | Petr Kovář | |
|