跳转到内容

GNOME

来自 Arch Linux 中文维基

GNOME(读音为/(ɡ)noʊm/)是一个追求简单易用的桌面环境。它由 GNOME项目设计,并且完全由自由开源的软件组成。GNOME默认使用 Wayland 作为显示服务器,并同时提供多个对话可供选择:

  • GNOME是在Wayland上运行GNOME Shell的默认选项。传统的X应用使用Xwayland运行。
  • GNOME Classic通过特定的扩展和数值,提供了“传统的桌面体验”(类似GNOME2的界面)。因此,它是GNOME Shell的定制样式,而非真正的不同模式。

安装

有两个软件组可用:

GNOME 的基础桌面环境由 Mutter 窗口管理器的插件 GNOME Shell 组成。可以用 gnome-shell 单独安装它。

注意:mutter 是桌面的混成器。它利用硬件图形加速减少屏幕的混乱。GNOME 会话管理器会自动检测显卡驱动是否能够运行 GNOME Shell,如果不行则用 llvmpipe 软件渲染。

也可以使用不稳定版本,见官方软件仓库#gnome-unstable

运行 GNOME

GNOME 可以使用显示管理器以图形方式启动,也可以从控制台手动启动(可能会缺少某些功能)。gnome包组的显示管理器是GDM

注意:GDM提供了GNOME的锁屏功能(及其它)支持。如果没有使用GDM启动GNOME,则需要使用其它屏幕锁定器。见List of applications/Security#Screen lockers

图形界面启动

如果安装了gnome包组并希望GNOME在下次启动时自动启动, 请启用 gdm.service,随后可以在显示管理器的会话菜单中选择想要使用的会话:GNOMEGNOME Classic (仅在gnome-shell-extensions 已安装时显示)。

如果想立即启动 GNOME 以避免重启,可以从一个没有被图形占用的 tty 上启动 gdm.service

手动启动

注意:仍然需要X服务器用于运行尚未移植到Wayland的应用,详见Wayland#XWayland。使用Qt等特定图形库的应用,可以通过强制设置环境变量使用Wayland。详见Wayland#GUI libraries

会话类型

Gnome会话继承了systemd的会话类型。当会话开始时,systemd的会话类型在会话启动时由XDG_SESSION_TYPE环境变量决定,并在启动后只能由该会话上的控制器决定。详见 Github

因此仅仅在登录后设置XDG_SESSION_TYPE 并不起作用。因此应创建一个systemd drop-in 文件给getty设置环境变量:

/etc/systemd/system/getty@tty1.service.d/wayland.conf
[Service]
Environment=XDG_SESSION_TYPE=wayland

重新加载后检查会话类型:

$ loginctl session-status

启动会话

在正确设置会话类型后,可以通过以下命令手动启动会话:

$ gnome-session

由于直接运行gnome-shell --wayland缺乏会话管理,所以并不推荐。

请注意,手动调用Gnome不需要gdm(因此也不需要附带的gdm.service),因此对于安装了Gnome最小安装的用户来说,可以根据个人喜好,选择一些包含在更广泛的gnome组中的软件包。

若要在 tty1 登录时启动,将以下内容添加到 .bash_profile 中:

gnome-session --no-reexec

Firefox和Qt应用不遵守XDG_SESSION_TYPE,所以最好给它们加上变量:

if -z $DISPLAY && $(tty) == /dev/tty1 && $XDG_SESSION_TYPE == wayland ; then
  MOZ_ENABLE_WAYLAND=1 QT_QPA_PLATFORM=wayland exec gnome-session --no-reexec
fi

Wayland中的GNOME应用

在使用 GNOME 会话时,GNOME 应用将使用 Wayland 运行。出于调试需要, https://docs.gtk.org/gtk3/running.htmlhttps://docs.gtk.org/gtk4/running.html 列出的选项和环境变量。

导航

