GNOME/提示与技巧 - Arch Linux 中文维基

跳转到内容

# GNOME/提示与技巧

来自 Arch Linux 中文维基
< GNOME
翻译状态：

- 本文（或部分内容）译自 GNOME/Tips and tricks，最近一次同步于 2024-11-16，若英文版本有所更改，则您可以帮助同步与翻译更改的内容。
- 您可以在 ArchWiki 的对应页面找到本文翻译的原始修订历史。
- 本文可能与英文原文存在出入。

## 键盘

### 登录时启用NumLock

请参阅启动时打开数字锁定键#GNOME

### 热键替代

许多热键可以通过 GNOME 设置进行更改。例如，要重新启用显示桌面快捷键：

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

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

### XkbOptions 键盘选项

使用 dconf-editor, 导航至 `xkb-options` 键，位于 `org.gnome.desktop.input-sources` 模式下，并将所需的 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 文件，但可以通过使用 python-nautilus包 来重新绑定热键。安装该软件包并添加以下文件：

    ~/.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()
        # 在以下链接中查找 open_accels 和 nautilus_application_set_accelerators：
        #   https://github.com/GNOME/nautilus/blob/master/src/nautilus-files-view.c
        app.set_accels_for_action( "win.back", ["<alt>Left", "BackSpace"] )

        # 如果你想弄清楚哪个热键属于哪个操作，可以试试这个：
        # 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 条目。

## 隐藏菜单中的应用程序

提示：

- 桌面条目可以通过编辑 .desktop 文件本身来隐藏。请参阅桌面项#隐藏桌面项。
- MenulibreAUR 提供了一个无需 GNOME 依赖的菜单编辑器。

使用主菜单应用程序（由 alacarte包 软件包提供）隐藏你不想在菜单中显示的任何应用程序。

## 屏幕录像

GNOME 提供内建的屏幕录像功能，使用 `Ctrl+Shift+Alt+r` 快捷键组合。在顶部栏右侧的系统状态区旁会显示一个红色圆圈，表示正在录制。录制完成后，名为 `Screencast from %d%u-%c.webm` 的文件会保存在 `视频` 目录中。

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

为了使用屏幕录像功能，需安装一些 gst-plugin 软件包。例如，screencast pipeline（屏幕录像管道）依赖于 vp8enc 和 webmmux 元素，来自 gst-plugins-good包。如果尝试录制时出现“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 之间则加速动画。

### 设置减速因子

要暂时设置，打开 Looking Glass，按 Alt-F2 输入 `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

### 禁用动画

可以通过图形界面禁用动画，在设置 > 辅助功能 > 视觉 > 减少动画选项中切换。

## Retina (HiDPI) 显示支持

GNOME 在 3.10 版本中引入了 HiDPI 支持。如果显示器未通过 EDID 提供正确的屏幕尺寸，可能导致 UI 元素显示比例不正确。作为解决方法，你可以打开 dconf-editor，找到 `scaling-factor` 键，位于 `org.gnome.desktop.interface` 下。将其设置为 `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` 并输入你选择的配色方案的编号。

警告：安装配色方案时，切勿一次安装所有配色方案，因为它们会很难删除。请选择单个配色方案进行安装。

安装后，进入终端的首选项，点击颜色标签，选择你安装的配色方案名称。你会看到名称旁边有一个小箭头，点击它并选择设置为默认。

从这里开始，你可以进一步配置。如果某些颜色你不喜欢，可以轻松更改。

要删除一个配色方案，如果该配色方案是你的默认方案，首先将另一个方案设置为默认。然后选择该配色方案的名称并点击删除。

## 鼠标中键

本文或本节内容已经过时。

原因： `org.gnome.settings-daemon.peripherals.mouse` 键在 GNOME 4x 中已不存在，这仅适用于 GNOME 3 (在Talk:GNOME/提示与技巧讨论)

默认情况下，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 文件，指定要使用的图片和时间间隔来实现。有关如何创建此类文件的更多信息，请参见以下文章。

或者，有许多工具可以自动化此过程：

- mkwlppr — 该脚本创建 XML 文件，可以作为 GNOME 的动态壁纸，引用多个壁纸。

  https://pastebin.com/019G2rCy[失效链接 2023-07-30 ⓘ] || mkwlppr[失效链接 2023-07-30 ⓘ]

## 自定义 GNOME 会话

可以创建自定义的 GNOME 会话，使用 GNOME 会话管理器但启动不同的组件集（例如使用 Openbox 和 tint2 代替 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` 等目录中创建一个合适的桌面项。

## 将特定网址重定向到特定的网页浏览器

这是如何使用 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 软件与 pacman 集成

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

## 增加音量至超过 100%

您可以通过运行以下命令来允许音量过度放大：

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

或者，安装扩展 Volume Mixer。然后，使用鼠标在顶部面板的音量图标上滚动，以增加超过 100% 的音量。

或者，打开 GNOME 调整工具并切换常规 > 过度放大。

## 按更小步进调整音量

默认情况下，按键盘的音量键会将音量调整 6%。如果需要更小的步进，可以在按音量键时按住 `Shift`，此时音量将以 2% 的步进调整。

此外，从 GNOME 3.36 开始，现在可以通过 dconf 设置直接调整音量步进。例如，要将音量步进设置为 2%，请执行以下命令：

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

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

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

## 启动时使用独立 GPU

安装 switcheroo-control包 或 switcheroo-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+Tab` 和 `Alt+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 图像文件格式的支持。图像查看器使用的 `gdk-pixbuf2` 库将 `libheif` 列为可选依赖项。

## 将 dconf（gsettings）数据库存储为文本文件

默认情况下，dconf 将其配置存储在位于 `$XDG_CONFIG_HOME/dconf/user` 的二进制数据库 blob 中。如果您的主目录存储在 NFS 中，您将 dotfiles 存储在版本控制中，或出于其他原因，可以通过配置 dconf 配置文件来覆盖此默认设置。有关创建和使用配置文件的详细信息，请参见 dconf(7) § PROFILES。

在更改系统范围的默认设置之前，先将每个用户现有的 dconf 数据库转储为名为 `user.txt` 的文本文件。似乎无法使用其他扩展名。假设 `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` 文件的最新状态，并监视文本文件的更改。

分类：​

- GNOME
- 使用“模板:过时”标记的页面或章节
- 包含失效链接的页面

GNOME/提示与技巧
添加话题