r/qutebrowser Jun 05 '16

qutebrowser development blog

Thumbnail blog.qutebrowser.org
29 Upvotes

r/qutebrowser 4d ago

Qutebrowser is no longer able to load a session with more than a couple hundred tabs after an update from version 3.6.3 to 3.7.0

2 Upvotes

``` **Version info**:

qutebrowser v3.7.0

Git commit:

Backend: QtWebEngine 6.11.1

based on Chromium 140.0.7339.225

with security patches up to 148.0.7778.96 (plus any distribution patches)

(source: api)

Qt: 6.11.1

CPython: 3.14.6

PyQt: 6.11.0

Qt wrapper info:

PyQt6: success

PyQt5: not imported

-> selected: PyQt6 (via autoselect)

colorama: 0.4.6

jinja2: 3.1.6

pygments: 2.19.2

yaml: 6.0.3

adblock: 0.6.0

objc: no

PyQt6.QtWebEngineCore: 6.11.0

PyQt6.sip: 6.15.2

pdf.js: 4.5.136 (/usr/share/pdf.js/build/pdf.mjs)

sqlite: 3.53.3

QtNetwork SSL: OpenSSL 3.5.7 9 Jun 2026

WebExtensions:

chromium-pdf (mhjfbmdgcfjbbpaeojofohoefgiehjai)

[x] enabled [x] loaded [ ] installed

/usr/share/qt6/resources/pdf

Google Hangouts (nkeimhogjdpnpccoofpliimaahmaaome)

[x] enabled [x] loaded [ ] installed

/usr/share/qt6/resources/hangout_services

Style: QFusionStyle

Qt Platform: xcb (dwm)

OpenGL: AMD, 4.6 (Compatibility Profile) Mesa 26.1.6

Platform: Linux-6.18.6-gentoo-gentoo-dist-x86_64-12th_Gen_Intel-R-_Core-TM-_i3-12100F-with-glibc2.43, 64bit

Linux distribution: 'Gentoo Linux' (unknown)

Frozen: False

Imported from /usr/lib/python3.14/site-packages/qutebrowser

Using Python from /usr/bin/python3.14

Qt library executable path: /usr/lib64/qt6/libexec, data path: /usr/share/qt6

OS Version:

--- /etc/os-release ---

NAME='Gentoo'

ID='gentoo'

PRETTY_NAME='Gentoo Linux'

VERSION='2.18'

VERSION_ID='2.18'

--- /etc/gentoo-release ---

Gentoo Base System release 2.18

--- /etc/lsb-release ---

DISTRIB_ID="Gentoo"

Paths:

cache: /home/rado/.cache/qutebrowser

config: /home/rado/.config/qutebrowser

data: /home/rado/.local/share/qutebrowser

runtime: /run/user/1000/qutebrowser

system data: /usr/share/qutebrowser

Autoconfig loaded: yes

Config.py: no config.py was loaded

Uptime: 1:03:52
```

**Does the bug happen if you start with `--temp-basedir`?**:

I tried to create a temporary session in temp-basedir, but when I started to duplicate tabs a lot and got over 100, the browser just crashed with no warning. I haven't been able to verify if the bug still happens in temp-basedir sessions.

**Description**

Today I updated my browser version from 6.3.6 to 6.7.0 and my Qtwebengine version from 6.10.2 to 6.11.1 and I am no longer able to load my main browsing session (500+ tabs). It worked perfectly fine before and I never had any issues, but now I am not even able to load it. When I try, the browser freezes entirely and it takes more than 10 minutes to receive another frame again. In this situation the browser either crashes or waits until all the tabs' renderer processors have been killed by the OOM killer, so eventually I am left with a field of errors. I tried enabling lazy restore, but that did nothing. I'll be really thankful if you can tell me how I can potentially fix this problem.

**How to reproduce**

  1. Load a browser session with lots of tabs.

  2. Notice the browser freeze.

  3. Wait for the tabs to get killed and die.


r/qutebrowser 5d ago

Fingerprinting protection in qutebrowser

Post image
2 Upvotes

Hi everyone,

I have been reading the qutebrowser documentation and searching previous discussions about privacy and fingerprinting, but I would like to ask for current recommendations from experienced users.

I understand that qutebrowser (QtWebEngine/Chromium-based) is not designed to provide Tor Browser-level fingerprinting resistance.

After testing with EFF Cover Your Tracks, I noticed that my browser still has a unique fingerprint, even though tracker blocking works well.

I will attach the report as an image.

My question is:

What practical steps do qutebrowser users recommend to reduce fingerprint uniqueness while keeping reasonable website compatibility?

I am especially interested in qutebrowser-specific settings, real-world experience, and any relevant discussions or resources I may have missed.

Thanks!


r/qutebrowser 17d ago

qutebrowsers ram usage

11 Upvotes

Hello, ive been using qutebrowser for a while, but everytime i have it open for like an hour the ram usage goes super high and it always gets back to normal after i close it and open it again, if anyone knows how to fix this please tell me. Thank you.


r/qutebrowser 18d ago

Anyway to bind Shift+Mousewheel for faster scrolling?

3 Upvotes

Hi, is there any way to bind <Shift-WheelUp> and <Shift-WheelDown> or something like that to do a bigger scroll or page up/down? I tried those and Button4/Button5 but none of them worked. Thanks.

Edit: found this issue: https://github.com/qutebrowser/qutebrowser/issues/591 looks like it's been considered but not yet implemented.


r/qutebrowser 19d ago

hydra.nixos.org markow pit

Thumbnail
1 Upvotes

r/qutebrowser 29d ago

Benefits of using qutebrowswer instead of Firefox+Vimium?

5 Upvotes

r/qutebrowser Aug 01 '26

"Unknown error while getting elements" error when hinting in some websites

3 Upvotes

hello, i am new to qutebrowser and for some reason sometimes pressing f to hint gives this error. when i reload the page, hinting works but i find it inconvinient. just in case, do people use hinting to press buttons or do you just use your cursor? thx :)


r/qutebrowser Jul 27 '26

adblockers for qutebrowser?

6 Upvotes

i havent found a good adblocker that supports qutebrowser, and i have no idea how to install one manually. can someone help me?


r/qutebrowser Jul 16 '26

I can't login to ChatGPT

5 Upvotes

The login with Google button gets greyed out and infinitely shows its loading animation.

I used the latest versions, qutebrowser v3.7.0 and Qt 6.11.0. I tried both the Zypper package and building it from GitHub, both have the same issue


r/qutebrowser Jul 12 '26

Tabs zindex?

1 Upvotes

i don't like how the web resizes eveytime i toggle the tabs is there a way to put them on a diffrent plain. i couldn't find it in the configs, do i need to mess with the source code?


r/qutebrowser Jul 11 '26

how to disable tooltip?

2 Upvotes