GNOME Shell cheat sheet 中解释了如何高效地使用 GNOME shell,它展示了 GNOME shell 的特色和快捷键,包括切换任务,使用键盘,窗口控制,面板,概览模式等等。以下是部分常用的快捷键:

  • Super+m:显示消息列表
  • Super+a:显示应用菜单
  • Alt+Tab:切换当前使用的应用
  • Alt+` (美式键盘Tab上面的按键):切换正在前台使用的应用的窗口
  • Alt+F2,然后输入 rrestart:在图形界面出问题时重启界面(仅用于X/传统模式,不适用于Wayland模式)。

如需改变默认配置,使其更类似Windows,见 GNOME/提示与技巧#导航

更多快捷键见键盘导航

遗留名称

注意:一些GNOME应用在文档和对话框中的名称已经更改,但执行文件名称却没有。下面表格列出了一些这样的应用。
提示:在搜索栏中搜索应用的遗留名称将成功找到对应的应用,例如搜索 nautilus 会出现 文件
当前 遗留
文件 Nautilus
Web Epiphany
视频 Totem
主菜单 Alacarte
文档查看器 Evince
磁盘使用情况分析器 Baobab
图像查看器 EoG (Eye of GNOME)
密码和密钥 Seahorse
翻译编辑器 Gtranslator

配置

GNOME系统设置面板(gnome-control-center)和GNOME应用使用dconf配置系统存储设置。

您可以使用gsettings(1)命令行工具直接访问 dconf 数据库。这也可以让您修改用户界面不公开的设置。命令行工具 dconf(1) 可以直接修改底层数据库,跳过验证过程。

直到GNOME 3.24,设置由GNOME设置进程应用(位于/usr/lib/gnome-settings-daemon/gnome-settings-daemon),其也可以在GNOME会话之外运行。

然而GNOME 3.24用几个相互独立的设置插件(/usr/lib/gnome-settings-daemon/gsd-*,后来移动到/usr/lib/gsd-*)取代了 GNOME 设置进程。这些插件通过 /etc/xdg/autostart (匹配org.gnome.SettingsDaemon.*.desktop) 下的桌面文件进行控制。若要在 GNOME 会话之外运行这些插件,您需要复制或编辑相应的桌面条目~/.config/autostart

配置通常是用户特定的,本文将不介绍如何为多个用户创建配置模板。

GNOME 系统设置

色彩

colord 守护进程会读取显示器的 EDID 信息并提取出合适的色彩配置内容。大多数情况下,色彩配置都是正确的,不需要额外设置;但是对于某些偏差情况或使用较旧的显示器时,可以把色彩配置文件放在 ~/.local/share/icc/ 下并被指向。

夜间模式

GNOME 内置了类似于 Redshift 的蓝光过滤功能。夜间模式可以在设置面板中启动及自定义启动时间。此外,夜间模式的色温可以使用以下dconf设置进行调整,5000是一个示例值:

$ gsettings set org.gnome.settings-daemon.plugins.color night-light-temperature 5000
提示:若要在Wayland中调整白天的色温,请安装Night Light Slider扩展
注意:在NVIDIA显卡上,夜间颜色只工作在版本545.29.02及之后的驱动上

日期与时间

如果系统已有配置好的网络时间协议 守护进程,它同样会对 GNOME 起作用。如果需要,同步设置可以在菜单内设为手动控制。

GNOME支持自动选择时区,可在系统设置里的日期和时间选项中开启。前提是已开启定位服务 (见设置中的隐私选项)。

注意:由于Mozilla定位服务的退役,自动选择时区可能不再工作。见[1] . 解决方案见 [2]

若要在顶栏内显示日期,请运行:

$ gsettings set org.gnome.desktop.interface clock-show-date true

另外,若要在顶栏的日历中显示周数,请运行:

$ gsettings set org.gnome.shell.calendar show-weekdate true

默认应用程序

首次安装 GNOME 时,您可能会发现某些格式由错误的应用处理,比如视频被totem打开而不是以前使用的 VLC。某些格式关联可以使用系统设置中的默认应用程序进行调整。

有关其它协议和方法,请参阅默认应用程序进行配置。

鼠标和触摸板

大多数触摸板设置可以使用系统设置中的鼠标和触摸板进行调整。

根据您的设备,其它配置可能可用,但不会显示在默认界面内,例如不同的触摸板点击方法:

$ gsettings range org.gnome.desktop.peripherals.touchpad click-method
enum
'default'
'none'
'areas'
'fingers'

手动设置:

$ gsettings set org.gnome.desktop.peripherals.touchpad click-method 'fingers'

或使用gnome-tweaks设置。

注意:GNOME 不支持 synaptics 并默认使用 libinput。参考 这个缺陷报告
使用鼠标更改窗口大小

默认情况下,您可以使用鼠标移动窗口,方法是按住 Super,单击并按住鼠标左键并拖动鼠标。

此外,您可以通过按住 Super、单击并按住鼠标右键并拖动鼠标来启用鼠标调整窗口大小:

$ gsettings set org.gnome.desktop.wm.preferences resize-with-right-button true

如果您不喜欢 Super 键,还可以将修饰键更改为其他键,例如 Alt 或 Ctrl:

$ gsettings set org.gnome.desktop.wm.preferences mouse-button-modifier "'<Alt>'"

网络

NetworkManager 是GNOME项目中控制网络设置的工具。如果尚未安装,则安装networkmanager软件包并启用NetworkManager.service

虽然可以使用任何其它网络管理器,但 NetworkManager 可以使用整合到桌面环境的网络设置和状态指示器( network-manager-applet,不必要安装 )。

注意:networkmanagernmtui设置隐藏的无线网络不会自动连接。您需要在GNOME设置中创建一个新配置文件,以恢复该网络的自动连接功能。

在线帐户

部分在线账户,比如 ownCloud,需要安装 gvfs-goagvfs-dnssd以在 GNOME 应用比如 GNOME 文件以及 GNOME 文档中发挥全部功能[3]

详见在线账户

搜索

GNOME shell在按下Super键并开始输入时会启动搜索。localsearch作为gnome包组nautilus的依赖被默认安装。它提供一个应用和数据的索引数据库。它可以被设置中“搜索”菜单项配置。它在用户登录时自动被gnome-session启动。

localsearch 并不自动递归用户的家目录中所有的目录,所以你可能需要在 搜索 > 搜索位置 中添加自定义的路径。创建一个名为 .nomedia 的空文件以将某个目录从索引中排除。

可通过 localsearch status 查看当前索引状态。搜索内容可以在命令行中被localsearch search查看,被localsearch tag编辑,以及被重置。见 localsearch help 或在线寻求参考。

tinysparql-sql被用作索引数据库。如果需要,数据库可以被直接查询。

设备安全

GNOME 43 在设置中添加了一个新的设备安全面板。该功能依赖fwupd工作。见 [4]

高级设置

如上文所述,改变GTK主题或窗口管理器主题等选项,并不会出现在GNOME设置(gnome-control-center)里。想要修改这些设置可以使用GNOME Tweaks (gnome-tweaks),这是一个展示了许多这类设置的图形化工具。

(存储在 DConf 数据库中的)GNOME设置也可以使用dconf-editor(1)(一个图形化的DConf配置工具)或gsettings命令行工具进行配置。GNOME Tweaks 只能用于改变GUI。注意,你不一定总能看到下文描述的所有设置。

拓展

拓展的目录位于 https://extensions.gnome.org。拓展可通过 archlinux官方仓库 (少数), AUR或者网页安装。

本文或本章节的事实准确性存在争议。

原因: 下方的“注意”推荐手动管理用户文件,因为更“简单”,但并没有解释为什么。(在 Talk:GNOME 中讨论)
注意:* 通过浏览器安装拓展仅对当前用户生效,并需要用户手动管理升级。这是比较简单的方法。
    • 此外,如果你想要从浏览器安装拓展,你需要安装 gnome-browser-connector。如果从官方仓库或者AUR安装,则不需要。
  • 从AUR(或者官方仓库)安装拓展是他们对整个系统生效(并且在使用 AUR 助手时自动更新)。

已安装的拓展可以通过 gnome-extensions-app在图形界面、在命令行使用gnome-extensions(1)或在浏览器中通过网页配置、启用或禁用。在浏览器中,如需安装和激活拓展,请点击右上角的ON,然后点击弹出窗口的Install(如果该拓展并没有被安装)。已经安装的拓展可在 https://extensions.gnome.org/local/查看并检查更新。

gnome-shell-extensions 提供了一些GNOME官方维护的非常有用的拓展。

extension-manager 是一个用于在操作系统或用户范围内安装、拆卸、启用、禁用拓展的图形工具。安装前请仔细确认已知问题列表

启用一个拓展(默认禁用):

$ gsettings set org.gnome.shell disable-user-extensions false

列出当前启用的拓展:

$ gsettings get org.gnome.shell enabled-extensions

上述命令可能会列出已删除的扩展。要仅列出已启用和安装的扩展,请改用 gnome-extensions:

$ gnome-extensions list --enabled

关于 GNOME shell拓展的更多信息,详见 https://extensions.gnome.org/about/.

外观

主题
注意:Gnome 42开始,许多默认的Gnome应用程序使用GTK 4和libadwaita。这些应用程序目前不支持通过gsettings或gnome-tweaks改变主题,只能通过系统设置的外观选项来调整配置。若要设置Adwaita或Adwaita-dark以外的GTK主题,见GTK#Themes

GNOME默认使用Adwaita。若要只将Adwaita-dark应用于GTK 2应用,请使用以下符号链接:

$ ln -s /usr/share/themes/Adwaita-dark ~/.themes/Adwaita
注意:Adwaita-dark主题由gnome-themes-extra提供,因此GNOME的最小安装可能不会包含此主题。

若要选择新的主题,(将它们移到适当的目录中,并)使用GNOME Tweaks或下面的GSettings命令。

对于GTK主题:

$ gsettings set org.gnome.desktop.interface gtk-theme theme-name

对于图标主题:

$ gsettings set org.gnome.desktop.interface icon-theme theme-name
注意:窗口管理器的主题会跟随GTK主题。使用org.gnome.desktop.wm.preferences theme的方法已被废弃和忽略。

GTK#ThemesIcons#Manually.

标题栏按钮排序

设置 GNOME 窗口管理器顺序 (Mutter, Metacity):

$ gsettings set org.gnome.desktop.wm.preferences button-layout ':minimize,maximize,close'
提示:冒号表示窗口标题栏按钮出现的方向
GNOME Shell主题

GNOME Shell本身的主题是可配置的。首先确认您已安装gnome-shell-extensions软件包以应用Shell主题。然后通过GNOME Tweaks或通过GNOME Shell Extensions 网站启用“User Themes”扩展。Shel主题可以通过使用GNOME Tweaks软件加载并选用。

AUR里有大量可用的GNOME Shell主题。Shell主题也可在gnome-look.org里下载。

AppIndicators/顶部菜单栏图标

AppIndicators 对于监控和控制后台程序很有用,其对应的软件包是 gnome-shell-extension-appindicator or gnome-shell-extension-appindicator-gitAUR。安装后重启 GNOME Shell ,然后在 GNOME 扩展程序中启用 AppIndicator 扩展,或者运行 $ gnome-extensions enable $(gnome-extensions list | grep -m 1 appindicatorsupport)来以命令行方式启用它。

Shell动画速度

GNOME shell 动画可以被提速、降速或禁用。见GNOME/Tips and tricks#Change animation speed.

Shell 模糊效果

Blur my Shell 是一个给概览模式页面、Shell本身和其他部分应用添加模效果的拓展。安装 gnome-shell-extension-blur-my-shellAUR ,或者gnome-shell-extension-blur-my-shell-gitAUR 。该拓展具有高度可自定义性,并且你可以自由选择对哪些应用施加模糊效果。

更好的 Alt-Tab

GNOME中默认的 Alt-Tab功能非常简单,并不展示selected windows的概览。你可以在设置应用中将 Alt-Tab快捷键从 “切换应用” 改为 “切换窗口”以展示窗口概览。

你也可以使用Coverflow Alt-Tab。这是一个拓展Alt-Tab行为的拓展,添加了一些特性使在应用程序之间切换更简单、更好看。 安装gnome-shell-extension-coverflow-alt-tab-gitAUR。你可以根据喜好配置该拓展。

注意:Super-`默认提供“切换窗口”功能。

