/r/qutebrowser

Photograph via snooOG

A subreddit for qutebrowser - a keyboard-driven, vim-like browser based on Python and Qt.

A keyboard-driven browser.

Rules:

  1. Be polite and considerate, follow qutebrowser's Code of Conduct

  2. No spam allowed

  3. Posts must be related to qutebrowser

Official website

Github repository

Cheatsheet

Frequently asked questions

/r/qutebrowser

3,856 Subscribers

1

Feedback from actions in userscripts

When writing a userscript, I get info from env variables and I write commands to a fifo. Fine.

How do I get the result of the action ?

  • status : did work, did not work.
  • result

Thanks

8 Comments
2025/02/03
11:29 UTC

2

:open but open the tab next to my current tab

Been using qutebrowser for the last 3 year (since 2022), I usually open 20-30 tab since qutebrowser is light on cpu and memory , and those tab will have some section, like I might have 4 tabs in consecutive about a certain topic and have another 5 on a different topic, what always bugged me is each time I am on a tab say tab 1 and tried to open a new tab I can open it with :open unless I opened a new tab with F w/c is not what I want

Any way I can simply :open right next to my current tab

9 Comments
2025/02/01
18:17 UTC

2

How to make open_url_in_instance.sh work or does it work?

In qutebrowser config.py I have below config:

c.new_instance_open_target = 'tab'
c.new_instance_open_target_window = 'last-focused'

I have created a symlink ~/.local/scripts/qutebrowser/open_url_in_instance.sh points to /usr/share/qutebrowser/scripts/open_url_in_instance.sh. Directory ~/.local/scripts/qutebrowser/ is added to the $PATH

I think qutebrowser can recognize open_url_in_instance.sh, but when I tried to open links in terminal with qutebrowser, the time it takes to open the link is the same, still several seconds.

Why is that? Do the script really works? Or how to make it work?

I know it's explained in FAQ, but I don't understand "use this script and place it in your $PATH with the name qutebrowser".

3 Comments
2025/01/31
15:02 UTC

2

Advive on: Coloring tab bar, general ad blocking and yt throttling

Hey everyone. I have spend the last days with qutebrowser and really like it. I have used vimium before, so the general usage isn't completely new to me, but I have some small issues I would like to fix and need advice with:

- Coloring issue on the tab bar. I installed a theme (catppuccin mocha) and followed the instructions on their github page. The only issue I have is the green coloring (screenshot). The color is #00AA00 and I tried to find where it gets set, but was unable to do so. So if anyone knows how the element is named, which defines the color, it might be easier to fix.

- Adblocking: I enabled ad blocking (=both) in the config but would like to know if there is a good approach to enhance it further?

- Youtube Ads: Currently I'm spawning mpv with yt-dlp but I have a buffering issue (I read on the yt-dlp github issue tracker that this might occur on certain video resulutions?). And the other problem I still have is, blocking/skipping the ads on youtube in general. I found the advice to try spawn gobble browserxyz, so I can quickly switch to another browser which has the ability to skip ads. Is this approach still good or should I try something else?

I would kindly appreciate some help on these things.

EDIT: Screenshot was missing. Regarding the buffering issue: The bandwidth can't be the problem. It even stops, buffers and so on, on lower resolutions. When watching the videos with another browser the problem is gone.

https://preview.redd.it/u51n7hqr0efe1.png?width=1267&format=png&auto=webp&s=2b5446dd27b40e86c64544d9c9c7ae0e062c8635

3 Comments
2025/01/26
17:46 UTC

1

Don't know how to make scripts taking extra argument from the promt

I've build a script to save a url with some extra info in a file so i can track that later, but I don't know how to make it take text in qutebrowser prompt.

#!/bin/sh
# Save URL with hint to progress file

PROGRESS_FILE="$HOME/.progress.pi"

# Get hint from qutebrowser prompt (passed as first argument)
HINT="$1"
URL="$QUTE_URL"

# Append in "hint: url" format
echo "$HINT: $URL" >> "$PROGRESS_FILE"

# Optional: Show confirmation message
echo "message-info 'Saved: $HINT ➔ $URL'" >> "$QUTE_FIFO"
4 Comments
2025/01/23
20:15 UTC

1

How to add extensions to Qutebrowser

I was looking for a way to add highlighting to qutebrowser so i can highlight most important text in the webbage. but didn't found anything. I'm not that good in python so scripting that isn't an easy thing for me (I even don't know if that's possible or not)

