GNOME/提示与技巧
许多热键可以通过 GNOME 设置进行更改。例如,要重新启用显示桌面快捷键:
设置 > 键盘 > 自定义快捷键 > 导航 > 隐藏所有正常窗口
然而,某些热键无法通过设置直接更改。为了更改这些热键,请使用 dconf-editor 或 gsettings。一个特别值得注意的例子是快捷键 Alt+`(在美国键盘布局中是Tab键上方的键)。在 GNOME Shell 中,它预配置为在应用程序的窗口之间循环切换,但它也是 Emacs 编辑器中常用的快捷键。可以通过使用上述工具修改 org.gnome.desktop.wm.keybindings 中的 switch-group 键来进行更改。
使用 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 键将打开 GNOME Shell 概览模式。你可以通过运行以下命令来取消绑定此键:
$ gsettings set org.gnome.mutter overlay-key ''
自 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 条目。
使用主菜单应用程序(由 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包。
默认情况下,屏幕录像的最大时长为 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
可以通过图形界面禁用动画,在设置 > 辅助功能 > 视觉 > 减少动画选项中切换。
GNOME 在 3.10 版本中引入了 HiDPI 支持。如果显示器未通过 EDID 提供正确的屏幕尺寸,可能导致 UI 元素显示比例不正确。作为解决方法,你可以打开 dconf-editor,找到 scaling-factor 键,位于 org.gnome.desktop.interface 下。将其设置为 1 以获得标准比例。
更多信息请参阅 HiDPI。
你可以使用密码和密钥程序 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 并输入你选择的配色方案的编号。
安装后,进入终端的首选项,点击颜色标签,选择你安装的配色方案名称。你会看到名称旁边有一个小箭头,点击它并选择设置为默认。
从这里开始,你可以进一步配置。如果某些颜色你不喜欢,可以轻松更改。
要删除一个配色方案,如果该配色方案是你的默认方案,首先将另一个方案设置为默认。然后选择该配色方案的名称并点击删除。
默认情况下,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 会话管理器但启动不同的组件集(例如使用 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 等目录中创建一个合适的桌面项。这是如何使用 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。
自 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 中看到视频缩略图上的胶片孔/胶片条纹效果。
packagekit包 集成功能以前通过名为 gnome-software-packagekit-plugin 的软件包提供,但已被自愿禁用,并且被认为不再受支持。
您可以通过运行以下命令来允许音量过度放大:
$ 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,以在顶部面板的音量图标旁边显示当前输出音量级别。
安装 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 将其配置存储在位于 $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 文件的最新状态,并监视文本文件的更改。