自启动

GNOME提供XDG Autostart

gnome-tweaks 程序可以用来管理自启动项。

提示:如果Tweaks中自启动应用选项下加号按钮为灰色不可用,尝试在终端下通过gnome-tweaks命令启动Tweaks。见此贴

桌面

Dash to Dock

To move the dash out of the overview and turn it into a dock to以便于启动和切换应用, 安装 gnome-shell-extension-dash-to-dockAUR.

启动到概览模式

从GNOME 40开始,桌面会直接启动到概览模式,而不是桌面(如以前的版本)。若要模仿经典的行为,可以安装No overview at start-up插件。

如果你在使用gnome-shell-extension-dash-to-dockAUR,你也可以在gsettings中禁用该行为。

$ gsettings set org.gnome.shell.extensions.dash-to-dock disable-overview-on-startup true

详见此讨论

剪贴板历史

不像其他桌面环境,GNOME 并没有内建的管理剪贴板历史的工具。你可以使用拓展。安装 gnome-shell-extension-clipboard-indicatorAUR

天气

以展示选定地点的天气,比如状态、风速、气压等信息,请安装 gnome-shell-extension-openweatherAUR。天气信息实时更新。

音频输入输出选择

这一章节正在考虑移除。

原因: 该软件目前最高只支持到Gnome 43。 (在 Talk:GNOME 讨论)