I have this question unanswered so reposting it in case someone can help. How can i disable tooltip on qutebrowser when i hover the mouse on a link? I need to disable it becasue the tiling window manager (when it is active) detects it as a window. Some websites show that tooltip, (for example https://docs.openwebui.com)


r/qutebrowser Jul 06 '26

403 Codeberg problem for qutebrowser

2 Upvotes

Hi guys I am facing issue where when I try to access codeberg.org via qutebrowser I get 403 (Access denied) any help with this.

Please..!!


r/qutebrowser Jul 05 '26

Youtube ad blocking problem

1 Upvotes

how do you implement youtube ad skip for qute. Because, when I tried to implement ad skipping using this script and it just skips the whole video how can I fix that the ad gets skipped pretty fast but the video is also done.

// ==UserScript==

// for more updated scripts, see: https://greasyfork.org/en/scripts/by-site/youtube.com

// u/nameAuto Skip YouTube Ads

// u/version1.1.0

// u/description Speed up and skip YouTube ads automatically

// u/authorjso8910 and others

// u/match*://*.youtube.com/*

// ==/UserScript==

document.addEventListener('load', () => {

const btn = document.querySelector('.videoAdUiSkipButton,.ytp-ad-skip-button-modern')

if (btn) {

btn.click()

}

const ad = [...document.querySelectorAll('.ad-showing')][0];

if (ad) {

document.querySelector('video').currentTime = 9999999999;

}

}, true);


r/qutebrowser Jun 27 '26

qutebrowser and linkding integration?

3 Upvotes

Hi, Has anyone integrated or used qutebrowser with Linkding bookmark manager? so qutewbrowser can read the bookmarks from linkding instead of url.txt


r/qutebrowser Jun 25 '26

customize the status bar vim mode

2 Upvotes

i set the show status bar to always. I'd like to show the vim mode (NORMAL, INSERT) with a background color. Is it possible? Trying to replicate the look of neovim.

this is my neovim status bar in NORMAL and INSERT:

This is qutebrowser in norrmal mode. no text.

This is qutebrowser in insert mode:


r/qutebrowser Jun 11 '26

Trying out Qutebrowser for the first time

4 Upvotes

Hello everyone, as for today I'm trying to try something new, I stumbled upon qutebrowser. Here's my questions after using it for a bit.

  1. How do I use vertical tab?
  2. How do I customize the browser? And how deep I can go into tinkering the browser appearance/function? (If there're any resource or guide please tag it in the comment <3)
  3. What is gvim? I tried to edit the config file... it said "Editor 'gvim' failed to start: 'gvim' doesn't exist or isn't executable"
  4. When I start it, it gave me a warning

"Errors occurred while reading config.py:

® autoconfig loading not specified: Your config.py should

call either `config.load_autoconfig0}` (to load settings

configured via the GUI) or `config.load_autoconfig(False)` (to

not do so)

"

I have no idea what does this mean but the browser started and I can use it like normal.

a small side note is that I'm pretty new to Linux and these kind of stuffs so pleaseee be kind, lots of love <3

// TYSM EVERYONE! I appreciate all of your help !


r/qutebrowser May 30 '26

Session restore with Hyprland/Sway window positioning (PR #8919)

4 Upvotes

Hey r/qutebrowser,

I've been working on a feature I think many tiling WM users will appreciate: proper session save/ restore with window manager integration.

The PR adds session.after_save_command and session.after_load_command config options. Paired with the included userscripts, qutebrowser sessions are fully restored, including workspace placement, monitor assignment, and floating window geometry.

Two userscripts are included: qb-hyprland-session and qb-sway-session.

With the Hy3 plugin for Hyprland, it goes further: full tiling tree reconstruction (h/v splits, tabbed groups) with proportional resizing, scratchpad support, and oscillation detection for layouts that have changed since the last save.

To try it, clone the branch from PR #8919 and add to your config:

c.session.after_save_command = ["qb-hyprland-session", "save", "{session}"]
c.session.after_load_command = ["qb-hyprland-session", "restore", "{session}"]

The hook mechanism is generic, any window manager could be supported. If you'd like to see a script for your WM, let me know in the comments!

I'd love to hear how it works for you!


r/qutebrowser May 29 '26

using mpv config file in qb

1 Upvotes

Launching video in qutebrowser with mpv doesn't use the mpv configuration file. Is it by design or i missed a setting?

UPDATE:

I fixed it by passing the `--config-dir` flag to the `spawn` command.

config.bind(";v", r'hint links spawn -d mpv.exe --config-dir=C:/Users/azin/.config/mpv {hint-url}')


r/qutebrowser May 27 '26

completion window showing below webpage

1 Upvotes

i added transparent backgrounds using css and now the completion window appears behind

.site-wrapper {

background-color: transparent;

}

body {

background-color: rgba(0,0,0,0.25);

opacity: 1;

}

.header-wrap {

background-color: rgba(0,0,0,0.25);

}

does anyone know what is going on? this happens on anything that the transparency works on


r/qutebrowser May 12 '26

Typing in url bar has become laggy

7 Upvotes

I think this has been happening for a week or two (I can't remember when I first noticed it, I kept assuming it was a temporary thing and not really paying much attention) and my suspicion is that this is something underlying changing - some dependency or something - rather than qutebrowser itself, since I don't think qutebrowser has updated in that timeframe.

When I type in the address bar, it's laggy in the sense that letters take a moment to appear as I type, until it's not matching against anything, then I can type as normal. So it's clearly something to do with the matching.

I've tried the git version of qutebrowser and that behaves the same.

I've tried setting web_history.max_items very low (I went as low as 50) and that made no perceivable difference.

It doesn't happen when I run with qutebrowser --temp-basedir but I assume that's just because there's no history to match against. So doesn't really tell me much.

I'm on and up-to-date Arch with qutebrowser installed through the repos. Happy to provide more info if it'd be useful.

Thanks for any advice!

edit: just noticed the same behaviour when doing set: blah and it's matching against settings rather than history. So it's not specific to history-matching.


r/qutebrowser May 12 '26

How to launch a virtual environment install?

4 Upvotes

I just installed qutebrowser into a virtual environment because i was trying to get adblock to work and i read that it's the "right" way to install qutebrowser. Now i don't know how to run an instance of qutebrowser.

I'm on Debian Trixie and my window manager is Qtile. I would also greatly appreciate some help with binding qutebrowser in Qtile, like I used to have it.


r/qutebrowser May 09 '26

can't watch videos on youtube

1 Upvotes

for some reason when i'm on youtube and try to watch a video i get the error code 152 - 4
i also can't login into anything google-wise, and yt-dl decided to not be usable anymore because youtube needs me to login to use it, which needs my cookies which i can't get without login in

Edit: I managed to fix it, seems like it was a greasemonkey usescript that broke it, still haven't found a way to do stuff with mpv but oh well


r/qutebrowser May 08 '26

I made a custom script for adblocking.

9 Upvotes

Type ":adblock -p" for help on the use of the command. I binded "AD" to the toggling of adblocking.

Copy and paste on config.py in order to add it.

# adblocking

c.content.blocking.method = 'adblock'

fulladblocklist = [
        "https://easylist.to/easylist/easylist.txt",
        "https://easylist.to/easylist/easyprivacy.txt",
        "https://easylist.to/easylist/fanboy-social.txt",
        "https://secure.fanboy.co.nz/fanboy-annoyance.txt",
        "https://easylist-downloads.adblockplus.org/abp-filters-anti-cv.txt",
        #"https://gitlab.com/curben/urlhaus-filter/-/raw/master/urlhaus-filter.txt",
        "https://pgl.yoyo.org/adservers/serverlist.php?showintro=0;hostformat=hosts",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/legacy.txt",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters.txt",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters-2020.txt",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters-2021.txt",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/badware.txt",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/privacy.txt",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/badlists.txt",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/annoyances.txt",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/resource-abuse.txt",
        "https://www.i-dont-care-about-cookies.eu/abp/",
        "https://secure.fanboy.co.nz/fanboy-cookiemonster.txt",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/unbreak.txt"]

c.content.blocking.adblock.lists = fulladblocklist

import qutebrowser.api.cmdutils as cmdutils

@cmdutils.register()
@cmdutils.argument('start', flag='1')
@cmdutils.argument('stop', flag='0')
@cmdutils.argument('toggle', flag='t')
@cmdutils.argument('info', flag='i')
@cmdutils.argument('print_help', flag='p')
u/cmdutils.argument('silent', flag='s')
def adblock(start: bool = False, stop: bool = False, toggle: bool = False, info: bool = False, print_help: bool = False, silent: bool = False):
    from qutebrowser.utils import message
    if print_help:
        message.info("This command helps manage adblocking.")
        message.info("")
        message.info("\t--start, -1\tAdds the configured lists array (see in config.py) to c.content.blocking.adblock.lists.")
        message.info("\t--stop, -0\tSets c.content.blocking.adblock.lists to the empty array.")
        message.info("\t--toggle, -t\tToggles between the previous two options. It is the default behavior (in abscence of flags).")
        message.info("\t--info, -i\tPrints the adblocking method and the lenght of the array of adblocking lists.")
        message.info("\t--help, -h\tPrints this message.")
        message.info("")
        message.info("-i and -h can be combined with other flags. But they will disable the default toggleing unless acompanied with -t.")
        message.info("Using contradictory flags at once results in an error and no change happening to the adblocking.")
    if info:
        method = config.get("content.blocking.method")
        arraylength = len(config.get("content.blocking.adblock.lists"))
        enable = config.get("content.blocking.enabled")
        message.info(f"Adblocking method: {method}")
        message.info(f"Length of adblocking list array: {arraylength}")
        if(enable):
            message.info("Enabled")
        else:
            message.info("Disabled")
    #toggling adblock
    if (not start) and (not stop) and ( toggle or ((not info) and (not print_help)) ):
        config.set("content.blocking.enabled", not config.get("content.blocking.enabled"))
        if config.get("content.blocking.enabled") and not silent:
            message.info("Ad-blocking enabled")
        elif not (config.get("content.blocking.enabled") or silent):
            message.info("Ad-blocking disabled")
    elif start and not (stop or toggle):
        config.set("content.blocking.enabled", True)
        if not silent:
            message.info("Ad-blocking enabled")
    elif stop and not (start or toggle):
        config.set("content.blocking.enabled", False)
        if not silent:
            message.info("Ad-blocking disabled")
    elif (start and stop) or ( toggle and (start or stop) ):
        message.error("Contradictory flags active at once.")
    elif ( (not start) and (not stop) and (not toggle) ) and (info or print_help):
        print("nothing")
    else:
        message.error("Elif tree couldn't get the case")

config.bind('AD', "adblock")

r/qutebrowser May 08 '26

are qutebrowser colorschemes compatible with vim?

4 Upvotes

hey there folks, how are u all?

i have some questions about styling.

i have a custom colorscheme that i use for more than 10 years in vim and i would like to use it in this browser too.

are colorschemes compatibel with vim colorschemes?

also how could i set a dark mode to pages?

how could i found docs for it all?