qutebrowser

来自 ArchWiki

qutebrowser 是一个基于 Python 和 PyQt5 的键盘驱动型 Web 浏览器。

安装

安装 qutebrowserqutebrowser-gitAUR 软件包。

基本用法

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

首次使用 qutebrowser 时,会出现一个快速入门页面。稍后可以通过 :help 访问。请参阅 速查表 获取键盘快捷键。

用户配置

qutebrowser 可以通过 UI、qutebrowser 命令行或 Python 脚本进行配置。qutebrowser 自身的文档详细解释了如何使用这些不同的方法配置 qutebrowser。要打开 qutebrowser 的帮助系统,请键入 :help。在帮助页面上,选择 Configuring qutebrowser

要查找配置文件所在的路径,请打开特殊页面 qute://version。在 Arch Linux 上,这通常是 $XDG_CONFIG_HOME/qutebrowser/。在 qutebrowser 中所做的配置将存储在 autoconfig.yml 中(用户不应触碰),而用户的 Python 脚本是 config.py

在 qutebrowser 中配置

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

:set auto_save.session true

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

要打开 qutebrowser 的 UI 设置页面,请键入

:set

不带其他参数。在那里,您可以在 UI 中编辑不同的设置。完成后,再次键入 :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 UI 中的注释所述,您可以通过键入 o wa <搜索词> 来搜索 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 文件(请参阅 [1])。然后,使用脚本导入。

$ 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"]

最小化指纹追踪

网站可能能够根据屏幕尺寸、User-Agent、HTTP_ACCEPT 标头等组合信息来识别您。请参阅 [2] 以获取更多信息并测试您的浏览器的唯一性。以下是一些可以采取的步骤,使您的 qutebrowser 安装更“通用”。

另请参阅 Firefox/隐私#配置 以获取更多想法。

设置通用的 User-Agent

使用 set content.headers.user_agent 时,有多个 User-Agent 可用作选项。另一个可能更通用的 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 中更改。
  • 将您的 User-Agent 从默认值更改为其他值将阻止某些网站正常工作。例如,如果 User-Agent 列为过时的浏览器,则 CAPTCHA 将提到您的浏览器不受支持。

设置通用的 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 读取来进行内容渲染和其他功能。添加此选项可能会导致它们无法正常工作 [3]

禁用 WebGL

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

禁用网站

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

启用 Brave 浏览器广告拦截器

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

:set content.blocking.method both

在 mpv 中打开一些链接

在 mpv 中打开一些特定链接(如 YouTube、reddit 等),而不是加载网页。这可以用于绕过广告、追踪等。您当然可以将 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://localhost: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 实例正在运行,则样式表将不会应用。
提示: 您可以使用 桌面条目 在指定额外参数时创建方便的启动器,例如在本例中。

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

该错误报告提供了使用 qt5ctl另一种方法,该方法不需要在启动时添加参数

  1. 在 qutebrowser 中,:set 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. 单击“应用”

参见