默认情况下,如果你想要选择音频输入输出设备或改变麦克风的音量,你需要打开GNOME控制中心进行配置。你可以安装gnome-shell-extension-sound-output-device-chooserAUR 或者 gnome-shell-extension-sound-output-device-chooser-gitAUR以更方便地控制他们。你可以在安装后进行更多的配置。

字体

提示:如果您把"Scaling factor"调至1.00以上的某值,辅助功能菜单将自动启用

GNOME可以设置窗体标题,界面(应用),文档及等宽字体。查看Tweaks下的字体选项卡以获得相关选项。

对于字体渲染来说,RGBA可能适合更多的显示器类型,如果字体看起来过分拥挤,可以将字体渲染调至“Slight”或“None”。

输入法

GNOME集成了的通过IBus的输入法, 只有ibus和添加想要的输入法引擎 (例如:ibus-libpinyin for Intelligent Pinyin) 需要安装,安装后,输入法引擎可以加入GNOME的区域和语言设置键盘布局。

非主流键盘布局

如果您使用的是像Neo2这样使用多层/修饰键的替代键盘布局,您可能需要转到 GNOME。设置 (gnome-control-center)中的 Keyboard > Type Special CharactersAlternate Characters Key右 Alt 改为其他键,以便它可以作为键盘布局的本地修饰键使用。将其设置为 Left Alt 会阻止 Alt+Tab 键盘快捷键,因此请小心您所更改的内容。 如果没有进行这个更改,您的左 Mod3 键可能会起作用,但右侧的一个 (AltGr) 键可能不会起作用。(截至2021-05-18)

