跳转至内容

qutebrowser

来自 ArchWiki

qutebrowser 是一个以键盘为中心、用 Python 和 Qt 编写的网络浏览器。它使用 Chromium 网页引擎。

安装

安装 qutebrowser 包。

基本用法

使用 : 访问命令提示符。您可以使用 Tab 进行自动补全。

首次使用 qutebrowser 时,会显示一个快速入门页面。之后可以通过 :help 访问。有关键盘快捷键,请参阅 备忘单

用户配置

qutebrowser 可以通过用户界面、命令行或 Python 脚本进行配置。请参阅 上游配置指南

通过用户界面进行的配置将自动保存在 autoconfig.yml (请勿手动编辑)。对于手动配置,用户可以编写 config.py。这两个文件都位于 $XDG_CONFIG_HOME/qutebrowser 或备用的 $HOME/.config/qutebrowser

qutebrowser 中的配置

注意 如果存在 config.py 文件,通过用户界面进行的配置 (:set, :bind, :unbind) 将不会自动加载。要加载它,请在 config.py 中放置 config.load_autoconfig() [1]

要设置单个配置项,您可以直接键入 :set,后跟配置项的名称和您想要设置的新值。例如,您可以键入

:set auto_save.session true

在重新打开 qutebrowser 时打开您之前的标签页。

要打开 qutebrowser 的用户界面设置页面,请键入

:set

而不带任何其他参数。在那里,您可以在用户界面中编辑不同的设置。完成后,再次键入 :set 以存储您的配置。

例如,在 url.searchengines 下,您可以配置您的搜索引擎,它们被存储为键值对列表。如果您还没有更改此设置,它应该看起来像这样

{"DEFAULT": "https://duckduckgo.com/?q={}"}

这将把 DuckDuckGo 配置为您的默认搜索引擎,而占位符 {} 将被您的搜索词替换。要添加一个用于快速搜索 Arch Linux wiki 的快捷方式,您可以使用

{"DEFAULT": "https://duckduckgo.com/?q={}", "wa": "https://wiki.archlinux.org.cn/?search={}"}

然后,正如 qutebrowser 用户界面中的注释所述,您可以通过键入 o wa <searchterm> 来搜索 Arch Linux wiki。请注意,执行搜索所需的参数因搜索引擎而异。例如,要设置 Google,请使用 https://www.google.com/search?hl=en&q={}。或者设置 Brave Search,请使用 https://search.brave.com/search?q={}

如果您的系统已安装并运行 Tor,并且您希望使用 DuckDuckGo 的 onion 页面而不是普通页面,该设置应如下所示

{"DEFAULT": "https://duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion/?q={}", "wa": "https://wiki.archlinux.org.cn/?search={}"}

按键绑定

您可以使用命令 :bind key command 直接从浏览器编辑按键绑定,也可以直接从文件进行编辑。请注意,已有大量按键绑定。如果您注意到某个按键绑定有延迟,那是因为其他按键绑定也以相同的按键开头。

有关示例,请参阅 文档

视频播放

您可以在 config.py 中添加一个选项,在 mpv 中打开视频。以下示例显示按 Ctrl+/ 会显示页面上所有可用的视频链接,然后只需按所需视频链接的相应组合键,它就会在 mpv 中打开它。

config.py
...
config.bind('<Ctrl+/>', 'hint links spawn --detach mpv {hint-url}')
...

技巧与提示

导入快速标记/书签

qutebrowser 支持通过 Python 脚本 /usr/share/qutebrowser/scripts/importer.py 从多种格式导入书签。默认输出格式为 qutebrowser 的快速标记格式。有关书签和快速标记之间差异的简要说明,请参阅 qutebrowser FAQ

从 Chromium/Chrome 导入

运行上述脚本,将 chromium 指定为第一个参数,将包含书签文件的目录指定为第二个参数。对于 Chromium,该目录为 ~/.config/chromium/Default;对于 Chrome,该目录为 ~/.config/google-chrome/Default。脚本的输出可以附加到 ~/.config/qutebrowser/quickmarks。下面解释了一些输入格式。通过向 importer.py 提供 -h 标志可以找到更多信息。

$ python /usr/share/qutebrowser/scripts/importer.py chromium ~/.config/chromium/Default >> ~/.config/qutebrowser/quickmarks

从 Firefox 导入

将 Firefox 书签导出到 HTML 文件 (参见 [2])。然后,使用脚本进行导入。

