14.3. 用户会话

14.3.1. 什么是用户会话中的典型流程?

在一个 GNOME 储备会话中,名为守护程序(daemon)的程序在系统上作为后台过程运行。您会发现以下守护程序是默认运行的:
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. 配置用户默认会话

默认会话从一个名为 AccountService 的程序中检索得到。账户服务将此信息存储于 /var/lib/AccountsService/users/ 目录下。

注意

在 GNOME 2 中,用户家目录里的 .dmrc 文件用来创建默认会话。现在 .dmrc 文件已经不再使用。

过程 14.5. 为用户规定默认会话

  1. 请确保您已经通过运行以下命令安装了 gnome-session-xsession 软件包:
    # yum install gnome-session-xsession
  2. 前往 /usr/share/xsessions 目录,在那里您可以找到每个可用会话的 .desktop 文件。查阅 .desktop 文件的内容,来确定您想要使用的会话。
  3. 如需为用户规定一个默认会话,请更新 /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. 创建自定义会话

如需创建您自己自定义配置的会话,请执行以下步骤:
  1. /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)手册页。
  2. /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”日志中。

注意

在红帽企业版 Linux 6 中,用户会话日志数据存储在 ~/.xsession-errors 文件中,现在该文件已不再使用。

过程 14.6. 查看用户会话日志

  1. 通过运行以下命令确定您的用户 ID(uid):
    $ id --user
    1000
  2. 查看以上确定的用户 ID 的分类日志:
    $ journalctl _UID=1000

14.3.4.1. 获得更多信息

14.3.5. 为所有用户添加自动启动的应用程序

如需在用户登录时自动启动某个应用程序,您需要在 /etc/xdg/autostart/ 目录下为该应用程序创建一个 .desktop 文件。
如需为个别用户管理自动启动的应用程序,请使用 gnome-session-properties 应用程序。

过程 14.7. 为所有用户添加一个自动启动的应用程序

  1. /etc/xdg/autostart/ 目录下创建一个 .desktop 文件:
    [Desktop Entry]
    Type=Application
    Name=Files
    Exec=nautilus -n
    OnlyShowIn=GNOME;
    AutostartCondition=GSettings org.gnome.desktop.background show-desktop-icons
  2. 用应用程序的名字代替 Files
  3. 用您想用来运行该应用程序的命令代替 nautilus -n
  4. 您可以使用 AutostartCondition 键值来查看 GSettings 键值的内容。
    如果键值为正确的话,会话管理器将自动运行应用程序。如果在当前运行的会话中键值发生改变,会话管理器会根据之前的键值来判断启动或停止应用程序。

14.3.6. 设置自动登录

拥有“管理员 ”账户类型的用户可以从 GNOME“设置”中的“用户”面板上启用“自动登录 ”。系统管理员也可以按以下步骤在“GDM”自定义配置文件中手动设置自动登录:

例 14.1. 为用户 john 设置自动登录

编辑 /etc/gdm/custom.conf 文件并确保文件中的 [daemon] 部分指定了以下内容:
[daemon]
AutomaticLoginEnable=True
AutomaticLogin=john
用您希望自动登录的用户代替 john

14.3.7. 设置自动退出

可自动结束闲置一定时间的用户会话。您可基于计算机是靠电池运行还是靠主电源运行,通过设置对应的 GSettings 键值并锁定,来设定不同的行为。

警告

请牢记,如果自动结束闲置会话,用户可能会丢失尚未存储的数据。

过程 14.8. 连接电源的计算机自动退出的设置

  1. /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'
  2. 覆盖用户设置,并阻止用户在 /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
    
  3. 更新系统数据库:
    # dconf update
以下 GSettings 键值需要考虑:
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-type
enum
'blank'
'suspend'
'shutdown'
'hibernate'
'interactive'
'nothing'
'logout'

14.3.8. 设置屏幕亮度和闲置时间

通过设置以下 GSettings 键值,您可以配置亮度下降程度,并设置亮度和闲置时间。

例 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
请以 root 身份运行 dconf update 命令,将您的更改合并到系统数据库中。

注意

您也可以锁定上述设置,以阻止用户改变它们。请参见〈第 9.5.1 节 “锁定特定设置”〉。

14.3.9. 在用户闲置计算机时锁定屏幕

如果想在用户闲置计算机时自动锁定屏幕并启用屏保,您需要创建一个 dconf 配置文件、设置 GSettings 键值对,并对其锁定以防止用户编辑。

过程 14.9. 启用屏保和锁定屏幕

  1. /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
  2. 覆盖用户设置,并阻止用户在 /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
  3. 更新系统数据库:
    # dconf update

14.3.10. 屏幕录像记录

GNOME Shell 的一大特色是有一个内置的屏幕录像记录器,因此用户得以在会话中录制桌面或应用程序的活动,并将录制结果归类为 webm 格式的高分辨率视频文件。

过程 14.10. 制作屏幕录像

  1. 如需开始录制,请按 Ctrl+Alt+Shift+R
    在记录器捕捉屏幕活动时,屏幕右下角会显示一个红色的圈。
  2. 如需停止录制,请按 Ctrl+Alt+Shift+R。屏幕右下角的红圈会消失。
  3. 前往 ~/Videos 文件夹,在那里您可以找到录制的视频,它的文件名以 Screencast 开头,并包括录制的日期和时间。
请注意,内置记录器总是捕捉整个屏幕,包括多显示器设置中的所有显示器。