电源

当您使用笔记本时,可能想修改以下设置,包括控制闲置、按下电源按钮和盖子关闭时的行为。

$ gsettings set org.gnome.settings-daemon.plugins.power button-power hibernate
$ gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 3600
$ gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type hibernate
$ gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout 1800
$ gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type hibernate
$ gsettings set org.gnome.desktop.lockdown disable-lock-screen true

如需在合上盖子后依然保持显示器开启:

$ gsettings set org.gnome.settings-daemon.plugins.xrandr default-monitors-setup do-nothing

GNOME 3.24中不建议使用以下设置:

org.gnome.settings-daemon.plugins.power button-hibernate
org.gnome.settings-daemon.plugins.power button-power
org.gnome.settings-daemon.plugins.power button-sleep
org.gnome.settings-daemon.plugins.power button-suspend
org.gnome.settings-daemon.plugins.power critical-battery-action
笔记本合盖时不挂起

The settings panel of GNOME does not provide an option for the user to change the action triggered when the laptop lid is closed. To change the lid switch action system-wide, edit the systemd settings in /etc/systemd/logind.conf. To turn off suspend on lid close, set HandleLidSwitch=ignore, as described in Power management#ACPI events.

修改电池电量严重不足时的行为

设置面板不提供对电池电量严重不足行为的设置。这些设置也从dconf中移除。不过它们现在由upower管理。按需编辑/etc/UPower/Upower.conf中upower设置。

/etc/UPower/UPower.conf
PercentageLow=10
PercentageCritical=3
PercentageAction=2
CriticalPowerAction=HybridSleep
电源模式

安装 gnome-control-center 的可选依赖 power-profiles-daemon 以支持电源配置文件。 由于 gnome-shell 和 GNOME 设置都请求在启动时激活 power-profiles-daemon 服务,所以不需要特意将其启动/启用

当服务激活时,可以通过 GNOME 设置的电源选项和系统菜单管理电源配置文件。

录屏

内建的截屏工具没有默认录屏选项。安装 gnome-shell的可选依赖 gst-plugin-pipewire 以启用录屏功能。

使用不同的窗口管理器

GNOME Shell 不支持更改窗口管理器, 但是 GNOME Flashback 提供使用 Metacity 和 Compiz 的session。此外,可以通过自定义 GNOME sessions 来使用别的组件。

将 GNOME Shell替换为不同的 Wayland compositor 将会导致gnome-control-center (GNOME 设置)的部分设置显示错误。gnome-control-center 依然可以正常工作,但因为 mutter (GNOME Shell) 无法用于提供这些设置以填充这些区域,他们将不再奇效或无法准确反映你的设置。这些设置包括蓝牙,显示以及鼠标/触控板等。

参见