$ python /usr/share/qutebrowser/scripts/importer.py bookmarks.html >> ~/.config/qutebrowser/quickmarks

从 bookmarks.html 文件导入

bookmarks.html 文件导入需要安装 python-beautifulsoup4 包。要导入,只需将您的 bookmarks.html 文件提供给 importer.py,并将输出附加到 ~/.config/qutebrowser/quickmarks

$ python /usr/share/qutebrowser/scripts/importer.py ~/.config/chromium/Default >> ~/.config/qutebrowser/quickmarks

作为书签而不是快速标记导入

您可以使用上述任何一种方法,并提供一个额外的 -b 标志来将脚本的输出格式更改为书签。然后,输出应附加到 ~/.config/qutebrowser/bookmarks/urls

$ python /usr/share/qutebrowser/scripts/importer.py -b chromium ~/.config/chromium/Default >> ~/.config/qutebrowser/bookmarks/urls

请注意,必须在浏览器规范之前添加该标志。

自动输入登录信息

您可以使用 qute-pass 用户脚本 自动输入存储在您的 Pass 密码管理器中的登录信息。您需要一个 dmenu 兼容的 应用程序启动器python-tldextract。设置一个执行 :spawn --userscript qute-pass 的按键绑定。

本文或本节需要在语言、wiki 语法或风格方面进行改进。请参阅 Help:Style 获取参考。

原因: 如果引文在用户脚本的 --help 页面上如此显眼,那么它应该包含在其中。(在 Talk:Qutebrowser 中讨论)

摘录自脚本的描述

The domain of the site has to appear as a segment in the pass path, for example: "github.com/cryzed" or "websites/github.com". How the username and password are determined is freely configurable using the CLI arguments. The login information is inserted by emulating key events using qutebrowser's fake-key command in this manner: [USERNAME]<Tab>[PASSWORD], which is compatible with almost all login forms.

为进一步说明,默认使用的 pass 结构应该看起来像这样

 user@computer$ pass 
 Password Store
 ├── example.site1.com
 │   └── username
 ├── example.site2.com
 │   └── username1
 │   └── username2

这意味着每个网站都是您 `~/.password-store` 文件夹中的一个目录。在每个网站名称的目录中,文件被命名为 `username.gpg`, `username2.pgp` 等,每个文件包含与网站上每个用户名的相关密码。对于从 Firefox 迁移过来的用户,修改版的 firefox_decrypt 应该会以这种格式迁移数据。

用户脚本提供了许多选项来适应大多数工作流程和特殊情况 (例如,只想插入密码,或者常规的插入用户名和密码方法不起作用)。

开启拼写检查

首先,使用 qutebrowser 自带的 dictcli.py 脚本下载相应的字典。

例如,用于英语 (美国)

$ /usr/share/qutebrowser/scripts/dictcli.py install en-US

该脚本还有其他功能,可以通过使用 --help 显示。

然后,在 qutebrowser 中设置以下内容

:set spellcheck.languages ["en-US"]

最小化指纹识别

网站可能会通过结合屏幕尺寸、用户代理、HTTP_ACCEPT 头部等信息来识别您。有关更多信息以及测试您的浏览器独特性,请参阅 [3]。以下是一些可以采取的步骤,使您的 qutebrowser 安装更加“通用”。

此外,请参阅 Firefox/Privacy#Configuration 以获取更多想法。

设置通用的用户代理

使用 set content.headers.user_agent 时,有几个用户代理可供选择。另一个可能更通用的用户代理是

Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0
  • 您可能想将 Windows NT 10.0 更改为 X11; Linux x86_64,因为网站也可以通过 Javascript 收集您的平台类型,而此设置无法在 qutebrowser 中更改。
  • 将您的用户代理更改为非默认值可能会导致某些网站无法正常工作。例如,如果用户代理被列为过时的浏览器,验证码会提示您的浏览器不受支持。

设置通用的 HTTP_ACCEPT 头部

以下是一个通用的 HTTP_ACCEPT 头部 (Firefox 默认)。只需在提示符处键入以下命令

set content.headers.accept_language en-US,en;q=0.5
set content.headers.custom '{"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}'

禁用从 Canvas 读取

set content.canvas_reading false
注意 某些网站依赖于 Canvas 读取来进行内容渲染和其他功能。添加此选项可能会导致它们无法正常工作 [4]

禁用 WebGL

content.webgl 设置为 false 以禁用 WebGL。

