GNOME/技巧和窍门
键盘
登录时开启数字小键盘 (NumLock)
热键替代方案
许多热键可以通过 GNOME 设置进行更改。例如,要重新启用显示桌面快捷键
设置 > 键盘 > 自定义快捷键 > 导航 > 隐藏所有常规窗口
然而,某些热键无法直接通过设置进行更改。要更改这些键,请使用 dconf-editor 或 gsettings。一个值得注意的例子是 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)添加到列表中。
查看 /usr/share/X11/xkb/rules/xorg 获取所有 XkbOptions,查看 /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
Disks
GNOME 提供了一个磁盘工具来操作存储驱动器设置。以下是其部分功能
- 启用写缓存是大多数硬盘驱动器提供的功能。数据会被缓存并在指定时间分配,以提高系统性能。此功能很可能已默认开启(非通过磁盘工具开启)。要检查,请使用
hdparm -W /dev/sdX。
- 设置 > 驱动器设置 > 写缓存 > 开启
- 警告 此性能提升伴随着突然断电导致数据丢失的可能性,在启用写缓存之前请考虑这一点。
- 用户会话默认值:启用以在
/etc/fstab中使用您自己的选项,禁用以自动为基于 GPT 的驱动器和分区添加默认及推荐的挂载选项。
- 分区设置 > 编辑挂载选项 > 自动挂载选项 > 开启
- 警告 此设置会删除相关的 fstab 条目。
从菜单中隐藏应用程序
- 可以通过编辑 .desktop 文件本身来隐藏桌面条目。参见 桌面条目#隐藏桌面条目。
- MenulibreAUR 提供了一个无 GNOME 依赖的菜单编辑器。
使用 主菜单 应用程序(由 alacarte 软件包提供)来隐藏任何您不希望在菜单中显示的应用程序。
屏幕录制
GNOME 具有内置的屏幕录制功能,使用 Ctrl+Shift+Alt+r 组合键即可触发。录制过程中,顶部栏系统状态区域附近会显示一个红色圆圈。录制结束后,名为 Screencast from %d%u-%c.webm 的文件将保存在 Videos 目录中。
为了使用屏幕录制功能,需要安装一些 gst-plugin 软件包。例如,屏幕录制流水线 依赖于来自 gst-plugins-good 的 vp8enc 和 webmmux 元件。如果您在尝试录制时收到关于缺少 "pipewiresrc" 模块的错误,请安装 gst-plugin-pipewire。
屏幕录制的最长时长默认限制为 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
您可以设置一个自动保存目录来替代使用上述目录,例如将截图自动保存到 用户 的桌面目录
$ 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 密钥 > 名称 > 电子邮件 > 默认值 > 密码.
Terminal
更改默认终端大小
新终端的默认大小可以在您的配置文件首选项中调整。从菜单中选择 首选项,然后在 配置文件 下选择您的配置文件,即可访问更改初始终端大小的设置。
新终端继承当前目录
新终端默认在 $HOME 目录中打开。您可以配置终端 继承当前工作目录,方法是在 shell 配置文件中添加 source /etc/profile.d/vte.sh。
为终端添加内边距
要为终端添加内边距(在窗口边缘和终端内容之间创建一个小的、不可见的边框),请创建以下文件
~/.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 并输入所选方案的编号。
安装后,转到终端的 首选项,点击 颜色 选项卡,从窗口左侧选择已安装的配色方案名称。名称旁边会显示一个小箭头,点击它并选择 设为默认。
在此之后,可以进行进一步的配置。您可以轻松更改某些您不喜欢的颜色。
要移除方案,如果该方案是您的默认设置,请先将另一个设置为默认。然后选择其名称并点击 删除。
鼠标中键
双键鼠标模拟
默认情况下,无论 Xorg 设置(Emulate3Buttons)如何,GNOME 3 都会禁用鼠标中键模拟。要启用鼠标中键模拟,请使用
$ gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true
启用中键点击粘贴
从 GNOME 50.0 开始,已默认禁用从 (PRIMARY 选择项) 粘贴文本。要重新开启,请执行
$ gsettings set org.gnome.desktop.interface gtk-enable-primary-paste 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>
其中值是 1 到 100 之间的数字(100 为最大不透明度)。
背景过渡
GNOME 可以在特定时间间隔内过渡不同的壁纸。这是通过创建一个指定要使用的图片和时间间隔的 XML 文件来完成的。有关创建此类文件的更多信息,请参阅以下 文章。
自定义 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
/usr/local/share/applications 等目录中创建一个合适的 桌面条目。将特定 URL 重定向到指定 Web 浏览器
这展示了如何对特定类型的 URL 使用 Chromium,同时保持 Firefox 作为所有其他任务的默认浏览器。
设置自定义 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 的软件包实现,但已被 主动禁用 并 被视为不支持。
使用 pacman 安装的应用程序会显示在 GNOME Software 中,但无法从中卸载。要不显示它们,请设置此选项并重启 GNOME Software
$ echo GNOME_SOFTWARE_PLUGINS_BLOCKLIST=appstream > ~/.config/environment.d/gs-disable-appsteam.conf $ gnome-software --quit
将音量提高至 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,以在顶部面板的音频图标旁显示当前的输出音量水平。
在独立显卡上运行程序
安装 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 的基于文本的 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 为最新,并监控文本文件的更改。