qutebrowser
qutebrowser 是一个基于 Python 和 PyQt5 的键盘驱动型 Web 浏览器。
安装
安装 qutebrowser 或 qutebrowser-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
的快捷键绑定。
引用脚本的描述
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
禁用 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 集成
- 在您的 KeepassXC 配置中启用 KeepassXC-Browser 扩展。
从 KeePassXC 转到 工具->设置->浏览器集成,并选中“启用浏览器集成”。 - 确保在您的 GPG 密钥环中有一个可用的私钥-公钥对。
使用gpg --list-secret-keys --keyid-format=long
查找您的密钥。密钥必须是受信任的,例如,它应该在“uid”字段中包含“[ultimate]”。
如果它不受信任,您可以使用gpg --edit-key KEYID
,然后trust
,5
(完全信任)并确认来信任它。
最后,复制密钥 ID。 - 安装软件包 python-pynacl
- 调整您的 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
有关详细信息,请参阅 错误报告。
该错误报告提供了使用 qt5ctl
的 另一种方法,该方法不需要在启动时添加参数
- 在 qutebrowser 中,
:set qt.force_platformtheme qt5ctl
- 在
qt5ct
中,设置样式:gtk2,标准对话框:gtk2,调色板:默认 - 切换到样式表选项卡,并创建一个新文件(我将其命名为
tooltip-gtk2.qss
,但应该没关系) - 将以下内容放入其中
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); }
- 单击“保存”,然后单击“确定”
- 确保选中此新文件旁边的框,以便将其应用于主题
- 单击“应用”