禁用网站

创建 ~/.config/qutebrowser/blocked-hosts 并每行输入您想要阻止的网站;例如 www.youtube.com。这将保留内置的广告拦截列表,并添加您在文件中输入的网站。重启 qutebrowser,然后运行 :adblock-update

启用 Brave 浏览器广告拦截器

安装 python-adblock 包并在 qutebrowser 中启用广告拦截器

:set content.blocking.method both

将某些特定链接 (如 YouTube、reddit 等) 在 mpv 中打开,而不是加载网页。这可以用来绕过广告、跟踪等。当然,您可以将 mpv 替换为您选择的视频播放器。

:bind M hint links spawn mpv {hint-url}

全局启用暗黑主题

:set colors.webpage.darkmode.enabled true

禁用 JavaScript

:set content.javascript.enabled false

通过 Tor 路由流量

这需要 Tor 已启用并正在运行。请注意,这仅使用 Tor 代理,但不会为您提供 Tor 浏览器可能带来的任何指纹识别保护。

:set content.proxy socks://:9050/

更改上下文菜单主题

要更改上下文菜单主题,请找到 config.py 的相关部分,并设置 适当的设置。例如

config.py
...
c.colors.contextmenu.disabled.fg = '#808080'
c.colors.contextmenu.menu.bg = '#353535'
c.colors.contextmenu.menu.fg = '#ffffff'
c.colors.contextmenu.selected.bg = '#909090'
...

与 KeePassXC 集成

qutebrowser 附带 qute-keepassxc,用于与 KeePassXC 集成。

与 KeePassXC 集成

  1. 在 KeepassXC 配置中启用 KeepassXC-Browser 扩展。
    从 KeePassXC 进入 工具->设置->浏览器集成,并勾选 "启用浏览器集成"。
  2. 确保您的 GPG 密钥环中有一个工作的公钥-私钥对。
    使用 gpg --list-secret-keys --keyid-format=long 查找您的秘密密钥。密钥必须受信任,例如,它应该在 "uid" 字段中包含 "[ultimate]"。
    如果它不受信任,您可以使用 gpg --edit-key KEYID 进行信任,然后输入 trust5 (最高信任级别) 并确认。
    最后,复制密钥 ID。
  3. 安装 python-pynacl
  4. 修改您的 qutebrowser 配置。
    例如,您可以将以下行添加到您的 ~/.config/qutebrowser/config.py 中。请记住将 `ABC1234` 替换为您实际的 GPG 密钥 ID。
config.py
config.bind('<Alt-Shift-u>', 'spawn --userscript qute-keepassxc --key ABC1234', mode='insert')
config.bind('pw', 'spawn --userscript qute-keepassxc --key ABC1234', mode='normal')

要管理多个账户,您还需要安装 rofi

故障排除

无法读取的工具提示

根据您的 Qt 主题,工具提示可能难以阅读。为了解决这个问题,请创建一个 Qt 样式表文件。例如

~/.local/share/qutebrowser/fix-tooltips.qss
QToolTip {
	background-color: palette(highlight);
	border: 2px solid palette(highlight);
	color: palette(text);
}

然后,在启动 qutebrowser 时加载样式表

qutebrowser --qt-arg stylesheet ~/.local/share/qutebrowser/fix-tooltips.qss
注意 如果已经有一个 qutebrowser 实例在运行,样式表将不会被应用。
提示 您可以使用 桌面条目 在指定额外参数时创建一个方便的启动器,例如在此示例中。

有关详细信息,请参阅 bug 报告

该 bug 报告提供了 另一种方法,使用 qt5ctl,该方法不需要在启动时传递参数。

  1. 在 qutebrowser 中,设置 qt.force_platformtheme qt5ctl
  2. qt5ct 中,设置样式:gtk2,标准对话框:gtk2,调色板:默认
  3. 切换到“样式表”选项卡,创建一个新文件 (我称之为 tooltip-gtk2.qss,但这并不重要)
  4. 将以下内容放入其中
    QToolTip{
    	background: QLinearGradient(x1: 0, y1: 0, x2: 0, y2: 0, stop: 0 palette(window), stop: 1 palette(alternate-window));
    	border-radius: 3px;
    	border: 1px solid #000000;
    	padding: 1px;
    	color: palette(text);
    }
  5. 点击保存,然后点击确定
  6. 确保选中此新文件旁边的复选框,以便它将被应用于主题
  7. 点击应用

参见

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.