8.3. 使用 GNOME Shell 扩展来自定义桌面环境

GNOME Shell 扩展允许自定义默认的 GNOME Shell 界面及其部分,如窗口管理和应用程序启动。

重要

在 Red Hat Enterpris Linux 上部署第三方 GNOME Shell 扩展之前,请确保阅读以下文档,来了解红帽对第三方软件的支持政策:红帽全球支持服务如何处理第三方软件、驱动程序和/或未认证的硬件/虚拟机监控程序?

8.3.1. GNOME Shell 扩展概述

以下是 RHEL 8 上可用的 GNOME Shell 扩展的概述,包括提供特定扩展的软件包的名称,以及每个扩展的作用的描述。

表 8.2. 可用的 GNOME Shell 扩展概述

软件包名称扩展名称描述

gnome-shell-extension-apps-menu

apps-menu

GNOME Shell 的 Applications 菜单

gnome-shell-extension-top-icons

Top Icons

显示顶部的传统图标

gnome-shell-extension-user-theme

user-theme

支持 GNOME Shell 中的自定义主题

gnome-shell-extension-drive-menu

drive-menu

GNOME Shell 的驱动状态菜单

gnome-shell-extension-window-list

window-list

在 GNOME Shell 的屏幕底部显示窗口列表

gnome-shell-extension-dash-to-dock

Dash to Dock

micxgx.gmail.com 提供的 Gnome Shell dock

gnome-shell-extension-desktop-icons

Desktop Icons

支持 GNOME 经典体验的桌面图标

gnome-shell-extension-no-hot-corner

nohotcorner

禁用 GNOME Shell 中的热角

gnome-shell-extension-systemMonitor

systemMonitor

GNOME Shell 的 系统监控器

gnome-shell-extension-updates-dialog

Updates Dialog

当有软件更新时显示模式对话框

gnome-shell-extension-window-grouper

window-grouper

在同一工作区上保留属于同一进程的窗口

gnome-shell-extension-panel-favorites

Panel-favorites

GNOME Shell 顶栏中的最喜欢的启动程序

gnome-shell-extension-windowsNavigator

windowNavigator

支持 GNOME shell 中窗口和工作区的键盘选择

gnome-shell-extension-auto-move-windows

Autom Move Windows

在 GNOME Shell 中为应用程序分配特定的工作区

gnome-shell-extension-launch-new-instance

launch-new-instance

始终为 GNOME Shell 启动新的应用程序实例

gnome-shell-extension-workspace-indicator

workspace-indicator

GNOME Shell 的工作区指示器

gnome-shell-extension-disable-screenshield

Disable Screen Shield

如果锁定被禁用,请禁用 GNOME Shell 屏幕屏蔽

gnome-shell-extension-native-window-placement

native-window-placement

GNOME Shell 的原生窗口放置

gnome-shell-extension-screenshot-window-sizer

screenshot-window-sizer

GNOME Shell 的截屏窗口大小调节器

gnome-shell-extension-horizontal-workspaces

horizontal-workspaces

支持 GNOME 经典体验的桌面图标

gnome-shell-extension-places-menu

places-menu

GNOME Shell 的 Places 状态菜单

gnome-classic-session

GNOME 经典模式会话

8.3.2. 启用机器范围的扩展

先决条件

若要为系统上的所有用户提供扩展,请在 /usr/share/gnome-shell/extensions 目录中安装它们。

流程

  1. 为机器范围的设置在 /etc/dconf/db/local.d/00-extensions 中创建一个本地数据库文件:

    [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.commyextension2@myname.example.com)指定启用的扩展。

  2. 更新系统数据库:

    # dconf update
  3. 在系统范围的设置生效前,用户必须退出并重新登录。

    注意

    目前无法为已经登录的用户启用额外的扩展。这不适用于已安装并启用了他们自己的 GNOME 扩展的现有用户。

8.3.3. 锁定启用的扩展

您可以通过锁定 org.gnome.shell.enabled-extensions 键来防止用户启用或禁用扩展。

流程

  1. 为机器范围的设置在 /etc/dconf/db/local.d/00-extensions 中创建一个本地数据库文件:

    [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.commyextension2@myname.example.com)指定启用的扩展。

  2. 覆盖用户设置,并防止用户在 /etc/dconf/db/local.d/locks/extensions 中更改它:

    # Lock the list of mandatory extensions
    /org/gnome/shell/enabled-extensions
  3. 更新系统数据库:

    # dconf update
  4. 在系统范围的设置生效前,用户必须退出并重新登录。

锁定 org.gnome.shell.enabled-extensions 后,在 ~/.local/share/gnome-shell/extensions/usr/share/gnome-shell/extensions 中安装的任何不在 org.gnome.shell.enabled-extensions 键中列出的扩展,都不会被 GNOME Shell 加载,从而防止用户使用它们。

8.3.4. 设置强制扩展

在 GNOME Shell 中,您可以提供用户必须使用的扩展集。

先决条件

扩展必须安装在 /usr/share/gnome-shell/extensions 目录下。

流程

  1. /etc/dconf/db/local.d/00-extensions-mandatory 中,为机器范围的设置创建一个本地数据库文件:

    [org/gnome/shell]
    # List all mandatory extensions
    enabled-extensions=['myextension1@myname.example.com', 'myextension2@myname.example.com']

    enabled-extensions 键使用扩展的 UUID(myextension1@myname.example.commyextension2@myname.example.com)指定启用的扩展。

  2. 覆盖用户设置,并防止用户在 /etc/dconf/db/local.d/locks/extensions-mandatory 中更改它:

    # Lock the list of mandatory extensions
    /org/gnome/shell/enabled-extensions
  3. 更新系统数据库:

    # dconf update
  4. 在系统范围的设置生效前,用户必须退出并重新登录。