3 Comments
2025/01/22
18:23 UTC

1

How to remove youtube ads??

Please Is there are anyway for removing Youtube ads better??

13 Comments
2025/01/21
20:23 UTC

2

How do i copy text with the mouse???

I think I'm going insane. I've looked through the cheatsheet, the help page, distrotube's website; hell, I even asked notion AI, but to no avail.

Is there a single way to copy/yank text that was highlighted with the mouse into your clipboard? You can copy the url of the page, the title, the title of the selected text, but not the actual text. I understand there's a caret mode, but quickly copying text is the literal only thing i want to do with the mouse right now.

9 Comments
2025/01/21
00:00 UTC

2

Notifications support on wayland?

How to enable notifications for qutebrowser on wayland?

2 Comments
2025/01/17
21:11 UTC

2

Color of selected text

Is it possible to change color of text selected with mouse (default it's blue)

2 Comments
2025/01/14
13:13 UTC

2

hi, Does QB accept any environment variable for the location of `config.py` file?

hi, Does QB accept any environment variable for the location of config.py file?

12 Comments
2025/01/06
20:46 UTC

6

Searchengine configuration on Qutebrowser

Hey there,

I am new on qutebrowser and I'm trying to use searchengines.

I set up this configuration but when I use `:open yt` it searches on duckduckgo for yt. It is possible to use that bind to open the default yt page?

```py

c.url.searchengines = {

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

'am': 'https://www.amazon.com/s?k={}',

'aw': 'https://wiki.archlinux.org/?search={}',

'goog': 'https://www.google.com/search?q={}',

'hoog': 'https://hoogle.haskell.org/?hoogle={}',

're': 'https://www.reddit.com/r/{}',

'ub': 'https://www.urbandictionary.com/define.php?term={}',

'wiki': 'https://en.wikipedia.org/wiki/{}',

'yt': 'https://www.youtube.com/results?search\_query={}'

}

```

12 Comments
2025/01/03
16:08 UTC

2

Touchpad pinch zoom behavious with mouse and keyboard?

Pinch zoom is awesome and useful at times and I miss it when I am on a desktop. Is there a way to mimic the behaviour of pinch zoom on touchpad with only mouse and keyboard.

Unless I am mistaken and the pinch zoom is no different than normal zoom either with '+' or 'ctrl+mousewheel up".

I have found zoom in/out in the bindings and zoom.default zoom.levels zoom.mouse_divder zoom.text_only in the settings and none of these seem to be for what I want.

1 Comment
2024/12/19
08:57 UTC

3

Often on google, hints does not work - I get: 'unknown error while getting elements' (old issue in QtWebEngine, but is there really no good solution for this?).

Reloading with 'tab-give', e.g. putting the tab in a new window, often (bu not always) helps. restarting qutebrowser does the trick. On most other sites hinting works fine, but not google -which is of course one of my most frequently used sites.

I found this from 2 years ago.

The issue seems to be with the QtWebEngine, but it's... two years ago. Is the solution really still to downgrade to an older version of QtWebEngine (6.4)?

I am on EndeavourOS (Arch Linux), fully updated.

qutebrowser v3.3.1
Git commit:
Backend: QtWebEngine 6.8.1
  based on Chromium 122.0.6261.171
  with security patches up to 131.0.6778.70 (plus any distribution patches)
  (source: api)
Qt: 6.8.1

CPython: 3.12.7
PyQt: 6.8.0

Qt wrapper info:
  PyQt6: success
  PyQt5: not imported
  -> selected: PyQt6 (via autoselect)

colorama: 0.4.6
jinja2: 3.1.4
pygments: 2.18.0
yaml: 6.0.2
adblock: no
objc: no
PyQt6.QtWebEngineCore: 6.8.0
PyQt6.sip: 6.9.1
pdf.js: no
sqlite: 3.47.2
QtNetwork SSL: OpenSSL 3.4.0 22 Oct 2024

Style: QFusionStyle
Platform plugin: xcb
OpenGL: NVIDIA Corporation, 4.6.0 NVIDIA 565.77
Platform: Linux-6.12.4-zen1-1-zen-x86_64-with-glibc2.40, 64bit
Linux distribution: EndeavourOS (arch)
Frozen: False
Imported from /usr/lib/python3.12/site-packages/qutebrowser
Using Python from /usr/bin/python3
Qt library executable path: /usr/lib/qt6, data path: /usr/share/qt6

Paths:
cache: /home/emil/.cache/qutebrowser
config: /home/emil/.config/qutebrowser
data: /home/emil/.local/share/qutebrowser
runtime: /run/user/1000/qutebrowser
system data: /usr/share/qutebrowser

Autoconfig loaded: no
Config.py: /home/emil/.config/qutebrowser/config.py has been loaded
Uptime: 0:00:00
2 Comments
2024/12/17
08:21 UTC

2

Can't load Webtoons (a website to read comics)

Whenever I click on a Webtoon series/episode I get an error that says it can't load. Is this happening for anyone else? Or is it maybe a setting I don't have on/off that's causing trouble? Thanks.

6 Comments
2024/12/15
20:13 UTC

71

qutebrowser v3.4.0 released / 11 years qutebrowser!

I'm delighted that qutebrowser is 11 years old today, almost on the minute:

Author: Florian Bruhin <git@the-compiler.org>
Date:   Sat Dec 14 22:15:16 2013 +0100

    Initial commit

If you're feeling nostalgic, in 2022 I did a little writeup about how it all started: https://listi.jpberlin.de/pipermail/qutebrowser-announce/2022-December/000115.html

What better way to celebrate than with a new release? So I just released v3.4.0 (the CI had other plans, but on the 5th try it finally worked).

The main highlight in this release is probably proper Qt 6.8 support finally, including asking the user for clipboard permission on-demand instead of needing to grant that before clipboard buttons start working.

There also were a couple of bugfixes (one of them improving website compatibility when they do XHR requests with a custom Accept-Language header), and Windows/macOS releases finally ship with Qt 6.8 (PyQt 6.8 was a bit delayed and only released two days ago).

Nothing else too big in there, but I'm hoping we'll get around to some bigger topics in 2025! toofar has been looking at getting tree-style tabs finished finally, and personally there are a variety of topics I'd love to have a look at. We'll see how it all pans out!

Here's the full changelog:

Removed

  • Support for Python 3.8 is dropped, and Python 3.9 is now required. (#8325)
  • Support for macOS 12 Monterey is now dropped, and binaries will be built on macOS 13 Ventura. (#8327)
  • When using the installer on Windows 10, build 1809 or newer is now required (previous versions required 1607 or newer, but that's not officialy supported by Qt upstream). (#8336)

Changed

  • Windows/macOS binaries are now built with Qt 6.8.1. (#8242)
    • Based on Chromium 122.0.6261.171
    • With security patches up to 131.0.6778.70
  • Windows/macOS binaries are now using Python 3.13. (#8205)
  • The .desktop file now also declares qutebrowser as a valid viewer for image/webp. (#8340)
  • Updated mimetype information for getting a suitable extension when downloading a data: URL.
  • The content.javascript.clipboard setting now defaults to "ask", which on Qt 6.8+ will prompt the user to grant clipboard access. On older Qt versions, this is still equivalent to "none" and needs to be set manually. (#8348)
  • If a XHR request made via JS sets a custom Accept-Language header, it now correctly has precedence over the global content.headers.accept_language setting (but not per-domain overrides). This fixes subtle JS issues on websites that rely on the custom header being sent for those requests, and e.g. block the requests server-side otherwise. (#8370)
  • Our packaging scripts now prefer the "legacy"/"for older browsers" PDF.js build as their normal release only supports the latest Chromium version and might break in qutebrowser on updates. Note to packagers: If there's a PDF.js package in your distribution as an (optional) qutebrowser dependency, consider also switching to this variant (same code, built differently).

Fixed

  • Crash with recent Jinja/Markupsafe versions when viewing a finished userscript (or potentially editor) process via :process.
  • scripts/open_url_in_instance.sh now avoids echo -n, thus running correctly on POSIX sh. (#8409)
  • Added a workaround for a bogus QtWebEngine warning about missing spell checking dictionaries. (#8330)

Enjoy!

12 Comments
2024/12/14
21:16 UTC

6

DOS by notifications

I Love qutebrowser but I allways keep another browser around as a back up because under certain circumstances the notifications make qutebrowser unuseable.

If I open a page with lots of ads with ssl cert issues I'm bombarded with notifications that stop me from typing anyting, following links, playing etc... until I respond to the notifications. which keep poping up. Even worse is if connect it to certain networks that use a splash portal to authorize internet use. In that case EVERYTHING shows up as a certificate issue (which is to be expected but) if I have a lot of pages already open qutebrowser becomes unuseable. Another case is that I happen to be typeing the letter "Y" when one of those prompts pops up. Then I've unintentionaly accepted something. This is a less comon occurence but it has happened at least once.

Is there a way to arrage it so that those notifications don't take focus away from what the user is doing/typing?

1 Comment
2024/12/12
23:15 UTC

3

Anyone know why I don't get hints for some links?

As an example, when I try to show hints for links on reddit's left sidebar, I see hints for the links at the top of the communities section, but not for any of the communities themselves.

I've been searching for an answer for this for the past few days and messing with adding things to the hints.selectors sections in my config.py, but haven't had any luck.

The objects do have <a href=...> associated with them, so they should just work, but for whatever reason, they're never given hints.

Love qutebrowser btw. Amazing idea.

https://preview.redd.it/t7ewuwfvlp4e1.png?width=270&format=png&auto=webp&s=8265b95369bb0665313b06a4c88a578bb98835b3

6 Comments
2024/12/03
22:24 UTC

1

I cannot share my screen

When I tried to share my screen on Google Meet, qutebrowser just stop working whitout showing any error. How can I solve that?

I use Swaywm. My info:

qutebrowser v3.3.1
Git commit: 07bd9a691 on main (2024-11-11 12:53:29 +0100)
Backend: QtWebEngine 6.7.3
  based on Chromium 118.0.5993.220
  with security patches up to 129.0.6668.58 (plus any distribution patches)
  (source: api)
Qt: 6.7.3 (compiled 6.7.1)

CPython: 3.12.3
PyQt: 6.7.1

Qt wrapper info:
  PyQt6: success
  PyQt5: not imported
  -> selected: PyQt6 (via autoselect)

colorama: 0.4.6
jinja2: 3.1.4
pygments: 2.18.0
yaml: 6.0.2
adblock: 0.6.0
objc: no
PyQt6.QtWebEngineCore: 6.7.0
PyQt6.sip: 6.8.6
pdf.js: no
sqlite: 3.46.1
QtNetwork SSL: OpenSSL 3.0.13 30 Jan 2024

Style: QFusionStyle
Platform plugin: wayland
OpenGL: Intel, 4.6 (Compatibility Profile) Mesa 24.0.9-0ubuntu0.2
Platform: Linux-6.8.0-49-generic-x86_64-with-glibc2.39, 64bit
Linux distribution: Ubuntu 24.04.1 LTS (ubuntu)
Frozen: False
Imported from ~/qutebrowser/qutebrowser
Using Python from ~/qutebrowser/.venv/bin/python3
Qt library executable path: ~/qutebrowser/.venv/lib/python3.12/site-packages/PyQt6/Qt6/libexec, data path: ~/qutebrowser/.venv/lib/python3.12/site-packages/PyQt6/Qt6

Paths:
cache: ~/.cache/qutebrowser
config: ~/.config/qutebrowser
data: ~/.local/share/qutebrowser
runtime: /run/user/1000/qutebrowser

Autoconfig loaded: yes
Config.py: no config.py was loaded
Uptime: 0:00:12qutebrowser v3.3.1
Git commit: 07bd9a691 on main (2024-11-11 12:53:29 +0100)
Backend: QtWebEngine 6.7.3
  based on Chromium 118.0.5993.220
  with security patches up to 129.0.6668.58 (plus any distribution patches)
  (source: api)
Qt: 6.7.3 (compiled 6.7.1)

CPython: 3.12.3
PyQt: 6.7.1

Qt wrapper info:
  PyQt6: success
  PyQt5: not imported
  -> selected: PyQt6 (via autoselect)

colorama: 0.4.6
jinja2: 3.1.4
pygments: 2.18.0
yaml: 6.0.2
adblock: 0.6.0
objc: no
PyQt6.QtWebEngineCore: 6.7.0
PyQt6.sip: 6.8.6
pdf.js: no
sqlite: 3.46.1
QtNetwork SSL: OpenSSL 3.0.13 30 Jan 2024

Style: QFusionStyle
Platform plugin: wayland
OpenGL: Intel, 4.6 (Compatibility Profile) Mesa 24.0.9-0ubuntu0.2
Platform: Linux-6.8.0-49-generic-x86_64-with-glibc2.39, 64bit
Linux distribution: Ubuntu 24.04.1 LTS (ubuntu)
Frozen: False
Imported from ~/qutebrowser/qutebrowser
Using Python from ~/qutebrowser/.venv/bin/python3
Qt library executable path: ~/qutebrowser/.venv/lib/python3.12/site-packages/PyQt6/Qt6/libexec, data path: ~/qutebrowser/.venv/lib/python3.12/site-packages/PyQt6/Qt6

Paths:
cache: ~/.cache/qutebrowser
config: ~/.config/qutebrowser
data: ~/.local/share/qutebrowser
runtime: /run/user/1000/qutebrowser

Autoconfig loaded: yes
Config.py: no config.py was loaded
Uptime: 0:00:12
10 Comments
2024/12/03
15:54 UTC

6

Looking for feedback on a password managing userscript I'm working on

I'm working on a userscript for managing passwords. I'm looking for a little feedback on my approach, hopefully I'm not missing something obvious. I use bitwarden and the qute-bitwarden script, which works great, except that its not very fast. Obviously that's no fault of the qute-bitwarden author, bw-cli is not super fast.

This password manager is a wrapper around qute-bitwarden, and other password managers. It encrypts credentials locally using gnupg and checks for credentials locally first, if the password is not found locally it checks whichever remote password manager the user has configured. I never write the unencrypted credentials to the disk. gnupg and bitwarden both require you to enter a master password before providing credentials.

Currently I have it in a proof of concept phase. It seems to work well for me. Logging in is significantly faster. I'm wondering if this is something anyone else is interested in. I'm hoping there's not a major security vulnerability that I'm missing. Right now its more a fun project to work on than anything else, but if someone else is interested in it I'd be happy to get some feedback and or help with testing.

7 Comments
2024/11/30
18:40 UTC

1

¿How are long web-histories handled?

Chromium-based browsers like Chrome or Opera or Edge keep a history of accessed webpages that's of a certain length, after which the oldest entries disappear. I believe, from my memories of using Firefox, this wasn't the case, or it was a longer length.

It seems that qutebrowser does something like this, because I searched for pages from months ago and didn't find them.

I have the following questions:

  1. Can it be confirmed whether this is the case?
  2. What delimits how long the history is?
  3. Is there some way to keep a longer history? To that end, I don't know if userscripts can trigger after a page loads.
1 Comment
2024/11/30
17:29 UTC

6

qutebrowser.el: Tight integration between Qutebrowser and Emacs/EXWM

0 Comments
2024/11/29
19:42 UTC

1

How can I reset just my settings to default

The config-clear command is not working. I want to keep my bookmarks and other shortcuts, but somehow my settings are all messed up. Webpages are literally unreadable.

1 Comment
2024/11/26
15:38 UTC

5

Adblock stopped working

Hello, I really enjoyed qutebrowser. It's native adblock with fuckfuckadblock and easylist filter was amazing, I've been so happy. But recently, it just stopped working, and it shows so many annoying ads on reddit and youtube. Anyone with same problems? Any solutions?

12 Comments
2024/11/26
13:48 UTC

4

How can I block popup tabs?

Certain shady websites have new tabs that popup whenever you click on any button. UBlock seems to block this, is there a way to stop this in qutebrowser?

5 Comments
2024/11/25
17:28 UTC

2

Qutebrowser and wibevinecdm.so

Hi! I cannot see video from Udemy or X. How can I solve it? I know this is because of DRM and qutebrowser doesn't have widevinecdm.so, but I don't know what to do?

I use Ubuntu 24.04 and Swaywm as window manager

6 Comments
2024/11/22
20:59 UTC

7

How does qutebrowser use vim binding?

Not a programmer of any sort, idk what goes on behind the scenes of applications but I am very interested in qutebrowser as I love its implementation of vim bindings, im just not a fan of webkit and prefer librewolf based browsers, but qb seems to be an exception!

May I ask how qb implements vim bindings? is it some kind of extension or....

Is qb light weight, as in, not very resource intensive, I would like a lightweight, minmal browser for wayland and so surf will not do, and qb, i already like but I want to know, is there anything i can do to make it less resource intensive? Is it more resource intensive that librewolf?

Great browser btw, normally i hate webkit and chromium based stuff, this is the only good/great none firefox browser I have come across and am planing to swap to it.

edit: another question lol, is qb supported on OpenBSD?

5 Comments
2024/11/22
14:47 UTC

5

Videos won't play

I am having an issue where videos will not play on most sites. I can play 80% of YouTube vids, but on X (twitter) for instance, the vids will not play. Is anyone else having the same issue? Is there a solution? Can you guys point me to the right research direction?

4 Comments
2024/11/21
12:27 UTC

Back To Top