GNOME/技巧和提示

出自 ArchWiki

键盘

登录时启用 NumLock

参见 Activating numlock on bootup#GNOME

快捷键替代方案

许多快捷键可以通过 GNOME 设置更改。例如,重新启用显示桌面快捷键绑定

设置 > 键盘 > 自定义快捷键 > 导航 > 隐藏所有普通窗口

但是,某些快捷键无法直接通过设置更改。为了更改这些键,请使用dconf-editorgsettings。一个特别值得注意的例子是快捷键 Alt+`(美式键盘布局上 Tab 键上方的键)。在 GNOME Shell 中,它被预配置为在应用程序的窗口之间循环切换,但它也是 Emacs 编辑器中常用的快捷键。可以使用上述工具之一修改 org.gnome.desktop.wm.keybindings 中的 switch-group 键来更改它。

XkbOptions 键盘选项

使用 dconf-editor,导航到 org.gnome.desktop.input-sources 模式下的 xkb-options 键,并将所需的 XkbOptions (例如 caps:swapescape) 添加到列表中。

有关所有 XkbOptions,请参阅 /usr/share/X11/xkb/rules/xorg,有关相应描述,请参阅 /usr/share/X11/xkb/symbols/*

取消绑定 Super 键

默认情况下,Super 键将打开 GNOME Shell 概览模式。您可以通过运行以下命令来取消绑定此键

$ gsettings set org.gnome.mutter overlay-key ''

修改 Nautilus 快捷键

自 3.15 版本起,不再可能使用 accel 文件,但可以通过利用 nautilus-python 重新绑定键。安装软件包并添加以下文件

~/.local/share/nautilus-python/extensions/modify_keybindings.py
import os, gi
gi.require_version('Nautilus', '3.0')
from gi.repository import GObject, Nautilus, Gtk, Gio, GLib

def rebind():
    app = Gtk.Application.get_default()
    # Search for open_accels and nautilus_application_set_accelerators in:
    #   https://github.com/GNOME/nautilus/blob/master/src/nautilus-files-view.c
    app.set_accels_for_action( "win.back", ["<alt>Left", "BackSpace"] )

    # if you want to figure out which hotkey belongs to which action try this:
    # print(f'Alt+Left is: {app.get_actions_for_accel("<alt>Left")}')

class BackspaceBack(GObject.GObject, Nautilus.LocationWidgetProvider):
    def __init__(self):
        pass

    def get_widget(self, uri, window):
        rebind()
        return None

重启 Nautilus

$ nautilus -q; nautilus

磁盘

GNOME 提供了一个磁盘实用程序来操作存储驱动器设置。以下是它的一些功能

  • 启用写入缓存 是大多数硬盘驱动器都提供的功能。数据被缓存并在选定的时间分配以提高系统性能。您很可能已经默认启用了此功能(不是通过磁盘实用程序)。要检查,请使用 hdparm -W /dev/sdX
设置 > 驱动器设置 > 写入缓存 > 开启
警告: 这种性能提升是以在突然断电的情况下可能丢失数据为代价的,在启用写入缓存之前请考虑这一点。
  • 用户会话默认值 启用以在 /etc/fstab 中使用您自己的选项,禁用以自动将默认和推荐的挂载选项添加到基于 GPT 的驱动器和分区。
分区设置 > 编辑挂载选项 > 自动挂载选项 > 开启
警告: 此设置会删除相关的 fstab 条目。

从菜单中隐藏应用程序

提示

使用主菜单应用程序(由 alacarte 软件包提供)来隐藏您不希望在菜单中显示的任何应用程序。

屏幕录像

GNOME 具有内置的屏幕录像功能,快捷键组合为 Ctrl+Shift+Alt+r。录制进行时,系统状态区域附近的顶部栏右侧会显示一个红色圆圈。录制完成后,名为 Screencast from %d%u-%c.webm 的文件将保存在 Videos 目录中。

注意: 录制文件名可能会根据您系统的语言进行翻译。

为了使用屏幕录像功能,需要安装一些 gst-plugin 软件包。例如,屏幕录像管道 依赖于 gst-plugins-good 中的 vp8encwebmmux 元素。如果您在尝试录制时收到有关缺少 "pipewiresrc" 模块的错误,请安装 gst-plugin-pipewire

提示: 使用 EasyScreenCast 可以方便地“配置桌面录制的各种设置”(包括自定义上述 GStreamer 管道)。EasyScreenCast 也可作为 gnome-shell-extension-easyscreencastAUR 提供。

默认情况下,最大屏幕录像长度为 30 秒。可以按如下方式更改此设置

$ gsettings set org.gnome.settings-daemon.plugins.media-keys max-screencast-length length_in_seconds

length_in_seconds 设置为 0 以获得无限长度(根据 max-screencast-length 的描述)。

屏幕截图

gnome-screenshot 默认情况下将图像保存在上次保存的目录中,您可以查询该目录

$ gsettings get org.gnome.gnome-screenshot last-save-directory

您可以设置自动保存目录,而不是使用上述目录。例如,将屏幕截图自动保存到 user 的桌面目录

$ gsettings set org.gnome.gnome-screenshot auto-save-directory file:///home/user/Desktop

查看 gnome-screenshot(1) 手册页以获取更多选项。

注销延迟

要消除注销时默认的 60 秒延迟

$ gsettings set org.gnome.SessionManager logout-prompt false

更改动画速度

Gnome shell 动画速度可以通过“减速因子”配置。大于 1.0 会减慢动画速度,介于 0.0 和 1.0 之间会加快动画速度。

设置减速因子

要临时设置,请使用 Alt-F2 打开 looking glass,输入 lg,然后运行,例如,加快动画速度

St.Settings.get().slow_down_factor = 0.4

或者使用 gnome-shell-extension-impatience-gitAUR

减速因子可以永久设置,无需扩展程序,使用环境变量 GNOME_SHELL_SLOWDOWN_FACTOR,例如

/etc/environment
GNOME_SHELL_SLOWDOWN_FACTOR=0.4

禁用动画

可以通过 GUI 禁用动画,方法是切换设置 > 辅助功能 > 视觉 > 减少动画

Retina (HiDPI) 显示器支持

GNOME 在 3.10 版本中引入了 HiDPI 支持。如果您的显示器未通过 EDID 提供正确的屏幕尺寸,则可能导致 UI 元素缩放不正确。作为一种解决方法,您可以打开 dconf-editor 并在 org.gnome.desktop.interface 中找到键 scaling-factor。将其设置为 1 以获得标准比例。

另请参阅 HiDPI

密码和密钥 (PGP 密钥)

您可以使用密码和密钥程序 seahorse 创建 PGP 密钥,因为它是一个 GnuPG 的前端,并将其作为依赖项安装。这在将来可能很有用(例如,如果要加密文件)。如下所示创建一个密钥(该过程可能需要大约 10 分钟)

文件 > 新建 > PGP 密钥 > 名称 > 电子邮件 > 默认值 > 密码.

终端

更改默认终端大小

可以在您的配置文件的首选项中调整新终端的默认大小。从菜单中选择首选项,然后在配置文件下选择您的配置文件以访问更改初始终端大小的设置。

新终端采用当前目录

默认情况下,新终端在 $HOME 目录中打开。您可以配置终端以 采用当前工作目录,方法是将 source /etc/profile.d/vte.sh 添加到您的 shell 配置文件中。

填充终端

要填充终端(在窗口边缘和终端内容之间创建小的、不可见的边框),请创建以下文件

~/.config/gtk-3.0/gtk.css
vte-terminal,
terminal-window {
    padding: 10px 10px 10px 10px;
    -vte-terminal-inner-border: 10px 10px 10px 10px;
}

禁用闪烁光标

要在 GNOME 3.8 及更高版本中禁用闪烁光标,请使用

$ gsettings set org.gnome.desktop.interface cursor-blink false

要仅在终端中禁用闪烁光标,请使用

$ gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$(gsettings get org.gnome.Terminal.ProfilesList default | tr -d \')/ cursor-blink-mode off

请注意,来自同名软件包的 gnome-settings-daemon 必须正在运行,此设置和其他设置更改才能在 GNOME 应用程序中生效 - 请参阅 GNOME#配置

关闭终端时禁用确认窗口

当以 root 用户身份登录时尝试关闭窗口时,终端将始终显示确认窗口。要避免这种情况,请执行以下操作

$ gsettings set org.gnome.Terminal.Legacy.Settings confirm-close false

调色板

终端支持将调色板更改为您喜欢的样式。只需转到 首选项,选择您的配置文件,最后编辑调色板。

终端配色方案

安装 gogh-gitAUR 软件包,该软件包提供了一组为 GNOME 终端制作的自定义方案。在您 选择一个方案(或多个方案) 后,运行 gogh 并输入您选择的方案的编号。

警告: 当提示时,不要一次安装 gogh 的所有配色方案,因为它们将很难删除。请改为选择安装单个方案。

安装后,转到终端的首选项,转到颜色选项卡,然后从窗口左侧选择您安装的配色方案的名称。您将在名称旁边看到一个小箭头,单击它并选择设置为默认值

从这里开始,可以进行进一步的配置。您可以轻松更改您不喜欢的某些颜色。

要删除方案,请先将另一个方案设置为默认方案(如果您已将要删除的方案设置为默认方案)。然后选择其名称并单击删除

鼠标中键

本文或章节已过时。

原因: org.gnome.settings-daemon.peripherals.mouse 键在 Gnome 4x 中不再存在,这仅适用于 GNOME 3(在 Talk:GNOME/Tips and tricks 中讨论)

默认情况下,GNOME 3 禁用鼠标中键模拟,而不管 Xorg 设置 (Emulate3Buttons) 如何。要启用鼠标中键模拟,请使用

$ gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true

启用按钮和菜单图标

自 GTK 3.10 起,GSettings 键 'menus-have-icons' 已被弃用。仍然可以通过设置以下覆盖来启用按钮和菜单中的图标

$ gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/ButtonImages': <1>, 'Gtk/MenuImages': <1>}"

为桌面背景使用自定义颜色和渐变

要为您的桌面背景使用自定义颜色和渐变,您首先需要将透明图片或不存在的图片设置为桌面背景。例如,以下命令会将不存在的图片设置为背景。

$ gsettings set org.gnome.desktop.background picture-uri none

此时,桌面背景应为纯色 - 默认颜色设置为深蓝色。

对于不同的纯色,您只需要更改主颜色设置

$ gsettings set org.gnome.desktop.background primary-color <my color>

其中 <my color> 是十六进制值(例如,ffffff 代表白色)。

对于颜色渐变,您还需要更改辅助颜色设置 org.gnome.desktop.background secondary-color 并选择阴影类型。例如,如果您想要水平渐变,请执行以下操作

$ gsettings set org.gnome.desktop.background color-shading-type horizontal

如果您使用透明图片作为背景,则可以通过执行以下操作来设置不透明度

$ gsettings set org.gnome.desktop.background picture-opacity <value>

其中 value 是介于 1 和 100 之间的数字(100 代表最大不透明度)。

过渡背景

GNOME 可以在特定时间间隔在不同的壁纸之间过渡。这是通过创建一个 XML 文件来完成的,该文件指定要使用的图片和时间间隔。有关创建此类文件的更多信息,请参阅以下 文章

自定义 GNOME 会话

可以创建自定义 GNOME 会话,这些会话使用 GNOME 会话管理器,但启动不同的组件集(例如,Openboxtint2 而不是 GNOME Shell)。

自定义 GNOME 会话需要两个文件:/usr/share/gnome-session/sessions/ 中的会话文件,该文件定义要启动的组件,以及 /usr/share/xsessions 中的 桌面条目,该条目由 显示管理器 读取。下面提供了一个示例会话文件

/usr/share/gnome-session/sessions/gnome-openbox.session
[GNOME Session]
Name=GNOME Openbox
RequiredComponents=openbox;tint2;gnome-settings-daemon;

以及一个示例桌面文件

/usr/share/xsessions/gnome-openbox.desktop
[Desktop Entry]
Name=GNOME Openbox
Exec=gnome-session --session=gnome-openbox
注意: GNOME 会话调用要启动的每个组件的 .desktop 文件。如果您要启动的组件未提供 .desktop 文件,则必须在诸如 /usr/local/share/applications 之类的目录中创建一个合适的 桌面条目 条目。

将特定 URL 重定向到特定 Web 浏览器

这展示了如何为某些类型的 URL 使用 Chromium,同时保持 Firefox 作为所有其他任务的默认浏览器。

确保 pcre安装,以使用 pcregrep

设置自定义 xdg-open

/usr/local/bin/xdg-open
#!/bin/bash
DOMAIN_LIST_FILE=~/'domains.txt'
OTHER_BROWSER='/usr/bin/chromium-browser'
BROWSER_OPTIONS='' # Optional, for command line options passed to browser
XDG_OPEN='/usr/bin/xdg-open'
DEFAULT_BROWSER='/usr/bin/firefox'

if echo "$1" | pcregrep -q '^https?://'; then
    matching=0
    while read domain; do
	if echo "$1" | pcregrep -q "^https?://${domain}"; then
	    matching=1
	    break
	fi
    done < "$DOMAIN_LIST_FILE"

    if [[ $matching -eq 1 ]]; then
	"$OTHER_BROWSER" $BROWSER_OPTIONS ${*}
	exit 0
    fi

    "$DEFAULT_BROWSER" ${*}
    exit 0
else
    "$XDG_OPEN" ${*}
fi

配置重定向到 Chromium 的域

$HOME/domains.txt
stackexchange.com
stackoverflow.com
superuser.com
www.youtube.com
github.com

xdg-open web 设置为桌面应用程序

$HOME/.local/share/applications/xdg-open-web.desktop
[Desktop Entry]
Version=1.0
Name=xdg-open web
GenericName=Web Browser
Exec=xdg-open %u
Terminal=false
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
StartupNotify=true
Categories=Network;WebBrowser;
Keywords=web;browser;internet;
Actions=new-window;new-private-window;
$ update-desktop-database $HOME/.local/share/applications/

在 GNOME 设置中将 xdg-open web 设置为默认 Web 应用程序:转到GNOME 设置 > 默认应用程序,并将Web 设置为xdg-open web

从 Nautilus 中的视频缩略图中移除胶片孔/胶片条

自 Gnome 3.12 以来,Nautilus (文件) 在视频缩略图上叠加了胶片孔/胶片条效果。要删除或覆盖此效果,可以使用环境变量 G_RESOURCE_OVERLAYS 来引用已编译资源(在本例中为 filmholes.png)的路径,并指定相关叠加层的路径。此环境变量仅自 GLib 2.50 起可用,并且对之前的版本无效。

从 Nautilus 中提取 filmholes.png

$ gresource extract /usr/bin/nautilus /org/gnome/nautilus/icons/filmholes.png > filmholes.png

使用您首选的编辑器编辑 filmholes.png,并从图像中删除胶片效果,保持透明度和尺寸不变,然后覆盖提取的图像。

将提取的图像复制或移动到所需位置,例如 /usr/share/icons/,并编辑 ~/.profile,添加以下导出,根据需要更改 /usr/share/icons/ 为您放置文件的位置

export G_RESOURCE_OVERLAYS=/org/gnome/nautilus/icons/filmholes.png=/usr/share/icons/filmholes.png

如果 ffmpegthumbnailer 已安装为可能生成缩略图的另一个文件管理器的依赖项,则应修改 /usr/share/thumbnailers/ffmpegthumbnailer.thumbnailer 中的 Exec 行,删除 -f 标志。

为确保没有剩余可能已嵌入胶片效果的缩略图,请删除缩略图缓存

$ rm -r ~/.cache/thumbnails

注销并重新登录到您的会话,您应该不再在 Nautilus 中的缩略图上看到胶片孔/胶片条效果。

GNOME Software 与 pacman 集成

packagekit 集成以前通过名为 gnome-software-packagekit-plugin 的软件包提供,但已被 自愿禁用,并且 被认为不受支持

将音量增加到 100% 以上

您可以通过运行以下命令来允许过放大

$ gsettings set org.gnome.desktop.sound allow-volume-above-100-percent true

或者,安装扩展 volume mixer。然后使用鼠标在顶部面板中的音量图标上方滚动以将音量增加到 100% 以上。

或者,打开 GNOME Tweaks 并切换通用 > 过放大

以更小的步长调整音量

默认情况下,按键盘的音量键会将音量调整 6%。如果需要更小的步长,按住 Shift 的同时按音量键会将音量调整 2% 的步长。

此外,从 GNOME 3.36 开始,现在可以通过 dconf 设置直接调整音量步长。例如,要将音量步长设置为 2%,请执行以下操作

$ gsettings set org.gnome.settings-daemon.plugins.media-keys volume-step 2

在顶部面板图标旁边显示音量百分比

安装扩展 sound percentage 以在顶部面板中的声音图标旁边显示当前输出音量级别。

在独立 GPU 上启动

安装 switcheroo-controlswitcheroo-control-gitAUR启动/启用 switcheroo-control.service

窗口列表

如果您喜欢在底部有一个任务列表,但不喜欢此扩展程序的默认黑色,请首先复制其目录

$ cp -r /usr/share/gnome-shell/extensions/window-list@gnome-shell-extensions.gcampax.github.com/ ~/.local/share/gnome-shell/extensions/

然后根据您的喜好编辑 CSS。例如,要使窗口列表透明,请按如下方式编辑 stylesheet.css

.bottom-panel {
  background: transparent;
}
...
.window-button > StWidget,
.window-picker-toggle > StWidget {
  color: #bbb;
  background-color: transparent;
  ...

导航

要模拟 Windows 在窗口之间切换的行为,请首先禁用默认设置,该默认设置将窗口切换限制为当前工作区中的窗口

$ gsettings set org.gnome.shell.app-switcher current-workspace-only false

然后,将 Alt+TabAlt+Shift+Tab 绑定到在窗口之间切换,而不是应用程序之间切换

$ gsettings set org.gnome.desktop.wm.keybindings switch-windows "['<Alt>Tab']"
$ gsettings set org.gnome.desktop.wm.keybindings switch-windows-backward "['<Shift><Alt>Tab']"

此外,可以重新绑定应用程序之间的切换(此示例使用 Super 而不是默认的 Alt

$ gsettings set org.gnome.desktop.wm.keybindings switch-applications "['<Super>Tab']"
$ gsettings set org.gnome.desktop.wm.keybindings switch-applications-backward "['<Shift><Super>Tab']"

图像查看器

安装 libheif 以添加对 HEIC 图像文件格式的支持,安装 `libheif`。图像查看器使用 `gdk-pixbuf2` 库,该库将 `libheif` 列为可选依赖项之一。

Dconf (gsettings) 数据库存储为基于文本的文件

默认情况下,dconf 将其配置存储在位于 $XDG_CONFIG_HOME/dconf/user 的二进制数据库 blob 中。如果您的主目录存储在 NFS 中,您将点文件保存在版本控制中,或其他原因,dconf 配置文件配置可能会覆盖此默认值。有关创建和使用配置文件的详细信息,请参阅 dconf(7) § PROFILES

在更改系统范围的默认设置之前,将每个用户的现有 dconf 数据库转储到名为 user.txt 的基于文本的 keyfile 中。似乎不可能使用不同的扩展名。假设 XDG_CONFIG_HOME 的默认值,可以使用以下命令完成此操作

$ dconf dump / > ~/.config/dconf/user.txt

完成后,以 root 用户身份创建默认 dconf 配置文件。

/etc/dconf/profile/user
service-db:keyfile/user

注销并重新登录,并验证更改 dconf 设置是否会更改基于文本的 user.txt,但不会更改旧的二进制 user 文件,然后再删除二进制数据库。

此设置应会产生一些最小的额外资源使用。Dconf 仍然在临时 XDG_RUNTIME_DIR 目录中使用二进制数据库,但它必须在桌面启动时重新创建它。它还必须使 user.txt 保持最新,并监视文本文件中的更改。